import type { LanguageModelV3FinishReason } from '@ai-sdk/provider'; export function mapOpenAIResponseFinishReason({ finishReason, hasFunctionCall, }: { finishReason: string | null | undefined; // flag that checks if there have been client-side tool calls (not executed by openai) hasFunctionCall: boolean; }): LanguageModelV3FinishReason['unified'] { switch (finishReason) { case undefined: case null: return hasFunctionCall ? 'tool-calls' : 'stop'; case 'max_output_tokens': return 'length'; case 'content_filter': return 'content-filter'; default: return hasFunctionCall ? 'tool-calls' : 'other'; } }