Module exposing: isAbortFinishReason, isMalformedToolCallFinishReason, normalizeOpenAICompatibleFinishReason, normalizeOpenAICompatibleFinishReasonString
// Source: https://github.com/ChrisStack95/omniroute95 | License: MIT | Copyright 2026 diegosouzapw // Provided via justclaw.it.com; keep this notice with the code. const OPENAI_FINISH_REASONS = new Set([ "stop", "length", "tool_calls", "content_filter", "function_call", ]); const SAFETY_FINISH_REASONS = new Set([ "safety", "recitation", "blocklist", "prohibited_content", "content_filtered", "policy_violation", "malformed_response", ]); // Gemini/Antigravity finish reasons that mean the model ABORTED the turn before // completing it — most commonly a tool call the model started narrating but // Gemini could not parse/execute (MALFORMED_FUNCTION_CALL, UNEXPECTED_TOOL_CALL). // Distinct from SAFETY_FINISH_REASONS: those are deliberate, deterministic // content block ... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key