import type { CanonicalFinishReason } from "../protocol/canonical.js";

export function normalizeAnthropicFinishReason(reason: unknown): CanonicalFinishReason {
  switch (reason) {
    case "end_turn":
    case "stop_sequence":
      return "stop";
    case "max_tokens":
      return "length";
    case "tool_use":
      return "tool_call";
    case "refusal":
      return "content_filter";
    default:
      return "unknown";
  }
}

export function normalizeOpenAIFinishReason(reason: unknown): CanonicalFinishReason {
  switch (reason) {
    case "stop":
      return "stop";
    case "length":
      return "length";
    case "tool_calls":
    case "function_call":
      return "tool_call";
    case "content_filter":
    case "content_filter_results":
      return "content_filter";
    default:
      return "unknown";
  }
}