import { 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';
  }
}
