{"version":3,"sources":["../src/stream/types.ts","../src/llm/model/aisdk/v6/model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/openai-error.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/openai-language-model-capabilities.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/convert-to-openai-chat-messages.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/get-response-metadata.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/map-openai-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/openai-chat-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/openai-chat-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/openai-chat-prepare-tools.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/chat/openai-chat-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/convert-to-openai-completion-prompt.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/get-response-metadata.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/map-openai-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/openai-completion-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/openai-completion-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/completion/openai-completion-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/embedding/openai-embedding-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/embedding/openai-embedding-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/embedding/openai-embedding-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/image/openai-image-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/image/openai-image-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/image/openai-image-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/transcription/openai-transcription-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/transcription/openai-transcription-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/transcription/openai-transcription-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/speech/openai-speech-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/speech/openai-speech-model.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/local-shell.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/convert-to-openai-responses-input.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/map-openai-responses-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/openai-responses-api.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/openai-responses-options.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/code-interpreter.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/file-search.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/web-search.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/web-search-preview.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/tool/image-generation.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/openai-responses-prepare-tools.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/responses/openai-responses-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+azure@2.0.108_zod@4.3.6/node_modules/@ai-sdk/azure/src/azure-openai-tools.ts","../../../node_modules/.pnpm/@ai-sdk+azure@2.0.108_zod@4.3.6/node_modules/@ai-sdk/azure/src/version.ts","../../../node_modules/.pnpm/@ai-sdk+azure@2.0.108_zod@4.3.6/node_modules/@ai-sdk/azure/src/azure-openai-provider.ts","../src/llm/model/openai-websocket-fetch.ts","../src/llm/model/gateways/azure.ts","../src/llm/model/gateways/index.ts","../src/llm/model/router.ts","../src/llm/model/aisdk/v4/model.ts","../src/llm/model/resolve-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/version.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-error.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-generative-ai-embedding-options.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-generative-ai-embedding-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/convert-json-schema-to-openapi-schema.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/convert-to-google-generative-ai-messages.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/get-model-path.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-generative-ai-options.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-prepare-tools.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/map-google-generative-ai-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-generative-ai-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/code-execution.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/enterprise-web-search.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/file-search.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/google-maps.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/google-search.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/url-context.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/tool/vertex-rag-store.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-tools.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-generative-ai-image-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@2.0.72_zod@4.3.6/node_modules/@ai-sdk/google/src/google-provider.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/openai-tools.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/version.ts","../../../node_modules/.pnpm/@ai-sdk+openai@2.0.106_zod@4.3.6/node_modules/@ai-sdk/openai/src/openai-provider.ts","../src/llm/model/embedding-router.ts"],"names":["ChunkFrom","createStreamFromGenerateResult","z","createJsonErrorResponseHandler","convertToBase64","UnsupportedFunctionalityError","lazyValidator","zodSchema","openaiTools","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","toolCall","isParsableJson","InvalidPromptError","getResponseMetadata","mapOpenAIFinishReason","TooManyEmbeddingValuesForCallError","convertBase64ToUint8Array","mediaTypeToExtension","postFormDataToApi","createBinaryResponseHandler","lazySchema","createProviderDefinedToolFactoryWithOutputSchema","_a","_b","_c","validateTypes","APICallError","loadApiKey","withUserAgentSuffix","loadSetting","WebSocket","resolve","openai","providerOptions","MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","MASTRA_GATEWAY_STREAM_TRANSPORT","PROVIDER_REGISTRY","NetlifyGateway","MastraGateway","ModelsDevGateway","parseModelRouterId","AISDKV5LanguageModel","streamResult","createHash","modelInstance","createOpenAICompatible","createOpenAI","RequestContext","VERSION","responseHeaders","response","rawValue","googleTools","createProviderDefinedToolFactory","fileSearchArgsSchema","fileSearch","withoutTrailingSlash","openaiErrorDataSchema","openaiFailedResponseHandler","getOpenAILanguageModelCapabilities","convertToOpenAIChatMessages","openaiChatResponseSchema","openaiChatChunkSchema","openaiChatLanguageModelOptions","prepareChatTools","OpenAIChatLanguageModel","convertToOpenAICompletionPrompt","openaiCompletionResponseSchema","openaiCompletionChunkSchema","openaiCompletionProviderOptions","OpenAICompletionLanguageModel","openaiEmbeddingProviderOptions","openaiTextEmbeddingResponseSchema","OpenAIEmbeddingModel","openaiImageResponseSchema","modelMaxImagesPerCall","hasDefaultResponseFormat","baseImageModelOptionsObject","openaiImageModelGenerationOptions","OpenAIImageModel","distributeTokenDetails","codeInterpreterInputSchema","codeInterpreterOutputSchema","codeInterpreterArgsSchema","codeInterpreterToolFactory","codeInterpreter","comparisonFilterSchema","compoundFilterSchema","fileSearchOutputSchema","imageGenerationArgsSchema","imageGenerationInputSchema","imageGenerationOutputSchema","imageGenerationToolFactory","imageGeneration","localShellInputSchema","localShellOutputSchema","localShell","webSearchArgsSchema","webSearchInputSchema","webSearchOutputSchema","webSearchToolFactory","webSearchPreviewArgsSchema","webSearchPreviewInputSchema","webSearchPreviewOutputSchema","webSearchPreview","isFileId","convertToOpenAIResponsesInput","openaiResponsesReasoningProviderOptionsSchema","mapOpenAIResponseFinishReason","openaiResponsesChunkSchema","openaiResponsesResponseSchema","TOP_LOGPROBS_MAX","openaiResponsesProviderOptionsSchema","prepareResponsesTools","OpenAIResponsesLanguageModel","mapWebSearchOutput","isResponseOutputItemAddedChunk","isResponseOutputItemDoneChunk","isResponseFunctionCallArgumentsDeltaChunk","isResponseCodeInterpreterCallCodeDeltaChunk","isResponseCodeInterpreterCallCodeDoneChunk","isResponseCreatedChunk","isTextDeltaChunk","isResponseFinishedChunk","isResponseAnnotationAddedChunk","isErrorChunk","openaiSpeechProviderOptionsSchema","OpenAISpeechModel","openaiTranscriptionResponseSchema","openAITranscriptionProviderOptions","languageMap","OpenAITranscriptionModel","loadOptionalSetting","GatewayRegistry"],"mappings":"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","file":"chunk-6BHHFTLL.cjs","sourcesContent":["import type {\n  LanguageModelV2FinishReason,\n  LanguageModelV2Usage,\n  LanguageModelV2CallWarning,\n  LanguageModelV2Prompt,\n  LanguageModelV2ResponseMetadata,\n  LanguageModelV2StreamPart,\n} from '@ai-sdk/provider-v5';\n\nimport type {\n  FinishReason,\n  LanguageModelRequestMetadata,\n  LogProbs as LanguageModelV1LogProbs,\n} from '@internal/ai-sdk-v4';\nimport type { CallSettings, ModelMessage, StepResult, ToolSet, TypedToolCall, UIMessage } from '@internal/ai-sdk-v5';\nimport type { AIV5ResponseMessage } from '../agent/message-list';\nimport type { AIV5Type, MastraDBMessage } from '../agent/message-list/types';\nimport type { StructuredOutputOptions } from '../agent/types';\nimport type { MastraLanguageModel, SharedProviderOptions } from '../llm/model/shared.types';\nimport type { ScorerResult } from '../loop';\nimport type { ObservabilityContext } from '../observability';\nimport type { OutputProcessorOrWorkflow } from '../processors';\nimport type { RequestContext } from '../request-context';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '../workflows/types';\nimport type { OutputSchema } from './base/schema';\n\nexport enum ChunkFrom {\n  AGENT = 'AGENT',\n  USER = 'USER',\n  SYSTEM = 'SYSTEM',\n  WORKFLOW = 'WORKFLOW',\n  NETWORK = 'NETWORK',\n}\n\n/**\n * Extended finish reason that includes Mastra-specific values.\n * 'tripwire' and 'retry' are used for processor scenarios.\n */\nexport type MastraFinishReason = LanguageModelV2FinishReason | 'tripwire' | 'retry';\n\n/**\nA JSON value can be a string, number, boolean, object, array, or null.\nJSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods.\n */\nexport type JSONValue = null | string | number | boolean | JSONObject | JSONArray;\nexport type JSONObject = {\n  [key: string]: JSONValue;\n};\nexport type JSONArray = JSONValue[];\n\n/**\n * Additional provider-specific metadata.\n * The outer record is keyed by the provider name, and the inner\n * record is keyed by the provider-specific metadata key.\n */\nexport type ProviderMetadata = Record<string, Record<string, JSONValue>>;\n\nexport type StreamTransport = {\n  type: 'openai-websocket';\n  close: () => void;\n  closeOnFinish: boolean;\n};\n\nexport const MASTRA_MODEL_STREAM_TRANSPORT = Symbol.for('@mastra/core.modelStreamTransport');\n\nexport type StreamTransportCarrier = {\n  [key: symbol]: StreamTransport | undefined;\n};\n\nexport function attachModelStreamTransport(target: object, transport?: StreamTransport): void {\n  if (!transport) return;\n  Object.defineProperty(target, MASTRA_MODEL_STREAM_TRANSPORT, {\n    configurable: true,\n    value: transport,\n  });\n}\n\nexport function readModelStreamTransport(target: unknown): StreamTransport | undefined {\n  return (target as StreamTransportCarrier | undefined)?.[MASTRA_MODEL_STREAM_TRANSPORT];\n}\n\nexport type StreamTransportRef = {\n  current?: StreamTransport;\n};\n\ninterface BaseChunkType {\n  runId: string;\n  from: ChunkFrom;\n  metadata?: Record<string, any>;\n}\n\ninterface ResponseMetadataPayload {\n  signature?: string;\n  [key: string]: unknown;\n}\n\nexport interface TextStartPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n}\n\nexport interface TextDeltaPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n  text: string;\n}\n\ninterface TextEndPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n  [key: string]: unknown;\n}\n\nexport interface ReasoningStartPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n  signature?: string;\n}\n\nexport interface ReasoningDeltaPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n  text: string;\n}\n\ninterface ReasoningEndPayload {\n  id: string;\n  providerMetadata?: ProviderMetadata;\n  signature?: string;\n}\n\nexport interface SourcePayload {\n  id: string;\n  sourceType: 'url' | 'document';\n  title: string;\n  mimeType?: string;\n  filename?: string;\n  url?: string;\n  providerMetadata?: ProviderMetadata;\n}\n\nexport interface FilePayload {\n  data: string | Uint8Array;\n  base64?: string;\n  mimeType: string;\n  providerMetadata?: ProviderMetadata;\n}\n\nexport type ReadonlyJSONValue = null | string | number | boolean | ReadonlyJSONObject | ReadonlyJSONArray;\n\nexport type ReadonlyJSONObject = {\n  readonly [key: string]: ReadonlyJSONValue;\n};\n\nexport type ReadonlyJSONArray = readonly ReadonlyJSONValue[];\n\nexport interface MastraMetadataMessage {\n  type: 'text' | 'tool';\n  content?: string;\n  toolName?: string;\n  toolInput?: ReadonlyJSONValue;\n  toolOutput?: ReadonlyJSONValue;\n  args?: ReadonlyJSONValue;\n  toolCallId?: string;\n  result?: ReadonlyJSONValue;\n}\n\nexport interface MastraMetadata {\n  isStreaming?: boolean;\n  from?: 'AGENT' | 'WORKFLOW' | 'USER' | 'SYSTEM';\n  networkMetadata?: ReadonlyJSONObject;\n  toolOutput?: ReadonlyJSONValue | ReadonlyJSONValue[];\n  messages?: MastraMetadataMessage[];\n  workflowFullState?: ReadonlyJSONObject;\n  selectionReason?: string;\n}\n\nexport interface ToolCallPayload<TArgs = unknown, TOutput = unknown> {\n  toolCallId: string;\n  toolName: string;\n  args?: TArgs & {\n    __mastraMetadata?: MastraMetadata;\n  };\n  providerExecuted?: boolean;\n  providerMetadata?: ProviderMetadata;\n  output?: TOutput;\n  dynamic?: boolean;\n}\n\nexport interface ToolResultPayload<TResult = unknown, TArgs = unknown> {\n  toolCallId: string;\n  toolName: string;\n  result: TResult;\n  isError?: boolean;\n  providerExecuted?: boolean;\n  providerMetadata?: ProviderMetadata;\n  args?: TArgs;\n  dynamic?: boolean;\n}\n\nexport type DynamicToolCallPayload = ToolCallPayload<any, any>;\nexport type DynamicToolResultPayload = ToolResultPayload<any, any>;\n\ninterface ToolCallInputStreamingStartPayload {\n  toolCallId: string;\n  toolName: string;\n  providerExecuted?: boolean;\n  providerMetadata?: ProviderMetadata;\n  dynamic?: boolean;\n}\n\ninterface ToolCallDeltaPayload {\n  argsTextDelta: string;\n  toolCallId: string;\n  providerMetadata?: ProviderMetadata;\n  toolName?: string;\n}\n\ninterface ToolCallInputStreamingEndPayload {\n  toolCallId: string;\n  providerMetadata?: ProviderMetadata;\n}\n\ninterface FinishPayload<Tools extends ToolSet = ToolSet, OUTPUT extends OutputSchema = undefined> {\n  stepResult: {\n    /** Includes 'tripwire' and 'retry' for processor scenarios */\n    reason: LanguageModelV2FinishReason | 'tripwire' | 'retry';\n    warnings?: LanguageModelV2CallWarning[];\n    isContinued?: boolean;\n    logprobs?: LanguageModelV1LogProbs;\n  };\n  output: {\n    usage: LanguageModelUsage;\n    /** Steps array - uses MastraStepResult which extends AI SDK StepResult with tripwire data */\n    steps?: MastraStepResult<Tools>[];\n  };\n  metadata: {\n    providerMetadata?: ProviderMetadata;\n    request?: LanguageModelRequestMetadata;\n    [key: string]: unknown;\n  };\n  providerMetadata?: ProviderMetadata;\n  messages: {\n    all: ModelMessage[];\n    user: ModelMessage[];\n    nonUser: AIV5ResponseMessage[];\n  };\n  response?: LLMStepResult<OUTPUT>['response'];\n  [key: string]: unknown;\n}\n\ninterface ErrorPayload {\n  error: unknown;\n  [key: string]: unknown;\n}\n\ninterface RawPayload {\n  [key: string]: unknown;\n}\n\ninterface StartPayload {\n  [key: string]: unknown;\n}\n\nexport interface StepStartPayload {\n  messageId?: string;\n  request: {\n    body?: string;\n    [key: string]: unknown;\n  };\n  inputMessages?: LanguageModelV2Prompt;\n  warnings?: LanguageModelV2CallWarning[];\n  [key: string]: unknown;\n}\n\nexport interface StepFinishPayload<Tools extends ToolSet = ToolSet, OUTPUT = undefined> {\n  id?: string;\n  providerMetadata?: ProviderMetadata;\n  totalUsage?: LanguageModelUsage;\n  response?: LanguageModelV2ResponseMetadata;\n  messageId?: string;\n  stepResult: {\n    logprobs?: LanguageModelV1LogProbs;\n    isContinued?: boolean;\n    warnings?: LanguageModelV2CallWarning[];\n    reason: LanguageModelV2FinishReason;\n  };\n  output: {\n    text?: string;\n    toolCalls?: TypedToolCall<Tools>[];\n    usage: LanguageModelUsage;\n    /** Steps array - uses MastraStepResult which extends AI SDK StepResult with tripwire data */\n    steps?: MastraStepResult<Tools>[];\n    object?: OUTPUT;\n  };\n  metadata: {\n    request?: LanguageModelRequestMetadata;\n    providerMetadata?: ProviderMetadata;\n    [key: string]: unknown;\n  };\n  messages?: {\n    all: ModelMessage[];\n    user: ModelMessage[];\n    nonUser: AIV5ResponseMessage[];\n  };\n  [key: string]: unknown;\n}\n\ninterface ToolErrorPayload {\n  id?: string;\n  providerMetadata?: ProviderMetadata;\n  toolCallId: string;\n  toolName: string;\n  args?: Record<string, unknown>;\n  error: unknown;\n  providerExecuted?: boolean;\n}\n\ninterface AbortPayload {\n  [key: string]: unknown;\n}\n\ninterface ReasoningSignaturePayload {\n  id: string;\n  signature: string;\n  providerMetadata?: ProviderMetadata;\n}\n\ninterface RedactedReasoningPayload {\n  id: string;\n  data: unknown;\n  providerMetadata?: ProviderMetadata;\n}\n\ninterface ToolOutputPayload<TOutput = unknown> {\n  output: TOutput; // Tool outputs can be any shape, including nested workflow chunks\n  toolCallId: string;\n  toolName?: string;\n  [key: string]: unknown;\n}\n\ntype DynamicToolOutputPayload = ToolOutputPayload<any>;\n\n// Define a specific type for nested workflow outputs\ntype NestedWorkflowOutput = {\n  from: ChunkFrom;\n  type: string;\n  payload?: {\n    output?: ChunkType | NestedWorkflowOutput; // Allow one level of nesting\n    usage?: unknown;\n    [key: string]: unknown;\n  };\n  [key: string]: unknown;\n};\n\ninterface StepOutputPayload {\n  output: ChunkType | NestedWorkflowOutput;\n  [key: string]: unknown;\n}\n\ninterface WatchPayload {\n  [key: string]: unknown;\n}\n\ninterface TripwirePayload<TMetadata = unknown> {\n  /** The reason for the tripwire */\n  reason: string;\n  /** If true, the agent should retry with the tripwire reason as feedback */\n  retry?: boolean;\n  /** Strongly typed metadata from the processor */\n  metadata?: TMetadata;\n  /** The ID of the processor that triggered the tripwire */\n  processorId?: string;\n}\n\n/**\n * Payload for is-task-complete events emitted during stream/generate scoring.\n */\ninterface IsTaskCompletePayload {\n  /** Current iteration number */\n  iteration: number;\n  /** Whether all/any scorers passed based on strategy */\n  passed: boolean;\n  /** Individual scorer results */\n  results: ScorerResult[];\n  /** Total duration of all scoring checks */\n  duration: number;\n  /** Whether scoring timed out */\n  timedOut: boolean;\n  /** Reason from the relevant scorer */\n  reason?: string;\n  /** Whether the maximum iteration was reached */\n  maxIterationReached: boolean;\n  /** Whether to suppress the completion feedback message */\n  suppressFeedback: boolean;\n}\n\nexport interface BackgroundTaskStartedPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n}\n\nexport interface BackgroundTaskResultPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  agentId: string;\n  result: unknown;\n  runId: string;\n  completedAt: Date;\n  isError?: boolean;\n}\n\nexport interface BackgroundTaskFailedPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  error: { message: string };\n  completedAt: Date;\n}\n\nexport interface BackgroundTaskProgressPayload {\n  taskIds: string[];\n  runningCount: number;\n  elapsedMs: number;\n}\n\nexport interface BackgroundTaskRunningPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  startedAt: Date;\n  args: Record<string, unknown>;\n}\n\nexport interface BackgroundTaskCancelledPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  completedAt: Date;\n}\n\nexport interface BackgroundTaskOutputPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  payload: Extract<AgentChunkType, { type: 'tool-output' }>;\n}\n\nexport interface BackgroundTaskSuspendedPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  args: Record<string, unknown>;\n  /** Whatever the tool passed to `suspend(data)`. */\n  suspendPayload?: unknown;\n  /** When the task suspended. */\n  suspendedAt?: Date;\n}\n\nexport interface BackgroundTaskResumedPayload {\n  taskId: string;\n  toolName: string;\n  toolCallId: string;\n  runId: string;\n  agentId: string;\n  startedAt: Date;\n  args: Record<string, unknown>;\n}\n\n// Network-specific payload interfaces\ninterface RoutingAgentStartPayload {\n  agentId: string;\n  networkId: string;\n  runId: string;\n  inputData: {\n    task: string;\n    primitiveId: string;\n    primitiveType: string;\n    result?: string;\n    iteration: number;\n    threadId?: string;\n    threadResourceId?: string;\n    isOneOff: boolean;\n    verboseIntrospection: boolean;\n  };\n}\n\ninterface RoutingAgentEndPayload {\n  task: string;\n  primitiveId: string;\n  primitiveType: string;\n  prompt: string;\n  result: string;\n  isComplete?: boolean;\n  selectionReason: string;\n  iteration: number;\n  runId: string;\n  usage: LanguageModelUsage;\n}\n\ninterface RoutingAgentTextDeltaPayload {\n  text: string;\n}\n\ninterface RoutingAgentTextStartPayload {\n  runId: string;\n}\n\ninterface AgentExecutionStartPayload {\n  agentId: string;\n  args: {\n    task: string;\n    primitiveId: string;\n    primitiveType: string;\n    prompt: string;\n    result: string;\n    isComplete?: boolean;\n    selectionReason: string;\n    iteration: number;\n  };\n  runId: string;\n}\n\ninterface AgentExecutionApprovalPayload extends ToolCallApprovalPayload {\n  agentId: string;\n  usage: LanguageModelUsage;\n  runId: string;\n  selectionReason: string;\n}\n\ninterface AgentExecutionSuspendedPayload extends ToolCallSuspendedPayload {\n  agentId: string;\n  suspendPayload: any;\n  usage: LanguageModelUsage;\n  runId: string;\n  selectionReason: string;\n}\n\ninterface AgentExecutionEndPayload {\n  task: string;\n  agentId: string;\n  result: string;\n  isComplete: boolean;\n  iteration: number;\n  usage: LanguageModelUsage;\n  runId: string;\n}\n\ninterface WorkflowExecutionStartPayload {\n  name: string;\n  workflowId: string;\n  args: {\n    task: string;\n    primitiveId: string;\n    primitiveType: string;\n    prompt: string;\n    result: string;\n    isComplete?: boolean;\n    selectionReason: string;\n    iteration: number;\n  };\n  runId: string;\n}\n\ninterface WorkflowExecutionEndPayload {\n  name: string;\n  workflowId: string;\n  task: string;\n  primitiveId: string;\n  primitiveType: string;\n  result: string;\n  isComplete: boolean;\n  iteration: number;\n  usage: LanguageModelUsage;\n  runId: string;\n}\n\ninterface WorkflowExecutionSuspendPayload extends ToolCallSuspendedPayload {\n  name: string;\n  workflowId: string;\n  suspendPayload: any;\n  usage: LanguageModelUsage;\n  runId: string;\n  selectionReason: string;\n}\n\ninterface ToolExecutionStartPayload {\n  args: Record<string, unknown> & {\n    toolName?: string;\n    toolCallId?: string;\n    args?: Record<string, unknown>; // The actual tool arguments are nested here\n    selectionReason?: string;\n    __mastraMetadata?: MastraMetadata;\n    // Other inputData fields spread here\n    [key: string]: unknown;\n  };\n  runId: string;\n}\n\ninterface ToolExecutionApprovalPayload extends ToolCallApprovalPayload {\n  selectionReason: string;\n  runId: string;\n}\n\ninterface ToolExecutionSuspendedPayload extends ToolCallSuspendedPayload {\n  selectionReason: string;\n  runId: string;\n}\n\ninterface ToolExecutionEndPayload {\n  task: string;\n  primitiveId: string;\n  primitiveType: string;\n  result: unknown;\n  isComplete: boolean;\n  iteration: number;\n  toolCallId: string;\n  toolName: string;\n}\n\ninterface NetworkStepFinishPayload {\n  task: string;\n  result: string;\n  isComplete: boolean;\n  iteration: number;\n  runId: string;\n}\n\ninterface NetworkFinishPayload<OUTPUT = undefined> {\n  task: string;\n  primitiveId: string;\n  primitiveType: string;\n  prompt: string;\n  result: string;\n  /** Structured output object when structuredOutput option is provided */\n  object?: OUTPUT;\n  isComplete?: boolean;\n  completionReason: string;\n  iteration: number;\n  threadId?: string;\n  threadResourceId?: string;\n  isOneOff: boolean;\n  usage: LanguageModelUsage;\n}\n\ninterface NetworkValidationStartPayload {\n  runId: string;\n  iteration: number;\n  checksCount: number;\n}\n\ninterface NetworkValidationEndPayload {\n  runId: string;\n  iteration: number;\n  passed: boolean;\n  results: ScorerResult[];\n  duration: number;\n  timedOut: boolean;\n  reason?: string;\n  maxIterationReached: boolean;\n  suppressFeedback: boolean;\n}\n\ninterface RoutingAgentAbortPayload {\n  primitiveType: 'routing';\n  primitiveId: string;\n}\n\ninterface AgentExecutionAbortPayload {\n  primitiveType: 'agent';\n  primitiveId: string;\n}\n\ninterface WorkflowExecutionAbortPayload {\n  primitiveType: 'workflow';\n  primitiveId: string;\n}\n\ninterface ToolExecutionAbortPayload {\n  primitiveType: 'tool';\n  primitiveId: string;\n}\n\ninterface ToolCallApprovalPayload {\n  toolCallId: string;\n  toolName: string;\n  args: Record<string, any>;\n  resumeSchema: string;\n}\n\ninterface ToolCallSuspendedPayload {\n  toolCallId: string;\n  toolName: string;\n  suspendPayload: any;\n  args: Record<string, any>;\n  resumeSchema: string;\n}\n\nexport type DataChunkType = {\n  type: `data-${string}`;\n  data: any;\n  id?: string;\n  /** When true, the chunk is streamed to the client but not persisted to storage. */\n  transient?: boolean;\n};\n\nexport type NetworkChunkType<OUTPUT = undefined> =\n  | (BaseChunkType & { type: 'routing-agent-start'; payload: RoutingAgentStartPayload })\n  | (BaseChunkType & { type: 'routing-agent-text-delta'; payload: RoutingAgentTextDeltaPayload })\n  | (BaseChunkType & { type: 'routing-agent-text-start'; payload: RoutingAgentTextStartPayload })\n  | (BaseChunkType & { type: 'routing-agent-end'; payload: RoutingAgentEndPayload })\n  | (BaseChunkType & { type: 'routing-agent-abort'; payload: RoutingAgentAbortPayload })\n  | (BaseChunkType & { type: 'agent-execution-start'; payload: AgentExecutionStartPayload })\n  | (BaseChunkType & { type: 'agent-execution-approval'; payload: AgentExecutionApprovalPayload })\n  | (BaseChunkType & { type: 'agent-execution-suspended'; payload: AgentExecutionSuspendedPayload })\n  | (BaseChunkType & { type: 'agent-execution-end'; payload: AgentExecutionEndPayload })\n  | (BaseChunkType & { type: 'agent-execution-abort'; payload: AgentExecutionAbortPayload })\n  | (BaseChunkType & { type: 'workflow-execution-start'; payload: WorkflowExecutionStartPayload })\n  | (BaseChunkType & { type: 'workflow-execution-end'; payload: WorkflowExecutionEndPayload })\n  | (BaseChunkType & { type: 'workflow-execution-suspended'; payload: WorkflowExecutionSuspendPayload })\n  | (BaseChunkType & { type: 'workflow-execution-abort'; payload: WorkflowExecutionAbortPayload })\n  | (BaseChunkType & { type: 'tool-execution-start'; payload: ToolExecutionStartPayload })\n  | (BaseChunkType & { type: 'tool-execution-end'; payload: ToolExecutionEndPayload })\n  | (BaseChunkType & { type: 'tool-execution-approval'; payload: ToolExecutionApprovalPayload })\n  | (BaseChunkType & { type: 'tool-execution-suspended'; payload: ToolExecutionSuspendedPayload })\n  | (BaseChunkType & { type: 'tool-execution-abort'; payload: ToolExecutionAbortPayload })\n  | (BaseChunkType & { type: 'network-execution-event-step-finish'; payload: NetworkStepFinishPayload })\n  | (BaseChunkType & { type: 'network-execution-event-finish'; payload: NetworkFinishPayload<OUTPUT> })\n  | (BaseChunkType & { type: 'network-validation-start'; payload: NetworkValidationStartPayload })\n  | (BaseChunkType & { type: 'network-validation-end'; payload: NetworkValidationEndPayload })\n  | (BaseChunkType & { type: `agent-execution-event-${string}`; payload: AgentChunkType })\n  | (BaseChunkType & { type: `workflow-execution-event-${string}`; payload: WorkflowStreamEvent })\n  | (BaseChunkType & { type: 'network-object'; payload: { object: Partial<OUTPUT> } })\n  | (BaseChunkType & { type: 'network-object-result'; payload: { object: OUTPUT } });\n\n// Strongly typed chunk type (currently only OUTPUT is strongly typed, tools use dynamic types)\nexport type AgentChunkType<OUTPUT = undefined> =\n  | (BaseChunkType & { type: 'response-metadata'; payload: ResponseMetadataPayload })\n  | (BaseChunkType & { type: 'text-start'; payload: TextStartPayload })\n  | (BaseChunkType & { type: 'text-delta'; payload: TextDeltaPayload })\n  | (BaseChunkType & { type: 'text-end'; payload: TextEndPayload })\n  | (BaseChunkType & { type: 'reasoning-start'; payload: ReasoningStartPayload })\n  | (BaseChunkType & { type: 'reasoning-delta'; payload: ReasoningDeltaPayload })\n  | (BaseChunkType & { type: 'reasoning-end'; payload: ReasoningEndPayload })\n  | (BaseChunkType & { type: 'reasoning-signature'; payload: ReasoningSignaturePayload })\n  | (BaseChunkType & { type: 'redacted-reasoning'; payload: RedactedReasoningPayload })\n  | (BaseChunkType & { type: 'source'; payload: SourcePayload })\n  | (BaseChunkType & { type: 'file'; payload: FilePayload })\n  | (BaseChunkType & { type: 'tool-call'; payload: ToolCallPayload })\n  | (BaseChunkType & { type: 'tool-call-approval'; payload: ToolCallApprovalPayload })\n  | (BaseChunkType & { type: 'tool-call-suspended'; payload: ToolCallSuspendedPayload })\n  | (BaseChunkType & { type: 'tool-result'; payload: ToolResultPayload })\n  | (BaseChunkType & { type: 'tool-call-input-streaming-start'; payload: ToolCallInputStreamingStartPayload })\n  | (BaseChunkType & { type: 'tool-call-delta'; payload: ToolCallDeltaPayload })\n  | (BaseChunkType & { type: 'tool-call-input-streaming-end'; payload: ToolCallInputStreamingEndPayload })\n  | (BaseChunkType & { type: 'finish'; payload: FinishPayload })\n  | (BaseChunkType & { type: 'error'; payload: ErrorPayload })\n  | (BaseChunkType & { type: 'raw'; payload: RawPayload })\n  | (BaseChunkType & { type: 'start'; payload: StartPayload })\n  | (BaseChunkType & { type: 'step-start'; payload: StepStartPayload })\n  | (BaseChunkType & { type: 'step-finish'; payload: StepFinishPayload<ToolSet, OUTPUT> })\n  | (BaseChunkType & { type: 'tool-error'; payload: ToolErrorPayload })\n  | (BaseChunkType & { type: 'abort'; payload: AbortPayload })\n  | (BaseChunkType & {\n      type: 'object';\n      object: Partial<OUTPUT>;\n    })\n  | (BaseChunkType & {\n      /**\n       * The object promise is resolved with the object from the object-result chunk\n       */\n      type: 'object-result';\n      object: OUTPUT;\n    })\n  | (BaseChunkType & { type: 'tool-output'; payload: DynamicToolOutputPayload })\n  | (BaseChunkType & { type: 'step-output'; payload: StepOutputPayload })\n  | (BaseChunkType & { type: 'watch'; payload: WatchPayload })\n  | (BaseChunkType & { type: 'tripwire'; payload: TripwirePayload })\n  | (BaseChunkType & { type: 'is-task-complete'; payload: IsTaskCompletePayload })\n  | (BaseChunkType & {\n      type: 'background-task-started';\n      payload: BackgroundTaskStartedPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-completed';\n      payload: BackgroundTaskResultPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-failed';\n      payload: BackgroundTaskFailedPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-progress';\n      payload: BackgroundTaskProgressPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-running';\n      payload: BackgroundTaskRunningPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-cancelled';\n      payload: BackgroundTaskCancelledPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-output';\n      payload: BackgroundTaskOutputPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-suspended';\n      payload: BackgroundTaskSuspendedPayload;\n    })\n  | (BaseChunkType & {\n      type: 'background-task-resumed';\n      payload: BackgroundTaskResumedPayload;\n    });\n\nexport type WorkflowStreamEvent =\n  | (BaseChunkType & {\n      type: 'workflow-start';\n      payload: {\n        workflowId: string;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-finish';\n      payload: {\n        workflowStatus: WorkflowRunStatus;\n        output: {\n          usage: {\n            inputTokens: number;\n            outputTokens: number;\n            totalTokens: number;\n          };\n        };\n        metadata: Record<string, any>;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-canceled';\n      payload: {};\n    })\n  | (BaseChunkType & {\n      type: 'workflow-paused';\n      payload: {};\n    })\n  | (BaseChunkType & {\n      type: 'workflow-step-start';\n      id: string;\n      payload: {\n        id: string;\n        stepCallId: string;\n        status: WorkflowStepStatus;\n        output?: Record<string, any>;\n        payload?: Record<string, any>;\n        resumePayload?: Record<string, any>;\n        suspendPayload?: Record<string, any>;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-step-finish';\n      payload: {\n        id: string;\n        metadata: Record<string, any>;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-step-suspended';\n      payload: {\n        id: string;\n        status: WorkflowStepStatus;\n        output?: Record<string, any>;\n        payload?: Record<string, any>;\n        resumePayload?: Record<string, any>;\n        suspendPayload?: Record<string, any>;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-step-waiting';\n      payload: {\n        id: string;\n        payload: Record<string, any>;\n        startedAt: number;\n        status: WorkflowStepStatus;\n      };\n    })\n  | (BaseChunkType & { type: 'workflow-step-output'; payload: StepOutputPayload })\n  | (BaseChunkType & {\n      type: 'workflow-step-progress';\n      payload: {\n        id: string;\n        /** Number of iterations completed so far */\n        completedCount: number;\n        /** Total number of iterations */\n        totalCount: number;\n        /** Index of the iteration that just completed */\n        currentIndex: number;\n        /** Status of the iteration that just completed */\n        iterationStatus: 'success' | 'failed' | 'suspended';\n        /** Output of the iteration that just completed (if successful) */\n        iterationOutput?: Record<string, any>;\n      };\n    })\n  | (BaseChunkType & {\n      type: 'workflow-step-result';\n      payload: {\n        id: string;\n        stepCallId: string;\n        status: WorkflowStepStatus;\n        output?: Record<string, any>;\n        payload?: Record<string, any>;\n        resumePayload?: Record<string, any>;\n        suspendPayload?: Record<string, any>;\n        /** Tripwire data when step failed due to processor rejection */\n        tripwire?: StepTripwireData;\n      };\n    });\n\n// Strongly typed chunk type (currently only OUTPUT is strongly typed, tools use dynamic types)\nexport type TypedChunkType<OUTPUT = undefined> =\n  | AgentChunkType<OUTPUT>\n  | WorkflowStreamEvent\n  | NetworkChunkType<OUTPUT>\n  | (DataChunkType & { from: never; runId: never; metadata?: BaseChunkType['metadata']; payload: never });\n\n// Default ChunkType for backward compatibility using dynamic (any) tool types\nexport type ChunkType<OUTPUT = undefined> = TypedChunkType<OUTPUT>;\nexport type StreamChunkType<OUTPUT = undefined> = ChunkType<OUTPUT> | DataChunkType;\n\nexport interface LanguageModelV2StreamResult {\n  stream: ReadableStream<LanguageModelV2StreamPart>;\n  request: LLMStepResult['request'];\n  response?: LLMStepResult['response'];\n  rawResponse: LLMStepResult['response'] | Record<string, never>;\n  warnings?: LLMStepResult['warnings'];\n}\n\nexport type OnResult = (result: Omit<LanguageModelV2StreamResult, 'stream'>) => void;\nexport type CreateStream = () => Promise<LanguageModelV2StreamResult>;\n\nexport type SourceChunk = BaseChunkType & { type: 'source'; payload: SourcePayload };\nexport type FileChunk = BaseChunkType & { type: 'file'; payload: FilePayload };\nexport type ToolCallChunk = BaseChunkType & { type: 'tool-call'; payload: ToolCallPayload };\nexport type ToolResultChunk = BaseChunkType & { type: 'tool-result'; payload: ToolResultPayload };\nexport type ReasoningChunk = BaseChunkType & { type: 'reasoning'; payload: ReasoningDeltaPayload };\n\nexport type PendingToolCall = {\n  toolCallId: string;\n  toolName: string;\n  argsText: string;\n  state: 'input-streaming' | 'input-available';\n  providerExecuted?: boolean;\n  providerMetadata?: ProviderMetadata;\n  dynamic?: boolean;\n};\n\nexport type ExecuteStreamModelManager<T> = (\n  callback: (modelConfig: ModelManagerModelConfig, isLastModel: boolean) => Promise<T>,\n) => Promise<T>;\n\nexport type ModelManagerModelConfig = {\n  model: MastraLanguageModel;\n  maxRetries: number;\n  id: string;\n  headers?: Record<string, string>;\n  modelSettings?: Omit<CallSettings, 'abortSignal' | 'maxRetries' | 'headers'>;\n  providerOptions?: SharedProviderOptions;\n};\n\n/**\n * Extended usage type that includes raw provider data.\n * Extends LanguageModelV2Usage with additional fields for V3 compatibility.\n */\nexport type LanguageModelUsage = LanguageModelV2Usage & {\n  reasoningTokens?: number;\n  cachedInputTokens?: number;\n  cacheCreationInputTokens?: number;\n  /**\n   * Raw usage data from the provider, preserved for advanced use cases.\n   * For V3 models, contains the full nested structure:\n   * { inputTokens: { total, noCache, cacheRead, cacheWrite }, outputTokens: { total, text, reasoning } }\n   */\n  raw?: unknown;\n};\n\nexport type partialModel = {\n  modelId?: string;\n  provider?: string;\n  version?: string;\n};\n\nexport type MastraOnStepFinishCallback<OUTPUT = undefined> = (\n  event: LLMStepResult<OUTPUT> & { model?: partialModel; runId?: string },\n) => Promise<void> | void;\n\nexport type MastraOnFinishCallbackArgs<OUTPUT = undefined> = LLMStepResult<OUTPUT> & {\n  error?: Error | string | { message: string; stack: string };\n  object?: OUTPUT;\n  steps: LLMStepResult<OUTPUT>[];\n  totalUsage: LanguageModelUsage;\n  model?: partialModel;\n  runId?: string;\n};\n\nexport type MastraOnFinishCallback<OUTPUT = undefined> = (\n  event: MastraOnFinishCallbackArgs<OUTPUT>,\n) => Promise<void> | void;\n\nexport type MastraModelOutputOptions<OUTPUT = undefined> = {\n  runId: string;\n  toolCallStreaming?: boolean;\n  onFinish?: MastraOnFinishCallback<OUTPUT>;\n  onStepFinish?: MastraOnStepFinishCallback<OUTPUT>;\n  includeRawChunks?: boolean;\n  structuredOutput?: StructuredOutputOptions<OUTPUT>;\n  outputProcessors?: OutputProcessorOrWorkflow[];\n  isLLMExecutionStep?: boolean;\n  returnScorerData?: boolean;\n  processorStates?: Map<string, any>;\n  requestContext?: RequestContext;\n  transportRef?: StreamTransportRef;\n} & Partial<ObservabilityContext>;\n\n/**\n * Tripwire data attached to a step when a processor triggers a tripwire.\n * When a step has tripwire data, its text is excluded from the final output.\n */\nexport interface StepTripwireData {\n  /** The tripwire reason */\n  reason: string;\n  /** Whether retry was requested */\n  retry?: boolean;\n  /** Additional metadata from the tripwire */\n  metadata?: unknown;\n  /** ID of the processor that triggered the tripwire */\n  processorId?: string;\n}\n\n/**\n * Extended StepResult that includes tripwire data.\n * This extends the AI SDK's StepResult with our custom tripwire field.\n */\nexport type MastraStepResult<Tools extends ToolSet = ToolSet> = StepResult<Tools> & {\n  /** Tripwire data if this step was rejected by a processor */\n  tripwire?: StepTripwireData;\n};\n\nexport type LLMStepResult<OUTPUT = undefined> = {\n  stepType?: 'initial' | 'tool-result';\n  toolCalls: ToolCallChunk[];\n  pendingToolCalls?: PendingToolCall[];\n  toolResults: ToolResultChunk[];\n  dynamicToolCalls: ToolCallChunk[];\n  dynamicToolResults: ToolResultChunk[];\n  staticToolCalls: ToolCallChunk[];\n  staticToolResults: ToolResultChunk[];\n  files: FileChunk[];\n  sources: SourceChunk[];\n  text: string;\n  reasoning: ReasoningChunk[];\n  content: AIV5Type.StepResult<ToolSet>['content'];\n  finishReason?: FinishReason | string;\n  usage: LanguageModelUsage;\n  warnings: LanguageModelV2CallWarning[];\n  request: { body?: unknown };\n  response: {\n    headers?: Record<string, string>;\n    messages?: StepResult<ToolSet>['response']['messages'];\n    dbMessages?: MastraDBMessage[];\n    uiMessages?: UIMessage<\n      [OUTPUT] extends [undefined]\n        ? undefined\n        : {\n            structuredOutput?: OUTPUT;\n          } & Record<string, unknown>\n    >[];\n    id?: string;\n    timestamp?: Date;\n    modelId?: string;\n    [key: string]: unknown;\n  };\n  reasoningText: string | undefined;\n  providerMetadata: ProviderMetadata | undefined;\n  /** Tripwire data if this step was rejected by a processor */\n  tripwire?: StepTripwireData;\n};\n","import type { LanguageModelV3, LanguageModelV3CallOptions } from '@ai-sdk/provider-v6';\nimport type { MastraLanguageModelV3 } from '../../shared.types';\nimport { createStreamFromGenerateResult } from '../generate-to-stream';\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV3['doStream']>>;\n\n/**\n * Remaps tool types from V2 format ('provider-defined') to V3 format ('provider').\n * Tools may arrive in V2 format when prepared upstream (e.g., by ToolBuilder or\n * prepareToolsAndToolChoice) without knowing the final model version. This ensures\n * provider tools (like openai.tools.webSearch()) work correctly with V3 models.\n */\nfunction remapToolsToV3(options: LanguageModelV3CallOptions): LanguageModelV3CallOptions {\n  if (!options.tools?.length) {\n    return options;\n  }\n\n  const remappedTools = options.tools.map((tool: Record<string, unknown>) => {\n    if (tool.type === 'provider-defined') {\n      return { ...tool, type: 'provider' as const };\n    }\n    return tool;\n  });\n\n  return {\n    ...options,\n    tools: remappedTools as typeof options.tools,\n  };\n}\n\n/**\n * Wrapper class for AI SDK V6 (LanguageModelV3) that converts doGenerate to return\n * a stream format for consistency with Mastra's streaming architecture.\n */\nexport class AISDKV6LanguageModel implements MastraLanguageModelV3 {\n  /**\n   * The language model must specify which language model interface version it implements.\n   */\n  readonly specificationVersion: 'v3' = 'v3';\n  /**\n   * Name of the provider for logging purposes.\n   */\n  readonly provider: string;\n  /**\n   * Provider-specific model ID for logging purposes.\n   */\n  readonly modelId: string;\n  /**\n   * Supported URL patterns by media type for the provider.\n   *\n   * The keys are media type patterns or full media types (e.g. `*\\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).\n   * and the values are arrays of regular expressions that match the URL paths.\n   * The matching should be against lower-case URLs.\n   * Matched URLs are supported natively by the model and are not downloaded.\n   * @returns A map of supported URL patterns by media type (as a promise or a plain object).\n   */\n  supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;\n\n  #model: LanguageModelV3;\n\n  constructor(config: LanguageModelV3) {\n    this.#model = config;\n    this.provider = this.#model.provider;\n    this.modelId = this.#model.modelId;\n    this.supportedUrls = this.#model.supportedUrls;\n  }\n\n  async doGenerate(options: LanguageModelV3CallOptions) {\n    const result = await this.#model.doGenerate(remapToolsToV3(options));\n\n    return {\n      ...result,\n      request: result.request!,\n      response: result.response as unknown as StreamResult['response'],\n      stream: createStreamFromGenerateResult(result),\n    };\n  }\n\n  async doStream(options: LanguageModelV3CallOptions) {\n    return await this.#model.doStream(remapToolsToV3(options));\n  }\n\n  /**\n   * Custom serialization for tracing/observability spans.\n   * `#model` is already a true JS private field and not enumerable, so\n   * the wrapped provider SDK client can't leak. This method makes the\n   * safe shape explicit and avoids walking `supportedUrls` (a\n   * PromiseLike / regex map that isn't useful in spans).\n   */\n  serializeForSpan(): { specificationVersion: 'v3'; modelId: string; provider: string } {\n    return {\n      specificationVersion: this.specificationVersion,\n      modelId: this.modelId,\n      provider: this.provider,\n    };\n  }\n}\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const openaiErrorDataSchema = z.object({\n  error: z.object({\n    message: z.string(),\n\n    // The additional information below is handled loosely to support\n    // OpenAI-compatible providers that have slightly different error\n    // responses:\n    type: z.string().nullish(),\n    param: z.any().nullish(),\n    code: z.union([z.string(), z.number()]).nullish(),\n  }),\n});\n\nexport type OpenAIErrorData = z.infer<typeof openaiErrorDataSchema>;\n\nexport const openaiFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: openaiErrorDataSchema,\n  errorToMessage: data => data.error.message,\n});\n","export type OpenAILanguageModelCapabilities = {\n  isReasoningModel: boolean;\n  systemMessageMode: 'remove' | 'system' | 'developer';\n  supportsFlexProcessing: boolean;\n  supportsPriorityProcessing: boolean;\n\n  /**\n   * Allow temperature, topP, logProbs when reasoningEffort is none.\n   */\n  supportsNonReasoningParameters: boolean;\n};\n\nexport function getOpenAILanguageModelCapabilities(\n  modelId: string,\n): OpenAILanguageModelCapabilities {\n  const supportsFlexProcessing =\n    modelId.startsWith('o3') ||\n    modelId.startsWith('o4-mini') ||\n    (modelId.startsWith('gpt-5') && !modelId.startsWith('gpt-5-chat'));\n\n  const supportsPriorityProcessing =\n    modelId.startsWith('gpt-4') ||\n    (modelId.startsWith('gpt-5') &&\n      !modelId.startsWith('gpt-5-nano') &&\n      !modelId.startsWith('gpt-5-chat') &&\n      !modelId.startsWith('gpt-5.4-nano')) ||\n    modelId.startsWith('o3') ||\n    modelId.startsWith('o4-mini');\n\n  const isReasoningModel = !(\n    modelId.startsWith('gpt-3') ||\n    modelId.startsWith('gpt-4') ||\n    modelId.startsWith('chatgpt-4o') ||\n    modelId.startsWith('gpt-5-chat')\n  );\n\n  // https://platform.openai.com/docs/guides/latest-model#gpt-5-1-parameter-compatibility\n  // GPT-5.1, GPT-5.2, and GPT-5.4 support temperature, topP, logProbs when reasoningEffort is none\n  const supportsNonReasoningParameters =\n    modelId.startsWith('gpt-5.1') ||\n    modelId.startsWith('gpt-5.2') ||\n    modelId.startsWith('gpt-5.3') ||\n    modelId.startsWith('gpt-5.4');\n\n  const systemMessageMode = isReasoningModel ? 'developer' : 'system';\n\n  return {\n    supportsFlexProcessing,\n    supportsPriorityProcessing,\n    isReasoningModel,\n    systemMessageMode,\n    supportsNonReasoningParameters,\n  };\n}\n","import {\n  type LanguageModelV2CallWarning,\n  type LanguageModelV2Prompt,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport type { OpenAIChatPrompt } from './openai-chat-prompt';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\n\nexport function convertToOpenAIChatMessages({\n  prompt,\n  systemMessageMode = 'system',\n}: {\n  prompt: LanguageModelV2Prompt;\n  systemMessageMode?: 'system' | 'developer' | 'remove';\n}): {\n  messages: OpenAIChatPrompt;\n  warnings: Array<LanguageModelV2CallWarning>;\n} {\n  const messages: OpenAIChatPrompt = [];\n  const warnings: Array<LanguageModelV2CallWarning> = [];\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        switch (systemMessageMode) {\n          case 'system': {\n            messages.push({ role: 'system', content });\n            break;\n          }\n          case 'developer': {\n            messages.push({ role: 'developer', content });\n            break;\n          }\n          case 'remove': {\n            warnings.push({\n              type: 'other',\n              message: 'system messages are removed for this model',\n            });\n            break;\n          }\n          default: {\n            const _exhaustiveCheck: never = systemMessageMode;\n            throw new Error(\n              `Unsupported system message mode: ${_exhaustiveCheck}`,\n            );\n          }\n        }\n        break;\n      }\n\n      case 'user': {\n        if (content.length === 1 && content[0].type === 'text') {\n          messages.push({ role: 'user', content: content[0].text });\n          break;\n        }\n\n        messages.push({\n          role: 'user',\n          content: content.map((part, index) => {\n            switch (part.type) {\n              case 'text': {\n                return { type: 'text', text: part.text };\n              }\n              case 'file': {\n                if (part.mediaType.startsWith('image/')) {\n                  const mediaType =\n                    part.mediaType === 'image/*'\n                      ? 'image/jpeg'\n                      : part.mediaType;\n\n                  return {\n                    type: 'image_url',\n                    image_url: {\n                      url:\n                        part.data instanceof URL\n                          ? part.data.toString()\n                          : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n\n                      // OpenAI specific extension: image detail\n                      detail: part.providerOptions?.openai?.imageDetail,\n                    },\n                  };\n                } else if (part.mediaType.startsWith('audio/')) {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: 'audio file parts with URLs',\n                    });\n                  }\n\n                  switch (part.mediaType) {\n                    case 'audio/wav': {\n                      return {\n                        type: 'input_audio',\n                        input_audio: {\n                          data: convertToBase64(part.data),\n                          format: 'wav',\n                        },\n                      };\n                    }\n                    case 'audio/mp3':\n                    case 'audio/mpeg': {\n                      return {\n                        type: 'input_audio',\n                        input_audio: {\n                          data: convertToBase64(part.data),\n                          format: 'mp3',\n                        },\n                      };\n                    }\n\n                    default: {\n                      throw new UnsupportedFunctionalityError({\n                        functionality: `audio content parts with media type ${part.mediaType}`,\n                      });\n                    }\n                  }\n                } else if (part.mediaType === 'application/pdf') {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: 'PDF file parts with URLs',\n                    });\n                  }\n\n                  return {\n                    type: 'file',\n                    file:\n                      typeof part.data === 'string' &&\n                      part.data.startsWith('file-')\n                        ? { file_id: part.data }\n                        : {\n                            filename: part.filename ?? `part-${index}.pdf`,\n                            file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`,\n                          },\n                  };\n                } else {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: `file part media type ${part.mediaType}`,\n                  });\n                }\n              }\n            }\n          }),\n        });\n\n        break;\n      }\n\n      case 'assistant': {\n        let text = '';\n        const toolCalls: Array<{\n          id: string;\n          type: 'function';\n          function: { name: string; arguments: string };\n        }> = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              text += part.text;\n              break;\n            }\n            case 'tool-call': {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: 'function',\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n          }\n        }\n\n        messages.push({\n          role: 'assistant',\n          content: text,\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n        });\n\n        break;\n      }\n\n      case 'tool': {\n        for (const toolResponse of content) {\n          const output = toolResponse.output;\n\n          let contentValue: string;\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              contentValue = output.value;\n              break;\n            case 'content':\n            case 'json':\n            case 'error-json':\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n\n          messages.push({\n            role: 'tool',\n            tool_call_id: toolResponse.toolCallId,\n            content: contentValue,\n          });\n        }\n        break;\n      }\n\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return { messages, warnings };\n}\n","export function getResponseMetadata({\n  id,\n  model,\n  created,\n}: {\n  id?: string | undefined | null;\n  created?: number | undefined | null;\n  model?: string | undefined | null;\n}) {\n  return {\n    id: id ?? undefined,\n    modelId: model ?? undefined,\n    timestamp: created ? new Date(created * 1000) : undefined,\n  };\n}\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV2FinishReason {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n      return 'length';\n    case 'content_filter':\n      return 'content-filter';\n    case 'function_call':\n    case 'tool_calls':\n      return 'tool-calls';\n    default:\n      return 'unknown';\n  }\n}\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { openaiErrorDataSchema } from '../openai-error';\n\nexport interface OpenAIChatFunctionTool {\n  type: 'function';\n  function: {\n    name: string;\n    description: string | undefined;\n    parameters: JSONSchema7;\n    strict?: boolean;\n  };\n}\n\nexport type OpenAIChatToolChoice =\n  | 'auto'\n  | 'none'\n  | 'required'\n  | { type: 'function'; function: { name: string } };\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiChatResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      id: z.string().nullish(),\n      created: z.number().nullish(),\n      model: z.string().nullish(),\n      choices: z.array(\n        z.object({\n          message: z.object({\n            role: z.literal('assistant').nullish(),\n            content: z.string().nullish(),\n            tool_calls: z\n              .array(\n                z.object({\n                  id: z.string().nullish(),\n                  type: z.literal('function'),\n                  function: z.object({\n                    name: z.string(),\n                    arguments: z.string(),\n                  }),\n                }),\n              )\n              .nullish(),\n            annotations: z\n              .array(\n                z.object({\n                  type: z.literal('url_citation'),\n                  url_citation: z.object({\n                    start_index: z.number(),\n                    end_index: z.number(),\n                    url: z.string(),\n                    title: z.string(),\n                  }),\n                }),\n              )\n              .nullish(),\n          }),\n          index: z.number(),\n          logprobs: z\n            .object({\n              content: z\n                .array(\n                  z.object({\n                    token: z.string(),\n                    logprob: z.number(),\n                    top_logprobs: z.array(\n                      z.object({\n                        token: z.string(),\n                        logprob: z.number(),\n                      }),\n                    ),\n                  }),\n                )\n                .nullish(),\n            })\n            .nullish(),\n          finish_reason: z.string().nullish(),\n        }),\n      ),\n      usage: z\n        .object({\n          prompt_tokens: z.number().nullish(),\n          completion_tokens: z.number().nullish(),\n          total_tokens: z.number().nullish(),\n          prompt_tokens_details: z\n            .object({\n              cached_tokens: z.number().nullish(),\n            })\n            .nullish(),\n          completion_tokens_details: z\n            .object({\n              reasoning_tokens: z.number().nullish(),\n              accepted_prediction_tokens: z.number().nullish(),\n              rejected_prediction_tokens: z.number().nullish(),\n            })\n            .nullish(),\n        })\n        .nullish(),\n    }),\n  ),\n);\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiChatChunkSchema = lazyValidator(() =>\n  zodSchema(\n    z.union([\n      z.object({\n        id: z.string().nullish(),\n        created: z.number().nullish(),\n        model: z.string().nullish(),\n        choices: z.array(\n          z.object({\n            delta: z\n              .object({\n                role: z.enum(['assistant']).nullish(),\n                content: z.string().nullish(),\n                tool_calls: z\n                  .array(\n                    z.object({\n                      index: z.number(),\n                      id: z.string().nullish(),\n                      type: z.literal('function').nullish(),\n                      function: z.object({\n                        name: z.string().nullish(),\n                        arguments: z.string().nullish(),\n                      }),\n                    }),\n                  )\n                  .nullish(),\n                annotations: z\n                  .array(\n                    z.object({\n                      type: z.literal('url_citation'),\n                      url_citation: z.object({\n                        start_index: z.number(),\n                        end_index: z.number(),\n                        url: z.string(),\n                        title: z.string(),\n                      }),\n                    }),\n                  )\n                  .nullish(),\n              })\n              .nullish(),\n            logprobs: z\n              .object({\n                content: z\n                  .array(\n                    z.object({\n                      token: z.string(),\n                      logprob: z.number(),\n                      top_logprobs: z.array(\n                        z.object({\n                          token: z.string(),\n                          logprob: z.number(),\n                        }),\n                      ),\n                    }),\n                  )\n                  .nullish(),\n              })\n              .nullish(),\n            finish_reason: z.string().nullish(),\n            index: z.number(),\n          }),\n        ),\n        usage: z\n          .object({\n            prompt_tokens: z.number().nullish(),\n            completion_tokens: z.number().nullish(),\n            total_tokens: z.number().nullish(),\n            prompt_tokens_details: z\n              .object({\n                cached_tokens: z.number().nullish(),\n              })\n              .nullish(),\n            completion_tokens_details: z\n              .object({\n                reasoning_tokens: z.number().nullish(),\n                accepted_prediction_tokens: z.number().nullish(),\n                rejected_prediction_tokens: z.number().nullish(),\n              })\n              .nullish(),\n          })\n          .nullish(),\n      }),\n      openaiErrorDataSchema,\n    ]),\n  ),\n);\n\nexport type OpenAIChatResponse = InferValidator<\n  typeof openaiChatResponseSchema\n>;\n\nexport type OpenAIChatChunk = InferValidator<typeof openaiChatChunkSchema>;\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://platform.openai.com/docs/models\nexport type OpenAIChatModelId =\n  | 'o1'\n  | 'o1-2024-12-17'\n  | 'o3-mini'\n  | 'o3-mini-2025-01-31'\n  | 'o3'\n  | 'o3-2025-04-16'\n  | 'gpt-4.1'\n  | 'gpt-4.1-2025-04-14'\n  | 'gpt-4.1-mini'\n  | 'gpt-4.1-mini-2025-04-14'\n  | 'gpt-4.1-nano'\n  | 'gpt-4.1-nano-2025-04-14'\n  | 'gpt-4o'\n  | 'gpt-4o-2024-05-13'\n  | 'gpt-4o-2024-08-06'\n  | 'gpt-4o-2024-11-20'\n  | 'gpt-4o-mini'\n  | 'gpt-4o-mini-2024-07-18'\n  | 'gpt-4-turbo'\n  | 'gpt-4-turbo-2024-04-09'\n  | 'gpt-4'\n  | 'gpt-4-0613'\n  | 'gpt-4.5-preview'\n  | 'gpt-4.5-preview-2025-02-27'\n  | 'gpt-3.5-turbo-0125'\n  | 'gpt-3.5-turbo'\n  | 'gpt-3.5-turbo-1106'\n  | 'chatgpt-4o-latest'\n  | 'gpt-5'\n  | 'gpt-5-2025-08-07'\n  | 'gpt-5-mini'\n  | 'gpt-5-mini-2025-08-07'\n  | 'gpt-5-nano'\n  | 'gpt-5-nano-2025-08-07'\n  | 'gpt-5-chat-latest'\n  | 'gpt-5.1'\n  | 'gpt-5.1-chat-latest'\n  | 'gpt-5.2'\n  | 'gpt-5.2-chat-latest'\n  | 'gpt-5.2-pro'\n  | 'gpt-5.2-pro-2025-12-11'\n  | 'gpt-5.3-chat-latest'\n  | 'gpt-5.4'\n  | 'gpt-5.4-2026-03-05'\n  | 'gpt-5.4-mini'\n  | 'gpt-5.4-mini-2026-03-17'\n  | 'gpt-5.4-nano'\n  | 'gpt-5.4-nano-2026-03-17'\n  | 'gpt-5.4-pro'\n  | 'gpt-5.4-pro-2026-03-05'\n  | (string & {});\n\nexport const openaiChatLanguageModelOptions = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      /**\n       * Modify the likelihood of specified tokens appearing in the completion.\n       *\n       * Accepts a JSON object that maps tokens (specified by their token ID in\n       * the GPT tokenizer) to an associated bias value from -100 to 100.\n       */\n      logitBias: z.record(z.coerce.number<string>(), z.number()).optional(),\n\n      /**\n       * Return the log probabilities of the tokens.\n       *\n       * Setting to true will return the log probabilities of the tokens that\n       * were generated.\n       *\n       * Setting to a number will return the log probabilities of the top n\n       * tokens that were generated.\n       */\n      logprobs: z.union([z.boolean(), z.number()]).optional(),\n\n      /**\n       * Whether to enable parallel function calling during tool use. Default to true.\n       */\n      parallelToolCalls: z.boolean().optional(),\n\n      /**\n       * A unique identifier representing your end-user, which can help OpenAI to\n       * monitor and detect abuse.\n       */\n      user: z.string().optional(),\n\n      /**\n       * Reasoning effort for reasoning models. Defaults to `medium`.\n       */\n      reasoningEffort: z\n        .enum(['none', 'minimal', 'low', 'medium', 'high', 'xhigh'])\n        .optional(),\n\n      /**\n       * Maximum number of completion tokens to generate. Useful for reasoning models.\n       */\n      maxCompletionTokens: z.number().optional(),\n\n      /**\n       * Whether to enable persistence in responses API.\n       */\n      store: z.boolean().optional(),\n\n      /**\n       * Metadata to associate with the request.\n       */\n      metadata: z.record(z.string().max(64), z.string().max(512)).optional(),\n\n      /**\n       * Parameters for prediction mode.\n       */\n      prediction: z.record(z.string(), z.any()).optional(),\n\n      /**\n       * Whether to use structured outputs.\n       *\n       * @default true\n       */\n      structuredOutputs: z.boolean().optional(),\n\n      /**\n       * Service tier for the request.\n       * - 'auto': Default service tier. The request will be processed with the service tier configured in the\n       *           Project settings. Unless otherwise configured, the Project will use 'default'.\n       * - 'flex': 50% cheaper processing at the cost of increased latency. Only available for o3 and o4-mini models.\n       * - 'priority': Higher-speed processing with predictably low latency at premium cost. Available for Enterprise customers.\n       * - 'default': The request will be processed with the standard pricing and performance for the selected model.\n       *\n       * @default 'auto'\n       */\n      serviceTier: z.enum(['auto', 'flex', 'priority', 'default']).optional(),\n\n      /**\n       * Whether to use strict JSON schema validation.\n       *\n       * @default false\n       */\n      strictJsonSchema: z.boolean().optional(),\n\n      /**\n       * Controls the verbosity of the model's responses.\n       * Lower values will result in more concise responses, while higher values will result in more verbose responses.\n       */\n      textVerbosity: z.enum(['low', 'medium', 'high']).optional(),\n\n      /**\n       * A cache key for prompt caching. Allows manual control over prompt caching behavior.\n       * Useful for improving cache hit rates and working around automatic caching issues.\n       */\n      promptCacheKey: z.string().optional(),\n\n      /**\n       * The retention policy for the prompt cache.\n       * - 'in_memory': Default. Standard prompt caching behavior.\n       * - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.\n       *          Currently only available for 5.1 series models.\n       *\n       * @default 'in_memory'\n       */\n      promptCacheRetention: z.enum(['in_memory', '24h']).optional(),\n\n      /**\n       * A stable identifier used to help detect users of your application\n       * that may be violating OpenAI's usage policies. The IDs should be a\n       * string that uniquely identifies each user. We recommend hashing their\n       * username or email address, in order to avoid sending us any identifying\n       * information.\n       */\n      safetyIdentifier: z.string().optional(),\n    }),\n  ),\n);\n\nexport type OpenAIChatLanguageModelOptions = InferValidator<\n  typeof openaiChatLanguageModelOptions\n>;\n","import {\n  type LanguageModelV2CallOptions,\n  type LanguageModelV2CallWarning,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport type {\n  OpenAIChatToolChoice,\n  OpenAIChatFunctionTool,\n} from './openai-chat-api';\n\nexport function prepareChatTools({\n  tools,\n  toolChoice,\n  structuredOutputs,\n  strictJsonSchema,\n}: {\n  tools: LanguageModelV2CallOptions['tools'];\n  toolChoice?: LanguageModelV2CallOptions['toolChoice'];\n  structuredOutputs: boolean;\n  strictJsonSchema: boolean;\n}): {\n  tools?: OpenAIChatFunctionTool[];\n  toolChoice?: OpenAIChatToolChoice;\n  toolWarnings: Array<LanguageModelV2CallWarning>;\n} {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: LanguageModelV2CallWarning[] = [];\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  const openaiTools: OpenAIChatFunctionTool[] = [];\n\n  for (const tool of tools) {\n    switch (tool.type) {\n      case 'function':\n        openaiTools.push({\n          type: 'function',\n          function: {\n            name: tool.name,\n            description: tool.description,\n            parameters: tool.inputSchema,\n            strict: structuredOutputs ? strictJsonSchema : undefined,\n          },\n        });\n        break;\n      default:\n        toolWarnings.push({ type: 'unsupported-tool', tool });\n        break;\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: openaiTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n    case 'required':\n      return { tools: openaiTools, toolChoice: type, toolWarnings };\n    case 'tool':\n      return {\n        tools: openaiTools,\n        toolChoice: {\n          type: 'function',\n          function: {\n            name: toolChoice.toolName,\n          },\n        },\n        toolWarnings,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import {\n  type LanguageModelV2,\n  type LanguageModelV2CallOptions,\n  type LanguageModelV2CallWarning,\n  type LanguageModelV2Content,\n  type LanguageModelV2FinishReason,\n  type LanguageModelV2StreamPart,\n  type LanguageModelV2Usage,\n  type SharedV2ProviderMetadata,\n  InvalidResponseDataError,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  type ParseResult,\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  isParsableJson,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { getOpenAILanguageModelCapabilities } from '../openai-language-model-capabilities';\nimport { convertToOpenAIChatMessages } from './convert-to-openai-chat-messages';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapOpenAIFinishReason } from './map-openai-finish-reason';\nimport {\n  type OpenAIChatChunk,\n  openaiChatChunkSchema,\n  openaiChatResponseSchema,\n} from './openai-chat-api';\nimport {\n  type OpenAIChatModelId,\n  openaiChatLanguageModelOptions,\n} from './openai-chat-options';\nimport { prepareChatTools } from './openai-chat-prepare-tools';\n\ntype OpenAIChatConfig = {\n  provider: string;\n  headers: () => Record<string, string | undefined>;\n  url: (options: { modelId: string; path: string }) => string;\n  fetch?: FetchFunction;\n};\n\nexport class OpenAIChatLanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  readonly modelId: OpenAIChatModelId;\n\n  readonly supportedUrls = {\n    'image/*': [/^https?:\\/\\/.*$/],\n  };\n\n  private readonly config: OpenAIChatConfig;\n\n  constructor(modelId: OpenAIChatModelId, config: OpenAIChatConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions,\n  }: LanguageModelV2CallOptions) {\n    const warnings: LanguageModelV2CallWarning[] = [];\n\n    // Parse provider options\n    const openaiOptions =\n      (await parseProviderOptions({\n        provider: 'openai',\n        providerOptions,\n        schema: openaiChatLanguageModelOptions,\n      })) ?? {};\n\n    const structuredOutputs = openaiOptions.structuredOutputs ?? true;\n    const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n    if (topK != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'topK',\n      });\n    }\n\n    if (\n      responseFormat?.type === 'json' &&\n      responseFormat.schema != null &&\n      !structuredOutputs\n    ) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'responseFormat',\n        details:\n          'JSON response format schema is only supported with structuredOutputs',\n      });\n    }\n\n    const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(\n      {\n        prompt,\n        systemMessageMode: modelCapabilities.systemMessageMode,\n      },\n    );\n\n    warnings.push(...messageWarnings);\n\n    const strictJsonSchema = openaiOptions.strictJsonSchema ?? false;\n\n    const baseArgs = {\n      // model id:\n      model: this.modelId,\n\n      // model specific settings:\n      logit_bias: openaiOptions.logitBias,\n      logprobs:\n        openaiOptions.logprobs === true ||\n        typeof openaiOptions.logprobs === 'number'\n          ? true\n          : undefined,\n      top_logprobs:\n        typeof openaiOptions.logprobs === 'number'\n          ? openaiOptions.logprobs\n          : typeof openaiOptions.logprobs === 'boolean'\n            ? openaiOptions.logprobs\n              ? 0\n              : undefined\n            : undefined,\n      user: openaiOptions.user,\n      parallel_tool_calls: openaiOptions.parallelToolCalls,\n\n      // standardized settings:\n      max_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      frequency_penalty: frequencyPenalty,\n      presence_penalty: presencePenalty,\n      response_format:\n        responseFormat?.type === 'json'\n          ? structuredOutputs && responseFormat.schema != null\n            ? {\n                type: 'json_schema',\n                json_schema: {\n                  schema: responseFormat.schema,\n                  strict: strictJsonSchema,\n                  name: responseFormat.name ?? 'response',\n                  description: responseFormat.description,\n                },\n              }\n            : { type: 'json_object' }\n          : undefined,\n      stop: stopSequences,\n      seed,\n      verbosity: openaiOptions.textVerbosity,\n\n      // openai specific settings:\n      // TODO AI SDK 6: remove, we auto-map maxOutputTokens now\n      max_completion_tokens: openaiOptions.maxCompletionTokens,\n      store: openaiOptions.store,\n      metadata: openaiOptions.metadata,\n      prediction: openaiOptions.prediction,\n      reasoning_effort: openaiOptions.reasoningEffort,\n      service_tier: openaiOptions.serviceTier,\n      prompt_cache_key: openaiOptions.promptCacheKey,\n      prompt_cache_retention: openaiOptions.promptCacheRetention,\n      safety_identifier: openaiOptions.safetyIdentifier,\n\n      // messages:\n      messages,\n    };\n\n    // remove unsupported settings for reasoning models\n    // see https://platform.openai.com/docs/guides/reasoning#limitations\n    if (modelCapabilities.isReasoningModel) {\n      // when reasoning effort is none, gpt-5.1 models allow temperature, topP, logprobs\n      //  https://platform.openai.com/docs/guides/latest-model#gpt-5-1-parameter-compatibility\n      if (\n        openaiOptions.reasoningEffort !== 'none' ||\n        !modelCapabilities.supportsNonReasoningParameters\n      ) {\n        if (baseArgs.temperature != null) {\n          baseArgs.temperature = undefined;\n          warnings.push({\n            type: 'unsupported-setting',\n            setting: 'temperature',\n            details: 'temperature is not supported for reasoning models',\n          });\n        }\n        if (baseArgs.top_p != null) {\n          baseArgs.top_p = undefined;\n          warnings.push({\n            type: 'unsupported-setting',\n            setting: 'topP',\n            details: 'topP is not supported for reasoning models',\n          });\n        }\n        if (baseArgs.logprobs != null) {\n          baseArgs.logprobs = undefined;\n          warnings.push({\n            type: 'other',\n            message: 'logprobs is not supported for reasoning models',\n          });\n        }\n      }\n\n      if (baseArgs.frequency_penalty != null) {\n        baseArgs.frequency_penalty = undefined;\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'frequencyPenalty',\n          details: 'frequencyPenalty is not supported for reasoning models',\n        });\n      }\n      if (baseArgs.presence_penalty != null) {\n        baseArgs.presence_penalty = undefined;\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'presencePenalty',\n          details: 'presencePenalty is not supported for reasoning models',\n        });\n      }\n      if (baseArgs.logit_bias != null) {\n        baseArgs.logit_bias = undefined;\n        warnings.push({\n          type: 'other',\n          message: 'logitBias is not supported for reasoning models',\n        });\n      }\n\n      if (baseArgs.top_logprobs != null) {\n        baseArgs.top_logprobs = undefined;\n        warnings.push({\n          type: 'other',\n          message: 'topLogprobs is not supported for reasoning models',\n        });\n      }\n\n      // reasoning models use max_completion_tokens instead of max_tokens:\n      if (baseArgs.max_tokens != null) {\n        if (baseArgs.max_completion_tokens == null) {\n          baseArgs.max_completion_tokens = baseArgs.max_tokens;\n        }\n        baseArgs.max_tokens = undefined;\n      }\n    } else if (\n      this.modelId.startsWith('gpt-4o-search-preview') ||\n      this.modelId.startsWith('gpt-4o-mini-search-preview')\n    ) {\n      if (baseArgs.temperature != null) {\n        baseArgs.temperature = undefined;\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'temperature',\n          details:\n            'temperature is not supported for the search preview models and has been removed.',\n        });\n      }\n    }\n\n    // Validate flex processing support\n    if (\n      openaiOptions.serviceTier === 'flex' &&\n      !modelCapabilities.supportsFlexProcessing\n    ) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'serviceTier',\n        details:\n          'flex processing is only available for o3, o4-mini, and gpt-5 models',\n      });\n      baseArgs.service_tier = undefined;\n    }\n\n    // Validate priority processing support\n    if (\n      openaiOptions.serviceTier === 'priority' &&\n      !modelCapabilities.supportsPriorityProcessing\n    ) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'serviceTier',\n        details:\n          'priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported',\n      });\n      baseArgs.service_tier = undefined;\n    }\n\n    const {\n      tools: openaiTools,\n      toolChoice: openaiToolChoice,\n      toolWarnings,\n    } = prepareChatTools({\n      tools,\n      toolChoice,\n      structuredOutputs,\n      strictJsonSchema,\n    });\n\n    return {\n      args: {\n        ...baseArgs,\n        tools: openaiTools,\n        tool_choice: openaiToolChoice,\n      },\n      warnings: [...warnings, ...toolWarnings],\n    };\n  }\n\n  async doGenerate(\n    options: Parameters<LanguageModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n    const { args: body, warnings } = await this.getArgs(options);\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiChatResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = response.choices[0];\n    const content: Array<LanguageModelV2Content> = [];\n\n    // text content:\n    const text = choice.message.content;\n    if (text != null && text.length > 0) {\n      content.push({ type: 'text', text });\n    }\n\n    // tool calls:\n    for (const toolCall of choice.message.tool_calls ?? []) {\n      content.push({\n        type: 'tool-call' as const,\n        toolCallId: toolCall.id ?? generateId(),\n        toolName: toolCall.function.name,\n        input: toolCall.function.arguments!,\n      });\n    }\n\n    // annotations/citations:\n    for (const annotation of choice.message.annotations ?? []) {\n      content.push({\n        type: 'source',\n        sourceType: 'url',\n        id: generateId(),\n        url: annotation.url_citation.url,\n        title: annotation.url_citation.title,\n      });\n    }\n\n    // provider metadata:\n    const completionTokenDetails = response.usage?.completion_tokens_details;\n    const promptTokenDetails = response.usage?.prompt_tokens_details;\n    const providerMetadata: SharedV2ProviderMetadata = { openai: {} };\n    if (completionTokenDetails?.accepted_prediction_tokens != null) {\n      providerMetadata.openai.acceptedPredictionTokens =\n        completionTokenDetails?.accepted_prediction_tokens;\n    }\n    if (completionTokenDetails?.rejected_prediction_tokens != null) {\n      providerMetadata.openai.rejectedPredictionTokens =\n        completionTokenDetails?.rejected_prediction_tokens;\n    }\n    if (choice.logprobs?.content != null) {\n      providerMetadata.openai.logprobs = choice.logprobs.content;\n    }\n\n    return {\n      content,\n      finishReason: mapOpenAIFinishReason(choice.finish_reason),\n      usage: {\n        inputTokens: response.usage?.prompt_tokens ?? undefined,\n        outputTokens: response.usage?.completion_tokens ?? undefined,\n        totalTokens: response.usage?.total_tokens ?? undefined,\n        reasoningTokens: completionTokenDetails?.reasoning_tokens ?? undefined,\n        cachedInputTokens: promptTokenDetails?.cached_tokens ?? undefined,\n      },\n      request: { body },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      warnings,\n      providerMetadata,\n    };\n  }\n\n  async doStream(\n    options: Parameters<LanguageModelV2['doStream']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n    const { args, warnings } = await this.getArgs(options);\n\n    const body = {\n      ...args,\n      stream: true,\n      stream_options: {\n        include_usage: true,\n      },\n    };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        openaiChatChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const toolCalls: Array<{\n      id: string;\n      type: 'function';\n      function: {\n        name: string;\n        arguments: string;\n      };\n      hasFinished: boolean;\n    }> = [];\n\n    let finishReason: LanguageModelV2FinishReason = 'unknown';\n    const usage: LanguageModelV2Usage = {\n      inputTokens: undefined,\n      outputTokens: undefined,\n      totalTokens: undefined,\n    };\n    let metadataExtracted = false;\n    let isActiveText = false;\n\n    const providerMetadata: SharedV2ProviderMetadata = { openai: {} };\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<OpenAIChatChunk>,\n          LanguageModelV2StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            // handle error chunks:\n            if ('error' in value) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: value.error });\n              return;\n            }\n\n            // extract and emit response metadata once. Usually it comes in the first chunk.\n            // Azure may prepend a chunk with a `\"prompt_filter_results\"` key which does not contain other metadata,\n            // https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/content-filter-annotations?tabs=powershell\n            if (!metadataExtracted) {\n              const metadata = getResponseMetadata(value);\n              if (Object.values(metadata).some(Boolean)) {\n                metadataExtracted = true;\n                controller.enqueue({\n                  type: 'response-metadata',\n                  ...getResponseMetadata(value),\n                });\n              }\n            }\n\n            if (value.usage != null) {\n              usage.inputTokens = value.usage.prompt_tokens ?? undefined;\n              usage.outputTokens = value.usage.completion_tokens ?? undefined;\n              usage.totalTokens = value.usage.total_tokens ?? undefined;\n              usage.reasoningTokens =\n                value.usage.completion_tokens_details?.reasoning_tokens ??\n                undefined;\n              usage.cachedInputTokens =\n                value.usage.prompt_tokens_details?.cached_tokens ?? undefined;\n\n              if (\n                value.usage.completion_tokens_details\n                  ?.accepted_prediction_tokens != null\n              ) {\n                providerMetadata.openai.acceptedPredictionTokens =\n                  value.usage.completion_tokens_details?.accepted_prediction_tokens;\n              }\n              if (\n                value.usage.completion_tokens_details\n                  ?.rejected_prediction_tokens != null\n              ) {\n                providerMetadata.openai.rejectedPredictionTokens =\n                  value.usage.completion_tokens_details?.rejected_prediction_tokens;\n              }\n            }\n\n            const choice = value.choices[0];\n\n            if (choice?.finish_reason != null) {\n              finishReason = mapOpenAIFinishReason(choice.finish_reason);\n            }\n\n            if (choice?.logprobs?.content != null) {\n              providerMetadata.openai.logprobs = choice.logprobs.content;\n            }\n\n            if (choice?.delta == null) {\n              return;\n            }\n\n            const delta = choice.delta;\n\n            if (delta.content != null) {\n              if (!isActiveText) {\n                controller.enqueue({ type: 'text-start', id: '0' });\n                isActiveText = true;\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: '0',\n                delta: delta.content,\n              });\n            }\n\n            if (delta.tool_calls != null) {\n              for (const toolCallDelta of delta.tool_calls) {\n                const index = toolCallDelta.index;\n\n                // Tool call start. OpenAI returns all information except the arguments in the first chunk.\n                if (toolCalls[index] == null) {\n                  if (\n                    toolCallDelta.type != null &&\n                    toolCallDelta.type !== 'function'\n                  ) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function' type.`,\n                    });\n                  }\n\n                  if (toolCallDelta.id == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'id' to be a string.`,\n                    });\n                  }\n\n                  if (toolCallDelta.function?.name == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function.name' to be a string.`,\n                    });\n                  }\n\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: toolCallDelta.id,\n                    toolName: toolCallDelta.function.name,\n                  });\n\n                  toolCalls[index] = {\n                    id: toolCallDelta.id,\n                    type: 'function',\n                    function: {\n                      name: toolCallDelta.function.name,\n                      arguments: toolCallDelta.function.arguments ?? '',\n                    },\n                    hasFinished: false,\n                  };\n\n                  const toolCall = toolCalls[index];\n\n                  if (\n                    toolCall.function?.name != null &&\n                    toolCall.function?.arguments != null\n                  ) {\n                    // send delta if the argument text has already started:\n                    if (toolCall.function.arguments.length > 0) {\n                      controller.enqueue({\n                        type: 'tool-input-delta',\n                        id: toolCall.id,\n                        delta: toolCall.function.arguments,\n                      });\n                    }\n\n                    // check if tool call is complete\n                    // (some providers send the full tool call in one chunk):\n                    if (isParsableJson(toolCall.function.arguments)) {\n                      controller.enqueue({\n                        type: 'tool-input-end',\n                        id: toolCall.id,\n                      });\n\n                      controller.enqueue({\n                        type: 'tool-call',\n                        toolCallId: toolCall.id ?? generateId(),\n                        toolName: toolCall.function.name,\n                        input: toolCall.function.arguments,\n                      });\n                      toolCall.hasFinished = true;\n                    }\n                  }\n\n                  continue;\n                }\n\n                // existing tool call, merge if not finished\n                const toolCall = toolCalls[index];\n\n                if (toolCall.hasFinished) {\n                  continue;\n                }\n\n                if (toolCallDelta.function?.arguments != null) {\n                  toolCall.function!.arguments +=\n                    toolCallDelta.function?.arguments ?? '';\n                }\n\n                // send delta\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.id,\n                  delta: toolCallDelta.function.arguments ?? '',\n                });\n\n                // check if tool call is complete\n                if (\n                  toolCall.function?.name != null &&\n                  toolCall.function?.arguments != null &&\n                  isParsableJson(toolCall.function.arguments)\n                ) {\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: toolCall.id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: toolCall.id ?? generateId(),\n                    toolName: toolCall.function.name,\n                    input: toolCall.function.arguments,\n                  });\n                  toolCall.hasFinished = true;\n                }\n              }\n            }\n\n            // annotations/citations:\n            if (delta.annotations != null) {\n              for (const annotation of delta.annotations) {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: generateId(),\n                  url: annotation.url_citation.url,\n                  title: annotation.url_citation.title,\n                });\n              }\n            }\n          },\n\n          flush(controller) {\n            if (isActiveText) {\n              controller.enqueue({ type: 'text-end', id: '0' });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage,\n              ...(providerMetadata != null ? { providerMetadata } : {}),\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n","import {\n  type LanguageModelV2Prompt,\n  InvalidPromptError,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\n\nexport function convertToOpenAICompletionPrompt({\n  prompt,\n  user = 'user',\n  assistant = 'assistant',\n}: {\n  prompt: LanguageModelV2Prompt;\n  user?: string;\n  assistant?: string;\n}): {\n  prompt: string;\n  stopSequences?: string[];\n} {\n  // transform to a chat message format:\n  let text = '';\n\n  // if first message is a system message, add it to the text:\n  if (prompt[0].role === 'system') {\n    text += `${prompt[0].content}\\n\\n`;\n    prompt = prompt.slice(1);\n  }\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        throw new InvalidPromptError({\n          message: 'Unexpected system message in prompt: ${content}',\n          prompt,\n        });\n      }\n\n      case 'user': {\n        const userMessage = content\n          .map(part => {\n            switch (part.type) {\n              case 'text': {\n                return part.text;\n              }\n            }\n          })\n          .filter(Boolean)\n          .join('');\n\n        text += `${user}:\\n${userMessage}\\n\\n`;\n        break;\n      }\n\n      case 'assistant': {\n        const assistantMessage = content\n          .map(part => {\n            switch (part.type) {\n              case 'text': {\n                return part.text;\n              }\n              case 'tool-call': {\n                throw new UnsupportedFunctionalityError({\n                  functionality: 'tool-call messages',\n                });\n              }\n            }\n          })\n          .join('');\n\n        text += `${assistant}:\\n${assistantMessage}\\n\\n`;\n        break;\n      }\n\n      case 'tool': {\n        throw new UnsupportedFunctionalityError({\n          functionality: 'tool messages',\n        });\n      }\n\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  // Assistant message prefix:\n  text += `${assistant}:\\n`;\n\n  return {\n    prompt: text,\n    stopSequences: [`\\n${user}:`],\n  };\n}\n","export function getResponseMetadata({\n  id,\n  model,\n  created,\n}: {\n  id?: string | undefined | null;\n  created?: number | undefined | null;\n  model?: string | undefined | null;\n}) {\n  return {\n    id: id ?? undefined,\n    modelId: model ?? undefined,\n    timestamp: created != null ? new Date(created * 1000) : undefined,\n  };\n}\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV2FinishReason {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n      return 'length';\n    case 'content_filter':\n      return 'content-filter';\n    case 'function_call':\n    case 'tool_calls':\n      return 'tool-calls';\n    default:\n      return 'unknown';\n  }\n}\n","import { z } from 'zod/v4';\nimport { openaiErrorDataSchema } from '../openai-error';\nimport {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiCompletionResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      id: z.string().nullish(),\n      created: z.number().nullish(),\n      model: z.string().nullish(),\n      choices: z.array(\n        z.object({\n          text: z.string(),\n          finish_reason: z.string(),\n          logprobs: z\n            .object({\n              tokens: z.array(z.string()),\n              token_logprobs: z.array(z.number()),\n              top_logprobs: z.array(z.record(z.string(), z.number())).nullish(),\n            })\n            .nullish(),\n        }),\n      ),\n      usage: z\n        .object({\n          prompt_tokens: z.number(),\n          completion_tokens: z.number(),\n          total_tokens: z.number(),\n        })\n        .nullish(),\n    }),\n  ),\n);\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiCompletionChunkSchema = lazyValidator(() =>\n  zodSchema(\n    z.union([\n      z.object({\n        id: z.string().nullish(),\n        created: z.number().nullish(),\n        model: z.string().nullish(),\n        choices: z.array(\n          z.object({\n            text: z.string(),\n            finish_reason: z.string().nullish(),\n            index: z.number(),\n            logprobs: z\n              .object({\n                tokens: z.array(z.string()),\n                token_logprobs: z.array(z.number()),\n                top_logprobs: z\n                  .array(z.record(z.string(), z.number()))\n                  .nullish(),\n              })\n              .nullish(),\n          }),\n        ),\n        usage: z\n          .object({\n            prompt_tokens: z.number(),\n            completion_tokens: z.number(),\n            total_tokens: z.number(),\n          })\n          .nullish(),\n      }),\n      openaiErrorDataSchema,\n    ]),\n  ),\n);\n\nexport type OpenAICompletionChunk = InferValidator<\n  typeof openaiCompletionChunkSchema\n>;\n\nexport type OpenAICompletionResponse = InferValidator<\n  typeof openaiCompletionResponseSchema\n>;\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://platform.openai.com/docs/models\nexport type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | (string & {});\n\nexport const openaiCompletionProviderOptions = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      /**\nEcho back the prompt in addition to the completion.\n   */\n      echo: z.boolean().optional(),\n\n      /**\nModify the likelihood of specified tokens appearing in the completion.\n\nAccepts a JSON object that maps tokens (specified by their token ID in\nthe GPT tokenizer) to an associated bias value from -100 to 100. You\ncan use this tokenizer tool to convert text to token IDs. Mathematically,\nthe bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should\ndecrease or increase likelihood of selection; values like -100 or 100\nshould result in a ban or exclusive selection of the relevant token.\n\nAs an example, you can pass {\"50256\": -100} to prevent the <|endoftext|>\ntoken from being generated.\n */\n      logitBias: z.record(z.string(), z.number()).optional(),\n\n      /**\nThe suffix that comes after a completion of inserted text.\n */\n      suffix: z.string().optional(),\n\n      /**\nA unique identifier representing your end-user, which can help OpenAI to\nmonitor and detect abuse. Learn more.\n */\n      user: z.string().optional(),\n\n      /**\nReturn the log probabilities of the tokens. Including logprobs will increase\nthe response size and can slow down response times. However, it can\nbe useful to better understand how the model is behaving.\nSetting to true will return the log probabilities of the tokens that\nwere generated.\nSetting to a number will return the log probabilities of the top n\ntokens that were generated.\n   */\n      logprobs: z.union([z.boolean(), z.number()]).optional(),\n    }),\n  ),\n);\n\nexport type OpenAICompletionProviderOptions = InferValidator<\n  typeof openaiCompletionProviderOptions\n>;\n","import type {\n  LanguageModelV2,\n  LanguageModelV2CallWarning,\n  LanguageModelV2FinishReason,\n  LanguageModelV2StreamPart,\n  LanguageModelV2Usage,\n  SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  type ParseResult,\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { convertToOpenAICompletionPrompt } from './convert-to-openai-completion-prompt';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapOpenAIFinishReason } from './map-openai-finish-reason';\nimport {\n  type OpenAICompletionChunk,\n  openaiCompletionChunkSchema,\n  openaiCompletionResponseSchema,\n} from './openai-completion-api';\nimport {\n  type OpenAICompletionModelId,\n  openaiCompletionProviderOptions,\n} from './openai-completion-options';\n\ntype OpenAICompletionConfig = {\n  provider: string;\n  headers: () => Record<string, string | undefined>;\n  url: (options: { modelId: string; path: string }) => string;\n  fetch?: FetchFunction;\n};\n\nexport class OpenAICompletionLanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  readonly modelId: OpenAICompletionModelId;\n\n  private readonly config: OpenAICompletionConfig;\n\n  private get providerOptionsName(): string {\n    return this.config.provider.split('.')[0].trim();\n  }\n\n  constructor(\n    modelId: OpenAICompletionModelId,\n    config: OpenAICompletionConfig,\n  ) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    // No URLs are supported for completion models.\n  };\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences: userStopSequences,\n    responseFormat,\n    tools,\n    toolChoice,\n    seed,\n    providerOptions,\n  }: Parameters<LanguageModelV2['doGenerate']>[0]) {\n    const warnings: LanguageModelV2CallWarning[] = [];\n\n    // Parse provider options\n    const openaiOptions = {\n      ...(await parseProviderOptions({\n        provider: 'openai',\n        providerOptions,\n        schema: openaiCompletionProviderOptions,\n      })),\n      ...(await parseProviderOptions({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: openaiCompletionProviderOptions,\n      })),\n    };\n\n    if (topK != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'topK' });\n    }\n\n    if (tools?.length) {\n      warnings.push({ type: 'unsupported-setting', setting: 'tools' });\n    }\n\n    if (toolChoice != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'toolChoice' });\n    }\n\n    if (responseFormat != null && responseFormat.type !== 'text') {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'responseFormat',\n        details: 'JSON response format is not supported.',\n      });\n    }\n\n    const { prompt: completionPrompt, stopSequences } =\n      convertToOpenAICompletionPrompt({ prompt });\n\n    const stop = [...(stopSequences ?? []), ...(userStopSequences ?? [])];\n\n    return {\n      args: {\n        // model id:\n        model: this.modelId,\n\n        // model specific settings:\n        echo: openaiOptions.echo,\n        logit_bias: openaiOptions.logitBias,\n        logprobs:\n          openaiOptions?.logprobs === true\n            ? 0\n            : openaiOptions?.logprobs === false\n              ? undefined\n              : openaiOptions?.logprobs,\n        suffix: openaiOptions.suffix,\n        user: openaiOptions.user,\n\n        // standardized settings:\n        max_tokens: maxOutputTokens,\n        temperature,\n        top_p: topP,\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        seed,\n\n        // prompt:\n        prompt: completionPrompt,\n\n        // stop sequences:\n        stop: stop.length > 0 ? stop : undefined,\n      },\n      warnings,\n    };\n  }\n\n  async doGenerate(\n    options: Parameters<LanguageModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n    const { args, warnings } = await this.getArgs(options);\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: '/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiCompletionResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = response.choices[0];\n\n    const providerMetadata: SharedV2ProviderMetadata = { openai: {} };\n\n    if (choice.logprobs != null) {\n      providerMetadata.openai.logprobs = choice.logprobs;\n    }\n\n    return {\n      content: [{ type: 'text', text: choice.text }],\n      usage: {\n        inputTokens: response.usage?.prompt_tokens,\n        outputTokens: response.usage?.completion_tokens,\n        totalTokens: response.usage?.total_tokens,\n      },\n      finishReason: mapOpenAIFinishReason(choice.finish_reason),\n      request: { body: args },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      providerMetadata,\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: Parameters<LanguageModelV2['doStream']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n    const { args, warnings } = await this.getArgs(options);\n\n    const body = {\n      ...args,\n      stream: true,\n\n      stream_options: {\n        include_usage: true,\n      },\n    };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: this.config.url({\n        path: '/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        openaiCompletionChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV2FinishReason = 'unknown';\n    const providerMetadata: SharedV2ProviderMetadata = { openai: {} };\n    const usage: LanguageModelV2Usage = {\n      inputTokens: undefined,\n      outputTokens: undefined,\n      totalTokens: undefined,\n    };\n    let isFirstChunk = true;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<OpenAICompletionChunk>,\n          LanguageModelV2StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            // handle error chunks:\n            if ('error' in value) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: value.error });\n              return;\n            }\n\n            if (isFirstChunk) {\n              isFirstChunk = false;\n\n              controller.enqueue({\n                type: 'response-metadata',\n                ...getResponseMetadata(value),\n              });\n\n              controller.enqueue({ type: 'text-start', id: '0' });\n            }\n\n            if (value.usage != null) {\n              usage.inputTokens = value.usage.prompt_tokens;\n              usage.outputTokens = value.usage.completion_tokens;\n              usage.totalTokens = value.usage.total_tokens;\n            }\n\n            const choice = value.choices[0];\n\n            if (choice?.finish_reason != null) {\n              finishReason = mapOpenAIFinishReason(choice.finish_reason);\n            }\n\n            if (choice?.logprobs != null) {\n              providerMetadata.openai.logprobs = choice.logprobs;\n            }\n\n            if (choice?.text != null && choice.text.length > 0) {\n              controller.enqueue({\n                type: 'text-delta',\n                id: '0',\n                delta: choice.text,\n              });\n            }\n          },\n\n          flush(controller) {\n            if (!isFirstChunk) {\n              controller.enqueue({ type: 'text-end', id: '0' });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              providerMetadata,\n              usage,\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type OpenAIEmbeddingModelId =\n  | 'text-embedding-3-small'\n  | 'text-embedding-3-large'\n  | 'text-embedding-ada-002'\n  | (string & {});\n\nexport const openaiEmbeddingProviderOptions = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      /**\nThe number of dimensions the resulting output embeddings should have.\nOnly supported in text-embedding-3 and later models.\n   */\n      dimensions: z.number().optional(),\n\n      /**\nA unique identifier representing your end-user, which can help OpenAI to\nmonitor and detect abuse. Learn more.\n*/\n      user: z.string().optional(),\n    }),\n  ),\n);\n\nexport type OpenAIEmbeddingProviderOptions = InferValidator<\n  typeof openaiEmbeddingProviderOptions\n>;\n","import { lazyValidator, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiTextEmbeddingResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      data: z.array(z.object({ embedding: z.array(z.number()) })),\n      usage: z.object({ prompt_tokens: z.number() }).nullish(),\n    }),\n  ),\n);\n","import {\n  type EmbeddingModelV2,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport type { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport {\n  type OpenAIEmbeddingModelId,\n  openaiEmbeddingProviderOptions,\n} from './openai-embedding-options';\nimport { openaiTextEmbeddingResponseSchema } from './openai-embedding-api';\n\nexport class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {\n  readonly specificationVersion = 'v2';\n  readonly modelId: OpenAIEmbeddingModelId;\n  readonly maxEmbeddingsPerCall = 2048;\n  readonly supportsParallelCalls = true;\n\n  private readonly config: OpenAIConfig;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(modelId: OpenAIEmbeddingModelId, config: OpenAIConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<EmbeddingModelV2<string>['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV2<string>['doEmbed']>>\n  > {\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values,\n      });\n    }\n\n    // Parse provider options\n    const openaiOptions =\n      (await parseProviderOptions({\n        provider: 'openai',\n        providerOptions,\n        schema: openaiEmbeddingProviderOptions,\n      })) ?? {};\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue,\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: '/embeddings',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        input: values,\n        encoding_format: 'float',\n        dimensions: openaiOptions.dimensions,\n        user: openaiOptions.user,\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiTextEmbeddingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      embeddings: response.data.map(item => item.embedding),\n      usage: response.usage\n        ? { tokens: response.usage.prompt_tokens }\n        : undefined,\n      response: { headers: responseHeaders, body: rawValue },\n    };\n  }\n}\n","import { lazyValidator, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// minimal version of the schema, focused on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const openaiImageResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      created: z.number().nullish(),\n      data: z.array(\n        z.object({\n          b64_json: z.string(),\n          revised_prompt: z.string().nullish(),\n        }),\n      ),\n      background: z.string().nullish(),\n      output_format: z.string().nullish(),\n      size: z.string().nullish(),\n      quality: z.string().nullish(),\n      usage: z\n        .object({\n          input_tokens: z.number().nullish(),\n          output_tokens: z.number().nullish(),\n          total_tokens: z.number().nullish(),\n          input_tokens_details: z\n            .object({\n              image_tokens: z.number().nullish(),\n              text_tokens: z.number().nullish(),\n            })\n            .nullish(),\n        })\n        .nullish(),\n    }),\n  ),\n);\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type OpenAIImageModelId =\n  | 'dall-e-3'\n  | 'dall-e-2'\n  | 'gpt-image-1'\n  | 'gpt-image-1-mini'\n  | 'gpt-image-1.5'\n  | 'gpt-image-2'\n  | (string & {});\n\n// https://platform.openai.com/docs/guides/images\nexport const modelMaxImagesPerCall: Record<OpenAIImageModelId, number> = {\n  'dall-e-3': 1,\n  'dall-e-2': 10,\n  'gpt-image-1': 10,\n  'gpt-image-1-mini': 10,\n  'gpt-image-1.5': 10,\n  'gpt-image-2': 10,\n};\n\nexport const hasDefaultResponseFormat = new Set([\n  'gpt-image-1',\n  'gpt-image-1-mini',\n  'gpt-image-1.5',\n  'gpt-image-2',\n]);\n\nconst baseImageModelOptionsObject = z.object({\n  /**\n   * Quality of the generated image(s).\n   *\n   * Valid values: `standard`, `hd`, `low`, `medium`, `high`, `auto`.\n   */\n  quality: z\n    .enum(['standard', 'hd', 'low', 'medium', 'high', 'auto'])\n    .optional(),\n\n  /**\n   * Background behavior for the generated image(s).\n   *\n   * If `transparent`, the output format must support transparency\n   * (i.e. `png` or `webp`).\n   */\n  background: z.enum(['transparent', 'opaque', 'auto']).optional(),\n\n  /**\n   * Format in which the generated image(s) are returned.\n   */\n  outputFormat: z.enum(['png', 'jpeg', 'webp']).optional(),\n\n  /**\n   * Compression level (0-100) for the generated image(s). Applies to the\n   * `jpeg` and `webp` output formats.\n   */\n  outputCompression: z.number().int().min(0).max(100).optional(),\n\n  /**\n   * A unique identifier representing your end-user, which can help OpenAI\n   * to monitor and detect abuse.\n   */\n  user: z.string().optional(),\n});\n\nexport const openaiImageModelOptions = lazyValidator(() =>\n  zodSchema(baseImageModelOptionsObject),\n);\n\nexport type OpenAIImageModelOptions = InferValidator<\n  typeof openaiImageModelOptions\n>;\n\nexport const openaiImageModelGenerationOptions = lazyValidator(() =>\n  zodSchema(\n    baseImageModelOptionsObject.extend({\n      /**\n       * Style of the generated image. `vivid` produces hyper-real and\n       * dramatic images; `natural` produces more subdued, less hyper-real\n       * looking images.\n       */\n      style: z.enum(['vivid', 'natural']).optional(),\n\n      /**\n       * Content moderation level for the generated image(s). `low` applies\n       * less restrictive filtering.\n       */\n      moderation: z.enum(['auto', 'low']).optional(),\n    }),\n  ),\n);\n\nexport type OpenAIImageModelGenerationOptions = InferValidator<\n  typeof openaiImageModelGenerationOptions\n>;\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport type { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiImageResponseSchema } from './openai-image-api';\nimport {\n  type OpenAIImageModelId,\n  hasDefaultResponseFormat,\n  modelMaxImagesPerCall,\n  openaiImageModelGenerationOptions,\n} from './openai-image-options';\n\ninterface OpenAIImageModelConfig extends OpenAIConfig {\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nexport class OpenAIImageModel implements ImageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  get maxImagesPerCall(): number {\n    return modelMaxImagesPerCall[this.modelId] ?? 1;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: OpenAIImageModelId,\n    private readonly config: OpenAIImageModelConfig,\n  ) {}\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n  }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV2['doGenerate']>>\n  > {\n    const warnings: Array<ImageModelV2CallWarning> = [];\n\n    if (aspectRatio != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'aspectRatio',\n        details:\n          'This model does not support aspect ratio. Use `size` instead.',\n      });\n    }\n\n    if (seed != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'seed' });\n    }\n\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n    const openaiOptions =\n      (await parseProviderOptions({\n        provider: 'openai',\n        providerOptions,\n        schema: openaiImageModelGenerationOptions,\n      })) ?? {};\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.config.url({\n        path: '/images/generations',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        prompt,\n        n,\n        size,\n        quality: openaiOptions.quality,\n        style: openaiOptions.style,\n        background: openaiOptions.background,\n        moderation: openaiOptions.moderation,\n        output_format: openaiOptions.outputFormat,\n        output_compression: openaiOptions.outputCompression,\n        user: openaiOptions.user,\n        ...(!hasDefaultResponseFormat.has(this.modelId)\n          ? { response_format: 'b64_json' }\n          : {}),\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      images: response.data.map(item => item.b64_json),\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n      providerMetadata: {\n        openai: {\n          images: response.data.map((item, index) => ({\n            ...(item.revised_prompt\n              ? { revisedPrompt: item.revised_prompt }\n              : {}),\n            ...(response.created != null ? { created: response.created } : {}),\n            ...(response.size != null ? { size: response.size } : {}),\n            ...(response.quality != null ? { quality: response.quality } : {}),\n            ...(response.background != null\n              ? { background: response.background }\n              : {}),\n            ...(response.output_format != null\n              ? { outputFormat: response.output_format }\n              : {}),\n            ...distributeTokenDetails(\n              response.usage,\n              index,\n              response.data.length,\n            ),\n          })),\n        },\n      },\n    };\n  }\n}\n\n/**\n * Distributes token usage details evenly across images, with the remainder\n * assigned to the last image so that summing across all entries gives the\n * exact total.\n */\nfunction distributeTokenDetails(\n  usage:\n    | {\n        input_tokens?: number | null;\n        output_tokens?: number | null;\n        total_tokens?: number | null;\n        input_tokens_details?: {\n          image_tokens?: number | null;\n          text_tokens?: number | null;\n        } | null;\n      }\n    | null\n    | undefined,\n  index: number,\n  total: number,\n): {\n  imageTokens?: number;\n  textTokens?: number;\n  inputTokens?: number;\n  outputTokens?: number;\n} {\n  if (usage == null) {\n    return {};\n  }\n\n  const result: {\n    imageTokens?: number;\n    textTokens?: number;\n    inputTokens?: number;\n    outputTokens?: number;\n  } = {};\n\n  const details = usage.input_tokens_details;\n\n  if (details?.image_tokens != null) {\n    const base = Math.floor(details.image_tokens / total);\n    const remainder = details.image_tokens - base * (total - 1);\n    result.imageTokens = index === total - 1 ? remainder : base;\n  }\n\n  if (details?.text_tokens != null) {\n    const base = Math.floor(details.text_tokens / total);\n    const remainder = details.text_tokens - base * (total - 1);\n    result.textTokens = index === total - 1 ? remainder : base;\n  }\n\n  if (usage.input_tokens != null) {\n    const base = Math.floor(usage.input_tokens / total);\n    const remainder = usage.input_tokens - base * (total - 1);\n    result.inputTokens = index === total - 1 ? remainder : base;\n  }\n\n  if (usage.output_tokens != null) {\n    const base = Math.floor(usage.output_tokens / total);\n    const remainder = usage.output_tokens - base * (total - 1);\n    result.outputTokens = index === total - 1 ? remainder : base;\n  }\n\n  return result;\n}\n","import { lazyValidator, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const openaiTranscriptionResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      text: z.string(),\n      language: z.string().nullish(),\n      duration: z.number().nullish(),\n      words: z\n        .array(\n          z.object({\n            word: z.string(),\n            start: z.number(),\n            end: z.number(),\n          }),\n        )\n        .nullish(),\n      segments: z\n        .array(\n          z.object({\n            id: z.number(),\n            seek: z.number(),\n            start: z.number(),\n            end: z.number(),\n            text: z.string(),\n            tokens: z.array(z.number()),\n            temperature: z.number(),\n            avg_logprob: z.number(),\n            compression_ratio: z.number(),\n            no_speech_prob: z.number(),\n          }),\n        )\n        .nullish(),\n    }),\n  ),\n);\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type OpenAITranscriptionModelId =\n  | 'whisper-1'\n  | 'gpt-4o-mini-transcribe'\n  | 'gpt-4o-transcribe'\n  | (string & {});\n\n// https://platform.openai.com/docs/api-reference/audio/createTranscription\nexport const openAITranscriptionProviderOptions = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      /**\n       * Additional information to include in the transcription response.\n       */\n\n      include: z.array(z.string()).optional(),\n\n      /**\n       * The language of the input audio in ISO-639-1 format.\n       */\n      language: z.string().optional(),\n\n      /**\n       * An optional text to guide the model's style or continue a previous audio segment.\n       */\n      prompt: z.string().optional(),\n\n      /**\n       * The sampling temperature, between 0 and 1.\n       * @default 0\n       */\n      temperature: z.number().min(0).max(1).default(0).optional(),\n\n      /**\n       * The timestamp granularities to populate for this transcription.\n       * @default ['segment']\n       */\n      timestampGranularities: z\n        .array(z.enum(['word', 'segment']))\n        .default(['segment'])\n        .optional(),\n    }),\n  ),\n);\n\nexport type OpenAITranscriptionProviderOptions = InferValidator<\n  typeof openAITranscriptionProviderOptions\n>;\n","import type {\n  TranscriptionModelV2,\n  TranscriptionModelV2CallOptions,\n  TranscriptionModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertBase64ToUint8Array,\n  createJsonResponseHandler,\n  mediaTypeToExtension,\n  parseProviderOptions,\n  postFormDataToApi,\n} from '@ai-sdk/provider-utils';\nimport type { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiTranscriptionResponseSchema } from './openai-transcription-api';\nimport {\n  type OpenAITranscriptionModelId,\n  type OpenAITranscriptionProviderOptions,\n  openAITranscriptionProviderOptions,\n} from './openai-transcription-options';\n\nexport type OpenAITranscriptionCallOptions = Omit<\n  TranscriptionModelV2CallOptions,\n  'providerOptions'\n> & {\n  providerOptions?: {\n    openai?: OpenAITranscriptionProviderOptions;\n  };\n};\n\ninterface OpenAITranscriptionModelConfig extends OpenAIConfig {\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\n// https://platform.openai.com/docs/guides/speech-to-text#supported-languages\nconst languageMap = {\n  afrikaans: 'af',\n  arabic: 'ar',\n  armenian: 'hy',\n  azerbaijani: 'az',\n  belarusian: 'be',\n  bosnian: 'bs',\n  bulgarian: 'bg',\n  catalan: 'ca',\n  chinese: 'zh',\n  croatian: 'hr',\n  czech: 'cs',\n  danish: 'da',\n  dutch: 'nl',\n  english: 'en',\n  estonian: 'et',\n  finnish: 'fi',\n  french: 'fr',\n  galician: 'gl',\n  german: 'de',\n  greek: 'el',\n  hebrew: 'he',\n  hindi: 'hi',\n  hungarian: 'hu',\n  icelandic: 'is',\n  indonesian: 'id',\n  italian: 'it',\n  japanese: 'ja',\n  kannada: 'kn',\n  kazakh: 'kk',\n  korean: 'ko',\n  latvian: 'lv',\n  lithuanian: 'lt',\n  macedonian: 'mk',\n  malay: 'ms',\n  marathi: 'mr',\n  maori: 'mi',\n  nepali: 'ne',\n  norwegian: 'no',\n  persian: 'fa',\n  polish: 'pl',\n  portuguese: 'pt',\n  romanian: 'ro',\n  russian: 'ru',\n  serbian: 'sr',\n  slovak: 'sk',\n  slovenian: 'sl',\n  spanish: 'es',\n  swahili: 'sw',\n  swedish: 'sv',\n  tagalog: 'tl',\n  tamil: 'ta',\n  thai: 'th',\n  turkish: 'tr',\n  ukrainian: 'uk',\n  urdu: 'ur',\n  vietnamese: 'vi',\n  welsh: 'cy',\n};\n\nexport class OpenAITranscriptionModel implements TranscriptionModelV2 {\n  readonly specificationVersion = 'v2';\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: OpenAITranscriptionModelId,\n    private readonly config: OpenAITranscriptionModelConfig,\n  ) {}\n\n  private async getArgs({\n    audio,\n    mediaType,\n    providerOptions,\n  }: OpenAITranscriptionCallOptions) {\n    const warnings: TranscriptionModelV2CallWarning[] = [];\n\n    // Parse provider options\n    const openAIOptions = await parseProviderOptions({\n      provider: 'openai',\n      providerOptions,\n      schema: openAITranscriptionProviderOptions,\n    });\n\n    // Create form data with base fields\n    const formData = new FormData();\n    const blob =\n      audio instanceof Uint8Array\n        ? new Blob([audio])\n        : new Blob([convertBase64ToUint8Array(audio)]);\n\n    formData.append('model', this.modelId);\n    const fileExtension = mediaTypeToExtension(mediaType);\n    formData.append(\n      'file',\n      new File([blob], 'audio', { type: mediaType }),\n      `audio.${fileExtension}`,\n    );\n\n    // Add provider-specific options\n    if (openAIOptions) {\n      const transcriptionModelOptions = {\n        include: openAIOptions.include,\n        language: openAIOptions.language,\n        prompt: openAIOptions.prompt,\n        // https://platform.openai.com/docs/api-reference/audio/createTranscription#audio_createtranscription-response_format\n        // prefer verbose_json to get segments for models that support it\n        response_format: [\n          'gpt-4o-transcribe',\n          'gpt-4o-mini-transcribe',\n        ].includes(this.modelId)\n          ? 'json'\n          : 'verbose_json',\n        temperature: openAIOptions.temperature,\n        timestamp_granularities: openAIOptions.timestampGranularities,\n      };\n\n      for (const [key, value] of Object.entries(transcriptionModelOptions)) {\n        if (value != null) {\n          if (Array.isArray(value)) {\n            for (const item of value) {\n              formData.append(`${key}[]`, String(item));\n            }\n          } else {\n            formData.append(key, String(value));\n          }\n        }\n      }\n    }\n\n    return {\n      formData,\n      warnings,\n    };\n  }\n\n  async doGenerate(\n    options: OpenAITranscriptionCallOptions,\n  ): Promise<Awaited<ReturnType<TranscriptionModelV2['doGenerate']>>> {\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const { formData, warnings } = await this.getArgs(options);\n\n    const {\n      value: response,\n      responseHeaders,\n      rawValue: rawResponse,\n    } = await postFormDataToApi({\n      url: this.config.url({\n        path: '/audio/transcriptions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      formData,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiTranscriptionResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const language =\n      response.language != null && response.language in languageMap\n        ? languageMap[response.language as keyof typeof languageMap]\n        : undefined;\n\n    return {\n      text: response.text,\n      segments:\n        response.segments?.map(segment => ({\n          text: segment.text,\n          startSecond: segment.start,\n          endSecond: segment.end,\n        })) ??\n        response.words?.map(word => ({\n          text: word.word,\n          startSecond: word.start,\n          endSecond: word.end,\n        })) ??\n        [],\n      language,\n      durationInSeconds: response.duration ?? undefined,\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n    };\n  }\n}\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type OpenAISpeechModelId =\n  | 'tts-1'\n  | 'tts-1-hd'\n  | 'gpt-4o-mini-tts'\n  | (string & {});\n\n// https://platform.openai.com/docs/api-reference/audio/createSpeech\nexport const openaiSpeechProviderOptionsSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      instructions: z.string().nullish(),\n      speed: z.number().min(0.25).max(4.0).default(1.0).nullish(),\n    }),\n  ),\n);\n\nexport type OpenAISpeechCallOptions = InferValidator<\n  typeof openaiSpeechProviderOptionsSchema\n>;\n","import type { SpeechModelV2, SpeechModelV2CallWarning } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createBinaryResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport type { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport type { OpenAISpeechAPITypes } from './openai-speech-api';\nimport {\n  type OpenAISpeechModelId,\n  openaiSpeechProviderOptionsSchema,\n} from './openai-speech-options';\n\ninterface OpenAISpeechModelConfig extends OpenAIConfig {\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nexport class OpenAISpeechModel implements SpeechModelV2 {\n  readonly specificationVersion = 'v2';\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: OpenAISpeechModelId,\n    private readonly config: OpenAISpeechModelConfig,\n  ) {}\n\n  private async getArgs({\n    text,\n    voice = 'alloy',\n    outputFormat = 'mp3',\n    speed,\n    instructions,\n    language,\n    providerOptions,\n  }: Parameters<SpeechModelV2['doGenerate']>[0]) {\n    const warnings: SpeechModelV2CallWarning[] = [];\n\n    // Parse provider options\n    const openAIOptions = await parseProviderOptions({\n      provider: 'openai',\n      providerOptions,\n      schema: openaiSpeechProviderOptionsSchema,\n    });\n\n    // Create request body\n    const requestBody: Record<string, unknown> = {\n      model: this.modelId,\n      input: text,\n      voice,\n      response_format: 'mp3',\n      speed,\n      instructions,\n    };\n\n    if (outputFormat) {\n      if (['mp3', 'opus', 'aac', 'flac', 'wav', 'pcm'].includes(outputFormat)) {\n        requestBody.response_format = outputFormat;\n      } else {\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'outputFormat',\n          details: `Unsupported output format: ${outputFormat}. Using mp3 instead.`,\n        });\n      }\n    }\n\n    // Add provider-specific options\n    if (openAIOptions) {\n      const speechModelOptions: OpenAISpeechAPITypes = {};\n\n      for (const key in speechModelOptions) {\n        const value = speechModelOptions[key as keyof OpenAISpeechAPITypes];\n        if (value !== undefined) {\n          requestBody[key] = value;\n        }\n      }\n    }\n\n    if (language) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'language',\n        details: `OpenAI speech models do not support language selection. Language parameter \"${language}\" was ignored.`,\n      });\n    }\n\n    return {\n      requestBody,\n      warnings,\n    };\n  }\n\n  async doGenerate(\n    options: Parameters<SpeechModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<SpeechModelV2['doGenerate']>>> {\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const { requestBody, warnings } = await this.getArgs(options);\n\n    const {\n      value: audio,\n      responseHeaders,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: '/audio/speech',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: requestBody,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createBinaryResponseHandler(),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      audio,\n      warnings,\n      request: {\n        body: JSON.stringify(requestBody),\n      },\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n    };\n  }\n}\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const localShellInputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z.object({\n        type: z.literal('exec'),\n        command: z.array(z.string()),\n        timeoutMs: z.number().optional(),\n        user: z.string().optional(),\n        workingDirectory: z.string().optional(),\n        env: z.record(z.string(), z.string()).optional(),\n      }),\n    }),\n  ),\n);\n\nexport const localShellOutputSchema = lazySchema(() =>\n  zodSchema(z.object({ output: z.string() })),\n);\n\nexport const localShell = createProviderDefinedToolFactoryWithOutputSchema<\n  {\n    /**\n     * Execute a shell command on the server.\n     */\n    action: {\n      type: 'exec';\n\n      /**\n       * The command to run.\n       */\n      command: string[];\n\n      /**\n       * Optional timeout in milliseconds for the command.\n       */\n      timeoutMs?: number;\n\n      /**\n       * Optional user to run the command as.\n       */\n      user?: string;\n\n      /**\n       * Optional working directory to run the command in.\n       */\n      workingDirectory?: string;\n\n      /**\n       * Environment variables to set for the command.\n       */\n      env?: Record<string, string>;\n    };\n  },\n  {\n    /**\n     * The output of local shell tool call.\n     */\n    output: string;\n  },\n  {}\n>({\n  id: 'openai.local_shell',\n  name: 'local_shell',\n  inputSchema: localShellInputSchema,\n  outputSchema: localShellOutputSchema,\n});\n","import {\n  type LanguageModelV2CallWarning,\n  type LanguageModelV2Prompt,\n  type LanguageModelV2ToolCallPart,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport {\n  convertToBase64,\n  parseProviderOptions,\n  validateTypes,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n  localShellInputSchema,\n  localShellOutputSchema,\n} from '../tool/local-shell';\nimport { webSearchOutputSchema } from '../tool/web-search';\nimport type {\n  OpenAIResponsesFunctionCallOutput,\n  OpenAIResponsesInput,\n  OpenAIResponsesReasoning,\n} from './openai-responses-api';\n\n/**\n * Check if a string is a file ID based on the given prefixes\n * Returns false if prefixes is undefined (disables file ID detection)\n */\nfunction isFileId(data: string, prefixes?: readonly string[]): boolean {\n  if (!prefixes) return false;\n  return prefixes.some(prefix => data.startsWith(prefix));\n}\n\nexport async function convertToOpenAIResponsesInput({\n  prompt,\n  systemMessageMode,\n  fileIdPrefixes,\n  store,\n  hasLocalShellTool = false,\n}: {\n  prompt: LanguageModelV2Prompt;\n  systemMessageMode: 'system' | 'developer' | 'remove';\n  fileIdPrefixes?: readonly string[];\n  store: boolean;\n  hasLocalShellTool?: boolean;\n}): Promise<{\n  input: OpenAIResponsesInput;\n  warnings: Array<LanguageModelV2CallWarning>;\n}> {\n  let input: OpenAIResponsesInput = [];\n  const warnings: Array<LanguageModelV2CallWarning> = [];\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        switch (systemMessageMode) {\n          case 'system': {\n            input.push({ role: 'system', content });\n            break;\n          }\n          case 'developer': {\n            input.push({ role: 'developer', content });\n            break;\n          }\n          case 'remove': {\n            warnings.push({\n              type: 'other',\n              message: 'system messages are removed for this model',\n            });\n            break;\n          }\n          default: {\n            const _exhaustiveCheck: never = systemMessageMode;\n            throw new Error(\n              `Unsupported system message mode: ${_exhaustiveCheck}`,\n            );\n          }\n        }\n        break;\n      }\n\n      case 'user': {\n        input.push({\n          role: 'user',\n          content: content.map((part, index) => {\n            switch (part.type) {\n              case 'text': {\n                return { type: 'input_text', text: part.text };\n              }\n              case 'file': {\n                if (part.mediaType.startsWith('image/')) {\n                  const mediaType =\n                    part.mediaType === 'image/*'\n                      ? 'image/jpeg'\n                      : part.mediaType;\n\n                  return {\n                    type: 'input_image',\n                    ...(part.data instanceof URL\n                      ? { image_url: part.data.toString() }\n                      : typeof part.data === 'string' &&\n                          isFileId(part.data, fileIdPrefixes)\n                        ? { file_id: part.data }\n                        : {\n                            image_url: `data:${mediaType};base64,${convertToBase64(part.data)}`,\n                          }),\n                    detail: part.providerOptions?.openai?.imageDetail,\n                  };\n                } else if (part.mediaType === 'application/pdf') {\n                  if (part.data instanceof URL) {\n                    return {\n                      type: 'input_file',\n                      file_url: part.data.toString(),\n                    };\n                  }\n                  return {\n                    type: 'input_file',\n                    ...(typeof part.data === 'string' &&\n                    isFileId(part.data, fileIdPrefixes)\n                      ? { file_id: part.data }\n                      : {\n                          filename: part.filename ?? `part-${index}.pdf`,\n                          file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`,\n                        }),\n                  };\n                } else {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: `file part media type ${part.mediaType}`,\n                  });\n                }\n              }\n            }\n          }),\n        });\n\n        break;\n      }\n\n      case 'assistant': {\n        const reasoningMessages: Record<string, OpenAIResponsesReasoning> = {};\n        const toolCallParts: Record<string, LanguageModelV2ToolCallPart> = {};\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              const id = part.providerOptions?.openai?.itemId as\n                | string\n                | undefined;\n              const phase = part.providerOptions?.openai?.phase as\n                | 'commentary'\n                | 'final_answer'\n                | null\n                | undefined;\n\n              // item references reduce the payload size\n              if (store && id != null) {\n                input.push({ type: 'item_reference', id });\n                break;\n              }\n\n              input.push({\n                role: 'assistant',\n                content: [{ type: 'output_text', text: part.text }],\n                id,\n                ...(phase != null && { phase }),\n              });\n\n              break;\n            }\n            case 'tool-call': {\n              toolCallParts[part.toolCallId] = part;\n\n              if (part.providerExecuted) {\n                break;\n              }\n\n              const id = part.providerOptions?.openai?.itemId as\n                | string\n                | undefined;\n\n              // item references reduce the payload size\n              if (store && id != null) {\n                input.push({ type: 'item_reference', id });\n                break;\n              }\n\n              if (hasLocalShellTool && part.toolName === 'local_shell') {\n                const parsedInput = await validateTypes({\n                  value: part.input,\n                  schema: localShellInputSchema,\n                });\n                input.push({\n                  type: 'local_shell_call',\n                  call_id: part.toolCallId,\n                  id: id!,\n                  action: {\n                    type: 'exec',\n                    command: parsedInput.action.command,\n                    timeout_ms: parsedInput.action.timeoutMs,\n                    user: parsedInput.action.user,\n                    working_directory: parsedInput.action.workingDirectory,\n                    env: parsedInput.action.env,\n                  },\n                });\n\n                break;\n              }\n\n              input.push({\n                type: 'function_call',\n                call_id: part.toolCallId,\n                name: part.toolName,\n                arguments: JSON.stringify(part.input),\n                id,\n              });\n              break;\n            }\n\n            // assistant tool result parts are from provider-executed tools:\n            case 'tool-result': {\n              if (store) {\n                // use item references to refer to tool results from built-in tools\n                input.push({ type: 'item_reference', id: part.toolCallId });\n              } else {\n                warnings.push({\n                  type: 'other',\n                  message: `Results for OpenAI tool ${part.toolName} are not sent to the API when store is false`,\n                });\n              }\n\n              break;\n            }\n\n            case 'reasoning': {\n              const providerOptions = await parseProviderOptions({\n                provider: 'openai',\n                providerOptions: part.providerOptions,\n                schema: openaiResponsesReasoningProviderOptionsSchema,\n              });\n\n              const reasoningId = providerOptions?.itemId;\n\n              if (reasoningId != null) {\n                const reasoningMessage = reasoningMessages[reasoningId];\n\n                if (store) {\n                  // use item references to refer to reasoning (single reference)\n                  // when the first part is encountered\n                  if (reasoningMessage === undefined) {\n                    input.push({ type: 'item_reference', id: reasoningId });\n\n                    // store unused reasoning message to mark id as used\n                    reasoningMessages[reasoningId] = {\n                      type: 'reasoning',\n                      id: reasoningId,\n                      summary: [],\n                    };\n                  }\n                } else {\n                  const summaryParts: Array<{\n                    type: 'summary_text';\n                    text: string;\n                  }> = [];\n\n                  if (part.text.length > 0) {\n                    summaryParts.push({\n                      type: 'summary_text',\n                      text: part.text,\n                    });\n                  } else if (reasoningMessage !== undefined) {\n                    warnings.push({\n                      type: 'other',\n                      message: `Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(part)}.`,\n                    });\n                  }\n\n                  if (reasoningMessage === undefined) {\n                    reasoningMessages[reasoningId] = {\n                      type: 'reasoning',\n                      id: reasoningId,\n                      encrypted_content:\n                        providerOptions?.reasoningEncryptedContent,\n                      summary: summaryParts,\n                    };\n                    input.push(reasoningMessages[reasoningId]);\n                  } else {\n                    reasoningMessage.summary.push(...summaryParts);\n\n                    // updated encrypted content to enable setting it in the last summary part:\n                    if (providerOptions?.reasoningEncryptedContent != null) {\n                      reasoningMessage.encrypted_content =\n                        providerOptions.reasoningEncryptedContent;\n                    }\n                  }\n                }\n              } else {\n                warnings.push({\n                  type: 'other',\n                  message: `Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(part)}.`,\n                });\n              }\n              break;\n            }\n          }\n        }\n\n        break;\n      }\n\n      case 'tool': {\n        for (const part of content) {\n          const output = part.output;\n\n          if (\n            hasLocalShellTool &&\n            part.toolName === 'local_shell' &&\n            output.type === 'json'\n          ) {\n            const parsedOutput = await validateTypes({\n              value: output.value,\n              schema: localShellOutputSchema,\n            });\n\n            input.push({\n              type: 'local_shell_call_output',\n              call_id: part.toolCallId,\n              output: parsedOutput.output,\n            });\n            break;\n          }\n\n          let contentValue: OpenAIResponsesFunctionCallOutput['output'];\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              contentValue = output.value;\n              break;\n            case 'json':\n            case 'error-json':\n              contentValue = JSON.stringify(output.value);\n              break;\n            case 'content':\n              contentValue = output.value.map(item => {\n                switch (item.type) {\n                  case 'text': {\n                    return { type: 'input_text' as const, text: item.text };\n                  }\n                  case 'media': {\n                    return item.mediaType.startsWith('image/')\n                      ? {\n                          type: 'input_image' as const,\n                          image_url: `data:${item.mediaType};base64,${item.data}`,\n                        }\n                      : {\n                          type: 'input_file' as const,\n                          filename: 'data',\n                          file_data: `data:${item.mediaType};base64,${item.data}`,\n                        };\n                  }\n                }\n              });\n              break;\n          }\n\n          input.push({\n            type: 'function_call_output',\n            call_id: part.toolCallId,\n            output: contentValue,\n          });\n        }\n\n        break;\n      }\n\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  // when store is false, remove reasoning parts without encrypted content\n  if (\n    !store &&\n    input.some(\n      item =>\n        'type' in item &&\n        item.type === 'reasoning' &&\n        item.encrypted_content == null,\n    )\n  ) {\n    warnings.push({\n      type: 'other',\n      message:\n        'Reasoning parts without encrypted content are not supported when store is false. Skipping reasoning parts.',\n    });\n    input = input.filter(\n      item =>\n        !('type' in item) ||\n        item.type !== 'reasoning' ||\n        item.encrypted_content != null,\n    );\n  }\n\n  return { input, warnings };\n}\n\nconst openaiResponsesReasoningProviderOptionsSchema = z.object({\n  itemId: z.string().nullish(),\n  reasoningEncryptedContent: z.string().nullish(),\n});\n\nexport type OpenAIResponsesReasoningProviderOptions = z.infer<\n  typeof openaiResponsesReasoningProviderOptionsSchema\n>;\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIResponseFinishReason({\n  finishReason,\n  hasFunctionCall,\n}: {\n  finishReason: string | null | undefined;\n  // flag that checks if there have been client-side tool calls (not executed by openai)\n  hasFunctionCall: boolean;\n}): LanguageModelV2FinishReason {\n  switch (finishReason) {\n    case undefined:\n    case null:\n      return hasFunctionCall ? 'tool-calls' : 'stop';\n    case 'max_output_tokens':\n      return 'length';\n    case 'content_filter':\n      return 'content-filter';\n    default:\n      return hasFunctionCall ? 'tool-calls' : 'unknown';\n  }\n}\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type OpenAIResponsesInput = Array<OpenAIResponsesInputItem>;\n\nexport type OpenAIResponsesInputItem =\n  | OpenAIResponsesSystemMessage\n  | OpenAIResponsesUserMessage\n  | OpenAIResponsesAssistantMessage\n  | OpenAIResponsesFunctionCall\n  | OpenAIResponsesFunctionCallOutput\n  | OpenAIResponsesComputerCall\n  | OpenAIResponsesLocalShellCall\n  | OpenAIResponsesLocalShellCallOutput\n  | OpenAIResponsesReasoning\n  | OpenAIResponsesItemReference;\n\nexport type OpenAIResponsesIncludeValue =\n  | 'web_search_call.action.sources'\n  | 'code_interpreter_call.outputs'\n  | 'computer_call_output.output.image_url'\n  | 'file_search_call.results'\n  | 'message.input_image.image_url'\n  | 'message.output_text.logprobs'\n  | 'reasoning.encrypted_content';\n\nexport type OpenAIResponsesIncludeOptions =\n  | Array<OpenAIResponsesIncludeValue>\n  | undefined\n  | null;\n\nexport type OpenAIResponsesSystemMessage = {\n  role: 'system' | 'developer';\n  content: string;\n};\n\nexport type OpenAIResponsesUserMessage = {\n  role: 'user';\n  content: Array<\n    | { type: 'input_text'; text: string }\n    | { type: 'input_image'; image_url: string }\n    | { type: 'input_image'; file_id: string }\n    | { type: 'input_file'; file_url: string }\n    | { type: 'input_file'; filename: string; file_data: string }\n    | { type: 'input_file'; file_id: string }\n  >;\n};\n\nexport type OpenAIResponsesAssistantMessage = {\n  role: 'assistant';\n  content: Array<{ type: 'output_text'; text: string }>;\n  id?: string;\n  phase?: 'commentary' | 'final_answer' | null;\n};\n\nexport type OpenAIResponsesFunctionCall = {\n  type: 'function_call';\n  call_id: string;\n  name: string;\n  arguments: string;\n  id?: string;\n};\n\nexport type OpenAIResponsesFunctionCallOutput = {\n  type: 'function_call_output';\n  call_id: string;\n  output:\n    | string\n    | Array<\n        | { type: 'input_text'; text: string }\n        | { type: 'input_image'; image_url: string }\n        | { type: 'input_file'; filename: string; file_data: string }\n      >;\n};\n\nexport type OpenAIResponsesComputerCall = {\n  type: 'computer_call';\n  id: string;\n  status?: string;\n};\n\nexport type OpenAIResponsesLocalShellCall = {\n  type: 'local_shell_call';\n  id: string;\n  call_id: string;\n  action: {\n    type: 'exec';\n    command: string[];\n    timeout_ms?: number;\n    user?: string;\n    working_directory?: string;\n    env?: Record<string, string>;\n  };\n};\n\nexport type OpenAIResponsesLocalShellCallOutput = {\n  type: 'local_shell_call_output';\n  call_id: string;\n  output: string;\n};\n\nexport type OpenAIResponsesItemReference = {\n  type: 'item_reference';\n  id: string;\n};\n\n/**\n * A filter used to compare a specified attribute key to a given value using a defined comparison operation.\n */\nexport type OpenAIResponsesFileSearchToolComparisonFilter = {\n  /**\n   * The key to compare against the value.\n   */\n  key: string;\n\n  /**\n   * Specifies the comparison operator: eq, ne, gt, gte, lt, lte, in, nin.\n   */\n  type: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin';\n\n  /**\n   * The value to compare against the attribute key; supports string, number, boolean, or array of string types.\n   */\n  value: string | number | boolean | string[];\n};\n\n/**\n * Combine multiple filters using and or or.\n */\nexport type OpenAIResponsesFileSearchToolCompoundFilter = {\n  /**\n   * Type of operation: and or or.\n   */\n  type: 'and' | 'or';\n\n  /**\n   * Array of filters to combine. Items can be ComparisonFilter or CompoundFilter.\n   */\n  filters: Array<\n    | OpenAIResponsesFileSearchToolComparisonFilter\n    | OpenAIResponsesFileSearchToolCompoundFilter\n  >;\n};\n\nexport type OpenAIResponsesTool =\n  | {\n      type: 'function';\n      name: string;\n      description: string | undefined;\n      parameters: JSONSchema7;\n      strict: boolean | undefined;\n    }\n  | {\n      type: 'web_search';\n      external_web_access: boolean | undefined;\n      filters: { allowed_domains: string[] | undefined } | undefined;\n      search_context_size: 'low' | 'medium' | 'high' | undefined;\n      user_location:\n        | {\n            type: 'approximate';\n            city?: string;\n            country?: string;\n            region?: string;\n            timezone?: string;\n          }\n        | undefined;\n    }\n  | {\n      type: 'web_search_preview';\n      search_context_size: 'low' | 'medium' | 'high' | undefined;\n      user_location:\n        | {\n            type: 'approximate';\n            city?: string;\n            country?: string;\n            region?: string;\n            timezone?: string;\n          }\n        | undefined;\n    }\n  | {\n      type: 'code_interpreter';\n      container: string | { type: 'auto'; file_ids: string[] | undefined };\n    }\n  | {\n      type: 'file_search';\n      vector_store_ids: string[];\n      max_num_results: number | undefined;\n      ranking_options:\n        | { ranker?: string; score_threshold?: number }\n        | undefined;\n      filters:\n        | OpenAIResponsesFileSearchToolComparisonFilter\n        | OpenAIResponsesFileSearchToolCompoundFilter\n        | undefined;\n    }\n  | {\n      type: 'image_generation';\n      background: 'auto' | 'opaque' | 'transparent' | undefined;\n      input_fidelity: 'low' | 'high' | undefined;\n      input_image_mask:\n        | {\n            file_id: string | undefined;\n            image_url: string | undefined;\n          }\n        | undefined;\n      model: string | undefined;\n      moderation: 'auto' | undefined;\n      output_compression: number | undefined;\n      output_format: 'png' | 'jpeg' | 'webp' | undefined;\n      quality: 'auto' | 'low' | 'medium' | 'high' | undefined;\n      size: 'auto' | '1024x1024' | '1024x1536' | '1536x1024' | undefined;\n    }\n  | {\n      type: 'local_shell';\n    };\n\nexport type OpenAIResponsesReasoning = {\n  type: 'reasoning';\n  id: string;\n  encrypted_content?: string | null;\n  summary: Array<{\n    type: 'summary_text';\n    text: string;\n  }>;\n};\n\nexport const openaiResponsesChunkSchema = lazyValidator(() =>\n  zodSchema(\n    z.union([\n      z.object({\n        type: z.literal('response.output_text.delta'),\n        item_id: z.string(),\n        delta: z.string(),\n        logprobs: z\n          .array(\n            z.object({\n              token: z.string(),\n              logprob: z.number(),\n              top_logprobs: z.array(\n                z.object({\n                  token: z.string(),\n                  logprob: z.number(),\n                }),\n              ),\n            }),\n          )\n          .nullish(),\n      }),\n      z.object({\n        type: z.enum(['response.completed', 'response.incomplete']),\n        response: z.object({\n          incomplete_details: z.object({ reason: z.string() }).nullish(),\n          usage: z.object({\n            input_tokens: z.number(),\n            input_tokens_details: z\n              .object({ cached_tokens: z.number().nullish() })\n              .nullish(),\n            output_tokens: z.number(),\n            output_tokens_details: z\n              .object({ reasoning_tokens: z.number().nullish() })\n              .nullish(),\n          }),\n          service_tier: z.string().nullish(),\n        }),\n      }),\n      z.object({\n        type: z.literal('response.created'),\n        response: z.object({\n          id: z.string(),\n          created_at: z.number(),\n          model: z.string(),\n          service_tier: z.string().nullish(),\n        }),\n      }),\n      z.object({\n        type: z.literal('response.output_item.added'),\n        output_index: z.number(),\n        item: z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('message'),\n            id: z.string(),\n            phase: z.enum(['commentary', 'final_answer']).nullish(),\n          }),\n          z.object({\n            type: z.literal('reasoning'),\n            id: z.string(),\n            encrypted_content: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('function_call'),\n            id: z.string(),\n            call_id: z.string(),\n            name: z.string(),\n            arguments: z.string(),\n          }),\n          z.object({\n            type: z.literal('web_search_call'),\n            id: z.string(),\n            status: z.string(),\n          }),\n          z.object({\n            type: z.literal('computer_call'),\n            id: z.string(),\n            status: z.string(),\n          }),\n          z.object({\n            type: z.literal('file_search_call'),\n            id: z.string(),\n          }),\n          z.object({\n            type: z.literal('image_generation_call'),\n            id: z.string(),\n          }),\n          z.object({\n            type: z.literal('code_interpreter_call'),\n            id: z.string(),\n            container_id: z.string(),\n            code: z.string().nullable(),\n            outputs: z\n              .array(\n                z.discriminatedUnion('type', [\n                  z.object({ type: z.literal('logs'), logs: z.string() }),\n                  z.object({ type: z.literal('image'), url: z.string() }),\n                ]),\n              )\n              .nullable(),\n            status: z.string(),\n          }),\n        ]),\n      }),\n      z.object({\n        type: z.literal('response.output_item.done'),\n        output_index: z.number(),\n        item: z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('message'),\n            id: z.string(),\n            phase: z.enum(['commentary', 'final_answer']).nullish(),\n          }),\n          z.object({\n            type: z.literal('reasoning'),\n            id: z.string(),\n            encrypted_content: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('function_call'),\n            id: z.string(),\n            call_id: z.string(),\n            name: z.string(),\n            arguments: z.string(),\n            status: z.literal('completed'),\n          }),\n          z.object({\n            type: z.literal('code_interpreter_call'),\n            id: z.string(),\n            code: z.string().nullable(),\n            container_id: z.string(),\n            outputs: z\n              .array(\n                z.discriminatedUnion('type', [\n                  z.object({ type: z.literal('logs'), logs: z.string() }),\n                  z.object({ type: z.literal('image'), url: z.string() }),\n                ]),\n              )\n              .nullable(),\n          }),\n          z.object({\n            type: z.literal('image_generation_call'),\n            id: z.string(),\n            result: z.string(),\n          }),\n          z.object({\n            type: z.literal('web_search_call'),\n            id: z.string(),\n            status: z.string(),\n            action: z\n              .discriminatedUnion('type', [\n                z.object({\n                  type: z.literal('search'),\n                  query: z.string().nullish(),\n                  sources: z\n                    .array(\n                      z.discriminatedUnion('type', [\n                        z.object({ type: z.literal('url'), url: z.string() }),\n                        z.object({ type: z.literal('api'), name: z.string() }),\n                      ]),\n                    )\n                    .nullish(),\n                }),\n                z.object({\n                  type: z.literal('open_page'),\n                  url: z.string().nullish(),\n                }),\n                z.object({\n                  type: z.literal('find_in_page'),\n                  url: z.string().nullish(),\n                  pattern: z.string().nullish(),\n                }),\n              ])\n              .nullish(),\n          }),\n          z.object({\n            type: z.literal('file_search_call'),\n            id: z.string(),\n            queries: z.array(z.string()),\n            results: z\n              .array(\n                z.object({\n                  attributes: z.record(z.string(), z.unknown()),\n                  file_id: z.string(),\n                  filename: z.string(),\n                  score: z.number(),\n                  text: z.string(),\n                }),\n              )\n              .nullish(),\n          }),\n          z.object({\n            type: z.literal('local_shell_call'),\n            id: z.string(),\n            call_id: z.string(),\n            action: z.object({\n              type: z.literal('exec'),\n              command: z.array(z.string()),\n              timeout_ms: z.number().optional(),\n              user: z.string().optional(),\n              working_directory: z.string().optional(),\n              env: z.record(z.string(), z.string()).optional(),\n            }),\n          }),\n          z.object({\n            type: z.literal('computer_call'),\n            id: z.string(),\n            status: z.literal('completed'),\n          }),\n        ]),\n      }),\n      z.object({\n        type: z.literal('response.function_call_arguments.delta'),\n        item_id: z.string(),\n        output_index: z.number(),\n        delta: z.string(),\n      }),\n      z.object({\n        type: z.literal('response.image_generation_call.partial_image'),\n        item_id: z.string(),\n        output_index: z.number(),\n        partial_image_b64: z.string(),\n      }),\n      z.object({\n        type: z.literal('response.code_interpreter_call_code.delta'),\n        item_id: z.string(),\n        output_index: z.number(),\n        delta: z.string(),\n      }),\n      z.object({\n        type: z.literal('response.code_interpreter_call_code.done'),\n        item_id: z.string(),\n        output_index: z.number(),\n        code: z.string(),\n      }),\n      z.object({\n        type: z.literal('response.output_text.annotation.added'),\n        annotation: z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('url_citation'),\n            start_index: z.number(),\n            end_index: z.number(),\n            url: z.string(),\n            title: z.string(),\n          }),\n          z.object({\n            type: z.literal('file_citation'),\n            file_id: z.string(),\n            filename: z.string().nullish(),\n            index: z.number().nullish(),\n            start_index: z.number().nullish(),\n            end_index: z.number().nullish(),\n            quote: z.string().nullish(),\n          }),\n        ]),\n      }),\n      z.object({\n        type: z.literal('response.reasoning_summary_part.added'),\n        item_id: z.string(),\n        summary_index: z.number(),\n      }),\n      z.object({\n        type: z.literal('response.reasoning_summary_text.delta'),\n        item_id: z.string(),\n        summary_index: z.number(),\n        delta: z.string(),\n      }),\n      z.object({\n        type: z.literal('response.reasoning_summary_part.done'),\n        item_id: z.string(),\n        summary_index: z.number(),\n      }),\n      z.object({\n        type: z.literal('error'),\n        sequence_number: z.number(),\n        error: z.object({\n          type: z.string(),\n          code: z.string(),\n          message: z.string(),\n          param: z.string().nullish(),\n        }),\n      }),\n      z\n        .object({ type: z.string() })\n        .loose()\n        .transform(value => ({\n          type: 'unknown_chunk' as const,\n          message: value.type,\n        })), // fallback for unknown chunks\n    ]),\n  ),\n);\n\nexport type OpenAIResponsesChunk = InferValidator<\n  typeof openaiResponsesChunkSchema\n>;\n\nexport type OpenAIResponsesLogprobs = NonNullable<\n  (OpenAIResponsesChunk & {\n    type: 'response.output_text.delta';\n  })['logprobs']\n> | null;\n\nexport type OpenAIResponsesWebSearchAction = NonNullable<\n  ((OpenAIResponsesChunk & {\n    type: 'response.output_item.done';\n  })['item'] & {\n    type: 'web_search_call';\n  })['action']\n>;\n\nexport const openaiResponsesResponseSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      id: z.string().optional(),\n      created_at: z.number().optional(),\n      error: z\n        .object({\n          message: z.string(),\n          type: z.string(),\n          param: z.string().nullish(),\n          code: z.string(),\n        })\n        .nullish(),\n      model: z.string().optional(),\n      output: z\n        .array(\n          z.discriminatedUnion('type', [\n            z.object({\n              type: z.literal('message'),\n              role: z.literal('assistant'),\n              id: z.string(),\n              phase: z.enum(['commentary', 'final_answer']).nullish(),\n              content: z.array(\n                z.object({\n                  type: z.literal('output_text'),\n                  text: z.string(),\n                  logprobs: z\n                    .array(\n                      z.object({\n                        token: z.string(),\n                        logprob: z.number(),\n                        top_logprobs: z.array(\n                          z.object({\n                            token: z.string(),\n                            logprob: z.number(),\n                          }),\n                        ),\n                      }),\n                    )\n                    .nullish(),\n                  annotations: z.array(\n                    z.discriminatedUnion('type', [\n                      z.object({\n                        type: z.literal('url_citation'),\n                        start_index: z.number(),\n                        end_index: z.number(),\n                        url: z.string(),\n                        title: z.string(),\n                      }),\n                      z.object({\n                        type: z.literal('file_citation'),\n                        file_id: z.string(),\n                        filename: z.string().nullish(),\n                        index: z.number().nullish(),\n                        start_index: z.number().nullish(),\n                        end_index: z.number().nullish(),\n                        quote: z.string().nullish(),\n                      }),\n                      z.object({\n                        type: z.literal('container_file_citation'),\n                        container_id: z.string(),\n                        file_id: z.string(),\n                        filename: z.string().nullish(),\n                        start_index: z.number().nullish(),\n                        end_index: z.number().nullish(),\n                        index: z.number().nullish(),\n                      }),\n                      z.object({\n                        type: z.literal('file_path'),\n                        file_id: z.string(),\n                        index: z.number().nullish(),\n                      }),\n                    ]),\n                  ),\n                }),\n              ),\n            }),\n            z.object({\n              type: z.literal('web_search_call'),\n              id: z.string(),\n              status: z.string(),\n              action: z\n                .discriminatedUnion('type', [\n                  z.object({\n                    type: z.literal('search'),\n                    query: z.string().nullish(),\n                    sources: z\n                      .array(\n                        z.discriminatedUnion('type', [\n                          z.object({ type: z.literal('url'), url: z.string() }),\n                          z.object({\n                            type: z.literal('api'),\n                            name: z.string(),\n                          }),\n                        ]),\n                      )\n                      .nullish(),\n                  }),\n                  z.object({\n                    type: z.literal('open_page'),\n                    url: z.string().nullish(),\n                  }),\n                  z.object({\n                    type: z.literal('find_in_page'),\n                    url: z.string().nullish(),\n                    pattern: z.string().nullish(),\n                  }),\n                ])\n                .nullish(),\n            }),\n            z.object({\n              type: z.literal('file_search_call'),\n              id: z.string(),\n              queries: z.array(z.string()),\n              results: z\n                .array(\n                  z.object({\n                    attributes: z.record(\n                      z.string(),\n                      z.union([z.string(), z.number(), z.boolean()]),\n                    ),\n                    file_id: z.string(),\n                    filename: z.string(),\n                    score: z.number(),\n                    text: z.string(),\n                  }),\n                )\n                .nullish(),\n            }),\n            z.object({\n              type: z.literal('code_interpreter_call'),\n              id: z.string(),\n              code: z.string().nullable(),\n              container_id: z.string(),\n              outputs: z\n                .array(\n                  z.discriminatedUnion('type', [\n                    z.object({ type: z.literal('logs'), logs: z.string() }),\n                    z.object({ type: z.literal('image'), url: z.string() }),\n                  ]),\n                )\n                .nullable(),\n            }),\n            z.object({\n              type: z.literal('image_generation_call'),\n              id: z.string(),\n              result: z.string(),\n            }),\n            z.object({\n              type: z.literal('local_shell_call'),\n              id: z.string(),\n              call_id: z.string(),\n              action: z.object({\n                type: z.literal('exec'),\n                command: z.array(z.string()),\n                timeout_ms: z.number().optional(),\n                user: z.string().optional(),\n                working_directory: z.string().optional(),\n                env: z.record(z.string(), z.string()).optional(),\n              }),\n            }),\n            z.object({\n              type: z.literal('function_call'),\n              call_id: z.string(),\n              name: z.string(),\n              arguments: z.string(),\n              id: z.string(),\n            }),\n            z.object({\n              type: z.literal('computer_call'),\n              id: z.string(),\n              status: z.string().optional(),\n            }),\n            z.object({\n              type: z.literal('reasoning'),\n              id: z.string(),\n              encrypted_content: z.string().nullish(),\n              summary: z.array(\n                z.object({\n                  type: z.literal('summary_text'),\n                  text: z.string(),\n                }),\n              ),\n            }),\n          ]),\n        )\n        .optional(),\n      service_tier: z.string().nullish(),\n      incomplete_details: z.object({ reason: z.string() }).nullish(),\n      usage: z\n        .object({\n          input_tokens: z.number(),\n          input_tokens_details: z\n            .object({ cached_tokens: z.number().nullish() })\n            .nullish(),\n          output_tokens: z.number(),\n          output_tokens_details: z\n            .object({ reasoning_tokens: z.number().nullish() })\n            .nullish(),\n        })\n        .optional(),\n    }),\n  ),\n);\n","import {\n  type InferValidator,\n  lazyValidator,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * `top_logprobs` request body argument can be set to an integer between\n * 0 and 20 specifying the number of most likely tokens to return at each\n * token position, each with an associated log probability.\n *\n * @see https://platform.openai.com/docs/api-reference/responses/create#responses_create-top_logprobs\n */\nexport const TOP_LOGPROBS_MAX = 20;\n\nexport const openaiResponsesReasoningModelIds = [\n  'o1',\n  'o1-2024-12-17',\n  'o3',\n  'o3-2025-04-16',\n  'o3-deep-research',\n  'o3-deep-research-2025-06-26',\n  'o3-mini',\n  'o3-mini-2025-01-31',\n  'o4-mini',\n  'o4-mini-2025-04-16',\n  'o4-mini-deep-research',\n  'o4-mini-deep-research-2025-06-26',\n  'codex-mini-latest',\n  'computer-use-preview',\n  'gpt-5',\n  'gpt-5-2025-08-07',\n  'gpt-5-codex',\n  'gpt-5-mini',\n  'gpt-5-mini-2025-08-07',\n  'gpt-5-nano',\n  'gpt-5-nano-2025-08-07',\n  'gpt-5-pro',\n  'gpt-5-pro-2025-10-06',\n  'gpt-5.1',\n  'gpt-5.1-chat-latest',\n  'gpt-5.1-codex-mini',\n  'gpt-5.1-codex',\n  'gpt-5.1-codex-max',\n  'gpt-5.2',\n  'gpt-5.2-chat-latest',\n  'gpt-5.2-pro',\n  'gpt-5.2-codex',\n  'gpt-5.3-chat-latest',\n  'gpt-5.3-codex',\n  'gpt-5.4',\n  'gpt-5.4-2026-03-05',\n  'gpt-5.4-mini',\n  'gpt-5.4-mini-2026-03-17',\n  'gpt-5.4-nano',\n  'gpt-5.4-nano-2026-03-17',\n  'gpt-5.4-pro',\n  'gpt-5.4-pro-2026-03-05',\n] as const;\n\nexport const openaiResponsesModelIds = [\n  'gpt-4.1',\n  'gpt-4.1-2025-04-14',\n  'gpt-4.1-mini',\n  'gpt-4.1-mini-2025-04-14',\n  'gpt-4.1-nano',\n  'gpt-4.1-nano-2025-04-14',\n  'gpt-4o',\n  'gpt-4o-2024-05-13',\n  'gpt-4o-2024-08-06',\n  'gpt-4o-2024-11-20',\n  'gpt-4o-audio-preview',\n  'gpt-4o-audio-preview-2024-10-01',\n  'gpt-4o-audio-preview-2024-12-17',\n  'gpt-4o-search-preview',\n  'gpt-4o-search-preview-2025-03-11',\n  'gpt-4o-mini-search-preview',\n  'gpt-4o-mini-search-preview-2025-03-11',\n  'gpt-4o-mini',\n  'gpt-4o-mini-2024-07-18',\n  'gpt-4-turbo',\n  'gpt-4-turbo-2024-04-09',\n  'gpt-4-turbo-preview',\n  'gpt-4-0125-preview',\n  'gpt-4-1106-preview',\n  'gpt-4',\n  'gpt-4-0613',\n  'gpt-4.5-preview',\n  'gpt-4.5-preview-2025-02-27',\n  'gpt-3.5-turbo-0125',\n  'gpt-3.5-turbo',\n  'gpt-3.5-turbo-1106',\n  'chatgpt-4o-latest',\n  'gpt-5-chat-latest',\n  ...openaiResponsesReasoningModelIds,\n] as const;\n\nexport type OpenAIResponsesModelId =\n  | 'chatgpt-4o-latest'\n  | 'gpt-3.5-turbo-0125'\n  | 'gpt-3.5-turbo-1106'\n  | 'gpt-3.5-turbo'\n  | 'gpt-4-0613'\n  | 'gpt-4-turbo-2024-04-09'\n  | 'gpt-4-turbo'\n  | 'gpt-4.1-2025-04-14'\n  | 'gpt-4.1-mini-2025-04-14'\n  | 'gpt-4.1-mini'\n  | 'gpt-4.1-nano-2025-04-14'\n  | 'gpt-4.1-nano'\n  | 'gpt-4.1'\n  | 'gpt-4'\n  | 'gpt-4o-2024-05-13'\n  | 'gpt-4o-2024-08-06'\n  | 'gpt-4o-2024-11-20'\n  | 'gpt-4o-mini-2024-07-18'\n  | 'gpt-4o-mini'\n  | 'gpt-4o'\n  | 'gpt-5.1'\n  | 'gpt-5.1-chat-latest'\n  | 'gpt-5.1-codex-mini'\n  | 'gpt-5.1-codex'\n  | 'gpt-5.1-codex-max'\n  | 'gpt-5.2'\n  | 'gpt-5.2-chat-latest'\n  | 'gpt-5.2-pro'\n  | 'gpt-5.2-codex'\n  | 'gpt-5.3-chat-latest'\n  | 'gpt-5.3-codex'\n  | 'gpt-5.4'\n  | 'gpt-5.4-2026-03-05'\n  | 'gpt-5.4-mini'\n  | 'gpt-5.4-mini-2026-03-17'\n  | 'gpt-5.4-nano'\n  | 'gpt-5.4-nano-2026-03-17'\n  | 'gpt-5.4-pro'\n  | 'gpt-5.4-pro-2026-03-05'\n  | 'gpt-5-2025-08-07'\n  | 'gpt-5-chat-latest'\n  | 'gpt-5-codex'\n  | 'gpt-5-mini-2025-08-07'\n  | 'gpt-5-mini'\n  | 'gpt-5-nano-2025-08-07'\n  | 'gpt-5-nano'\n  | 'gpt-5-pro-2025-10-06'\n  | 'gpt-5-pro'\n  | 'gpt-5'\n  | 'o1-2024-12-17'\n  | 'o1'\n  | 'o3-2025-04-16'\n  | 'o3-mini-2025-01-31'\n  | 'o3-mini'\n  | 'o3'\n  | (string & {});\n\n// TODO AI SDK 6: use optional here instead of nullish\nexport const openaiResponsesProviderOptionsSchema = lazyValidator(() =>\n  zodSchema(\n    z.object({\n      conversation: z.string().nullish(),\n      include: z\n        .array(\n          z.enum([\n            'reasoning.encrypted_content', // handled internally by default, only needed for unknown reasoning models\n            'file_search_call.results',\n            'message.output_text.logprobs',\n          ]),\n        )\n        .nullish(),\n      instructions: z.string().nullish(),\n\n      /**\n       * Return the log probabilities of the tokens.\n       *\n       * Setting to true will return the log probabilities of the tokens that\n       * were generated.\n       *\n       * Setting to a number will return the log probabilities of the top n\n       * tokens that were generated.\n       *\n       * @see https://platform.openai.com/docs/api-reference/responses/create\n       * @see https://cookbook.openai.com/examples/using_logprobs\n       */\n      logprobs: z\n        .union([z.boolean(), z.number().min(1).max(TOP_LOGPROBS_MAX)])\n        .optional(),\n\n      /**\n       * The maximum number of total calls to built-in tools that can be processed in a response.\n       * This maximum number applies across all built-in tool calls, not per individual tool.\n       * Any further attempts to call a tool by the model will be ignored.\n       */\n      maxToolCalls: z.number().nullish(),\n\n      metadata: z.any().nullish(),\n      parallelToolCalls: z.boolean().nullish(),\n      previousResponseId: z.string().nullish(),\n      promptCacheKey: z.string().nullish(),\n\n      /**\n       * The retention policy for the prompt cache.\n       * - 'in_memory': Default. Standard prompt caching behavior.\n       * - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.\n       *          Currently only available for 5.1 series models.\n       *\n       * @default 'in_memory'\n       */\n      promptCacheRetention: z.enum(['in_memory', '24h']).nullish(),\n\n      /**\n       * Reasoning effort for reasoning models. Defaults to `medium`. If you use\n       * `providerOptions` to set the `reasoningEffort` option, this model setting will be ignored.\n       * Valid values: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'\n       *\n       * The 'none' type for `reasoningEffort` is only available for OpenAI's GPT-5.1\n       * models. Also, the 'xhigh' type for `reasoningEffort` is only available for\n       * OpenAI's GPT-5.1-Codex-Max model. Setting `reasoningEffort` to 'none' or 'xhigh' with unsupported models will result in\n       * an error.\n       */\n      reasoningEffort: z.string().nullish(),\n      reasoningSummary: z.string().nullish(),\n      safetyIdentifier: z.string().nullish(),\n      serviceTier: z.enum(['auto', 'flex', 'priority', 'default']).nullish(),\n      store: z.boolean().nullish(),\n      strictJsonSchema: z.boolean().nullish(),\n      textVerbosity: z.enum(['low', 'medium', 'high']).nullish(),\n      truncation: z.enum(['auto', 'disabled']).nullish(),\n      user: z.string().nullish(),\n    }),\n  ),\n);\n\nexport type OpenAIResponsesProviderOptions = InferValidator<\n  typeof openaiResponsesProviderOptionsSchema\n>;\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const codeInterpreterInputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      code: z.string().nullish(),\n      containerId: z.string(),\n    }),\n  ),\n);\n\nexport const codeInterpreterOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      outputs: z\n        .array(\n          z.discriminatedUnion('type', [\n            z.object({ type: z.literal('logs'), logs: z.string() }),\n            z.object({ type: z.literal('image'), url: z.string() }),\n          ]),\n        )\n        .nullish(),\n    }),\n  ),\n);\n\nexport const codeInterpreterArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      container: z\n        .union([\n          z.string(),\n          z.object({\n            fileIds: z.array(z.string()).optional(),\n          }),\n        ])\n        .optional(),\n    }),\n  ),\n);\n\ntype CodeInterpreterArgs = {\n  /**\n   * The code interpreter container.\n   * Can be a container ID\n   * or an object that specifies uploaded file IDs to make available to your code.\n   */\n  container?: string | { fileIds?: string[] };\n};\n\nexport const codeInterpreterToolFactory =\n  createProviderDefinedToolFactoryWithOutputSchema<\n    {\n      /**\n       * The code to run, or null if not available.\n       */\n      code?: string | null;\n\n      /**\n       * The ID of the container used to run the code.\n       */\n      containerId: string;\n    },\n    {\n      /**\n       * The outputs generated by the code interpreter, such as logs or images.\n       * Can be null if no outputs are available.\n       */\n      outputs?: Array<\n        | {\n            type: 'logs';\n\n            /**\n             * The logs output from the code interpreter.\n             */\n            logs: string;\n          }\n        | {\n            type: 'image';\n\n            /**\n             * The URL of the image output from the code interpreter.\n             */\n            url: string;\n          }\n      > | null;\n    },\n    CodeInterpreterArgs\n  >({\n    id: 'openai.code_interpreter',\n    name: 'code_interpreter',\n    inputSchema: codeInterpreterInputSchema,\n    outputSchema: codeInterpreterOutputSchema,\n  });\n\nexport const codeInterpreter = (\n  args: CodeInterpreterArgs = {}, // default\n) => {\n  return codeInterpreterToolFactory(args);\n};\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type {\n  OpenAIResponsesFileSearchToolComparisonFilter,\n  OpenAIResponsesFileSearchToolCompoundFilter,\n} from '../responses/openai-responses-api';\n\nconst comparisonFilterSchema = z.object({\n  key: z.string(),\n  type: z.enum(['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'in', 'nin']),\n  value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]),\n});\n\nconst compoundFilterSchema: z.ZodType<any> = z.object({\n  type: z.enum(['and', 'or']),\n  filters: z.array(\n    z.union([comparisonFilterSchema, z.lazy(() => compoundFilterSchema)]),\n  ),\n});\n\nexport const fileSearchArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      vectorStoreIds: z.array(z.string()),\n      maxNumResults: z.number().optional(),\n      ranking: z\n        .object({\n          ranker: z.string().optional(),\n          scoreThreshold: z.number().optional(),\n        })\n        .optional(),\n      filters: z\n        .union([comparisonFilterSchema, compoundFilterSchema])\n        .optional(),\n    }),\n  ),\n);\n\nexport const fileSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      queries: z.array(z.string()),\n      results: z\n        .array(\n          z.object({\n            attributes: z.record(z.string(), z.unknown()),\n            fileId: z.string(),\n            filename: z.string(),\n            score: z.number(),\n            text: z.string(),\n          }),\n        )\n        .nullable(),\n    }),\n  ),\n);\n\nexport const fileSearch = createProviderDefinedToolFactoryWithOutputSchema<\n  {},\n  {\n    /**\n     * The search query to execute.\n     */\n    queries: string[];\n\n    /**\n     * The results of the file search tool call.\n     */\n    results:\n      | null\n      | {\n          /**\n           * Set of 16 key-value pairs that can be attached to an object.\n           * This can be useful for storing additional information about the object\n           * in a structured format, and querying for objects via API or the dashboard.\n           * Keys are strings with a maximum length of 64 characters.\n           * Values are strings with a maximum length of 512 characters, booleans, or numbers.\n           */\n          attributes: Record<string, unknown>;\n\n          /**\n           * The unique ID of the file.\n           */\n          fileId: string;\n\n          /**\n           * The name of the file.\n           */\n          filename: string;\n\n          /**\n           * The relevance score of the file - a value between 0 and 1.\n           */\n          score: number;\n\n          /**\n           * The text that was retrieved from the file.\n           */\n          text: string;\n        }[];\n  },\n  {\n    /**\n     * List of vector store IDs to search through.\n     */\n    vectorStoreIds: string[];\n\n    /**\n     * Maximum number of search results to return. Defaults to 10.\n     */\n    maxNumResults?: number;\n\n    /**\n     * Ranking options for the search.\n     */\n    ranking?: {\n      /**\n       * The ranker to use for the file search.\n       */\n      ranker?: string;\n\n      /**\n       * The score threshold for the file search, a number between 0 and 1.\n       * Numbers closer to 1 will attempt to return only the most relevant results,\n       * but may return fewer results.\n       */\n      scoreThreshold?: number;\n    };\n\n    /**\n     * A filter to apply.\n     */\n    filters?:\n      | OpenAIResponsesFileSearchToolComparisonFilter\n      | OpenAIResponsesFileSearchToolCompoundFilter;\n  }\n>({\n  id: 'openai.file_search',\n  name: 'file_search',\n  inputSchema: z.object({}),\n  outputSchema: fileSearchOutputSchema,\n});\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webSearchArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      externalWebAccess: z.boolean().optional(),\n      filters: z\n        .object({ allowedDomains: z.array(z.string()).optional() })\n        .optional(),\n      searchContextSize: z.enum(['low', 'medium', 'high']).optional(),\n      userLocation: z\n        .object({\n          type: z.literal('approximate'),\n          country: z.string().optional(),\n          city: z.string().optional(),\n          region: z.string().optional(),\n          timezone: z.string().optional(),\n        })\n        .optional(),\n    }),\n  ),\n);\n\nconst webSearchInputSchema = lazySchema(() => zodSchema(z.object({})));\n\nexport const webSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z\n        .discriminatedUnion('type', [\n          z.object({\n            type: z.literal('search'),\n            query: z.string().optional(),\n          }),\n          z.object({\n            type: z.literal('openPage'),\n            url: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('findInPage'),\n            url: z.string().nullish(),\n            pattern: z.string().nullish(),\n          }),\n        ])\n        .optional(),\n      sources: z\n        .array(\n          z.discriminatedUnion('type', [\n            z.object({ type: z.literal('url'), url: z.string() }),\n            z.object({ type: z.literal('api'), name: z.string() }),\n          ]),\n        )\n        .optional(),\n    }),\n  ),\n);\n\nexport const webSearchToolFactory =\n  createProviderDefinedToolFactoryWithOutputSchema<\n    {\n      // Web search doesn't take input parameters - it's controlled by the prompt\n    },\n    {\n      /**\n       * An object describing the specific action taken in this web search call.\n       * Includes details on how the model used the web (search, open_page, findInPage).\n       */\n      action?:\n        | {\n            /**\n             * Action type \"search\" - Performs a web search query.\n             */\n            type: 'search';\n\n            /**\n             * The search query.\n             */\n            query?: string;\n          }\n        | {\n            /**\n             * Action type \"openPage\" - Opens a specific URL from search results.\n             */\n            type: 'openPage';\n\n            /**\n             * The URL opened by the model.\n             */\n            url?: string | null;\n          }\n        | {\n            /**\n             * Action type \"findInPage\": Searches for a pattern within a loaded page.\n             */\n            type: 'findInPage';\n\n            /**\n             * The URL of the page searched for the pattern.\n             */\n            url?: string | null;\n\n            /**\n             * The pattern or text to search for within the page.\n             */\n            pattern?: string | null;\n          };\n\n      /**\n       * Optional sources cited by the model for the web search call.\n       */\n      sources?: Array<\n        { type: 'url'; url: string } | { type: 'api'; name: string }\n      >;\n    },\n    {\n      /**\n       * Whether to use external web access for fetching live content.\n       * - true: Fetch live web content (default)\n       * - false: Use cached/indexed results\n       */\n      externalWebAccess?: boolean;\n\n      /**\n       * Filters for the search.\n       */\n      filters?: {\n        /**\n         * Allowed domains for the search.\n         * If not provided, all domains are allowed.\n         * Subdomains of the provided domains are allowed as well.\n         */\n        allowedDomains?: string[];\n      };\n\n      /**\n       * Search context size to use for the web search.\n       * - high: Most comprehensive context, highest cost, slower response\n       * - medium: Balanced context, cost, and latency (default)\n       * - low: Least context, lowest cost, fastest response\n       */\n      searchContextSize?: 'low' | 'medium' | 'high';\n\n      /**\n       * User location information to provide geographically relevant search results.\n       */\n      userLocation?: {\n        /**\n         * Type of location (always 'approximate')\n         */\n        type: 'approximate';\n        /**\n         * Two-letter ISO country code (e.g., 'US', 'GB')\n         */\n        country?: string;\n        /**\n         * City name (free text, e.g., 'Minneapolis')\n         */\n        city?: string;\n        /**\n         * Region name (free text, e.g., 'Minnesota')\n         */\n        region?: string;\n        /**\n         * IANA timezone (e.g., 'America/Chicago')\n         */\n        timezone?: string;\n      };\n    }\n  >({\n    id: 'openai.web_search',\n    name: 'web_search',\n    inputSchema: webSearchInputSchema,\n    outputSchema: webSearchOutputSchema,\n  });\n\nexport const webSearch = (\n  args: Parameters<typeof webSearchToolFactory>[0] = {}, // default\n) => webSearchToolFactory(args);\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webSearchPreviewArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      searchContextSize: z.enum(['low', 'medium', 'high']).optional(),\n      userLocation: z\n        .object({\n          type: z.literal('approximate'),\n          country: z.string().optional(),\n          city: z.string().optional(),\n          region: z.string().optional(),\n          timezone: z.string().optional(),\n        })\n        .optional(),\n    }),\n  ),\n);\n\nexport const webSearchPreviewInputSchema = lazySchema(() =>\n  zodSchema(z.object({})),\n);\n\nconst webSearchPreviewOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z\n        .discriminatedUnion('type', [\n          z.object({\n            type: z.literal('search'),\n            query: z.string().optional(),\n          }),\n          z.object({\n            type: z.literal('openPage'),\n            url: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('findInPage'),\n            url: z.string().nullish(),\n            pattern: z.string().nullish(),\n          }),\n        ])\n        .optional(),\n    }),\n  ),\n);\n\nexport const webSearchPreview =\n  createProviderDefinedToolFactoryWithOutputSchema<\n    {\n      // Web search preview doesn't take input parameters - it's controlled by the prompt\n    },\n    {\n      /**\n       * An object describing the specific action taken in this web search call.\n       * Includes details on how the model used the web (search, open_page, findInPage).\n       */\n      action?:\n        | {\n            /**\n             * Action type \"search\" - Performs a web search query.\n             */\n            type: 'search';\n\n            /**\n             * The search query.\n             */\n            query?: string;\n          }\n        | {\n            /**\n             * Action type \"openPage\" - Opens a specific URL from search results.\n             */\n            type: 'openPage';\n\n            /**\n             * The URL opened by the model.\n             */\n            url?: string | null;\n          }\n        | {\n            /**\n             * Action type \"findInPage\": Searches for a pattern within a loaded page.\n             */\n            type: 'findInPage';\n\n            /**\n             * The URL of the page searched for the pattern.\n             */\n            url?: string | null;\n            /**\n             * The pattern or text to search for within the page.\n             */\n            pattern?: string | null;\n          };\n    },\n    {\n      /**\n       * Search context size to use for the web search.\n       * - high: Most comprehensive context, highest cost, slower response\n       * - medium: Balanced context, cost, and latency (default)\n       * - low: Least context, lowest cost, fastest response\n       */\n      searchContextSize?: 'low' | 'medium' | 'high';\n\n      /**\n       * User location information to provide geographically relevant search results.\n       */\n      userLocation?: {\n        /**\n         * Type of location (always 'approximate')\n         */\n        type: 'approximate';\n        /**\n         * Two-letter ISO country code (e.g., 'US', 'GB')\n         */\n        country?: string;\n        /**\n         * City name (free text, e.g., 'Minneapolis')\n         */\n        city?: string;\n        /**\n         * Region name (free text, e.g., 'Minnesota')\n         */\n        region?: string;\n        /**\n         * IANA timezone (e.g., 'America/Chicago')\n         */\n        timezone?: string;\n      };\n    }\n  >({\n    id: 'openai.web_search_preview',\n    name: 'web_search_preview',\n    inputSchema: webSearchPreviewInputSchema,\n    outputSchema: webSearchPreviewOutputSchema,\n  });\n","import {\n  createProviderDefinedToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const imageGenerationArgsSchema = lazySchema(() =>\n  zodSchema(\n    z\n      .object({\n        background: z.enum(['auto', 'opaque', 'transparent']).optional(),\n        inputFidelity: z.enum(['low', 'high']).optional(),\n        inputImageMask: z\n          .object({\n            fileId: z.string().optional(),\n            imageUrl: z.string().optional(),\n          })\n          .optional(),\n        model: z.string().optional(),\n        moderation: z.enum(['auto']).optional(),\n        outputCompression: z.number().int().min(0).max(100).optional(),\n        outputFormat: z.enum(['png', 'jpeg', 'webp']).optional(),\n        partialImages: z.number().int().min(0).max(3).optional(),\n        quality: z.enum(['auto', 'low', 'medium', 'high']).optional(),\n        size: z\n          .enum(['1024x1024', '1024x1536', '1536x1024', 'auto'])\n          .optional(),\n      })\n      .strict(),\n  ),\n);\n\nconst imageGenerationInputSchema = lazySchema(() => zodSchema(z.object({})));\n\nexport const imageGenerationOutputSchema = lazySchema(() =>\n  zodSchema(z.object({ result: z.string() })),\n);\n\ntype ImageGenerationArgs = {\n  /**\n   * Background type for the generated image. Default is 'auto'.\n   */\n  background?: 'auto' | 'opaque' | 'transparent';\n\n  /**\n   * Input fidelity for the generated image. Default is 'low'.\n   */\n  inputFidelity?: 'low' | 'high';\n\n  /**\n   * Optional mask for inpainting.\n   * Contains image_url (string, optional) and file_id (string, optional).\n   */\n  inputImageMask?: {\n    /**\n     * File ID for the mask image.\n     */\n    fileId?: string;\n\n    /**\n     * Base64-encoded mask image.\n     */\n    imageUrl?: string;\n  };\n\n  /**\n   * The image generation model to use. Default: gpt-image-1.\n   */\n  model?: string;\n\n  /**\n   * Moderation level for the generated image. Default: auto.\n   */\n  moderation?: 'auto';\n\n  /**\n   * Compression level for the output image. Default: 100.\n   */\n  outputCompression?: number;\n\n  /**\n   * The output format of the generated image. One of png, webp, or jpeg.\n   * Default: png\n   */\n  outputFormat?: 'png' | 'jpeg' | 'webp';\n\n  /**\n   * The quality of the generated image.\n   * One of low, medium, high, or auto. Default: auto.\n   */\n  quality?: 'auto' | 'low' | 'medium' | 'high';\n\n  /**\n   * The size of the generated image.\n   * One of 1024x1024, 1024x1536, 1536x1024, or auto.\n   * Default: auto.\n   */\n  size?: 'auto' | '1024x1024' | '1024x1536' | '1536x1024';\n};\n\nconst imageGenerationToolFactory =\n  createProviderDefinedToolFactoryWithOutputSchema<\n    {},\n    {\n      /**\n       * The generated image encoded in base64.\n       */\n      result: string;\n    },\n    ImageGenerationArgs\n  >({\n    id: 'openai.image_generation',\n    name: 'image_generation',\n    inputSchema: imageGenerationInputSchema,\n    outputSchema: imageGenerationOutputSchema,\n  });\n\nexport const imageGeneration = (\n  args: ImageGenerationArgs = {}, // default\n) => {\n  return imageGenerationToolFactory(args);\n};\n","import {\n  type LanguageModelV2CallOptions,\n  type LanguageModelV2CallWarning,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { codeInterpreterArgsSchema } from '../tool/code-interpreter';\nimport { fileSearchArgsSchema } from '../tool/file-search';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { webSearchPreviewArgsSchema } from '../tool/web-search-preview';\nimport { imageGenerationArgsSchema } from '../tool/image-generation';\nimport type { OpenAIResponsesTool } from './openai-responses-api';\nimport { validateTypes } from '@ai-sdk/provider-utils';\n\nexport async function prepareResponsesTools({\n  tools,\n  toolChoice,\n  strictJsonSchema,\n}: {\n  tools: LanguageModelV2CallOptions['tools'];\n  toolChoice?: LanguageModelV2CallOptions['toolChoice'];\n  strictJsonSchema: boolean;\n}): Promise<{\n  tools?: Array<OpenAIResponsesTool>;\n  toolChoice?:\n    | 'auto'\n    | 'none'\n    | 'required'\n    | { type: 'file_search' }\n    | { type: 'web_search_preview' }\n    | { type: 'web_search' }\n    | { type: 'function'; name: string }\n    | { type: 'code_interpreter' }\n    | { type: 'image_generation' };\n  toolWarnings: LanguageModelV2CallWarning[];\n}> {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: LanguageModelV2CallWarning[] = [];\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  const openaiTools: Array<OpenAIResponsesTool> = [];\n\n  for (const tool of tools) {\n    switch (tool.type) {\n      case 'function':\n        openaiTools.push({\n          type: 'function',\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n          strict: strictJsonSchema,\n        });\n        break;\n      case 'provider-defined': {\n        switch (tool.id) {\n          case 'openai.file_search': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: fileSearchArgsSchema,\n            });\n\n            openaiTools.push({\n              type: 'file_search',\n              vector_store_ids: args.vectorStoreIds,\n              max_num_results: args.maxNumResults,\n              ranking_options: args.ranking\n                ? {\n                    ranker: args.ranking.ranker,\n                    score_threshold: args.ranking.scoreThreshold,\n                  }\n                : undefined,\n              filters: args.filters,\n            });\n\n            break;\n          }\n          case 'openai.local_shell': {\n            openaiTools.push({\n              type: 'local_shell',\n            });\n            break;\n          }\n          case 'openai.web_search_preview': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearchPreviewArgsSchema,\n            });\n            openaiTools.push({\n              type: 'web_search_preview',\n              search_context_size: args.searchContextSize,\n              user_location: args.userLocation,\n            });\n            break;\n          }\n          case 'openai.web_search': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearchArgsSchema,\n            });\n            openaiTools.push({\n              type: 'web_search',\n              filters:\n                args.filters != null\n                  ? { allowed_domains: args.filters.allowedDomains }\n                  : undefined,\n              external_web_access: args.externalWebAccess,\n              search_context_size: args.searchContextSize,\n              user_location: args.userLocation,\n            });\n            break;\n          }\n          case 'openai.code_interpreter': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: codeInterpreterArgsSchema,\n            });\n\n            openaiTools.push({\n              type: 'code_interpreter',\n              container:\n                args.container == null\n                  ? { type: 'auto', file_ids: undefined }\n                  : typeof args.container === 'string'\n                    ? args.container\n                    : { type: 'auto', file_ids: args.container.fileIds },\n            });\n            break;\n          }\n          case 'openai.image_generation': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: imageGenerationArgsSchema,\n            });\n\n            openaiTools.push({\n              type: 'image_generation',\n              background: args.background,\n              input_fidelity: args.inputFidelity,\n              input_image_mask: args.inputImageMask\n                ? {\n                    file_id: args.inputImageMask.fileId,\n                    image_url: args.inputImageMask.imageUrl,\n                  }\n                : undefined,\n              model: args.model,\n              size: args.size,\n              quality: args.quality,\n              moderation: args.moderation,\n              output_format: args.outputFormat,\n              output_compression: args.outputCompression,\n            });\n            break;\n          }\n        }\n        break;\n      }\n      default:\n        toolWarnings.push({ type: 'unsupported-tool', tool });\n        break;\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: openaiTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n    case 'required':\n      return { tools: openaiTools, toolChoice: type, toolWarnings };\n    case 'tool':\n      return {\n        tools: openaiTools,\n        toolChoice:\n          toolChoice.toolName === 'code_interpreter' ||\n          toolChoice.toolName === 'file_search' ||\n          toolChoice.toolName === 'image_generation' ||\n          toolChoice.toolName === 'web_search_preview' ||\n          toolChoice.toolName === 'web_search'\n            ? { type: toolChoice.toolName }\n            : { type: 'function', name: toolChoice.toolName },\n        toolWarnings,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import {\n  type LanguageModelV2,\n  type LanguageModelV2CallWarning,\n  type LanguageModelV2Content,\n  type LanguageModelV2FinishReason,\n  type LanguageModelV2ProviderDefinedTool,\n  type LanguageModelV2StreamPart,\n  type LanguageModelV2Usage,\n  type SharedV2ProviderMetadata,\n  APICallError,\n} from '@ai-sdk/provider';\nimport {\n  type InferValidator,\n  type ParseResult,\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  parseProviderOptions,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport type { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport type {\n  codeInterpreterInputSchema,\n  codeInterpreterOutputSchema,\n} from '../tool/code-interpreter';\nimport type { fileSearchOutputSchema } from '../tool/file-search';\nimport type { imageGenerationOutputSchema } from '../tool/image-generation';\nimport type { localShellInputSchema } from '../tool/local-shell';\nimport type { webSearchOutputSchema } from '../tool/web-search';\nimport { convertToOpenAIResponsesInput } from './convert-to-openai-responses-input';\nimport { mapOpenAIResponseFinishReason } from './map-openai-responses-finish-reason';\nimport {\n  type OpenAIResponsesChunk,\n  type OpenAIResponsesIncludeOptions,\n  type OpenAIResponsesIncludeValue,\n  type OpenAIResponsesLogprobs,\n  type OpenAIResponsesWebSearchAction,\n  openaiResponsesChunkSchema,\n  openaiResponsesResponseSchema,\n} from './openai-responses-api';\nimport {\n  type OpenAIResponsesModelId,\n  openaiResponsesProviderOptionsSchema,\n  TOP_LOGPROBS_MAX,\n} from './openai-responses-options';\nimport { prepareResponsesTools } from './openai-responses-prepare-tools';\nimport { getOpenAILanguageModelCapabilities } from '../openai-language-model-capabilities';\n\nexport class OpenAIResponsesLanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  readonly modelId: OpenAIResponsesModelId;\n\n  private readonly config: OpenAIConfig;\n\n  constructor(modelId: OpenAIResponsesModelId, config: OpenAIConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [/^https?:\\/\\/.*$/],\n    'application/pdf': [/^https?:\\/\\/.*$/],\n  };\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  private async getArgs({\n    maxOutputTokens,\n    temperature,\n    stopSequences,\n    topP,\n    topK,\n    presencePenalty,\n    frequencyPenalty,\n    seed,\n    prompt,\n    providerOptions,\n    tools,\n    toolChoice,\n    responseFormat,\n  }: Parameters<LanguageModelV2['doGenerate']>[0]) {\n    const warnings: LanguageModelV2CallWarning[] = [];\n    const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n    if (topK != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'topK' });\n    }\n\n    if (seed != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'seed' });\n    }\n\n    if (presencePenalty != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'presencePenalty',\n      });\n    }\n\n    if (frequencyPenalty != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'frequencyPenalty',\n      });\n    }\n\n    if (stopSequences != null) {\n      warnings.push({ type: 'unsupported-setting', setting: 'stopSequences' });\n    }\n\n    const openaiOptions = await parseProviderOptions({\n      provider: 'openai',\n      providerOptions,\n      schema: openaiResponsesProviderOptionsSchema,\n    });\n\n    if (openaiOptions?.conversation && openaiOptions?.previousResponseId) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'conversation',\n        details: 'conversation and previousResponseId cannot be used together',\n      });\n    }\n\n    const { input, warnings: inputWarnings } =\n      await convertToOpenAIResponsesInput({\n        prompt,\n        systemMessageMode: modelCapabilities.systemMessageMode,\n        fileIdPrefixes: this.config.fileIdPrefixes,\n        store: openaiOptions?.store ?? true,\n        hasLocalShellTool: hasOpenAITool('openai.local_shell'),\n      });\n\n    warnings.push(...inputWarnings);\n\n    const strictJsonSchema = openaiOptions?.strictJsonSchema ?? false;\n\n    let include: OpenAIResponsesIncludeOptions = openaiOptions?.include;\n\n    function addInclude(key: OpenAIResponsesIncludeValue) {\n      if (include == null) {\n        include = [key];\n      } else if (!include.includes(key)) {\n        include = [...include, key];\n      }\n    }\n\n    function hasOpenAITool(id: string) {\n      return (\n        tools?.find(\n          tool => tool.type === 'provider-defined' && tool.id === id,\n        ) != null\n      );\n    }\n\n    // when logprobs are requested, automatically include them:\n    const topLogprobs =\n      typeof openaiOptions?.logprobs === 'number'\n        ? openaiOptions?.logprobs\n        : openaiOptions?.logprobs === true\n          ? TOP_LOGPROBS_MAX\n          : undefined;\n\n    if (topLogprobs) {\n      addInclude('message.output_text.logprobs');\n    }\n\n    // when a web search tool is present, automatically include the sources:\n    const webSearchToolName = (\n      tools?.find(\n        tool =>\n          tool.type === 'provider-defined' &&\n          (tool.id === 'openai.web_search' ||\n            tool.id === 'openai.web_search_preview'),\n      ) as LanguageModelV2ProviderDefinedTool | undefined\n    )?.name;\n\n    if (webSearchToolName) {\n      addInclude('web_search_call.action.sources');\n    }\n\n    // when a code interpreter tool is present, automatically include the outputs:\n    if (hasOpenAITool('openai.code_interpreter')) {\n      addInclude('code_interpreter_call.outputs');\n    }\n\n    const store = openaiOptions?.store;\n\n    // store defaults to true in the OpenAI responses API, so check for false exactly:\n    if (store === false && modelCapabilities.isReasoningModel) {\n      addInclude('reasoning.encrypted_content');\n    }\n\n    const baseArgs = {\n      model: this.modelId,\n      input,\n      temperature,\n      top_p: topP,\n      max_output_tokens: maxOutputTokens,\n\n      ...((responseFormat?.type === 'json' || openaiOptions?.textVerbosity) && {\n        text: {\n          ...(responseFormat?.type === 'json' && {\n            format:\n              responseFormat.schema != null\n                ? {\n                    type: 'json_schema',\n                    strict: strictJsonSchema,\n                    name: responseFormat.name ?? 'response',\n                    description: responseFormat.description,\n                    schema: responseFormat.schema,\n                  }\n                : { type: 'json_object' },\n          }),\n          ...(openaiOptions?.textVerbosity && {\n            verbosity: openaiOptions.textVerbosity,\n          }),\n        },\n      }),\n\n      // provider options:\n      conversation: openaiOptions?.conversation,\n      max_tool_calls: openaiOptions?.maxToolCalls,\n      metadata: openaiOptions?.metadata,\n      parallel_tool_calls: openaiOptions?.parallelToolCalls,\n      previous_response_id: openaiOptions?.previousResponseId,\n      store,\n      user: openaiOptions?.user,\n      instructions: openaiOptions?.instructions,\n      service_tier: openaiOptions?.serviceTier,\n      include,\n      prompt_cache_key: openaiOptions?.promptCacheKey,\n      prompt_cache_retention: openaiOptions?.promptCacheRetention,\n      safety_identifier: openaiOptions?.safetyIdentifier,\n      top_logprobs: topLogprobs,\n      truncation: openaiOptions?.truncation,\n\n      // model-specific settings:\n      ...(modelCapabilities.isReasoningModel &&\n        (openaiOptions?.reasoningEffort != null ||\n          openaiOptions?.reasoningSummary != null) && {\n          reasoning: {\n            ...(openaiOptions?.reasoningEffort != null && {\n              effort: openaiOptions.reasoningEffort,\n            }),\n            ...(openaiOptions?.reasoningSummary != null && {\n              summary: openaiOptions.reasoningSummary,\n            }),\n          },\n        }),\n    };\n\n    // remove unsupported settings for reasoning models\n    // see https://platform.openai.com/docs/guides/reasoning#limitations\n    if (modelCapabilities.isReasoningModel) {\n      // when reasoning effort is none, gpt-5.1 models allow temperature, topP, logprobs\n      //  https://platform.openai.com/docs/guides/latest-model#gpt-5-1-parameter-compatibility\n      if (\n        !(\n          openaiOptions?.reasoningEffort === 'none' &&\n          modelCapabilities.supportsNonReasoningParameters\n        )\n      ) {\n        if (baseArgs.temperature != null) {\n          baseArgs.temperature = undefined;\n          warnings.push({\n            type: 'unsupported-setting',\n            setting: 'temperature',\n            details: 'temperature is not supported for reasoning models',\n          });\n        }\n\n        if (baseArgs.top_p != null) {\n          baseArgs.top_p = undefined;\n          warnings.push({\n            type: 'unsupported-setting',\n            setting: 'topP',\n            details: 'topP is not supported for reasoning models',\n          });\n        }\n      }\n    } else {\n      if (openaiOptions?.reasoningEffort != null) {\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'reasoningEffort',\n          details: 'reasoningEffort is not supported for non-reasoning models',\n        });\n      }\n\n      if (openaiOptions?.reasoningSummary != null) {\n        warnings.push({\n          type: 'unsupported-setting',\n          setting: 'reasoningSummary',\n          details: 'reasoningSummary is not supported for non-reasoning models',\n        });\n      }\n    }\n\n    // Validate flex processing support\n    if (\n      openaiOptions?.serviceTier === 'flex' &&\n      !modelCapabilities.supportsFlexProcessing\n    ) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'serviceTier',\n        details:\n          'flex processing is only available for o3, o4-mini, and gpt-5 models',\n      });\n      // Remove from args if not supported\n      delete (baseArgs as any).service_tier;\n    }\n\n    // Validate priority processing support\n    if (\n      openaiOptions?.serviceTier === 'priority' &&\n      !modelCapabilities.supportsPriorityProcessing\n    ) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'serviceTier',\n        details:\n          'priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported',\n      });\n      // Remove from args if not supported\n      delete (baseArgs as any).service_tier;\n    }\n\n    const {\n      tools: openaiTools,\n      toolChoice: openaiToolChoice,\n      toolWarnings,\n    } = await prepareResponsesTools({\n      tools,\n      toolChoice,\n      strictJsonSchema,\n    });\n\n    return {\n      webSearchToolName,\n      args: {\n        ...baseArgs,\n        tools: openaiTools,\n        tool_choice: openaiToolChoice,\n      },\n      warnings: [...warnings, ...toolWarnings],\n      store,\n    };\n  }\n\n  async doGenerate(\n    options: Parameters<LanguageModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n    const {\n      args: body,\n      warnings,\n      webSearchToolName,\n    } = await this.getArgs(options);\n    const url = this.config.url({\n      path: '/responses',\n      modelId: this.modelId,\n    });\n\n    const providerKey = this.config.provider.replace('.responses', ''); // can be 'openai' or 'azure'. provider is 'openai.responses' or 'azure.responses'.\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiResponsesResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    if (response.error) {\n      throw new APICallError({\n        message: response.error.message,\n        url,\n        requestBodyValues: body,\n        statusCode: 400,\n        responseHeaders,\n        responseBody: rawResponse as string,\n        isRetryable: false,\n      });\n    }\n\n    const content: Array<LanguageModelV2Content> = [];\n    const logprobs: Array<OpenAIResponsesLogprobs> = [];\n\n    // flag that checks if there have been client-side tool calls (not executed by openai)\n    let hasFunctionCall = false;\n\n    // map response content to content array (defined when there is no error)\n    for (const part of response.output!) {\n      switch (part.type) {\n        case 'reasoning': {\n          // when there are no summary parts, we need to add an empty reasoning part:\n          if (part.summary.length === 0) {\n            part.summary.push({ type: 'summary_text', text: '' });\n          }\n\n          for (const summary of part.summary) {\n            content.push({\n              type: 'reasoning' as const,\n              text: summary.text,\n              providerMetadata: {\n                [providerKey]: {\n                  itemId: part.id,\n                  reasoningEncryptedContent: part.encrypted_content ?? null,\n                },\n              },\n            });\n          }\n          break;\n        }\n\n        case 'image_generation_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.id,\n            toolName: 'image_generation',\n            input: '{}',\n            providerExecuted: true,\n          });\n\n          content.push({\n            type: 'tool-result',\n            toolCallId: part.id,\n            toolName: 'image_generation',\n            result: {\n              result: part.result,\n            } satisfies InferValidator<typeof imageGenerationOutputSchema>,\n            providerExecuted: true,\n          });\n\n          break;\n        }\n\n        case 'local_shell_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.call_id,\n            toolName: 'local_shell',\n            input: JSON.stringify({\n              action: part.action,\n            } satisfies InferValidator<typeof localShellInputSchema>),\n            providerMetadata: {\n              [providerKey]: {\n                itemId: part.id,\n              },\n            },\n          });\n\n          break;\n        }\n\n        case 'message': {\n          for (const contentPart of part.content) {\n            if (\n              options.providerOptions?.openai?.logprobs &&\n              contentPart.logprobs\n            ) {\n              logprobs.push(contentPart.logprobs);\n            }\n\n            content.push({\n              type: 'text',\n              text: contentPart.text,\n              providerMetadata: {\n                [providerKey]: {\n                  itemId: part.id,\n                  ...(part.phase != null && { phase: part.phase }),\n                },\n              },\n            });\n\n            for (const annotation of contentPart.annotations) {\n              if (annotation.type === 'url_citation') {\n                content.push({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: this.config.generateId?.() ?? generateId(),\n                  url: annotation.url,\n                  title: annotation.title,\n                });\n              } else if (annotation.type === 'file_citation') {\n                content.push({\n                  type: 'source',\n                  sourceType: 'document',\n                  id: this.config.generateId?.() ?? generateId(),\n                  mediaType: 'text/plain',\n                  title: annotation.quote ?? annotation.filename ?? 'Document',\n                  filename: annotation.filename ?? annotation.file_id,\n                  ...(annotation.file_id\n                    ? {\n                        providerMetadata: {\n                          [providerKey]: {\n                            fileId: annotation.file_id,\n                          },\n                        },\n                      }\n                    : {}),\n                });\n              } else if (annotation.type === 'container_file_citation') {\n                content.push({\n                  type: 'source',\n                  sourceType: 'document',\n                  id: this.config.generateId?.() ?? generateId(),\n                  mediaType: 'text/plain',\n                  title:\n                    annotation.filename ?? annotation.file_id ?? 'Document',\n                  filename: annotation.filename ?? annotation.file_id,\n                  providerMetadata: {\n                    [providerKey]: {\n                      fileId: annotation.file_id,\n                      containerId: annotation.container_id,\n                      ...(annotation.index != null\n                        ? { index: annotation.index }\n                        : {}),\n                    },\n                  },\n                });\n              } else if (annotation.type === 'file_path') {\n                content.push({\n                  type: 'source',\n                  sourceType: 'document',\n                  id: this.config.generateId?.() ?? generateId(),\n                  mediaType: 'application/octet-stream',\n                  title: annotation.file_id,\n                  filename: annotation.file_id,\n                  providerMetadata: {\n                    [providerKey]: {\n                      fileId: annotation.file_id,\n                      ...(annotation.index != null\n                        ? { index: annotation.index }\n                        : {}),\n                    },\n                  },\n                });\n              }\n            }\n          }\n\n          break;\n        }\n\n        case 'function_call': {\n          hasFunctionCall = true;\n\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.call_id,\n            toolName: part.name,\n            input: part.arguments,\n            providerMetadata: {\n              [providerKey]: {\n                itemId: part.id,\n              },\n            },\n          });\n          break;\n        }\n\n        case 'web_search_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.id,\n            toolName: webSearchToolName ?? 'web_search',\n            input: JSON.stringify({}),\n            providerExecuted: true,\n          });\n\n          content.push({\n            type: 'tool-result',\n            toolCallId: part.id,\n            toolName: webSearchToolName ?? 'web_search',\n            result: mapWebSearchOutput(part.action),\n            providerExecuted: true,\n          });\n\n          break;\n        }\n\n        case 'computer_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.id,\n            toolName: 'computer_use',\n            input: '',\n            providerExecuted: true,\n          });\n\n          content.push({\n            type: 'tool-result',\n            toolCallId: part.id,\n            toolName: 'computer_use',\n            result: {\n              type: 'computer_use_tool_result',\n              status: part.status || 'completed',\n            },\n            providerExecuted: true,\n          });\n          break;\n        }\n\n        case 'file_search_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.id,\n            toolName: 'file_search',\n            input: '{}',\n            providerExecuted: true,\n          });\n\n          content.push({\n            type: 'tool-result',\n            toolCallId: part.id,\n            toolName: 'file_search',\n            result: {\n              queries: part.queries,\n              results:\n                part.results?.map(result => ({\n                  attributes: result.attributes,\n                  fileId: result.file_id,\n                  filename: result.filename,\n                  score: result.score,\n                  text: result.text,\n                })) ?? null,\n            } satisfies InferValidator<typeof fileSearchOutputSchema>,\n            providerExecuted: true,\n          });\n          break;\n        }\n\n        case 'code_interpreter_call': {\n          content.push({\n            type: 'tool-call',\n            toolCallId: part.id,\n            toolName: 'code_interpreter',\n            input: JSON.stringify({\n              code: part.code,\n              containerId: part.container_id,\n            } satisfies InferValidator<typeof codeInterpreterInputSchema>),\n            providerExecuted: true,\n          });\n\n          content.push({\n            type: 'tool-result',\n            toolCallId: part.id,\n            toolName: 'code_interpreter',\n            result: {\n              outputs: part.outputs,\n            } satisfies InferValidator<typeof codeInterpreterOutputSchema>,\n            providerExecuted: true,\n          });\n          break;\n        }\n      }\n    }\n\n    const providerMetadata: SharedV2ProviderMetadata = {\n      [providerKey]: {\n        ...(response.id != null ? { responseId: response.id } : {}),\n      },\n    };\n\n    if (logprobs.length > 0) {\n      providerMetadata[providerKey].logprobs = logprobs;\n    }\n\n    if (typeof response.service_tier === 'string') {\n      providerMetadata[providerKey].serviceTier = response.service_tier;\n    }\n\n    const usage = response.usage!; // defined when there is no error\n\n    return {\n      content,\n      finishReason: mapOpenAIResponseFinishReason({\n        finishReason: response.incomplete_details?.reason,\n        hasFunctionCall,\n      }),\n      usage: {\n        inputTokens: usage.input_tokens,\n        outputTokens: usage.output_tokens,\n        totalTokens: usage.input_tokens + usage.output_tokens,\n        reasoningTokens:\n          usage.output_tokens_details?.reasoning_tokens ?? undefined,\n        cachedInputTokens:\n          usage.input_tokens_details?.cached_tokens ?? undefined,\n      },\n      request: { body },\n      response: {\n        id: response.id,\n        timestamp: new Date(response.created_at! * 1000),\n        modelId: response.model,\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      providerMetadata,\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: Parameters<LanguageModelV2['doStream']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n    const {\n      args: body,\n      warnings,\n      webSearchToolName,\n      store,\n    } = await this.getArgs(options);\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: this.config.url({\n        path: '/responses',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: {\n        ...body,\n        stream: true,\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        openaiResponsesChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const self = this;\n    const providerKey = this.config.provider.replace('.responses', ''); // can be 'openai' or 'azure'. provider is 'openai.responses' or 'azure.responses'.\n\n    let finishReason: LanguageModelV2FinishReason = 'unknown';\n    const usage: LanguageModelV2Usage = {\n      inputTokens: undefined,\n      outputTokens: undefined,\n      totalTokens: undefined,\n    };\n    const logprobs: Array<OpenAIResponsesLogprobs> = [];\n    let responseId: string | null = null;\n    const ongoingToolCalls: Record<\n      number,\n      | {\n          toolName: string;\n          toolCallId: string;\n          codeInterpreter?: {\n            containerId: string;\n          };\n        }\n      | undefined\n    > = {};\n\n    // set annotations in 'text-end' part providerMetadata.\n    const ongoingAnnotations: Array<\n      Extract<\n        OpenAIResponsesChunk,\n        { type: 'response.output_text.annotation.added' }\n      >['annotation']\n    > = [];\n\n    // track the phase of the current message being streamed\n    let activeMessagePhase: 'commentary' | 'final_answer' | undefined;\n\n    // flag that checks if there have been client-side tool calls (not executed by openai)\n    let hasFunctionCall = false;\n\n    const activeReasoning: Record<\n      string,\n      {\n        encryptedContent?: string | null;\n        // summary index as string to reasoning part state:\n        summaryParts: Record<string, 'active' | 'can-conclude' | 'concluded'>;\n      }\n    > = {};\n\n    let serviceTier: string | undefined;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<OpenAIResponsesChunk>,\n          LanguageModelV2StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            if (isResponseOutputItemAddedChunk(value)) {\n              if (value.item.type === 'function_call') {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: value.item.name,\n                  toolCallId: value.item.call_id,\n                };\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: value.item.call_id,\n                  toolName: value.item.name,\n                });\n              } else if (value.item.type === 'web_search_call') {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: webSearchToolName ?? 'web_search',\n                  toolCallId: value.item.id,\n                };\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: value.item.id,\n                  toolName: webSearchToolName ?? 'web_search',\n                  providerExecuted: true,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: value.item.id,\n                });\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.id,\n                  toolName: webSearchToolName ?? 'web_search',\n                  input: JSON.stringify({}),\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'computer_call') {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: 'computer_use',\n                  toolCallId: value.item.id,\n                };\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: value.item.id,\n                  toolName: 'computer_use',\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'code_interpreter_call') {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: 'code_interpreter',\n                  toolCallId: value.item.id,\n                  codeInterpreter: {\n                    containerId: value.item.container_id,\n                  },\n                };\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: value.item.id,\n                  toolName: 'code_interpreter',\n                  providerExecuted: true,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: value.item.id,\n                  delta: `{\"containerId\":\"${value.item.container_id}\",\"code\":\"`,\n                });\n              } else if (value.item.type === 'file_search_call') {\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.id,\n                  toolName: 'file_search',\n                  input: '{}',\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'image_generation_call') {\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.id,\n                  toolName: 'image_generation',\n                  input: '{}',\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'message') {\n                ongoingAnnotations.splice(0, ongoingAnnotations.length);\n                activeMessagePhase = value.item.phase ?? undefined;\n                controller.enqueue({\n                  type: 'text-start',\n                  id: value.item.id,\n                  providerMetadata: {\n                    [providerKey]: {\n                      itemId: value.item.id,\n                      ...(value.item.phase != null && {\n                        phase: value.item.phase,\n                      }),\n                    },\n                  },\n                });\n              } else if (\n                isResponseOutputItemAddedChunk(value) &&\n                value.item.type === 'reasoning'\n              ) {\n                activeReasoning[value.item.id] = {\n                  encryptedContent: value.item.encrypted_content,\n                  summaryParts: { 0: 'active' },\n                };\n\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: `${value.item.id}:0`,\n                  providerMetadata: {\n                    [providerKey]: {\n                      itemId: value.item.id,\n                      reasoningEncryptedContent:\n                        value.item.encrypted_content ?? null,\n                    },\n                  },\n                });\n              }\n            } else if (isResponseOutputItemDoneChunk(value)) {\n              if (value.item.type === 'message') {\n                const phase = value.item.phase ?? activeMessagePhase;\n                activeMessagePhase = undefined;\n                controller.enqueue({\n                  type: 'text-end',\n                  id: value.item.id,\n                  providerMetadata: {\n                    [providerKey]: {\n                      itemId: value.item.id,\n                      ...(phase != null && { phase }),\n                      ...(ongoingAnnotations.length > 0 && {\n                        annotations: ongoingAnnotations,\n                      }),\n                    },\n                  },\n                });\n              } else if (value.item.type === 'function_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n                hasFunctionCall = true;\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: value.item.call_id,\n                });\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.call_id,\n                  toolName: value.item.name,\n                  input: value.item.arguments,\n                  providerMetadata: {\n                    [providerKey]: {\n                      itemId: value.item.id,\n                    },\n                  },\n                });\n              } else if (value.item.type === 'web_search_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n\n                controller.enqueue({\n                  type: 'tool-result',\n                  toolCallId: value.item.id,\n                  toolName: webSearchToolName ?? 'web_search',\n                  result: mapWebSearchOutput(value.item.action),\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'computer_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: value.item.id,\n                });\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.id,\n                  toolName: 'computer_use',\n                  input: '',\n                  providerExecuted: true,\n                });\n\n                controller.enqueue({\n                  type: 'tool-result',\n                  toolCallId: value.item.id,\n                  toolName: 'computer_use',\n                  result: {\n                    type: 'computer_use_tool_result',\n                    status: value.item.status || 'completed',\n                  },\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'file_search_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n\n                controller.enqueue({\n                  type: 'tool-result',\n                  toolCallId: value.item.id,\n                  toolName: 'file_search',\n                  result: {\n                    queries: value.item.queries,\n                    results:\n                      value.item.results?.map(result => ({\n                        attributes: result.attributes,\n                        fileId: result.file_id,\n                        filename: result.filename,\n                        score: result.score,\n                        text: result.text,\n                      })) ?? null,\n                  } satisfies InferValidator<typeof fileSearchOutputSchema>,\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'code_interpreter_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n\n                controller.enqueue({\n                  type: 'tool-result',\n                  toolCallId: value.item.id,\n                  toolName: 'code_interpreter',\n                  result: {\n                    outputs: value.item.outputs,\n                  } satisfies InferValidator<\n                    typeof codeInterpreterOutputSchema\n                  >,\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'image_generation_call') {\n                controller.enqueue({\n                  type: 'tool-result',\n                  toolCallId: value.item.id,\n                  toolName: 'image_generation',\n                  result: {\n                    result: value.item.result,\n                  } satisfies InferValidator<\n                    typeof imageGenerationOutputSchema\n                  >,\n                  providerExecuted: true,\n                });\n              } else if (value.item.type === 'local_shell_call') {\n                ongoingToolCalls[value.output_index] = undefined;\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: value.item.call_id,\n                  toolName: 'local_shell',\n                  input: JSON.stringify({\n                    action: {\n                      type: 'exec',\n                      command: value.item.action.command,\n                      timeoutMs: value.item.action.timeout_ms,\n                      user: value.item.action.user,\n                      workingDirectory: value.item.action.working_directory,\n                      env: value.item.action.env,\n                    },\n                  } satisfies InferValidator<typeof localShellInputSchema>),\n                  providerMetadata: {\n                    [providerKey]: { itemId: value.item.id },\n                  },\n                });\n              } else if (value.item.type === 'reasoning') {\n                const activeReasoningPart = activeReasoning[value.item.id];\n\n                // get all active or can-conclude summary parts' ids\n                // to conclude ongoing reasoning parts:\n                const summaryPartIndices = Object.entries(\n                  activeReasoningPart.summaryParts,\n                )\n                  .filter(\n                    ([_, status]) =>\n                      status === 'active' || status === 'can-conclude',\n                  )\n                  .map(([summaryIndex]) => summaryIndex);\n\n                for (const summaryIndex of summaryPartIndices) {\n                  controller.enqueue({\n                    type: 'reasoning-end',\n                    id: `${value.item.id}:${summaryIndex}`,\n                    providerMetadata: {\n                      [providerKey]: {\n                        itemId: value.item.id,\n                        reasoningEncryptedContent:\n                          value.item.encrypted_content ?? null,\n                      },\n                    },\n                  });\n                }\n\n                delete activeReasoning[value.item.id];\n              }\n            } else if (isResponseFunctionCallArgumentsDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.toolCallId,\n                  delta: value.delta,\n                });\n              }\n            } else if (isResponseCodeInterpreterCallCodeDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.toolCallId,\n                  // The delta is code, which is embedding in a JSON string.\n                  // To escape it, we use JSON.stringify and slice to remove the outer quotes.\n                  delta: JSON.stringify(value.delta).slice(1, -1),\n                });\n              }\n            } else if (isResponseCodeInterpreterCallCodeDoneChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.toolCallId,\n                  delta: '\"}',\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: toolCall.toolCallId,\n                });\n\n                // immediately send the tool call after the input end:\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId: toolCall.toolCallId,\n                  toolName: 'code_interpreter',\n                  input: JSON.stringify({\n                    code: value.code,\n                    containerId: toolCall.codeInterpreter!.containerId,\n                  } satisfies InferValidator<\n                    typeof codeInterpreterInputSchema\n                  >),\n                  providerExecuted: true,\n                });\n              }\n            } else if (isResponseCreatedChunk(value)) {\n              responseId = value.response.id;\n              controller.enqueue({\n                type: 'response-metadata',\n                id: value.response.id,\n                timestamp: new Date(value.response.created_at * 1000),\n                modelId: value.response.model,\n              });\n            } else if (isTextDeltaChunk(value)) {\n              controller.enqueue({\n                type: 'text-delta',\n                id: value.item_id,\n                delta: value.delta,\n              });\n\n              if (options.providerOptions?.openai?.logprobs && value.logprobs) {\n                logprobs.push(value.logprobs);\n              }\n            } else if (value.type === 'response.reasoning_summary_part.added') {\n              // the first reasoning start is pushed in isResponseOutputItemAddedReasoningChunk\n              if (value.summary_index > 0) {\n                const activeReasoningPart = activeReasoning[value.item_id]!;\n\n                activeReasoningPart.summaryParts[value.summary_index] =\n                  'active';\n\n                // since there is a new active summary part, we can conclude all can-conclude summary parts\n                for (const summaryIndex of Object.keys(\n                  activeReasoningPart.summaryParts,\n                )) {\n                  if (\n                    activeReasoningPart.summaryParts[summaryIndex] ===\n                    'can-conclude'\n                  ) {\n                    controller.enqueue({\n                      type: 'reasoning-end',\n                      id: `${value.item_id}:${summaryIndex}`,\n                      providerMetadata: {\n                        [providerKey]: { itemId: value.item_id },\n                      },\n                    });\n                    activeReasoningPart.summaryParts[summaryIndex] =\n                      'concluded';\n                  }\n                }\n\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: `${value.item_id}:${value.summary_index}`,\n                  providerMetadata: {\n                    [providerKey]: {\n                      itemId: value.item_id,\n                      reasoningEncryptedContent:\n                        activeReasoning[value.item_id]?.encryptedContent ??\n                        null,\n                    },\n                  },\n                });\n              }\n            } else if (value.type === 'response.reasoning_summary_text.delta') {\n              controller.enqueue({\n                type: 'reasoning-delta',\n                id: `${value.item_id}:${value.summary_index}`,\n                delta: value.delta,\n                providerMetadata: {\n                  [providerKey]: {\n                    itemId: value.item_id,\n                  },\n                },\n              });\n            } else if (value.type === 'response.reasoning_summary_part.done') {\n              // when OpenAI stores the message data, we can immediately conclude the reasoning part\n              // since we do not need to send the encrypted content.\n              if (store) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: `${value.item_id}:${value.summary_index}`,\n                  providerMetadata: {\n                    [providerKey]: { itemId: value.item_id },\n                  },\n                });\n\n                // mark the summary part as concluded\n                activeReasoning[value.item_id]!.summaryParts[\n                  value.summary_index\n                ] = 'concluded';\n              } else {\n                // mark the summary part as can-conclude only\n                // because we need to have a final summary part with the encrypted content\n                activeReasoning[value.item_id]!.summaryParts[\n                  value.summary_index\n                ] = 'can-conclude';\n              }\n            } else if (isResponseFinishedChunk(value)) {\n              finishReason = mapOpenAIResponseFinishReason({\n                finishReason: value.response.incomplete_details?.reason,\n                hasFunctionCall,\n              });\n              usage.inputTokens = value.response.usage.input_tokens;\n              usage.outputTokens = value.response.usage.output_tokens;\n              usage.totalTokens =\n                value.response.usage.input_tokens +\n                value.response.usage.output_tokens;\n              usage.reasoningTokens =\n                value.response.usage.output_tokens_details?.reasoning_tokens ??\n                undefined;\n              usage.cachedInputTokens =\n                value.response.usage.input_tokens_details?.cached_tokens ??\n                undefined;\n              if (typeof value.response.service_tier === 'string') {\n                serviceTier = value.response.service_tier;\n              }\n            } else if (isResponseAnnotationAddedChunk(value)) {\n              ongoingAnnotations.push(value.annotation);\n              if (value.annotation.type === 'url_citation') {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'url',\n                  id: self.config.generateId?.() ?? generateId(),\n                  url: value.annotation.url,\n                  title: value.annotation.title,\n                });\n              } else if (value.annotation.type === 'file_citation') {\n                controller.enqueue({\n                  type: 'source',\n                  sourceType: 'document',\n                  id: self.config.generateId?.() ?? generateId(),\n                  mediaType: 'text/plain',\n                  title:\n                    value.annotation.quote ??\n                    value.annotation.filename ??\n                    'Document',\n                  filename:\n                    value.annotation.filename ?? value.annotation.file_id,\n                  ...(value.annotation.file_id\n                    ? {\n                        providerMetadata: {\n                          [providerKey]: {\n                            fileId: value.annotation.file_id,\n                          },\n                        },\n                      }\n                    : {}),\n                });\n              }\n            } else if (isErrorChunk(value)) {\n              controller.enqueue({ type: 'error', error: value });\n            }\n          },\n\n          flush(controller) {\n            const providerMetadata: SharedV2ProviderMetadata = {\n              [providerKey]: {\n                responseId,\n              },\n            };\n\n            if (logprobs.length > 0) {\n              providerMetadata[providerKey].logprobs = logprobs;\n            }\n\n            if (serviceTier !== undefined) {\n              providerMetadata[providerKey].serviceTier = serviceTier;\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage,\n              providerMetadata,\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n\nfunction isTextDeltaChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & { type: 'response.output_text.delta' } {\n  return chunk.type === 'response.output_text.delta';\n}\n\nfunction isResponseOutputItemDoneChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & { type: 'response.output_item.done' } {\n  return chunk.type === 'response.output_item.done';\n}\n\nfunction isResponseFinishedChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n  type: 'response.completed' | 'response.incomplete';\n} {\n  return (\n    chunk.type === 'response.completed' || chunk.type === 'response.incomplete'\n  );\n}\n\nfunction isResponseCreatedChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & { type: 'response.created' } {\n  return chunk.type === 'response.created';\n}\n\nfunction isResponseFunctionCallArgumentsDeltaChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n  type: 'response.function_call_arguments.delta';\n} {\n  return chunk.type === 'response.function_call_arguments.delta';\n}\n\nfunction isResponseCodeInterpreterCallCodeDeltaChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n  type: 'response.code_interpreter_call_code.delta';\n} {\n  return chunk.type === 'response.code_interpreter_call_code.delta';\n}\n\nfunction isResponseCodeInterpreterCallCodeDoneChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n  type: 'response.code_interpreter_call_code.done';\n} {\n  return chunk.type === 'response.code_interpreter_call_code.done';\n}\n\nfunction isResponseOutputItemAddedChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & { type: 'response.output_item.added' } {\n  return chunk.type === 'response.output_item.added';\n}\n\nfunction isResponseAnnotationAddedChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n  type: 'response.output_text.annotation.added';\n} {\n  return chunk.type === 'response.output_text.annotation.added';\n}\n\nfunction isErrorChunk(\n  chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & { type: 'error' } {\n  return chunk.type === 'error';\n}\n\nfunction mapWebSearchOutput(\n  action: OpenAIResponsesWebSearchAction | null | undefined,\n): InferValidator<typeof webSearchOutputSchema> {\n  if (action == null) {\n    return {};\n  }\n\n  switch (action.type) {\n    case 'search':\n      return {\n        action: { type: 'search', query: action.query ?? undefined },\n        // include sources when provided by the Responses API (behind include flag)\n        ...(action.sources != null && { sources: action.sources }),\n      };\n    case 'open_page':\n      return { action: { type: 'openPage', url: action.url } };\n    case 'find_in_page':\n      return {\n        action: {\n          type: 'findInPage',\n          url: action.url,\n          pattern: action.pattern,\n        },\n      };\n  }\n}\n","import {\n  codeInterpreter,\n  fileSearch,\n  imageGeneration,\n  webSearchPreview,\n} from '@ai-sdk/openai/internal';\n\nexport const azureOpenaiTools: {\n  codeInterpreter: typeof codeInterpreter;\n  fileSearch: typeof fileSearch;\n  imageGeneration: typeof imageGeneration;\n  webSearchPreview: typeof webSearchPreview;\n} = {\n  codeInterpreter,\n  fileSearch,\n  imageGeneration,\n  webSearchPreview,\n};\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import {\n  OpenAIChatLanguageModel,\n  OpenAICompletionLanguageModel,\n  OpenAIEmbeddingModel,\n  OpenAIImageModel,\n  OpenAIResponsesLanguageModel,\n  OpenAISpeechModel,\n  OpenAITranscriptionModel,\n} from '@ai-sdk/openai/internal';\nimport type {\n  EmbeddingModelV2,\n  LanguageModelV2,\n  ProviderV2,\n  ImageModelV2,\n  SpeechModelV2,\n  TranscriptionModelV2,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  loadApiKey,\n  loadSetting,\n  withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { azureOpenaiTools } from './azure-openai-tools';\nimport { VERSION } from './version';\n\nexport interface AzureOpenAIProvider extends ProviderV2 {\n  (deploymentId: string): LanguageModelV2;\n\n  /**\nCreates an Azure OpenAI chat model for text generation.\n   */\n  languageModel(deploymentId: string): LanguageModelV2;\n\n  /**\nCreates an Azure OpenAI chat model for text generation.\n   */\n  chat(deploymentId: string): LanguageModelV2;\n\n  /**\nCreates an Azure OpenAI responses API model for text generation.\n   */\n  responses(deploymentId: string): LanguageModelV2;\n\n  /**\nCreates an Azure OpenAI completion model for text generation.\n   */\n  completion(deploymentId: string): LanguageModelV2;\n\n  /**\n@deprecated Use `textEmbedding` instead.\n   */\n  embedding(deploymentId: string): EmbeddingModelV2<string>;\n\n  /**\n   * Creates an Azure OpenAI DALL-E model for image generation.\n   */\n  image(deploymentId: string): ImageModelV2;\n\n  /**\n   * Creates an Azure OpenAI DALL-E model for image generation.\n   */\n  imageModel(deploymentId: string): ImageModelV2;\n\n  textEmbedding(deploymentId: string): EmbeddingModelV2<string>;\n\n  /**\nCreates an Azure OpenAI model for text embeddings.\n   */\n  textEmbeddingModel(deploymentId: string): EmbeddingModelV2<string>;\n\n  /**\n   * Creates an Azure OpenAI model for audio transcription.\n   */\n  transcription(deploymentId: string): TranscriptionModelV2;\n\n  /**\n   * Creates an Azure OpenAI model for speech generation.\n   */\n  speech(deploymentId: string): SpeechModelV2;\n\n  /**\n   * AzureOpenAI-specific tools.\n   */\n  tools: typeof azureOpenaiTools;\n}\n\nexport interface AzureOpenAIProviderSettings {\n  /**\nName of the Azure OpenAI resource. Either this or `baseURL` can be used.\n\nThe resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/v1{path}`.\n     */\n  resourceName?: string;\n\n  /**\nUse a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.\nWhen a baseURL is provided, the resourceName is ignored.\n\nWith a baseURL, the resolved URL is `{baseURL}/v1{path}`.\n   */\n  baseURL?: string;\n\n  /**\nAPI key for authenticating requests.\n     */\n  apiKey?: string;\n\n  /**\nCustom headers to include in the requests.\n     */\n  headers?: Record<string, string>;\n\n  /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n    */\n  fetch?: FetchFunction;\n\n  /**\nCustom api version to use. Defaults to `preview`.\n    */\n  apiVersion?: string;\n\n  /**\nUse deployment-based URLs for specific model types. Set to true to use legacy deployment format: \n`{baseURL}/deployments/{deploymentId}{path}?api-version={apiVersion}` instead of \n`{baseURL}/v1{path}?api-version={apiVersion}`.\n   */\n  useDeploymentBasedUrls?: boolean;\n}\n\n/**\nCreate an Azure OpenAI provider instance.\n */\nexport function createAzure(\n  options: AzureOpenAIProviderSettings = {},\n): AzureOpenAIProvider {\n  const getHeaders = () => {\n    const baseHeaders = {\n      'api-key': loadApiKey({\n        apiKey: options.apiKey,\n        environmentVariableName: 'AZURE_API_KEY',\n        description: 'Azure OpenAI',\n      }),\n      ...options.headers,\n    };\n    return withUserAgentSuffix(baseHeaders, `ai-sdk/azure/${VERSION}`);\n  };\n\n  const getResourceName = () =>\n    loadSetting({\n      settingValue: options.resourceName,\n      settingName: 'resourceName',\n      environmentVariableName: 'AZURE_RESOURCE_NAME',\n      description: 'Azure OpenAI resource name',\n    });\n\n  const apiVersion = options.apiVersion ?? 'v1';\n\n  const url = ({ path, modelId }: { path: string; modelId: string }) => {\n    const baseUrlPrefix =\n      options.baseURL ?? `https://${getResourceName()}.openai.azure.com/openai`;\n\n    let fullUrl: URL;\n    if (options.useDeploymentBasedUrls) {\n      // Use deployment-based format for compatibility with certain Azure OpenAI models\n      fullUrl = new URL(`${baseUrlPrefix}/deployments/${modelId}${path}`);\n    } else {\n      // Use v1 API format - no deployment ID in URL\n      fullUrl = new URL(`${baseUrlPrefix}/v1${path}`);\n    }\n\n    fullUrl.searchParams.set('api-version', apiVersion);\n    return fullUrl.toString();\n  };\n\n  const createChatModel = (deploymentName: string) =>\n    new OpenAIChatLanguageModel(deploymentName, {\n      provider: 'azure.chat',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createCompletionModel = (modelId: string) =>\n    new OpenAICompletionLanguageModel(modelId, {\n      provider: 'azure.completion',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createEmbeddingModel = (modelId: string) =>\n    new OpenAIEmbeddingModel(modelId, {\n      provider: 'azure.embeddings',\n      headers: getHeaders,\n      url,\n      fetch: options.fetch,\n    });\n\n  const createResponsesModel = (modelId: string) =>\n    new OpenAIResponsesLanguageModel(modelId, {\n      provider: 'azure.responses',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n      fileIdPrefixes: ['assistant-'],\n    });\n\n  const createImageModel = (modelId: string) =>\n    new OpenAIImageModel(modelId, {\n      provider: 'azure.image',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createTranscriptionModel = (modelId: string) =>\n    new OpenAITranscriptionModel(modelId, {\n      provider: 'azure.transcription',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createSpeechModel = (modelId: string) =>\n    new OpenAISpeechModel(modelId, {\n      provider: 'azure.speech',\n      url,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const provider = function (deploymentId: string) {\n    if (new.target) {\n      throw new Error(\n        'The Azure OpenAI model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createChatModel(deploymentId);\n  };\n\n  provider.languageModel = createChatModel;\n  provider.chat = createChatModel;\n  provider.completion = createCompletionModel;\n  provider.embedding = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.responses = createResponsesModel;\n  provider.transcription = createTranscriptionModel;\n  provider.speech = createSpeechModel;\n  provider.tools = azureOpenaiTools;\n  return provider;\n}\n\n/**\nDefault Azure OpenAI provider instance.\n */\nexport const azure = createAzure();\n","import WebSocket from 'ws';\n\nexport interface CreateOpenAIWebSocketFetchOptions {\n  /**\n   * WebSocket endpoint URL.\n   * @default 'wss://api.openai.com/v1/responses'\n   */\n  url?: string;\n  /**\n   * Additional headers sent when establishing the WebSocket connection.\n   * Authorization and OpenAI-Beta are managed internally.\n   */\n  headers?: Record<string, string>;\n  /**\n   * Convert an `api-key` request header into `Authorization: Bearer ...` for\n   * providers whose WebSocket endpoint authenticates API keys as bearer tokens.\n   */\n  apiKeyAsBearer?: boolean;\n  /**\n   * Move an `api-key` request header into the WebSocket URL query string for\n   * providers whose WebSocket endpoint authenticates API keys through a query\n   * parameter. Entra ID and OpenAI bearer-token auth should leave this disabled.\n   */\n  apiKeyQueryParam?: string | false;\n  /**\n   * Optional beta header sent when establishing the WebSocket connection.\n   * @default 'responses_websockets=2026-02-06'\n   */\n  betaHeader?: string | false;\n}\n\nexport type OpenAIWebSocketFetch = ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) & {\n  close(): void;\n};\n\nconst TERMINAL_RESPONSE_EVENTS = new Set(['response.completed', 'response.failed', 'response.incomplete', 'error']);\n\n/**\n * Creates a `fetch` function that routes OpenAI Responses API streaming\n * requests through a persistent WebSocket connection instead of HTTP.\n */\nexport function createOpenAIWebSocketFetch(options?: CreateOpenAIWebSocketFetchOptions): OpenAIWebSocketFetch {\n  const wsUrl = options?.url ?? 'wss://api.openai.com/v1/responses';\n  const betaHeader = options?.betaHeader === undefined ? 'responses_websockets=2026-02-06' : options.betaHeader;\n  const apiKeyQueryParam = options?.apiKeyQueryParam ?? false;\n\n  let ws: WebSocket | null = null;\n  let connecting: Promise<WebSocket> | null = null;\n  let connectionKey: string | null = null;\n  let nextQueryCredentialId = 0;\n  const queryCredentialIds = new Map<string, string>();\n  let busy = false;\n\n  function getQueryCredentialCacheId(value?: string): string {\n    if (!value) return '';\n\n    const existing = queryCredentialIds.get(value);\n    if (existing) return existing;\n\n    const id = String(++nextQueryCredentialId);\n    queryCredentialIds.set(value, id);\n    return id;\n  }\n\n  function getConnection(\n    authorization: string,\n    headers: Record<string, string>,\n    signal?: AbortSignal | null,\n  ): Promise<WebSocket> {\n    if (signal?.aborted) {\n      return Promise.reject(getAbortError(signal));\n    }\n\n    const normalizedHeaders = { ...normalizeHeaders(options?.headers), ...headers };\n    const apiKey = normalizedHeaders['api-key'];\n    delete normalizedHeaders['authorization'];\n    delete normalizedHeaders['openai-beta'];\n    if (options?.apiKeyAsBearer || apiKeyQueryParam) {\n      delete normalizedHeaders['api-key'];\n    }\n    const queryCredential = apiKeyQueryParam ? `${apiKeyQueryParam}:${getQueryCredentialCacheId(apiKey)}` : '';\n    const nextConnectionKey = buildConnectionKey(authorization, normalizedHeaders, queryCredential);\n\n    if (ws?.readyState === WebSocket.OPEN && connectionKey === nextConnectionKey) {\n      return Promise.resolve(ws);\n    }\n\n    if (ws?.readyState === WebSocket.OPEN && connectionKey !== nextConnectionKey) {\n      ws.close();\n      ws = null;\n      connectionKey = null;\n    }\n\n    if (connecting && connectionKey === nextConnectionKey) return connecting;\n\n    connectionKey = nextConnectionKey;\n\n    connecting = new Promise<WebSocket>((resolve, reject) => {\n      let settled = false;\n      const socket = new WebSocket(getWebSocketUrl(wsUrl, apiKeyQueryParam, apiKey), {\n        headers: {\n          ...normalizedHeaders,\n          ...(authorization ? { Authorization: authorization } : {}),\n          ...(betaHeader ? { 'OpenAI-Beta': betaHeader } : {}),\n        },\n      });\n\n      function cleanupAbortListener() {\n        signal?.removeEventListener('abort', onAbort);\n      }\n\n      function rejectConnection(err: unknown, closeSocket = true) {\n        if (settled) return;\n        settled = true;\n        connecting = null;\n        connectionKey = null;\n        cleanupAbortListener();\n        if (closeSocket) socket.close();\n        reject(err);\n      }\n\n      function onAbort() {\n        rejectConnection(getAbortError(signal));\n      }\n\n      signal?.addEventListener('abort', onAbort, { once: true });\n\n      socket.on('open', () => {\n        if (signal?.aborted) {\n          rejectConnection(getAbortError(signal));\n          return;\n        }\n        settled = true;\n        ws = socket;\n        connecting = null;\n        cleanupAbortListener();\n        resolve(socket);\n      });\n\n      socket.on('error', err => {\n        rejectConnection(err, false);\n      });\n\n      socket.on('close', () => {\n        if (settled) return;\n        rejectConnection(new Error('WebSocket closed before the connection opened'), false);\n      });\n\n      socket.on('close', () => {\n        if (ws === socket) ws = null;\n        if (ws === null) connectionKey = null;\n      });\n    });\n\n    return connecting;\n  }\n\n  async function websocketFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n    const url = input instanceof URL ? input.toString() : typeof input === 'string' ? input : input.url;\n\n    if (init?.method !== 'POST' || !isResponsesUrl(url)) {\n      return globalThis.fetch(input, init);\n    }\n\n    let body: Record<string, unknown>;\n    try {\n      body = JSON.parse(typeof init.body === 'string' ? init.body : '');\n    } catch {\n      return globalThis.fetch(input, init);\n    }\n\n    if (!body.stream) {\n      return globalThis.fetch(input, init);\n    }\n\n    // Prevent concurrent streams from sharing one WebSocket transport instance.\n    // Only fall back to HTTP when the request does not depend on the socket's\n    // connection-local previous_response_id cache.\n    if (busy) {\n      if (body.previous_response_id) {\n        throw new Error(\n          'Cannot start an overlapping WebSocket Responses continuation. Wait for the active stream to finish before sending previous_response_id.',\n        );\n      }\n      return globalThis.fetch(input, init);\n    }\n\n    const headers = normalizeHeaders(init.headers);\n    const authorization =\n      headers['authorization'] ?? (options?.apiKeyAsBearer && headers['api-key'] ? `Bearer ${headers['api-key']}` : '');\n\n    // Acquire the busy lock before awaiting to prevent races\n    busy = true;\n    let connection: WebSocket;\n    try {\n      connection = await getConnection(authorization, headers, init?.signal);\n    } catch (err) {\n      busy = false;\n      throw err;\n    }\n\n    const { stream: _stream, background: _background, ...requestBody } = body;\n    const encoder = new TextEncoder();\n\n    let cleanupActiveStream: ((options?: { closeSocket?: boolean }) => void) | undefined;\n    const responseStream = new ReadableStream<Uint8Array>({\n      start(controller) {\n        let cleanedUp = false;\n        let abortHandler: (() => void) | undefined;\n\n        function cleanup({ closeSocket = false }: { closeSocket?: boolean } = {}) {\n          if (cleanedUp) return;\n          cleanedUp = true;\n          connection.off('message', onMessage);\n          connection.off('error', onError);\n          connection.off('close', onClose);\n          if (abortHandler) {\n            init?.signal?.removeEventListener('abort', abortHandler);\n            abortHandler = undefined;\n          }\n\n          if (closeSocket && ws === connection) {\n            connection.close();\n            ws = null;\n            connectionKey = null;\n          }\n\n          busy = false;\n          cleanupActiveStream = undefined;\n        }\n\n        cleanupActiveStream = cleanup;\n\n        function onMessage(data: WebSocket.RawData) {\n          const text = data.toString();\n          controller.enqueue(encoder.encode(formatSSEData(text)));\n\n          try {\n            const event = JSON.parse(text);\n            if (isTerminalWebSocketEvent(event)) {\n              controller.enqueue(encoder.encode('data: [DONE]\\n\\n'));\n              cleanup({ closeSocket: shouldReconnectAfterEvent(event) });\n              controller.close();\n            }\n          } catch {\n            // non-JSON frame, continue\n          }\n        }\n\n        function onError(err: Error) {\n          cleanup();\n          controller.error(err);\n        }\n\n        function onClose() {\n          cleanup();\n          try {\n            controller.close();\n          } catch {\n            // already closed\n          }\n        }\n\n        connection.on('message', onMessage);\n        connection.on('error', onError);\n        connection.on('close', onClose);\n\n        const signal = init?.signal;\n        if (signal) {\n          if (signal.aborted) {\n            cleanup({ closeSocket: true });\n            controller.error(signal.reason ?? new DOMException('Aborted', 'AbortError'));\n            return;\n          }\n          abortHandler = () => {\n            cleanup({ closeSocket: true });\n            try {\n              controller.error(signal.reason ?? new DOMException('Aborted', 'AbortError'));\n            } catch {\n              // already closed\n            }\n          };\n          signal.addEventListener('abort', abortHandler, { once: true });\n        }\n\n        connection.send(JSON.stringify({ type: 'response.create', ...requestBody }));\n      },\n      cancel() {\n        cleanupActiveStream?.({ closeSocket: true });\n      },\n    });\n\n    return new Response(responseStream, {\n      status: 200,\n      headers: { 'content-type': 'text/event-stream' },\n    });\n  }\n\n  return Object.assign(websocketFetch, {\n    /** Close the underlying WebSocket connection. */\n    close() {\n      if (ws) {\n        ws.close();\n        ws = null;\n      }\n      connectionKey = null;\n      connecting = null;\n    },\n  });\n}\n\nfunction isResponsesUrl(url: string): boolean {\n  try {\n    return new URL(url).pathname.endsWith('/responses');\n  } catch {\n    return url.split('?')[0]?.endsWith('/responses') ?? false;\n  }\n}\n\nfunction getWebSocketUrl(url: string, apiKeyQueryParam: string | false, apiKey?: string): string {\n  if (!apiKeyQueryParam || !apiKey) return url;\n\n  const parsedUrl = new URL(url);\n  parsedUrl.searchParams.set(apiKeyQueryParam, apiKey);\n  return parsedUrl.toString();\n}\n\nfunction formatSSEData(text: string): string {\n  return `${text\n    .split(/\\r?\\n/)\n    .map(line => `data: ${line}`)\n    .join('\\n')}\\n\\n`;\n}\n\nfunction buildConnectionKey(authorization: string, headers: Record<string, string>, queryCredential = ''): string {\n  return JSON.stringify({\n    authorization,\n    queryCredential,\n    headers: Object.entries(headers).sort(([a], [b]) => a.localeCompare(b)),\n  });\n}\n\nfunction isTerminalWebSocketEvent(event: unknown): event is { type: string } {\n  return (\n    typeof event === 'object' &&\n    event !== null &&\n    'type' in event &&\n    typeof event.type === 'string' &&\n    TERMINAL_RESPONSE_EVENTS.has(event.type)\n  );\n}\n\nfunction shouldReconnectAfterEvent(event: unknown): boolean {\n  if (typeof event !== 'object' || event === null || !('error' in event)) return false;\n  const error = event.error;\n  return (\n    typeof error === 'object' &&\n    error !== null &&\n    'code' in error &&\n    error.code === 'websocket_connection_limit_reached'\n  );\n}\n\nfunction getAbortError(signal?: AbortSignal | null): unknown {\n  return signal?.reason ?? new DOMException('Aborted', 'AbortError');\n}\n\nfunction normalizeHeaders(headers: HeadersInit | undefined): Record<string, string> {\n  const result: Record<string, string> = {};\n  if (!headers) return result;\n\n  if (headers instanceof Headers) {\n    headers.forEach((value, key) => {\n      result[key.toLowerCase()] = value;\n    });\n  } else if (Array.isArray(headers)) {\n    for (const [key, value] of headers) {\n      result[key.toLowerCase()] = value;\n    }\n  } else {\n    for (const [key, value] of Object.entries(headers)) {\n      if (value != null) result[key.toLowerCase()] = value;\n    }\n  }\n\n  return result;\n}\n","import { createAzure } from '@ai-sdk/azure';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { createOpenAIWebSocketFetch } from '../openai-websocket-fetch.js';\nimport type { OpenAITransport, ResponsesWebSocketOptions } from '../provider-options.js';\nimport { MASTRA_GATEWAY_STREAM_TRANSPORT, MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { MASTRA_USER_AGENT } from './constants.js';\n\ninterface AzureTokenResponse {\n  token_type: 'Bearer';\n  expires_in: number;\n  access_token: string;\n}\n\ninterface AzureDeployment {\n  name: string;\n  properties: {\n    model: {\n      name: string;\n      version: string;\n      format: string;\n    };\n    provisioningState: string;\n  };\n}\n\ninterface AzureDeploymentsResponse {\n  value: AzureDeployment[];\n  nextLink?: string;\n}\n\ninterface CachedToken {\n  token: string;\n  expiresAt: number;\n}\n\ntype AzureLanguageModelCallOptions = Parameters<LanguageModelV2['doGenerate']>[0];\n\nexport interface AzureAccessToken {\n  token: string;\n  expiresOnTimestamp?: number;\n}\n\nexport interface AzureTokenCredential {\n  getToken(scopes: string | string[], options?: unknown): Promise<AzureAccessToken | null>;\n}\n\nexport interface AzureOpenAIGatewayConfig {\n  resourceName: string;\n  apiKey?: string;\n  apiVersion?: string;\n  useResponsesAPI?: boolean;\n  useDeploymentBasedUrls?: boolean;\n  deployments?: string[];\n  authentication?: {\n    type: 'entraId';\n    credential: AzureTokenCredential;\n    scope?: string;\n  };\n  management?: {\n    tenantId: string;\n    clientId: string;\n    clientSecret: string;\n    subscriptionId: string;\n    resourceGroup: string;\n  };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction mirrorAzureProviderOptionsForOpenAI<T>(providerOptions: T): T {\n  if (!isRecord(providerOptions) || !isRecord(providerOptions.azure)) {\n    return providerOptions;\n  }\n\n  const openai = isRecord(providerOptions.openai) ? providerOptions.openai : {};\n\n  return {\n    ...providerOptions,\n    openai: {\n      ...openai,\n      ...providerOptions.azure,\n    },\n  } as T;\n}\n\nfunction mirrorAzureResponseProviderOptions(\n  prompt: AzureLanguageModelCallOptions['prompt'],\n): AzureLanguageModelCallOptions['prompt'] {\n  let promptModified = false;\n\n  const mirroredPrompt = prompt.map(message => {\n    const messageWithProviderOptions = message as typeof message & { providerOptions?: unknown };\n    const providerOptions = mirrorAzureProviderOptionsForOpenAI(messageWithProviderOptions.providerOptions);\n    const providerOptionsModified = providerOptions !== messageWithProviderOptions.providerOptions;\n\n    if (!Array.isArray(message.content)) {\n      if (providerOptionsModified) {\n        promptModified = true;\n        return { ...message, providerOptions } as typeof message;\n      }\n\n      return message;\n    }\n\n    let contentModified = false;\n    const content = message.content.map(part => {\n      if (!('providerOptions' in part)) {\n        return part;\n      }\n\n      const providerOptions = mirrorAzureProviderOptionsForOpenAI(part.providerOptions);\n      if (providerOptions === part.providerOptions) {\n        return part;\n      }\n\n      contentModified = true;\n      return { ...part, providerOptions };\n    }) as typeof message.content;\n\n    if (!contentModified) {\n      if (providerOptionsModified) {\n        promptModified = true;\n        return { ...message, providerOptions } as typeof message;\n      }\n\n      return message;\n    }\n\n    promptModified = true;\n    return { ...message, ...(providerOptionsModified ? { providerOptions } : {}), content };\n  });\n\n  return (promptModified ? mirroredPrompt : prompt) as AzureLanguageModelCallOptions['prompt'];\n}\n\nfunction withAzureResponsesInputCompatibility(model: LanguageModelV2): LanguageModelV2 {\n  return new Proxy(model, {\n    get(target, property, receiver) {\n      // Audit this wrapper when AI SDK adds new prompt-taking LanguageModelV2 methods.\n      if (property === 'doGenerate') {\n        return (options: AzureLanguageModelCallOptions) =>\n          target.doGenerate({\n            ...options,\n            providerOptions: mirrorAzureProviderOptionsForOpenAI(options.providerOptions),\n            prompt: mirrorAzureResponseProviderOptions(options.prompt),\n          });\n      }\n\n      if (property === 'doStream') {\n        return (options: Parameters<LanguageModelV2['doStream']>[0]) =>\n          target.doStream({\n            ...options,\n            providerOptions: mirrorAzureProviderOptionsForOpenAI(options.providerOptions),\n            prompt: mirrorAzureResponseProviderOptions(options.prompt),\n          });\n      }\n\n      return Reflect.get(target, property, receiver);\n    },\n  });\n}\n\nexport class AzureOpenAIGateway extends MastraModelGateway {\n  readonly id = 'azure-openai';\n  readonly name = 'azure-openai';\n  private tokenCache = new InMemoryServerCache();\n  private entraIdTokenRequests = new Map<string, Promise<CachedToken>>();\n\n  constructor(private config: AzureOpenAIGatewayConfig) {\n    super();\n    this.validateConfig();\n  }\n\n  private validateConfig(): void {\n    if (!this.config.resourceName) {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'resourceName is required for Azure OpenAI gateway',\n      });\n    }\n\n    if (!this.config.apiKey && this.config.authentication?.type !== 'entraId') {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'apiKey or Entra ID authentication is required for Azure OpenAI gateway',\n      });\n    }\n\n    if (this.config.authentication?.type === 'entraId' && !this.config.authentication.credential) {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'credential is required for Azure OpenAI Entra ID authentication',\n      });\n    }\n\n    if (this.config.apiKey && this.config.authentication?.type === 'entraId') {\n      console.warn(\n        '[AzureOpenAIGateway] Both apiKey and Entra ID authentication provided. Using Entra ID authentication and ignoring apiKey.',\n      );\n    }\n\n    if (this.config.useResponsesAPI && this.config.useDeploymentBasedUrls === true) {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'useResponsesAPI: true cannot be combined with useDeploymentBasedUrls: true. Omit useDeploymentBasedUrls or set it to false.',\n      });\n    }\n\n    if (this.config.useResponsesAPI && this.config.apiVersion && !['v1', 'preview'].includes(this.config.apiVersion)) {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'useResponsesAPI: true requires apiVersion: \"v1\" or apiVersion: \"preview\". Omit apiVersion to use \"v1\".',\n      });\n    }\n\n    if (\n      this.config.useDeploymentBasedUrls === false &&\n      this.config.apiVersion &&\n      !['v1', 'preview'].includes(this.config.apiVersion)\n    ) {\n      throw new MastraError({\n        id: 'AZURE_GATEWAY_INVALID_CONFIG',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'useDeploymentBasedUrls: false requires apiVersion: \"v1\" or apiVersion: \"preview\". Omit apiVersion to use \"v1\".',\n      });\n    }\n\n    const hasDeployments = this.config.deployments && this.config.deployments.length > 0;\n    const hasManagement = this.config.management !== undefined;\n\n    if (hasDeployments && hasManagement) {\n      console.warn(\n        '[AzureOpenAIGateway] Both deployments and management credentials provided. Using static deployments list and ignoring management API.',\n      );\n    }\n\n    if (hasManagement) {\n      this.getManagementCredentials(this.config.management!);\n    }\n  }\n\n  async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n    if (this.config.deployments && this.config.deployments.length > 0) {\n      return {\n        'azure-openai': {\n          apiKeyEnvVar: [],\n          apiKeyHeader: 'api-key',\n          name: 'Azure OpenAI',\n          models: this.config.deployments,\n          docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n          gateway: 'azure-openai',\n        },\n      };\n    }\n\n    if (!this.config.management) {\n      return {\n        'azure-openai': {\n          apiKeyEnvVar: [],\n          apiKeyHeader: 'api-key',\n          name: 'Azure OpenAI',\n          models: [],\n          docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n          gateway: 'azure-openai',\n        },\n      };\n    }\n\n    try {\n      const credentials = this.getManagementCredentials(this.config.management);\n\n      const token = await this.getAzureADToken({\n        tenantId: credentials.tenantId,\n        clientId: credentials.clientId,\n        clientSecret: credentials.clientSecret,\n      });\n\n      const deployments = await this.fetchDeployments(token, {\n        subscriptionId: credentials.subscriptionId,\n        resourceGroup: credentials.resourceGroup,\n        resourceName: this.config.resourceName,\n      });\n\n      return {\n        'azure-openai': {\n          apiKeyEnvVar: [],\n          apiKeyHeader: 'api-key',\n          name: 'Azure OpenAI',\n          models: deployments.map(d => d.name),\n          docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n          gateway: 'azure-openai',\n        },\n      };\n    } catch (error) {\n      const errorMsg = error instanceof Error ? error.message : String(error);\n      console.warn(\n        `[AzureOpenAIGateway] Deployment discovery failed: ${errorMsg}`,\n        '\\nReturning fallback configuration. Azure OpenAI can still be used by manually specifying deployment names.',\n      );\n\n      return {\n        'azure-openai': {\n          apiKeyEnvVar: [],\n          apiKeyHeader: 'api-key',\n          name: 'Azure OpenAI',\n          models: [],\n          docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n          gateway: 'azure-openai',\n        },\n      };\n    }\n  }\n\n  private getManagementCredentials(management: NonNullable<AzureOpenAIGatewayConfig['management']>) {\n    const { tenantId, clientId, clientSecret, subscriptionId, resourceGroup } = management;\n\n    const missing = [];\n    if (!tenantId) missing.push('tenantId');\n    if (!clientId) missing.push('clientId');\n    if (!clientSecret) missing.push('clientSecret');\n    if (!subscriptionId) missing.push('subscriptionId');\n    if (!resourceGroup) missing.push('resourceGroup');\n\n    if (missing.length > 0) {\n      throw new MastraError({\n        id: 'AZURE_MANAGEMENT_CREDENTIALS_MISSING',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: `Management credentials incomplete. Missing: ${missing.join(', ')}. Required fields: tenantId, clientId, clientSecret, subscriptionId, resourceGroup.`,\n      });\n    }\n\n    return {\n      tenantId,\n      clientId,\n      clientSecret,\n      subscriptionId,\n      resourceGroup,\n    };\n  }\n\n  private async getAzureADToken(credentials: {\n    tenantId: string;\n    clientId: string;\n    clientSecret: string;\n  }): Promise<string> {\n    const { tenantId, clientId, clientSecret } = credentials;\n\n    const cacheKey = `azure-mgmt-token:${tenantId}:${clientId}`;\n\n    const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n    if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n      return cached.token;\n    }\n\n    const tokenEndpoint = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`;\n\n    const body = new URLSearchParams({\n      grant_type: 'client_credentials',\n      client_id: clientId,\n      client_secret: clientSecret,\n      scope: 'https://management.azure.com/.default',\n    });\n\n    const response = await fetch(tokenEndpoint, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/x-www-form-urlencoded',\n      },\n      body: body.toString(),\n    });\n\n    if (!response.ok) {\n      const error = await response.text();\n      throw new MastraError({\n        id: 'AZURE_AD_TOKEN_ERROR',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: `Failed to get Azure AD token: ${response.status} ${error}`,\n      });\n    }\n\n    const tokenResponse = (await response.json()) as AzureTokenResponse;\n\n    const expiresAt = Math.floor(Date.now() / 1000) + tokenResponse.expires_in;\n\n    await this.tokenCache.set(cacheKey, {\n      token: tokenResponse.access_token,\n      expiresAt,\n    });\n\n    return tokenResponse.access_token;\n  }\n\n  private async fetchDeployments(\n    token: string,\n    credentials: {\n      subscriptionId: string;\n      resourceGroup: string;\n      resourceName: string;\n    },\n  ): Promise<AzureDeployment[]> {\n    const { subscriptionId, resourceGroup, resourceName } = credentials;\n\n    let url: string | undefined =\n      `https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.CognitiveServices/accounts/${resourceName}/deployments?api-version=2024-10-01`;\n\n    const allDeployments: AzureDeployment[] = [];\n\n    while (url) {\n      const response = await fetch(url, {\n        headers: {\n          Authorization: `Bearer ${token}`,\n          'Content-Type': 'application/json',\n        },\n      });\n\n      if (!response.ok) {\n        const error = await response.text();\n        throw new MastraError({\n          id: 'AZURE_DEPLOYMENTS_FETCH_ERROR',\n          domain: 'LLM',\n          category: 'UNKNOWN',\n          text: `Failed to fetch Azure deployments: ${response.status} ${error}`,\n        });\n      }\n\n      const data = (await response.json()) as AzureDeploymentsResponse;\n\n      allDeployments.push(...data.value);\n\n      url = data.nextLink;\n    }\n\n    const successfulDeployments = allDeployments.filter(d => d.properties.provisioningState === 'Succeeded');\n\n    return successfulDeployments;\n  }\n\n  buildUrl(_routerId: string, _envVars?: typeof process.env): undefined {\n    return undefined;\n  }\n\n  async getApiKey(_modelId: string): Promise<string> {\n    return this.config.authentication?.type === 'entraId' ? '' : (this.config.apiKey ?? '');\n  }\n\n  private async getEntraIdToken(): Promise<string> {\n    if (this.config.authentication?.type !== 'entraId') {\n      throw new MastraError({\n        id: 'AZURE_ENTRA_ID_AUTH_NOT_CONFIGURED',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'Entra ID authentication is not configured for Azure OpenAI gateway',\n      });\n    }\n\n    const scope = this.config.authentication.scope ?? 'https://cognitiveservices.azure.com/.default';\n    const cacheKey = `azure-openai-token:${scope}`;\n    const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n    if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n      return cached.token;\n    }\n\n    let tokenRequest = this.entraIdTokenRequests.get(cacheKey);\n\n    if (!tokenRequest) {\n      tokenRequest = this.fetchEntraIdToken(scope, cacheKey);\n      this.entraIdTokenRequests.set(cacheKey, tokenRequest);\n    }\n\n    try {\n      const token = await tokenRequest;\n      return token.token;\n    } finally {\n      this.entraIdTokenRequests.delete(cacheKey);\n    }\n  }\n\n  private async fetchEntraIdToken(scope: string, cacheKey: string): Promise<CachedToken> {\n    if (this.config.authentication?.type !== 'entraId') {\n      throw new MastraError({\n        id: 'AZURE_ENTRA_ID_AUTH_NOT_CONFIGURED',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'Entra ID authentication is not configured for Azure OpenAI gateway',\n      });\n    }\n\n    const accessToken = await this.config.authentication.credential.getToken(scope);\n    if (!accessToken?.token) {\n      throw new MastraError({\n        id: 'AZURE_ENTRA_ID_TOKEN_ERROR',\n        domain: 'LLM',\n        category: 'UNKNOWN',\n        text: 'Failed to get Entra ID token for Azure OpenAI gateway',\n      });\n    }\n\n    const token = {\n      token: accessToken.token,\n      expiresAt: accessToken.expiresOnTimestamp\n        ? Math.floor(accessToken.expiresOnTimestamp / 1000)\n        : Math.floor(Date.now() / 1000) + 300,\n    };\n\n    await this.tokenCache.set(cacheKey, token);\n\n    return token;\n  }\n\n  private createEntraIdFetch(innerFetch: typeof globalThis.fetch = fetch): typeof globalThis.fetch {\n    return async (input, init) => {\n      const token = await this.getEntraIdToken();\n      const headers = new Headers(init?.headers);\n      headers.delete('api-key');\n      headers.set('Authorization', `Bearer ${token}`);\n\n      return innerFetch(input, {\n        ...init,\n        headers,\n      });\n    };\n  }\n\n  private createAzureResponsesWebSocketFetch({\n    useEntraId,\n    responsesWebSocket,\n  }: {\n    useEntraId: boolean;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): typeof globalThis.fetch & { close(): void } {\n    const websocketFetch = createOpenAIWebSocketFetch({\n      url: responsesWebSocket?.url ?? `wss://${this.config.resourceName}.openai.azure.com/openai/v1/responses`,\n      headers: responsesWebSocket?.headers,\n      apiKeyQueryParam: useEntraId ? false : 'api-key',\n      betaHeader: false,\n    });\n\n    return useEntraId\n      ? Object.assign(this.createEntraIdFetch(websocketFetch), { close: websocketFetch.close })\n      : websocketFetch;\n  }\n\n  async resolveLanguageModel({\n    modelId,\n    apiKey,\n    headers,\n    transport,\n    responsesWebSocket,\n  }: {\n    modelId: string;\n    providerId: string;\n    apiKey: string;\n    headers?: Record<string, string>;\n    transport?: OpenAITransport;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): Promise<LanguageModelV2> {\n    const useResponsesAPI = this.config.useResponsesAPI ?? false;\n    const apiVersion =\n      this.config.apiVersion ||\n      (useResponsesAPI || this.config.useDeploymentBasedUrls === false ? 'v1' : '2024-04-01-preview');\n    const useDeploymentBasedUrls = this.config.useDeploymentBasedUrls ?? (useResponsesAPI ? false : true);\n    const useEntraId = this.config.authentication?.type === 'entraId';\n    const useWebSocket = useResponsesAPI && transport === 'websocket';\n    const websocketFetch = useWebSocket\n      ? this.createAzureResponsesWebSocketFetch({\n          useEntraId,\n          responsesWebSocket,\n        })\n      : undefined;\n    const azureConfig = {\n      resourceName: this.config.resourceName,\n      apiKey: useEntraId ? '' : apiKey,\n      apiVersion,\n      // Mastra's Azure gateway has historically used deployment-based URLs.\n      // Keep that default for compatibility; set false with apiVersion: 'v1'\n      // to use the newer Azure OpenAI v1 route.\n      useDeploymentBasedUrls,\n      headers: { 'User-Agent': MASTRA_USER_AGENT, ...headers },\n      ...(websocketFetch && !useEntraId ? { fetch: websocketFetch } : {}),\n    };\n\n    const azureProvider = createAzure(\n      useEntraId\n        ? {\n            ...azureConfig,\n            fetch: websocketFetch ?? this.createEntraIdFetch(),\n          }\n        : azureConfig,\n    );\n\n    if (useResponsesAPI) {\n      const model = withAzureResponsesInputCompatibility(azureProvider.responses(modelId));\n      if (websocketFetch) {\n        Object.defineProperty(model, MASTRA_GATEWAY_STREAM_TRANSPORT, {\n          configurable: true,\n          value: {\n            type: 'openai-websocket',\n            close: websocketFetch.close,\n          },\n        });\n      }\n\n      return model;\n    }\n\n    return azureProvider(modelId);\n  }\n}\n","import { MastraError } from '../../../error/index.js';\nimport type { MastraModelGateway } from './base.js';\nexport { MastraModelGateway, type ProviderConfig, type GatewayLanguageModel } from './base.js';\nexport {\n  AzureOpenAIGateway,\n  type AzureAccessToken,\n  type AzureOpenAIGatewayConfig,\n  type AzureTokenCredential,\n} from './azure.js';\nexport { ModelsDevGateway } from './models-dev.js';\nexport { MastraGateway, type MastraGatewayConfig } from './mastra.js';\nexport { NetlifyGateway } from './netlify.js';\n\n/**\n * Find the gateway that handles a specific model ID based on gateway ID\n * Gateway ID is used as the prefix (e.g., \"netlify\" for netlify gateway)\n * Exception: models.dev is a provider registry and doesn't use a prefix\n */\nexport function findGatewayForModel(gatewayId: string, gateways: MastraModelGateway[]): MastraModelGateway {\n  // First, check for gateways whose ID matches the prefix (true gateways like netlify, openrouter, vercel)\n  const prefixedGateway = gateways.find(\n    (g: MastraModelGateway) => g.id !== 'models.dev' && (g.id === gatewayId || gatewayId.startsWith(`${g.id}/`)),\n  );\n  if (prefixedGateway) {\n    return prefixedGateway;\n  }\n\n  // Then check models.dev (provider registry without prefix)\n  const modelsDevGateway = gateways.find((g: MastraModelGateway) => g.id === 'models.dev');\n  if (modelsDevGateway) {\n    return modelsDevGateway;\n  }\n\n  throw new MastraError({\n    id: 'MODEL_ROUTER_NO_GATEWAY_FOUND',\n    category: 'USER',\n    domain: 'MODEL_ROUTER',\n    text: `No Mastra model router gateway found for model id ${gatewayId}`,\n  });\n}\n","import { createHash } from 'node:crypto';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport type { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2StreamPart } from '@ai-sdk/provider-v5';\nimport type { LanguageModelV3 } from '@ai-sdk/provider-v6';\nimport { attachModelStreamTransport } from '../../stream/types';\nimport type { StreamTransport } from '../../stream/types';\nimport { AISDKV5LanguageModel } from './aisdk/v5/model';\nimport { AISDKV6LanguageModel } from './aisdk/v6/model';\nimport { parseModelRouterId } from './gateway-resolver.js';\nimport { MASTRA_GATEWAY_STREAM_TRANSPORT } from './gateways/base.js';\nimport type {\n  GatewayLanguageModel,\n  GatewayLanguageModelWithStreamTransport,\n  GatewayStreamTransportHandle,\n  MastraModelGateway,\n} from './gateways/base.js';\nimport { findGatewayForModel } from './gateways/index.js';\n\nimport { MastraGateway } from './gateways/mastra.js';\nimport { ModelsDevGateway } from './gateways/models-dev.js';\nimport { NetlifyGateway } from './gateways/netlify.js';\nimport { createOpenAIWebSocketFetch } from './openai-websocket-fetch.js';\nimport type { OpenAIWebSocketFetch } from './openai-websocket-fetch.js';\nimport type { OpenAITransport, ProviderOptions, ResponsesWebSocketOptions } from './provider-options.js';\nimport type { ModelRouterModelId } from './provider-registry.js';\nimport { PROVIDER_REGISTRY } from './provider-registry.js';\nimport type { MastraLanguageModelV2, OpenAICompatibleConfig } from './shared.types';\n\n/**\n * Type guard to check if a model is a LanguageModelV3 (AI SDK v6)\n */\nfunction isLanguageModelV3(model: GatewayLanguageModel): model is LanguageModelV3 {\n  return model.specificationVersion === 'v3';\n}\n\nconst OPENAI_WS_ALLOWLIST = new Set(['openai']);\nconst OPENAI_API_HOST = 'api.openai.com';\n\ntype GatewayModelCache = {\n  modelInstances: Map<string, GatewayLanguageModel>;\n  webSocketFetches: Map<string, OpenAIWebSocketFetch>;\n  gatewayStreamTransports: Map<string, GatewayStreamTransportHandle>;\n};\n\nfunction createGatewayModelCache(): GatewayModelCache {\n  return {\n    modelInstances: new Map(),\n    webSocketFetches: new Map(),\n    gatewayStreamTransports: new Map(),\n  };\n}\n\nfunction getOpenAITransport(\n  providerOptions?: ProviderOptions,\n  providerId?: string,\n): {\n  transport: OpenAITransport;\n  websocket?: ResponsesWebSocketOptions;\n} {\n  const transportOptions = (providerId === 'azure-openai' ? providerOptions?.azure : providerOptions?.openai) as\n    | {\n        transport?: OpenAITransport;\n        websocket?: ResponsesWebSocketOptions;\n      }\n    | undefined;\n\n  return {\n    transport: transportOptions?.transport ?? 'fetch',\n    websocket: transportOptions?.websocket,\n  };\n}\n\nfunction isOpenAIBaseUrl(baseURL?: string): boolean {\n  if (!baseURL) return true;\n  try {\n    const hostname = new URL(baseURL).hostname;\n    return hostname === OPENAI_API_HOST;\n  } catch {\n    return false;\n  }\n}\n\nfunction stableHeaderKey(headers?: Record<string, string>): string {\n  if (!headers) return '';\n  const entries = Object.entries(headers);\n  if (entries.length === 0) return '';\n  return JSON.stringify(entries.sort(([a], [b]) => a.localeCompare(b)));\n}\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;\n\nfunction getStaticProvidersByGateway(name: string) {\n  return Object.fromEntries(Object.entries(PROVIDER_REGISTRY).filter(([_provider, config]) => config.gateway === name));\n}\n\nexport const defaultGateways = [\n  new NetlifyGateway(),\n  new MastraGateway(),\n  new ModelsDevGateway(getStaticProvidersByGateway(`models.dev`)),\n];\n\n/**\n * @deprecated Use defaultGateways instead. This export will be removed in a future version.\n */\nexport const gateways = defaultGateways;\n\nexport class ModelRouterLanguageModel implements MastraLanguageModelV2 {\n  readonly specificationVersion = 'v2' as const;\n  readonly defaultObjectGenerationMode = 'json' as const;\n  readonly supportsStructuredOutputs = true;\n  readonly supportsImageUrls = true;\n\n  /**\n   * Supported URL patterns by media type for the provider.\n   * This is a lazy promise that resolves the underlying model's supportedUrls.\n   * Models like Mistral define which URL patterns they support (e.g., application/pdf for https URLs).\n   *\n   * @see https://github.com/mastra-ai/mastra/issues/12152\n   */\n  readonly supportedUrls: PromiseLike<Record<string, RegExp[]>>;\n\n  readonly modelId: string;\n  readonly provider: string;\n  readonly gatewayId: string;\n\n  private config: OpenAICompatibleConfig & { routerId: string };\n  private gateway: MastraModelGateway;\n  private _supportedUrlsPromise: Promise<Record<string, RegExp[]>> | null = null;\n  private readonly instanceGatewayCache = createGatewayModelCache();\n  #lastStreamTransport: StreamTransport | undefined;\n\n  constructor(config: ModelRouterModelId | OpenAICompatibleConfig, customGateways?: MastraModelGateway[]) {\n    // Normalize config to always have an 'id' field for routing\n    let normalizedConfig: {\n      id: `${string}/${string}`;\n      url?: string;\n      apiKey?: string;\n      headers?: Record<string, string>;\n    };\n\n    if (typeof config === 'string') {\n      normalizedConfig = { id: config as `${string}/${string}` };\n    } else if ('providerId' in config && 'modelId' in config) {\n      // Convert providerId/modelId to id format\n      normalizedConfig = {\n        id: `${config.providerId}/${config.modelId}` as `${string}/${string}`,\n        url: config.url,\n        apiKey: config.apiKey,\n        headers: config.headers,\n      };\n    } else {\n      // config has 'id' field\n      normalizedConfig = {\n        id: config.id,\n        url: config.url,\n        apiKey: config.apiKey,\n        headers: config.headers,\n      };\n    }\n\n    const parsedConfig: {\n      id: `${string}/${string}`;\n      routerId: string;\n      url?: string;\n      apiKey?: string;\n      headers?: Record<string, string>;\n    } = {\n      ...normalizedConfig,\n      routerId: normalizedConfig.id,\n    };\n\n    // Resolve gateway once using the normalized ID\n    // Merge custom gateways with defaults, deduplicating by gateway id (custom takes precedence)\n    const allGateways = customGateways?.length\n      ? [...customGateways, ...defaultGateways.filter(dg => !customGateways.some(cg => cg.id === dg.id))]\n      : defaultGateways;\n    this.gateway = findGatewayForModel(normalizedConfig.id, allGateways);\n    this.gatewayId = this.gateway.id;\n    // Extract provider from id if present\n    // Gateway ID is used as prefix (except for models.dev which is a provider registry)\n    const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n    const parsed = parseModelRouterId(normalizedConfig.id, gatewayPrefix);\n\n    this.provider = parsed.providerId || 'openai-compatible';\n\n    if (parsed.providerId && parsed.modelId !== normalizedConfig.id) {\n      parsedConfig.id = parsed.modelId as `${string}/${string}`;\n    }\n\n    this.modelId = parsedConfig.id;\n    this.config = parsedConfig;\n\n    // Create a lazy PromiseLike for supportedUrls that resolves the underlying model's supportedUrls\n    // This allows providers like Mistral to expose their native URL support (e.g., PDF URLs)\n    // See: https://github.com/mastra-ai/mastra/issues/12152\n    const self = this;\n    this.supportedUrls = {\n      then<TResult1 = Record<string, RegExp[]>, TResult2 = never>(\n        onfulfilled?: ((value: Record<string, RegExp[]>) => TResult1 | PromiseLike<TResult1>) | null,\n        onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n      ): PromiseLike<TResult1 | TResult2> {\n        return self._resolveSupportedUrls().then(onfulfilled, onrejected);\n      },\n    };\n  }\n\n  /**\n   * Lazily resolves the underlying model's supportedUrls.\n   * This is cached to avoid multiple model resolutions.\n   * @internal\n   */\n  private async _resolveSupportedUrls(): Promise<Record<string, RegExp[]>> {\n    if (this._supportedUrlsPromise) {\n      return this._supportedUrlsPromise;\n    }\n\n    this._supportedUrlsPromise = this._fetchSupportedUrls();\n    return this._supportedUrlsPromise;\n  }\n\n  /**\n   * Fetches supportedUrls from the underlying model.\n   * @internal\n   */\n  private async _fetchSupportedUrls(): Promise<Record<string, RegExp[]>> {\n    let apiKey: string;\n    try {\n      if (this.config.url) {\n        apiKey = this.config.apiKey || '';\n      } else {\n        apiKey = this.config.apiKey || (await this.gateway.getApiKey(this.config.routerId));\n      }\n    } catch {\n      // If we can't get the API key, return empty supportedUrls\n      // This gracefully degrades - URLs will be downloaded instead\n      return {};\n    }\n\n    try {\n      const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n      const model = await this.resolveLanguageModel({\n        apiKey,\n        headers: this.config.headers,\n        ...parseModelRouterId(this.config.routerId, gatewayPrefix),\n      });\n\n      // Get supportedUrls from the underlying model\n      const modelSupportedUrls = model.supportedUrls;\n      if (!modelSupportedUrls) {\n        return {};\n      }\n\n      // Handle both Promise and plain object supportedUrls\n      if (typeof (modelSupportedUrls as PromiseLike<unknown>).then === 'function') {\n        const resolved = await (modelSupportedUrls as PromiseLike<Record<string, RegExp[]>>);\n        return resolved ?? {};\n      }\n\n      return (modelSupportedUrls as Record<string, RegExp[]>) ?? {};\n    } catch {\n      // If model resolution fails, return empty supportedUrls\n      return {};\n    }\n  }\n\n  /** @internal */\n  _getStreamTransport(): StreamTransport | undefined {\n    return this.#lastStreamTransport;\n  }\n\n  /**\n   * Custom serialization for tracing/observability spans.\n   * Excludes `config` (holds apiKey, headers, url) and `gateway`\n   * (may hold proxy credentials or cached tokens) so they cannot leak\n   * into telemetry backends.\n   */\n  serializeForSpan(): {\n    specificationVersion: 'v2';\n    modelId: string;\n    provider: string;\n    gatewayId: string;\n  } {\n    return {\n      specificationVersion: this.specificationVersion,\n      modelId: this.modelId,\n      provider: this.provider,\n      gatewayId: this.gatewayId,\n    };\n  }\n\n  private getGatewayCache(): GatewayModelCache {\n    let cache = ModelRouterLanguageModel.gatewayCaches.get(this.gateway);\n\n    if (!cache) {\n      cache = createGatewayModelCache();\n      ModelRouterLanguageModel.gatewayCaches.set(this.gateway, cache);\n    }\n\n    return cache;\n  }\n\n  private setStreamTransportHandle({\n    resolvedTransport,\n    transport,\n    responsesWebSocket,\n  }: {\n    resolvedTransport: OpenAITransport;\n    transport?: GatewayStreamTransportHandle;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }) {\n    if (resolvedTransport !== 'websocket') {\n      this.#lastStreamTransport = undefined;\n      return;\n    }\n\n    if (!transport) {\n      this.#lastStreamTransport = undefined;\n      return;\n    }\n\n    this.#lastStreamTransport = {\n      type: transport.type,\n      close: transport.close,\n      closeOnFinish: responsesWebSocket?.closeOnFinish ?? true,\n    };\n  }\n\n  private setStreamTransportFromCache({\n    cache,\n    resolvedTransport,\n    key,\n    responsesWebSocket,\n  }: {\n    cache: GatewayModelCache;\n    resolvedTransport: OpenAITransport;\n    key: string;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }) {\n    const wsFetch = cache.webSocketFetches.get(key);\n    const gatewayTransport = cache.gatewayStreamTransports.get(key);\n    const transport = wsFetch ? { type: 'openai-websocket' as const, close: () => wsFetch.close() } : gatewayTransport;\n\n    this.setStreamTransportHandle({ resolvedTransport, transport, responsesWebSocket });\n  }\n\n  async doGenerate(options: LanguageModelV2CallOptions): Promise<StreamResult> {\n    let apiKey: string;\n    try {\n      // If custom URL is provided, skip gateway API key resolution\n      // The provider might not be in the registry (e.g., custom providers like ollama)\n      if (this.config.url) {\n        apiKey = this.config.apiKey || '';\n      } else {\n        apiKey = this.config.apiKey || (await this.gateway.getApiKey(this.config.routerId));\n      }\n    } catch (error) {\n      // Return an error stream instead of throwing\n      return {\n        stream: new ReadableStream({\n          start(controller) {\n            controller.enqueue({\n              type: 'error',\n              error: error,\n            } as LanguageModelV2StreamPart);\n            controller.close();\n          },\n        }),\n      };\n    }\n\n    const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n    const model = await this.resolveLanguageModel({\n      apiKey,\n      headers: this.config.headers,\n      ...parseModelRouterId(this.config.routerId, gatewayPrefix),\n    });\n\n    // Handle both V2 and V3 models\n    if (isLanguageModelV3(model)) {\n      const aiSDKV6Model = new AISDKV6LanguageModel(model);\n      // Cast V3 stream result to V2 format - the stream contents are compatible at runtime\n      return aiSDKV6Model.doGenerate(options as any) as unknown as Promise<StreamResult>;\n    }\n    const aiSDKV5Model = new AISDKV5LanguageModel(model);\n    return aiSDKV5Model.doGenerate(options);\n  }\n\n  async doStream(options: LanguageModelV2CallOptions): Promise<StreamResult> {\n    // Validate API key and return error stream if validation fails\n    let apiKey: string;\n    try {\n      // If custom URL is provided, skip gateway API key resolution\n      // The provider might not be in the registry (e.g., custom providers like ollama)\n      if (this.config.url) {\n        apiKey = this.config.apiKey || '';\n      } else {\n        apiKey = this.config.apiKey || (await this.gateway.getApiKey(this.config.routerId));\n      }\n    } catch (error) {\n      // Return an error stream instead of throwing\n      return {\n        stream: new ReadableStream({\n          start(controller) {\n            controller.enqueue({\n              type: 'error',\n              error: error,\n            } as LanguageModelV2StreamPart);\n            controller.close();\n          },\n        }),\n      };\n    }\n\n    const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n    const parsedModelId = parseModelRouterId(this.config.routerId, gatewayPrefix);\n    const { transport, websocket } = getOpenAITransport(\n      options.providerOptions as ProviderOptions | undefined,\n      parsedModelId.providerId,\n    );\n    const requestedTransport: OpenAITransport = transport === 'auto' ? 'websocket' : transport;\n    const allowWebSocket =\n      requestedTransport === 'websocket' &&\n      !this.config.url &&\n      ((this.gateway.id === 'models.dev' && OPENAI_WS_ALLOWLIST.has(this.provider)) ||\n        this.gateway.id === 'azure-openai');\n    const resolvedTransport: OpenAITransport = allowWebSocket ? 'websocket' : 'fetch';\n\n    const model = await this.resolveLanguageModel({\n      apiKey,\n      headers: this.config.headers,\n      transport: resolvedTransport,\n      responsesWebSocket: websocket,\n      ...parsedModelId,\n    });\n\n    // Handle both V2 and V3 models\n    const streamTransport = this.#lastStreamTransport;\n    if (isLanguageModelV3(model)) {\n      const aiSDKV6Model = new AISDKV6LanguageModel(model);\n      // Cast V3 stream result to V2 format - the stream contents are compatible at runtime\n      const streamResult = (await aiSDKV6Model.doStream(options as any)) as unknown as StreamResult;\n      attachModelStreamTransport(streamResult, streamTransport);\n      return streamResult;\n    }\n    const aiSDKV5Model = new AISDKV5LanguageModel(model);\n    const streamResult = await aiSDKV5Model.doStream(options);\n    attachModelStreamTransport(streamResult, streamTransport);\n    return streamResult;\n  }\n\n  private async resolveLanguageModel({\n    modelId,\n    providerId,\n    apiKey,\n    headers,\n    transport,\n    responsesWebSocket,\n  }: {\n    modelId: string;\n    providerId: string;\n    apiKey: string;\n    headers?: Record<string, string>;\n    transport?: OpenAITransport;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): Promise<GatewayLanguageModel> {\n    const resolvedTransport: OpenAITransport = transport ?? 'fetch';\n    const websocketKey =\n      resolvedTransport === 'websocket'\n        ? `${responsesWebSocket?.url ?? ''}:${stableHeaderKey(responsesWebSocket?.headers)}`\n        : '';\n    const usesExplicitApiKey = this.config.apiKey !== undefined;\n    const cache = usesExplicitApiKey ? this.instanceGatewayCache : this.getGatewayCache();\n    const key = createHash('sha256')\n      .update(\n        JSON.stringify([\n          this.gateway.id,\n          modelId,\n          providerId,\n          this.config.url || '',\n          stableHeaderKey(headers),\n          resolvedTransport,\n          websocketKey,\n        ]),\n      )\n      .digest('hex');\n    if (cache.modelInstances.has(key)) {\n      this.setStreamTransportFromCache({ cache, resolvedTransport, key, responsesWebSocket });\n      return cache.modelInstances.get(key)!;\n    }\n\n    // If custom URL is provided, use it directly with openai-compatible\n    if (this.config.url) {\n      const modelInstance = createOpenAICompatible({\n        name: providerId,\n        apiKey,\n        baseURL: this.config.url,\n        headers: this.config.headers,\n        supportsStructuredOutputs: true,\n      }).chatModel(modelId);\n      cache.modelInstances.set(key, modelInstance);\n      this.setStreamTransportHandle({ resolvedTransport, responsesWebSocket });\n      return modelInstance;\n    }\n\n    if (resolvedTransport === 'websocket' && providerId === 'openai' && this.gateway.id === 'models.dev') {\n      const baseURL = await this.gateway.buildUrl(this.config.routerId, process.env as Record<string, string>);\n\n      if (isOpenAIBaseUrl(baseURL)) {\n        const { modelInstance, wsFetch } = this.resolveOpenAIWebSocketModel({\n          modelId,\n          apiKey,\n          baseURL,\n          headers,\n          responsesWebSocket,\n        });\n        cache.modelInstances.set(key, modelInstance);\n        cache.webSocketFetches.set(key, wsFetch);\n        this.setStreamTransportFromCache({ cache, resolvedTransport, key, responsesWebSocket });\n        return modelInstance;\n      }\n    }\n\n    const modelInstance = await this.gateway.resolveLanguageModel({\n      modelId,\n      providerId,\n      apiKey,\n      headers,\n      transport: resolvedTransport,\n      responsesWebSocket,\n    });\n    const gatewayTransport = readGatewayStreamTransport(modelInstance);\n    cache.modelInstances.set(key, modelInstance);\n    if (gatewayTransport) {\n      cache.gatewayStreamTransports.set(key, gatewayTransport);\n    }\n    this.setStreamTransportHandle({ resolvedTransport, transport: gatewayTransport, responsesWebSocket });\n    return modelInstance;\n  }\n\n  private resolveOpenAIWebSocketModel({\n    modelId,\n    apiKey,\n    baseURL,\n    headers,\n    responsesWebSocket,\n  }: {\n    modelId: string;\n    apiKey: string;\n    baseURL?: string;\n    headers?: Record<string, string>;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): { modelInstance: GatewayLanguageModel; wsFetch: OpenAIWebSocketFetch } {\n    const wsFetch = createOpenAIWebSocketFetch({\n      url: responsesWebSocket?.url,\n      headers: responsesWebSocket?.headers,\n    });\n\n    const modelInstance = createOpenAI({\n      apiKey,\n      baseURL,\n      headers,\n      fetch: wsFetch,\n    }).responses(modelId);\n    return { modelInstance, wsFetch };\n  }\n  private static _clearCachesForTests() {\n    ModelRouterLanguageModel.gatewayCaches = new WeakMap();\n  }\n\n  private static gatewayCaches = new WeakMap<MastraModelGateway, GatewayModelCache>();\n}\n\nfunction readGatewayStreamTransport(model: GatewayLanguageModel): GatewayStreamTransportHandle | undefined {\n  return (model as GatewayLanguageModelWithStreamTransport)[MASTRA_GATEWAY_STREAM_TRANSPORT];\n}\n","import type { LanguageModelV1, LanguageModelV1CallOptions } from '@internal/ai-sdk-v4';\n\n/**\n * Wrapper class for AI SDK v4 (LanguageModelV1) legacy models.\n *\n * The wrapped `#model` is held in a true JS private field so the\n * underlying SDK client (and any enumerable config it exposes) cannot\n * leak into observability spans. `serializeForSpan()` makes the safe\n * shape explicit.\n *\n * This wrapper is applied by `resolveModelConfig` when a raw v4 model\n * is passed to Mastra, so callers do not need to construct it directly.\n */\nexport class AISDKV4LegacyLanguageModel implements LanguageModelV1 {\n  readonly specificationVersion: 'v1' = 'v1';\n  readonly provider: LanguageModelV1['provider'];\n  readonly modelId: LanguageModelV1['modelId'];\n  readonly defaultObjectGenerationMode: LanguageModelV1['defaultObjectGenerationMode'];\n  readonly supportsImageUrls?: LanguageModelV1['supportsImageUrls'];\n  readonly supportsStructuredOutputs?: LanguageModelV1['supportsStructuredOutputs'];\n\n  #model: LanguageModelV1;\n\n  constructor(config: LanguageModelV1) {\n    this.#model = config;\n    this.provider = config.provider;\n    this.modelId = config.modelId;\n    this.defaultObjectGenerationMode = config.defaultObjectGenerationMode;\n    this.supportsImageUrls = config.supportsImageUrls;\n    this.supportsStructuredOutputs = config.supportsStructuredOutputs;\n  }\n\n  supportsUrl(url: URL): boolean {\n    return this.#model.supportsUrl?.(url) ?? false;\n  }\n\n  doGenerate(options: LanguageModelV1CallOptions) {\n    return this.#model.doGenerate(options);\n  }\n\n  doStream(options: LanguageModelV1CallOptions) {\n    return this.#model.doStream(options);\n  }\n\n  /**\n   * Custom serialization for tracing/observability spans.\n   * `#model` is already a true JS private field and not enumerable, so\n   * the wrapped provider SDK client can't leak. This method makes the\n   * safe shape explicit.\n   */\n  serializeForSpan(): { specificationVersion: 'v1'; modelId: string; provider: string } {\n    return {\n      specificationVersion: this.specificationVersion,\n      modelId: this.modelId,\n      provider: this.provider,\n    };\n  }\n}\n","import type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport type { LanguageModelV3 } from '@ai-sdk/provider-v6';\nimport type { LanguageModelV1 } from '@internal/ai-sdk-v4';\nimport type { Mastra } from '../../mastra';\nimport { RequestContext } from '../../request-context';\nimport { AISDKV4LegacyLanguageModel } from './aisdk/v4/model';\nimport { AISDKV5LanguageModel } from './aisdk/v5/model';\nimport { AISDKV6LanguageModel } from './aisdk/v6/model';\nimport { ModelRouterLanguageModel } from './router';\nimport type {\n  MastraModelConfig,\n  OpenAICompatibleConfig,\n  MastraLanguageModel,\n  MastraLegacyLanguageModel,\n} from './shared.types';\n\n/**\n * Type guard to check if a model config is an OpenAICompatibleConfig object\n * @internal\n */\nexport function isOpenAICompatibleObjectConfig(\n  modelConfig:\n    | MastraModelConfig\n    | (({\n        requestContext,\n        mastra,\n      }: {\n        requestContext: RequestContext;\n        mastra?: Mastra;\n      }) => MastraModelConfig | Promise<MastraModelConfig>),\n): modelConfig is OpenAICompatibleConfig {\n  if (typeof modelConfig === 'object' && 'specificationVersion' in modelConfig) return false;\n  // Check for OpenAICompatibleConfig - it should have either:\n  // 1. 'id' field (but NOT 'model' - that's ModelWithRetries)\n  // 2. Both 'providerId' and 'modelId' fields\n  if (typeof modelConfig === 'object' && !('model' in modelConfig)) {\n    if ('id' in modelConfig) return true;\n    if ('providerId' in modelConfig && 'modelId' in modelConfig) return true;\n  }\n  return false;\n}\n\n/**\n * Resolves a model configuration to a LanguageModel instance.\n * Supports:\n * - Magic strings like \"openai/gpt-4o\"\n * - Config objects like { id: \"openai/gpt-4o\", apiKey: \"...\" }\n * - Direct LanguageModel instances\n * - Dynamic functions that return any of the above\n *\n * @param modelConfig The model configuration\n * @param requestContext Optional request context for dynamic resolution\n * @param mastra Optional Mastra instance for dynamic resolution\n * @returns A resolved LanguageModel instance\n *\n * @example\n * ```typescript\n * // String resolution\n * const model = await resolveModelConfig(\"openai/gpt-4o\");\n *\n * // Config object resolution\n * const model = await resolveModelConfig({\n *   id: \"openai/gpt-4o\",\n *   apiKey: \"sk-...\"\n * });\n *\n * // Dynamic resolution\n * const model = await resolveModelConfig(\n *   ({ requestContext }) => requestContext.get(\"preferredModel\")\n * );\n * ```\n */\nexport async function resolveModelConfig(\n  modelConfig:\n    | MastraModelConfig\n    | (({\n        requestContext,\n        mastra,\n      }: {\n        requestContext: RequestContext;\n        mastra?: Mastra;\n      }) => MastraModelConfig | Promise<MastraModelConfig>),\n  requestContext: RequestContext = new RequestContext(),\n  mastra?: Mastra,\n): Promise<MastraLanguageModel | MastraLegacyLanguageModel> {\n  // If it's a function, resolve it first\n  if (typeof modelConfig === 'function') {\n    modelConfig = await modelConfig({ requestContext, mastra });\n  }\n\n  // Filter out custom language model instances\n  // TODO need a better trick, maybe symbol\n  if (\n    modelConfig instanceof ModelRouterLanguageModel ||\n    modelConfig instanceof AISDKV4LegacyLanguageModel ||\n    modelConfig instanceof AISDKV5LanguageModel ||\n    modelConfig instanceof AISDKV6LanguageModel\n  ) {\n    return modelConfig;\n  }\n\n  // If it's already a LanguageModel, wrap it with the appropriate wrapper\n  if (typeof modelConfig === 'object' && 'specificationVersion' in modelConfig) {\n    if (modelConfig.specificationVersion === 'v2') {\n      return new AISDKV5LanguageModel(modelConfig as LanguageModelV2);\n    }\n    if (modelConfig.specificationVersion === 'v3') {\n      return new AISDKV6LanguageModel(modelConfig as LanguageModelV3);\n    }\n    if (modelConfig.specificationVersion === 'v1') {\n      // Wrap legacy v1 models so the underlying SDK client (and any\n      // enumerable config) does not leak into observability spans.\n      return new AISDKV4LegacyLanguageModel(modelConfig as LanguageModelV1);\n    }\n    // Unknown specificationVersion from a third-party provider (e.g. ollama-ai-provider-v2).\n    // If the model has doStream/doGenerate methods, wrap it as a modern model\n    // to prevent the stream()/streamLegacy() catch-22 where neither method accepts the model.\n    if (typeof (modelConfig as any).doStream === 'function' && typeof (modelConfig as any).doGenerate === 'function') {\n      return new AISDKV5LanguageModel(modelConfig as LanguageModelV2);\n    }\n    return modelConfig;\n  }\n\n  const gatewayRecord = mastra?.listGateways();\n  const customGateways = gatewayRecord ? Object.values(gatewayRecord) : undefined;\n\n  // If it's a string (magic string like \"openai/gpt-4o\") or OpenAICompatibleConfig, create ModelRouterLanguageModel\n  if (typeof modelConfig === 'string' || isOpenAICompatibleObjectConfig(modelConfig)) {\n    return new ModelRouterLanguageModel(modelConfig, customGateways);\n  }\n\n  throw new Error('Invalid model configuration provided');\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import {\n  createJsonErrorResponseHandler,\n  type InferValidator,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst googleErrorDataSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      error: z.object({\n        code: z.number().nullable(),\n        message: z.string(),\n        status: z.string(),\n      }),\n    }),\n  ),\n);\n\nexport type GoogleErrorData = InferValidator<typeof googleErrorDataSchema>;\n\nexport const googleFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: googleErrorDataSchema,\n  errorToMessage: data => data.error.message,\n});\n","import {\n  type InferValidator,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type GoogleGenerativeAIEmbeddingModelId =\n  | 'gemini-embedding-001'\n  | 'gemini-embedding-2-preview'\n  | (string & {});\n\nconst googleEmbeddingContentPartSchema = z.union([\n  z.object({ text: z.string() }),\n  z.object({\n    inlineData: z.object({\n      mimeType: z.string(),\n      data: z.string(),\n    }),\n  }),\n]);\n\nexport const googleGenerativeAIEmbeddingProviderOptions = lazySchema(() =>\n  zodSchema(\n    z.object({\n      /**\n       * Optional. Optional reduced dimension for the output embedding.\n       * If set, excessive values in the output embedding are truncated from the end.\n       */\n      outputDimensionality: z.number().optional(),\n\n      /**\n       * Optional. Specifies the task type for generating embeddings.\n       * Supported task types:\n       * - SEMANTIC_SIMILARITY: Optimized for text similarity.\n       * - CLASSIFICATION: Optimized for text classification.\n       * - CLUSTERING: Optimized for clustering texts based on similarity.\n       * - RETRIEVAL_DOCUMENT: Optimized for document retrieval.\n       * - RETRIEVAL_QUERY: Optimized for query-based retrieval.\n       * - QUESTION_ANSWERING: Optimized for answering questions.\n       * - FACT_VERIFICATION: Optimized for verifying factual information.\n       * - CODE_RETRIEVAL_QUERY: Optimized for retrieving code blocks based on natural language queries.\n       */\n      taskType: z\n        .enum([\n          'SEMANTIC_SIMILARITY',\n          'CLASSIFICATION',\n          'CLUSTERING',\n          'RETRIEVAL_DOCUMENT',\n          'RETRIEVAL_QUERY',\n          'QUESTION_ANSWERING',\n          'FACT_VERIFICATION',\n          'CODE_RETRIEVAL_QUERY',\n        ])\n        .optional(),\n\n      /**\n       * Optional. Per-value multimodal content parts for embedding non-text\n       * content (images, video, PDF, audio). Each entry corresponds to the\n       * embedding value at the same index and its parts are merged with the\n       * text value in the request. Use `null` for entries that are text-only.\n       *\n       * The array length must match the number of values being embedded. In\n       * the case of a single embedding, the array length must be 1.\n       */\n      content: z\n        .array(z.array(googleEmbeddingContentPartSchema).min(1).nullable())\n        .optional(),\n    }),\n  ),\n);\n\nexport type GoogleGenerativeAIEmbeddingProviderOptions = InferValidator<\n  typeof googleGenerativeAIEmbeddingProviderOptions\n>;\n","import {\n  type EmbeddingModelV2,\n  TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  combineHeaders,\n  createJsonResponseHandler,\n  lazySchema,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { googleFailedResponseHandler } from './google-error';\nimport {\n  type GoogleGenerativeAIEmbeddingModelId,\n  googleGenerativeAIEmbeddingProviderOptions,\n} from './google-generative-ai-embedding-options';\n\ntype GoogleGenerativeAIEmbeddingConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class GoogleGenerativeAIEmbeddingModel implements EmbeddingModelV2<string> {\n  readonly specificationVersion = 'v2';\n  readonly modelId: GoogleGenerativeAIEmbeddingModelId;\n  readonly maxEmbeddingsPerCall = 2048;\n  readonly supportsParallelCalls = true;\n\n  private readonly config: GoogleGenerativeAIEmbeddingConfig;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n  constructor(\n    modelId: GoogleGenerativeAIEmbeddingModelId,\n    config: GoogleGenerativeAIEmbeddingConfig,\n  ) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<EmbeddingModelV2<string>['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV2<string>['doEmbed']>>\n  > {\n    // Parse provider options\n    const googleOptions = await parseProviderOptions({\n      provider: 'google',\n      providerOptions,\n      schema: googleGenerativeAIEmbeddingProviderOptions,\n    });\n\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values,\n      });\n    }\n\n    const mergedHeaders = combineHeaders(\n      await resolve(this.config.headers),\n      headers,\n    );\n\n    const multimodalContent = googleOptions?.content;\n\n    if (\n      multimodalContent != null &&\n      multimodalContent.length !== values.length\n    ) {\n      throw new Error(\n        `The number of multimodal content entries (${multimodalContent.length}) must match the number of values (${values.length}).`,\n      );\n    }\n\n    // For single embeddings, use the single endpoint\n    if (values.length === 1) {\n      const valueParts = multimodalContent?.[0];\n      const textPart = values[0] ? [{ text: values[0] }] : [];\n      const parts =\n        valueParts != null\n          ? [...textPart, ...valueParts]\n          : [{ text: values[0] }];\n\n      const {\n        responseHeaders,\n        value: response,\n        rawValue,\n      } = await postJsonToApi({\n        url: `${this.config.baseURL}/models/${this.modelId}:embedContent`,\n        headers: mergedHeaders,\n        body: {\n          model: `models/${this.modelId}`,\n          content: {\n            parts,\n          },\n          outputDimensionality: googleOptions?.outputDimensionality,\n          taskType: googleOptions?.taskType,\n        },\n        failedResponseHandler: googleFailedResponseHandler,\n        successfulResponseHandler: createJsonResponseHandler(\n          googleGenerativeAISingleEmbeddingResponseSchema,\n        ),\n        abortSignal,\n        fetch: this.config.fetch,\n      });\n\n      return {\n        embeddings: [response.embedding.values],\n        usage: undefined,\n        response: { headers: responseHeaders, body: rawValue },\n      };\n    }\n\n    // For multiple values, use the batch endpoint\n    const {\n      responseHeaders,\n      value: response,\n      rawValue,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n      headers: mergedHeaders,\n      body: {\n        requests: values.map((value, index) => {\n          const valueParts = multimodalContent?.[index];\n          const textPart = value ? [{ text: value }] : [];\n          return {\n            model: `models/${this.modelId}`,\n            content: {\n              role: 'user',\n              parts:\n                valueParts != null\n                  ? [...textPart, ...valueParts]\n                  : [{ text: value }],\n            },\n            outputDimensionality: googleOptions?.outputDimensionality,\n            taskType: googleOptions?.taskType,\n          };\n        }),\n      },\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        googleGenerativeAITextEmbeddingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      embeddings: response.embeddings.map(item => item.values),\n      usage: undefined,\n      response: { headers: responseHeaders, body: rawValue },\n    };\n  }\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst googleGenerativeAITextEmbeddingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      embeddings: z.array(z.object({ values: z.array(z.number()) })),\n    }),\n  ),\n);\n\n// Schema for single embedding response\nconst googleGenerativeAISingleEmbeddingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      embedding: z.object({ values: z.array(z.number()) }),\n    }),\n  ),\n);\n","import type { JSONSchema7Definition } from '@ai-sdk/provider';\n\n/**\n * Converts JSON Schema 7 to OpenAPI Schema 3.0\n */\nexport function convertJSONSchemaToOpenAPISchema(\n  jsonSchema: JSONSchema7Definition | undefined,\n  isRoot = true,\n): unknown {\n  // Handle empty object schemas: undefined at root, preserved when nested\n  if (jsonSchema == null) {\n    return undefined;\n  }\n\n  if (isEmptyObjectSchema(jsonSchema)) {\n    if (isRoot) {\n      return undefined;\n    }\n\n    if (typeof jsonSchema === 'object' && jsonSchema.description) {\n      return { type: 'object', description: jsonSchema.description };\n    }\n    return { type: 'object' };\n  }\n\n  if (typeof jsonSchema === 'boolean') {\n    return { type: 'boolean', properties: {} };\n  }\n\n  const {\n    type,\n    description,\n    required,\n    properties,\n    items,\n    allOf,\n    anyOf,\n    oneOf,\n    format,\n    const: constValue,\n    minLength,\n    enum: enumValues,\n  } = jsonSchema;\n\n  const result: Record<string, unknown> = {};\n\n  if (description) result.description = description;\n  if (required) result.required = required;\n  if (format) result.format = format;\n\n  if (constValue !== undefined) {\n    result.enum = [constValue];\n  }\n\n  // Handle type\n  if (type) {\n    if (Array.isArray(type)) {\n      const hasNull = type.includes('null');\n      const nonNullTypes = type.filter(t => t !== 'null');\n\n      if (nonNullTypes.length === 0) {\n        // Only null type\n        result.type = 'null';\n      } else {\n        // One or more non-null types: always use anyOf\n        result.anyOf = nonNullTypes.map(t => ({ type: t }));\n        if (hasNull) {\n          result.nullable = true;\n        }\n      }\n    } else {\n      result.type = type;\n    }\n  }\n\n  // Handle enum\n  if (enumValues !== undefined) {\n    result.enum = enumValues;\n  }\n\n  if (properties != null) {\n    result.properties = Object.entries(properties).reduce(\n      (acc, [key, value]) => {\n        acc[key] = convertJSONSchemaToOpenAPISchema(value, false);\n        return acc;\n      },\n      {} as Record<string, unknown>,\n    );\n  }\n\n  if (items) {\n    result.items = Array.isArray(items)\n      ? items.map(item => convertJSONSchemaToOpenAPISchema(item, false))\n      : convertJSONSchemaToOpenAPISchema(items, false);\n  }\n\n  if (allOf) {\n    result.allOf = allOf.map(item =>\n      convertJSONSchemaToOpenAPISchema(item, false),\n    );\n  }\n  if (anyOf) {\n    // Handle cases where anyOf includes a null type\n    if (\n      anyOf.some(\n        schema => typeof schema === 'object' && schema?.type === 'null',\n      )\n    ) {\n      const nonNullSchemas = anyOf.filter(\n        schema => !(typeof schema === 'object' && schema?.type === 'null'),\n      );\n\n      if (nonNullSchemas.length === 1) {\n        // If there's only one non-null schema, convert it and make it nullable\n        const converted = convertJSONSchemaToOpenAPISchema(\n          nonNullSchemas[0],\n          false,\n        );\n        if (typeof converted === 'object') {\n          result.nullable = true;\n          Object.assign(result, converted);\n        }\n      } else {\n        // If there are multiple non-null schemas, keep them in anyOf\n        result.anyOf = nonNullSchemas.map(item =>\n          convertJSONSchemaToOpenAPISchema(item, false),\n        );\n        result.nullable = true;\n      }\n    } else {\n      result.anyOf = anyOf.map(item =>\n        convertJSONSchemaToOpenAPISchema(item, false),\n      );\n    }\n  }\n  if (oneOf) {\n    result.oneOf = oneOf.map(item =>\n      convertJSONSchemaToOpenAPISchema(item, false),\n    );\n  }\n\n  if (minLength !== undefined) {\n    result.minLength = minLength;\n  }\n\n  return result;\n}\n\nfunction isEmptyObjectSchema(jsonSchema: JSONSchema7Definition): boolean {\n  return (\n    jsonSchema != null &&\n    typeof jsonSchema === 'object' &&\n    jsonSchema.type === 'object' &&\n    (jsonSchema.properties == null ||\n      Object.keys(jsonSchema.properties).length === 0) &&\n    !jsonSchema.additionalProperties\n  );\n}\n","import {\n  type LanguageModelV2Prompt,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport type {\n  GoogleGenerativeAIContent,\n  GoogleGenerativeAIContentPart,\n  GoogleGenerativeAIFunctionResponsePart,\n  GoogleGenerativeAIPrompt,\n} from './google-generative-ai-prompt';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\n\nexport function convertToGoogleGenerativeAIMessages(\n  prompt: LanguageModelV2Prompt,\n  options?: { isGemmaModel?: boolean; supportsFunctionResponseParts?: boolean },\n): GoogleGenerativeAIPrompt {\n  const systemInstructionParts: Array<{ text: string }> = [];\n  const contents: Array<GoogleGenerativeAIContent> = [];\n  let systemMessagesAllowed = true;\n  const isGemmaModel = options?.isGemmaModel ?? false;\n  const supportsFunctionResponseParts =\n    options?.supportsFunctionResponseParts ?? true;\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        if (!systemMessagesAllowed) {\n          throw new UnsupportedFunctionalityError({\n            functionality:\n              'system messages are only supported at the beginning of the conversation',\n          });\n        }\n\n        systemInstructionParts.push({ text: content });\n        break;\n      }\n\n      case 'user': {\n        systemMessagesAllowed = false;\n\n        const parts: GoogleGenerativeAIContentPart[] = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              parts.push({ text: part.text });\n              break;\n            }\n\n            case 'file': {\n              // default to image/jpeg for unknown image/* types\n              const mediaType =\n                part.mediaType === 'image/*' ? 'image/jpeg' : part.mediaType;\n\n              parts.push(\n                part.data instanceof URL\n                  ? {\n                      fileData: {\n                        mimeType: mediaType,\n                        fileUri: part.data.toString(),\n                      },\n                    }\n                  : {\n                      inlineData: {\n                        mimeType: mediaType,\n                        data: convertToBase64(part.data),\n                      },\n                    },\n              );\n\n              break;\n            }\n          }\n        }\n\n        contents.push({ role: 'user', parts });\n        break;\n      }\n\n      case 'assistant': {\n        systemMessagesAllowed = false;\n\n        contents.push({\n          role: 'model',\n          parts: content\n            .map(part => {\n              const thoughtSignature =\n                part.providerOptions?.google?.thoughtSignature != null\n                  ? String(part.providerOptions.google?.thoughtSignature)\n                  : undefined;\n\n              switch (part.type) {\n                case 'text': {\n                  return part.text.length === 0\n                    ? undefined\n                    : {\n                        text: part.text,\n                        thoughtSignature,\n                      };\n                }\n\n                case 'reasoning': {\n                  return part.text.length === 0\n                    ? undefined\n                    : {\n                        text: part.text,\n                        thought: true,\n                        thoughtSignature,\n                      };\n                }\n\n                case 'file': {\n                  if (part.mediaType !== 'image/png') {\n                    throw new UnsupportedFunctionalityError({\n                      functionality:\n                        'Only PNG images are supported in assistant messages',\n                    });\n                  }\n\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality:\n                        'File data URLs in assistant messages are not supported',\n                    });\n                  }\n\n                  return {\n                    inlineData: {\n                      mimeType: part.mediaType,\n                      data: convertToBase64(part.data),\n                    },\n                  };\n                }\n\n                case 'tool-call': {\n                  return {\n                    functionCall: {\n                      name: part.toolName,\n                      args: part.input,\n                    },\n                    thoughtSignature,\n                  };\n                }\n              }\n            })\n            .filter(part => part !== undefined),\n        });\n        break;\n      }\n\n      case 'tool': {\n        systemMessagesAllowed = false;\n\n        const parts: GoogleGenerativeAIContentPart[] = [];\n\n        for (const part of content) {\n          const output = part.output;\n\n          if (output.type === 'content') {\n            if (supportsFunctionResponseParts) {\n              appendToolResultParts({ parts, part, output });\n            } else {\n              appendLegacyToolResultParts({ parts, part, output });\n            }\n          } else {\n            parts.push({\n              functionResponse: {\n                name: part.toolName,\n                response: {\n                  name: part.toolName,\n                  content: output.value,\n                },\n              },\n            });\n          }\n        }\n\n        contents.push({\n          role: 'user',\n          parts,\n        });\n        break;\n      }\n    }\n  }\n\n  if (\n    isGemmaModel &&\n    systemInstructionParts.length > 0 &&\n    contents.length > 0 &&\n    contents[0].role === 'user'\n  ) {\n    const systemText = systemInstructionParts\n      .map(part => part.text)\n      .join('\\n\\n');\n\n    contents[0].parts.unshift({ text: systemText + '\\n\\n' });\n  }\n\n  return {\n    systemInstruction:\n      systemInstructionParts.length > 0 && !isGemmaModel\n        ? { parts: systemInstructionParts }\n        : undefined,\n    contents,\n  };\n}\n\nfunction appendToolResultParts({\n  parts,\n  part,\n  output,\n}: {\n  parts: GoogleGenerativeAIContentPart[];\n  part: { toolName: string };\n  output: {\n    type: 'content';\n    value: Array<\n      | { type: 'text'; text: string }\n      | { type: 'media'; data: string; mediaType: string }\n    >;\n  };\n}) {\n  const responseTextParts: string[] = [];\n  const functionResponseParts: GoogleGenerativeAIFunctionResponsePart[] = [];\n\n  for (const contentPart of output.value) {\n    switch (contentPart.type) {\n      case 'text':\n        responseTextParts.push(contentPart.text);\n        break;\n      case 'media':\n        functionResponseParts.push({\n          inlineData: {\n            mimeType: contentPart.mediaType,\n            data: contentPart.data,\n          },\n        });\n        break;\n    }\n  }\n\n  const responseText =\n    responseTextParts.length > 0\n      ? responseTextParts.join('\\n')\n      : 'Tool executed successfully.';\n\n  parts.push({\n    functionResponse: {\n      name: part.toolName,\n      response: {\n        name: part.toolName,\n        content: responseText,\n      },\n      ...(functionResponseParts.length > 0\n        ? { parts: functionResponseParts }\n        : {}),\n    },\n  });\n}\n\nfunction appendLegacyToolResultParts({\n  parts,\n  part,\n  output,\n}: {\n  parts: GoogleGenerativeAIContentPart[];\n  part: { toolName: string };\n  output: {\n    type: 'content';\n    value: Array<\n      | { type: 'text'; text: string }\n      | { type: 'media'; data: string; mediaType: string }\n    >;\n  };\n}) {\n  for (const contentPart of output.value) {\n    switch (contentPart.type) {\n      case 'text':\n        parts.push({\n          functionResponse: {\n            name: part.toolName,\n            response: {\n              name: part.toolName,\n              content: contentPart.text,\n            },\n          },\n        });\n        break;\n      case 'media':\n        parts.push(\n          {\n            inlineData: {\n              mimeType: contentPart.mediaType,\n              data: contentPart.data,\n            },\n          },\n          {\n            text: 'Tool executed successfully and returned this image as a response',\n          },\n        );\n        break;\n      default:\n        parts.push({ text: JSON.stringify(contentPart) });\n        break;\n    }\n  }\n}\n","export function getModelPath(modelId: string): string {\n  return modelId.includes('/') ? modelId : `models/${modelId}`;\n}\n","import {\n  type InferValidator,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type GoogleGenerativeAIModelId =\n  // Stable models\n  // https://ai.google.dev/gemini-api/docs/models/gemini\n  | 'gemini-1.5-flash'\n  | 'gemini-1.5-flash-latest'\n  | 'gemini-1.5-flash-001'\n  | 'gemini-1.5-flash-002'\n  | 'gemini-1.5-flash-8b'\n  | 'gemini-1.5-flash-8b-latest'\n  | 'gemini-1.5-flash-8b-001'\n  | 'gemini-1.5-pro'\n  | 'gemini-1.5-pro-latest'\n  | 'gemini-1.5-pro-001'\n  | 'gemini-1.5-pro-002'\n  | 'gemini-2.0-flash'\n  | 'gemini-2.0-flash-001'\n  | 'gemini-2.0-flash-live-001'\n  | 'gemini-2.0-flash-lite'\n  | 'gemini-2.0-pro-exp-02-05'\n  | 'gemini-2.0-flash-thinking-exp-01-21'\n  | 'gemini-2.0-flash-exp'\n  | 'gemini-2.5-pro'\n  | 'gemini-2.5-flash'\n  | 'gemini-2.5-flash-image-preview'\n  | 'gemini-2.5-flash-lite'\n  | 'gemini-2.5-flash-preview-tts'\n  | 'gemini-2.5-pro-preview-tts'\n  | 'gemini-2.5-flash-native-audio-latest'\n  | 'gemini-2.5-flash-native-audio-preview-09-2025'\n  | 'gemini-2.5-flash-native-audio-preview-12-2025'\n  | 'gemini-2.5-computer-use-preview-10-2025'\n  | 'gemini-3-pro-preview'\n  | 'gemini-3-pro-image-preview'\n  | 'gemini-3-flash-preview'\n  | 'gemini-3.1-pro-preview'\n  | 'gemini-3.1-pro-preview-customtools'\n  | 'gemini-3.1-flash-image-preview'\n  | 'gemini-3.1-flash-lite-preview'\n  | 'gemini-3.1-flash-tts-preview'\n  // latest version\n  // https://ai.google.dev/gemini-api/docs/models#latest\n  | 'gemini-pro-latest'\n  | 'gemini-flash-latest'\n  | 'gemini-flash-lite-latest'\n  // Experimental models\n  // https://ai.google.dev/gemini-api/docs/models/experimental-models\n  | 'gemini-2.5-pro-exp-03-25'\n  | 'gemini-exp-1206'\n  | 'gemma-3-12b-it'\n  | 'gemma-3-27b-it'\n  | (string & {});\n\nexport const googleGenerativeAIProviderOptions = lazySchema(() =>\n  zodSchema(\n    z.object({\n      responseModalities: z.array(z.enum(['TEXT', 'IMAGE'])).optional(),\n\n      thinkingConfig: z\n        .object({\n          thinkingBudget: z.number().optional(),\n          includeThoughts: z.boolean().optional(),\n          // https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#thinking_level\n          thinkingLevel: z\n            .enum(['minimal', 'low', 'medium', 'high'])\n            .optional(),\n        })\n        .optional(),\n\n      /**\n       * Optional.\n       * The name of the cached content used as context to serve the prediction.\n       * Format: cachedContents/{cachedContent}\n       */\n      cachedContent: z.string().optional(),\n\n      /**\n       * Optional. Enable structured output. Default is true.\n       *\n       * This is useful when the JSON Schema contains elements that are\n       * not supported by the OpenAPI schema version that\n       * Google Generative AI uses. You can use this to disable\n       * structured outputs if you need to.\n       */\n      structuredOutputs: z.boolean().optional(),\n\n      /**\n       * Optional. A list of unique safety settings for blocking unsafe content.\n       */\n      safetySettings: z\n        .array(\n          z.object({\n            category: z.enum([\n              'HARM_CATEGORY_UNSPECIFIED',\n              'HARM_CATEGORY_HATE_SPEECH',\n              'HARM_CATEGORY_DANGEROUS_CONTENT',\n              'HARM_CATEGORY_HARASSMENT',\n              'HARM_CATEGORY_SEXUALLY_EXPLICIT',\n              'HARM_CATEGORY_CIVIC_INTEGRITY',\n            ]),\n            threshold: z.enum([\n              'HARM_BLOCK_THRESHOLD_UNSPECIFIED',\n              'BLOCK_LOW_AND_ABOVE',\n              'BLOCK_MEDIUM_AND_ABOVE',\n              'BLOCK_ONLY_HIGH',\n              'BLOCK_NONE',\n              'OFF',\n            ]),\n          }),\n        )\n        .optional(),\n\n      threshold: z\n        .enum([\n          'HARM_BLOCK_THRESHOLD_UNSPECIFIED',\n          'BLOCK_LOW_AND_ABOVE',\n          'BLOCK_MEDIUM_AND_ABOVE',\n          'BLOCK_ONLY_HIGH',\n          'BLOCK_NONE',\n          'OFF',\n        ])\n        .optional(),\n\n      /**\n       * Optional. Enables timestamp understanding for audio-only files.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/audio-understanding\n       */\n      audioTimestamp: z.boolean().optional(),\n\n      /**\n       * Optional. Defines labels used in billing reports. Available on Vertex AI only.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls\n       */\n      labels: z.record(z.string(), z.string()).optional(),\n\n      /**\n       * Optional. If specified, the media resolution specified will be used.\n       *\n       * https://ai.google.dev/api/generate-content#MediaResolution\n       */\n      mediaResolution: z\n        .enum([\n          'MEDIA_RESOLUTION_UNSPECIFIED',\n          'MEDIA_RESOLUTION_LOW',\n          'MEDIA_RESOLUTION_MEDIUM',\n          'MEDIA_RESOLUTION_HIGH',\n        ])\n        .optional(),\n\n      /**\n       * Optional. Configures the image generation aspect ratio for Gemini models.\n       *\n       * https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios\n       */\n      imageConfig: z\n        .object({\n          aspectRatio: z\n            .enum([\n              '1:1',\n              '2:3',\n              '3:2',\n              '3:4',\n              '4:3',\n              '4:5',\n              '5:4',\n              '9:16',\n              '16:9',\n              '21:9',\n              '1:8',\n              '8:1',\n              '1:4',\n              '4:1',\n            ])\n            .optional(),\n          imageSize: z.enum(['1K', '2K', '4K', '512']).optional(),\n        })\n        .optional(),\n\n      /**\n       * Optional. Configuration for grounding retrieval.\n       * Used to provide location context for Google Maps and Google Search grounding.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n       */\n      retrievalConfig: z\n        .object({\n          latLng: z\n            .object({\n              latitude: z.number(),\n              longitude: z.number(),\n            })\n            .optional(),\n        })\n        .optional(),\n\n      /**\n       * Optional. The service tier to use for the request.\n       */\n      serviceTier: z.enum(['standard', 'flex', 'priority']).optional(),\n    }),\n  ),\n);\n\nexport type GoogleGenerativeAIProviderOptions = InferValidator<\n  typeof googleGenerativeAIProviderOptions\n>;\n\n// Vertex API requires another service tier format.\nexport const VertexServiceTierMap = {\n  standard: 'SERVICE_TIER_STANDARD',\n  flex: 'SERVICE_TIER_FLEX',\n  priority: 'SERVICE_TIER_PRIORITY',\n} as const;\n","import {\n  type LanguageModelV2CallOptions,\n  type LanguageModelV2CallWarning,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport type { GoogleGenerativeAIModelId } from './google-generative-ai-options';\n\nexport function prepareTools({\n  tools,\n  toolChoice,\n  modelId,\n}: {\n  tools: LanguageModelV2CallOptions['tools'];\n  toolChoice?: LanguageModelV2CallOptions['toolChoice'];\n  modelId: GoogleGenerativeAIModelId;\n}): {\n  tools:\n    | Array<\n        | {\n            functionDeclarations: Array<{\n              name: string;\n              description: string;\n              parameters: unknown;\n            }>;\n          }\n        | Record<string, any>\n      >\n    | undefined;\n  toolConfig:\n    | undefined\n    | {\n        functionCallingConfig: {\n          mode: 'AUTO' | 'NONE' | 'ANY' | 'VALIDATED';\n          allowedFunctionNames?: string[];\n        };\n      };\n  toolWarnings: LanguageModelV2CallWarning[];\n} {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: LanguageModelV2CallWarning[] = [];\n\n  const isLatest = (\n    [\n      'gemini-flash-latest',\n      'gemini-flash-lite-latest',\n      'gemini-pro-latest',\n    ] as const satisfies GoogleGenerativeAIModelId[]\n  ).some(id => id === modelId);\n  const isGemini2orNewer =\n    modelId.includes('gemini-2') ||\n    modelId.includes('gemini-3') ||\n    modelId.includes('nano-banana') ||\n    isLatest;\n  const supportsFileSearch =\n    modelId.includes('gemini-2.5') || modelId.includes('gemini-3');\n\n  if (tools == null) {\n    return { tools: undefined, toolConfig: undefined, toolWarnings };\n  }\n\n  // Check for mixed tool types and add warnings\n  const hasFunctionTools = tools.some(tool => tool.type === 'function');\n  const hasProviderDefinedTools = tools.some(\n    tool => tool.type === 'provider-defined',\n  );\n\n  if (hasFunctionTools && hasProviderDefinedTools) {\n    const functionTools = tools.filter(tool => tool.type === 'function');\n    toolWarnings.push({\n      type: 'unsupported-tool',\n      tool: tools.find(tool => tool.type === 'function')!,\n      details: `Cannot mix function tools with provider-defined tools in the same request. Falling back to provider-defined tools only. The following function tools will be ignored: ${functionTools.map(t => t.name).join(', ')}. Please use either function tools or provider-defined tools, but not both.`,\n    });\n  }\n\n  if (hasProviderDefinedTools) {\n    const googleTools: any[] = [];\n\n    const providerDefinedTools = tools.filter(\n      tool => tool.type === 'provider-defined',\n    );\n    providerDefinedTools.forEach(tool => {\n      switch (tool.id) {\n        case 'google.google_search':\n          if (isGemini2orNewer) {\n            googleTools.push({ googleSearch: { ...tool.args } });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details: 'Google Search requires Gemini 2.0 or newer.',\n            });\n          }\n          break;\n        case 'google.enterprise_web_search':\n          if (isGemini2orNewer) {\n            googleTools.push({ enterpriseWebSearch: {} });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details: 'Enterprise Web Search requires Gemini 2.0 or newer.',\n            });\n          }\n          break;\n        case 'google.url_context':\n          if (isGemini2orNewer) {\n            googleTools.push({ urlContext: {} });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details:\n                'The URL context tool is not supported with other Gemini models than Gemini 2.',\n            });\n          }\n          break;\n        case 'google.code_execution':\n          if (isGemini2orNewer) {\n            googleTools.push({ codeExecution: {} });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details:\n                'The code execution tools is not supported with other Gemini models than Gemini 2.',\n            });\n          }\n          break;\n        case 'google.file_search':\n          if (supportsFileSearch) {\n            googleTools.push({ fileSearch: { ...tool.args } });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details:\n                'The file search tool is only supported with Gemini 2.5 models.',\n            });\n          }\n          break;\n        case 'google.vertex_rag_store':\n          if (isGemini2orNewer) {\n            googleTools.push({\n              retrieval: {\n                vertex_rag_store: {\n                  rag_resources: {\n                    rag_corpus: tool.args.ragCorpus,\n                  },\n                  similarity_top_k: tool.args.topK as number | undefined,\n                },\n              },\n            });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details:\n                'The RAG store tool is not supported with other Gemini models than Gemini 2.',\n            });\n          }\n          break;\n        case 'google.google_maps':\n          if (isGemini2orNewer) {\n            googleTools.push({ googleMaps: {} });\n          } else {\n            toolWarnings.push({\n              type: 'unsupported-tool',\n              tool,\n              details:\n                'The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.',\n            });\n          }\n          break;\n        default:\n          toolWarnings.push({ type: 'unsupported-tool', tool });\n          break;\n      }\n    });\n\n    return {\n      tools: googleTools.length > 0 ? googleTools : undefined,\n      toolConfig: undefined,\n      toolWarnings,\n    };\n  }\n\n  const functionDeclarations = [];\n  let hasStrictTools = false;\n  for (const tool of tools) {\n    switch (tool.type) {\n      case 'function':\n        functionDeclarations.push({\n          name: tool.name,\n          description: tool.description ?? '',\n          parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema),\n        });\n        if ((tool as any).strict === true) {\n          hasStrictTools = true;\n        }\n        break;\n      default:\n        toolWarnings.push({ type: 'unsupported-tool', tool });\n        break;\n    }\n  }\n\n  if (toolChoice == null) {\n    return {\n      tools: [{ functionDeclarations }],\n      toolConfig: hasStrictTools\n        ? { functionCallingConfig: { mode: 'VALIDATED' } }\n        : undefined,\n      toolWarnings,\n    };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? 'VALIDATED' : 'AUTO',\n          },\n        },\n        toolWarnings,\n      };\n    case 'none':\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: { functionCallingConfig: { mode: 'NONE' } },\n        toolWarnings,\n      };\n    case 'required':\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? 'VALIDATED' : 'ANY',\n          },\n        },\n        toolWarnings,\n      };\n    case 'tool':\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? 'VALIDATED' : 'ANY',\n            allowedFunctionNames: [toolChoice.toolName],\n          },\n        },\n        toolWarnings,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapGoogleGenerativeAIFinishReason({\n  finishReason,\n  hasToolCalls,\n}: {\n  finishReason: string | null | undefined;\n  hasToolCalls: boolean;\n}): LanguageModelV2FinishReason {\n  switch (finishReason) {\n    case 'STOP':\n      return hasToolCalls ? 'tool-calls' : 'stop';\n    case 'MAX_TOKENS':\n      return 'length';\n    case 'IMAGE_SAFETY':\n    case 'RECITATION':\n    case 'SAFETY':\n    case 'BLOCKLIST':\n    case 'PROHIBITED_CONTENT':\n    case 'SPII':\n      return 'content-filter';\n    case 'FINISH_REASON_UNSPECIFIED':\n    case 'OTHER':\n      return 'other';\n    case 'MALFORMED_FUNCTION_CALL':\n      return 'error';\n    default:\n      return 'unknown';\n  }\n}\n","import type {\n  LanguageModelV2,\n  LanguageModelV2CallWarning,\n  LanguageModelV2Content,\n  LanguageModelV2FinishReason,\n  LanguageModelV2Source,\n  LanguageModelV2StreamPart,\n  LanguageModelV2Usage,\n  SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  type InferValidator,\n  type ParseResult,\n  type Resolvable,\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  lazySchema,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport { convertToGoogleGenerativeAIMessages } from './convert-to-google-generative-ai-messages';\nimport { getModelPath } from './get-model-path';\nimport { googleFailedResponseHandler } from './google-error';\nimport type { GoogleGenerativeAIContentPart } from './google-generative-ai-prompt';\nimport {\n  type GoogleGenerativeAIModelId,\n  googleGenerativeAIProviderOptions,\n  VertexServiceTierMap,\n} from './google-generative-ai-options';\nimport { prepareTools } from './google-prepare-tools';\nimport { mapGoogleGenerativeAIFinishReason } from './map-google-generative-ai-finish-reason';\n\ntype GoogleGenerativeAIConfig = {\n  provider: string;\n  baseURL: string;\n  headers: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n  generateId: () => string;\n\n  /**\n   * The supported URLs for the model.\n   */\n  supportedUrls?: () => LanguageModelV2['supportedUrls'];\n};\n\nexport class GoogleGenerativeAILanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  readonly modelId: GoogleGenerativeAIModelId;\n\n  private readonly config: GoogleGenerativeAIConfig;\n  private readonly generateId: () => string;\n\n  constructor(\n    modelId: GoogleGenerativeAIModelId,\n    config: GoogleGenerativeAIConfig,\n  ) {\n    this.modelId = modelId;\n    this.config = config;\n    this.generateId = config.generateId ?? generateId;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  get supportedUrls() {\n    return this.config.supportedUrls?.() ?? {};\n  }\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions,\n  }: Parameters<LanguageModelV2['doGenerate']>[0]) {\n    const warnings: LanguageModelV2CallWarning[] = [];\n\n    const googleOptions = await parseProviderOptions({\n      provider: 'google',\n      providerOptions,\n      schema: googleGenerativeAIProviderOptions,\n    });\n\n    const isVertexProvider = this.config.provider.startsWith('google.vertex.');\n\n    // Add warning if Vertex rag tools are used with a non-Vertex Google provider\n    if (\n      tools?.some(\n        tool =>\n          tool.type === 'provider-defined' &&\n          tool.id === 'google.vertex_rag_store',\n      ) &&\n      !isVertexProvider\n    ) {\n      warnings.push({\n        type: 'other',\n        message:\n          \"The 'vertex_rag_store' tool is only supported with the Google Vertex provider \" +\n          'and might not be supported or could behave unexpectedly with the current Google provider ' +\n          `(${this.config.provider}).`,\n      });\n    }\n\n    // Vertex API requires another service tier format.\n    let sanitizedServiceTier: string | undefined = googleOptions?.serviceTier;\n    if (googleOptions?.serviceTier && isVertexProvider) {\n      sanitizedServiceTier = VertexServiceTierMap[googleOptions.serviceTier];\n    }\n\n    const isGemmaModel = this.modelId.toLowerCase().startsWith('gemma-');\n    const supportsFunctionResponseParts = this.modelId.startsWith('gemini-3');\n\n    const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(\n      prompt,\n      { isGemmaModel, supportsFunctionResponseParts },\n    );\n\n    const {\n      tools: googleTools,\n      toolConfig: googleToolConfig,\n      toolWarnings,\n    } = prepareTools({\n      tools,\n      toolChoice,\n      modelId: this.modelId,\n    });\n\n    return {\n      args: {\n        generationConfig: {\n          // standardized settings:\n          maxOutputTokens,\n          temperature,\n          topK,\n          topP,\n          frequencyPenalty,\n          presencePenalty,\n          stopSequences,\n          seed,\n\n          // response format:\n          responseMimeType:\n            responseFormat?.type === 'json' ? 'application/json' : undefined,\n          responseSchema:\n            responseFormat?.type === 'json' &&\n            responseFormat.schema != null &&\n            // Google GenAI does not support all OpenAPI Schema features,\n            // so this is needed as an escape hatch:\n            // TODO convert into provider option\n            (googleOptions?.structuredOutputs ?? true)\n              ? convertJSONSchemaToOpenAPISchema(responseFormat.schema)\n              : undefined,\n          ...(googleOptions?.audioTimestamp && {\n            audioTimestamp: googleOptions.audioTimestamp,\n          }),\n\n          // provider options:\n          responseModalities: googleOptions?.responseModalities,\n          thinkingConfig: googleOptions?.thinkingConfig,\n          ...(googleOptions?.imageConfig && {\n            imageConfig: googleOptions.imageConfig,\n          }),\n          ...(googleOptions?.mediaResolution && {\n            mediaResolution: googleOptions.mediaResolution,\n          }),\n        },\n        contents,\n        systemInstruction: isGemmaModel ? undefined : systemInstruction,\n        safetySettings: googleOptions?.safetySettings,\n        tools: googleTools,\n        toolConfig: googleOptions?.retrievalConfig\n          ? {\n              ...googleToolConfig,\n              retrievalConfig: googleOptions.retrievalConfig,\n            }\n          : googleToolConfig,\n        cachedContent: googleOptions?.cachedContent,\n        labels: googleOptions?.labels,\n        serviceTier: sanitizedServiceTier,\n      },\n      warnings: [...warnings, ...toolWarnings],\n    };\n  }\n\n  async doGenerate(\n    options: Parameters<LanguageModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n    const { args, warnings } = await this.getArgs(options);\n    const body = JSON.stringify(args);\n\n    const mergedHeaders = combineHeaders(\n      await resolve(this.config.headers),\n      options.headers,\n    );\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/${getModelPath(\n        this.modelId,\n      )}:generateContent`,\n      headers: mergedHeaders,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(responseSchema),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const candidate = response.candidates[0];\n    const content: Array<LanguageModelV2Content> = [];\n\n    // map ordered parts to content:\n    const parts = candidate.content?.parts ?? [];\n\n    const usageMetadata = response.usageMetadata;\n\n    // Associates a code execution result with its preceding call.\n    let lastCodeExecutionToolCallId: string | undefined;\n\n    // Build content array from all parts\n    for (const part of parts) {\n      if ('executableCode' in part && part.executableCode?.code) {\n        const toolCallId = this.config.generateId();\n        lastCodeExecutionToolCallId = toolCallId;\n\n        content.push({\n          type: 'tool-call',\n          toolCallId,\n          toolName: 'code_execution',\n          input: JSON.stringify(part.executableCode),\n          providerExecuted: true,\n        });\n      } else if ('codeExecutionResult' in part && part.codeExecutionResult) {\n        content.push({\n          type: 'tool-result',\n          // Assumes a result directly follows its corresponding call part.\n          toolCallId: lastCodeExecutionToolCallId!,\n          toolName: 'code_execution',\n          result: {\n            outcome: part.codeExecutionResult.outcome,\n            output: part.codeExecutionResult.output,\n          },\n          providerExecuted: true,\n        });\n        // Clear the ID after use to avoid accidental reuse.\n        lastCodeExecutionToolCallId = undefined;\n      } else if ('text' in part && part.text != null) {\n        const thoughtSignatureMetadata = part.thoughtSignature\n          ? { google: { thoughtSignature: part.thoughtSignature } }\n          : undefined;\n\n        if (part.text.length === 0) {\n          if (thoughtSignatureMetadata != null && content.length > 0) {\n            const lastContent = content[content.length - 1];\n            if (lastContent.type !== 'file') {\n              lastContent.providerMetadata = thoughtSignatureMetadata;\n            }\n          }\n        } else {\n          content.push({\n            type: part.thought === true ? 'reasoning' : 'text',\n            text: part.text,\n            providerMetadata: thoughtSignatureMetadata,\n          });\n        }\n      } else if ('functionCall' in part) {\n        content.push({\n          type: 'tool-call' as const,\n          toolCallId: this.config.generateId(),\n          toolName: part.functionCall.name,\n          input: JSON.stringify(part.functionCall.args),\n          providerMetadata: part.thoughtSignature\n            ? { google: { thoughtSignature: part.thoughtSignature } }\n            : undefined,\n        });\n      } else if ('inlineData' in part) {\n        content.push({\n          type: 'file' as const,\n          data: part.inlineData.data,\n          mediaType: part.inlineData.mimeType,\n        });\n      }\n    }\n\n    const sources =\n      extractSources({\n        groundingMetadata: candidate.groundingMetadata,\n        generateId: this.config.generateId,\n      }) ?? [];\n    for (const source of sources) {\n      content.push(source);\n    }\n\n    return {\n      content,\n      finishReason: mapGoogleGenerativeAIFinishReason({\n        finishReason: candidate.finishReason,\n        hasToolCalls: content.some(part => part.type === 'tool-call'),\n      }),\n      usage: {\n        inputTokens: usageMetadata?.promptTokenCount ?? undefined,\n        outputTokens: usageMetadata?.candidatesTokenCount ?? undefined,\n        totalTokens: usageMetadata?.totalTokenCount ?? undefined,\n        reasoningTokens: usageMetadata?.thoughtsTokenCount ?? undefined,\n        cachedInputTokens: usageMetadata?.cachedContentTokenCount ?? undefined,\n      },\n      warnings,\n      providerMetadata: {\n        google: {\n          promptFeedback: response.promptFeedback ?? null,\n          groundingMetadata: candidate.groundingMetadata ?? null,\n          urlContextMetadata: candidate.urlContextMetadata ?? null,\n          safetyRatings: candidate.safetyRatings ?? null,\n          serviceTier: response.serviceTier ?? null,\n        },\n      },\n      request: { body },\n      response: {\n        // TODO timestamp, model id, id\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n    };\n  }\n\n  async doStream(\n    options: Parameters<LanguageModelV2['doStream']>[0],\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n    const { args, warnings } = await this.getArgs(options);\n\n    const body = JSON.stringify(args);\n    const headers = combineHeaders(\n      await resolve(this.config.headers),\n      options.headers,\n    );\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: `${this.config.baseURL}/${getModelPath(\n        this.modelId,\n      )}:streamGenerateContent?alt=sse`,\n      headers,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(chunkSchema),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV2FinishReason = 'unknown';\n    const usage: LanguageModelV2Usage = {\n      inputTokens: undefined,\n      outputTokens: undefined,\n      totalTokens: undefined,\n    };\n    let providerMetadata: SharedV2ProviderMetadata | undefined = undefined;\n    let lastGroundingMetadata: GroundingMetadataSchema | null = null;\n    let lastUrlContextMetadata: UrlContextMetadataSchema | null = null;\n    let serviceTier: string | null = null;\n\n    const generateId = this.config.generateId;\n    let hasToolCalls = false;\n\n    // Track active blocks to group consecutive parts of same type\n    let currentTextBlockId: string | null = null;\n    let currentReasoningBlockId: string | null = null;\n    let blockCounter = 0;\n\n    // Track emitted sources to prevent duplicates\n    const emittedSourceUrls = new Set<string>();\n    // Associates a code execution result with its preceding call.\n    let lastCodeExecutionToolCallId: string | undefined;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<ChunkSchema>,\n          LanguageModelV2StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            if (!chunk.success) {\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            const usageMetadata = value.usageMetadata;\n\n            if (usageMetadata != null) {\n              usage.inputTokens = usageMetadata.promptTokenCount ?? undefined;\n              usage.outputTokens =\n                usageMetadata.candidatesTokenCount ?? undefined;\n              usage.totalTokens = usageMetadata.totalTokenCount ?? undefined;\n              usage.reasoningTokens =\n                usageMetadata.thoughtsTokenCount ?? undefined;\n              usage.cachedInputTokens =\n                usageMetadata.cachedContentTokenCount ?? undefined;\n            }\n\n            if (value.serviceTier != null) {\n              serviceTier = value.serviceTier;\n            }\n\n            const candidate = value.candidates?.[0];\n\n            // sometimes the API returns an empty candidates array\n            if (candidate == null) {\n              return;\n            }\n\n            const content = candidate.content;\n\n            if (candidate.groundingMetadata != null) {\n              lastGroundingMetadata = candidate.groundingMetadata;\n            }\n            if (candidate.urlContextMetadata != null) {\n              lastUrlContextMetadata = candidate.urlContextMetadata;\n            }\n\n            const sources = extractSources({\n              groundingMetadata: candidate.groundingMetadata,\n              generateId,\n            });\n            if (sources != null) {\n              for (const source of sources) {\n                if (\n                  source.sourceType === 'url' &&\n                  !emittedSourceUrls.has(source.url)\n                ) {\n                  emittedSourceUrls.add(source.url);\n                  controller.enqueue(source);\n                }\n              }\n            }\n\n            // Process tool call's parts before determining finishReason to ensure hasToolCalls is properly set\n            if (content != null) {\n              // Process all parts in a single loop to preserve original order\n              const parts = content.parts ?? [];\n              for (const part of parts) {\n                if ('executableCode' in part && part.executableCode?.code) {\n                  const toolCallId = generateId();\n                  lastCodeExecutionToolCallId = toolCallId;\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId,\n                    toolName: 'code_execution',\n                    input: JSON.stringify(part.executableCode),\n                    providerExecuted: true,\n                  });\n\n                  hasToolCalls = true;\n                } else if (\n                  'codeExecutionResult' in part &&\n                  part.codeExecutionResult\n                ) {\n                  // Assumes a result directly follows its corresponding call part.\n                  const toolCallId = lastCodeExecutionToolCallId;\n\n                  if (toolCallId) {\n                    controller.enqueue({\n                      type: 'tool-result',\n                      toolCallId,\n                      toolName: 'code_execution',\n                      result: {\n                        outcome: part.codeExecutionResult.outcome,\n                        output: part.codeExecutionResult.output,\n                      },\n                      providerExecuted: true,\n                    });\n                    // Clear the ID after use.\n                    lastCodeExecutionToolCallId = undefined;\n                  }\n                } else if ('text' in part && part.text != null) {\n                  const thoughtSignatureMetadata = part.thoughtSignature\n                    ? {\n                        google: {\n                          thoughtSignature: part.thoughtSignature,\n                        },\n                      }\n                    : undefined;\n\n                  if (part.text.length === 0) {\n                    if (\n                      thoughtSignatureMetadata != null &&\n                      currentTextBlockId !== null\n                    ) {\n                      controller.enqueue({\n                        type: 'text-delta',\n                        id: currentTextBlockId,\n                        delta: '',\n                        providerMetadata: thoughtSignatureMetadata,\n                      });\n                    }\n                  } else if (part.thought === true) {\n                    // End any active text block before starting reasoning\n                    if (currentTextBlockId !== null) {\n                      controller.enqueue({\n                        type: 'text-end',\n                        id: currentTextBlockId,\n                      });\n                      currentTextBlockId = null;\n                    }\n\n                    // Start new reasoning block if not already active\n                    if (currentReasoningBlockId === null) {\n                      currentReasoningBlockId = String(blockCounter++);\n                      controller.enqueue({\n                        type: 'reasoning-start',\n                        id: currentReasoningBlockId,\n                        providerMetadata: thoughtSignatureMetadata,\n                      });\n                    }\n\n                    controller.enqueue({\n                      type: 'reasoning-delta',\n                      id: currentReasoningBlockId,\n                      delta: part.text,\n                      providerMetadata: thoughtSignatureMetadata,\n                    });\n                  } else {\n                    // End any active reasoning block before starting text\n                    if (currentReasoningBlockId !== null) {\n                      controller.enqueue({\n                        type: 'reasoning-end',\n                        id: currentReasoningBlockId,\n                      });\n                      currentReasoningBlockId = null;\n                    }\n\n                    // Start new text block if not already active\n                    if (currentTextBlockId === null) {\n                      currentTextBlockId = String(blockCounter++);\n                      controller.enqueue({\n                        type: 'text-start',\n                        id: currentTextBlockId,\n                        providerMetadata: thoughtSignatureMetadata,\n                      });\n                    }\n\n                    controller.enqueue({\n                      type: 'text-delta',\n                      id: currentTextBlockId,\n                      delta: part.text,\n                      providerMetadata: thoughtSignatureMetadata,\n                    });\n                  }\n                } else if ('inlineData' in part) {\n                  // Process file parts inline to preserve order with text\n                  controller.enqueue({\n                    type: 'file',\n                    mediaType: part.inlineData.mimeType,\n                    data: part.inlineData.data,\n                  });\n                }\n              }\n\n              const toolCallDeltas = getToolCallsFromParts({\n                parts: content.parts,\n                generateId,\n              });\n\n              if (toolCallDeltas != null) {\n                for (const toolCall of toolCallDeltas) {\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: toolCall.toolCallId,\n                    toolName: toolCall.toolName,\n                    providerMetadata: toolCall.providerMetadata,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: toolCall.toolCallId,\n                    delta: toolCall.args,\n                    providerMetadata: toolCall.providerMetadata,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: toolCall.toolCallId,\n                    providerMetadata: toolCall.providerMetadata,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: toolCall.toolCallId,\n                    toolName: toolCall.toolName,\n                    input: toolCall.args,\n                    providerMetadata: toolCall.providerMetadata,\n                  });\n\n                  hasToolCalls = true;\n                }\n              }\n            }\n\n            if (candidate.finishReason != null) {\n              finishReason = mapGoogleGenerativeAIFinishReason({\n                finishReason: candidate.finishReason,\n                hasToolCalls,\n              });\n\n              providerMetadata = {\n                google: {\n                  promptFeedback: value.promptFeedback ?? null,\n                  groundingMetadata: lastGroundingMetadata,\n                  urlContextMetadata: lastUrlContextMetadata,\n                  safetyRatings: candidate.safetyRatings ?? null,\n                  serviceTier,\n                },\n              };\n              if (usageMetadata != null) {\n                providerMetadata.google.usageMetadata = usageMetadata;\n              }\n            }\n          },\n\n          flush(controller) {\n            // Close any open blocks before finishing\n            if (currentTextBlockId !== null) {\n              controller.enqueue({\n                type: 'text-end',\n                id: currentTextBlockId,\n              });\n            }\n            if (currentReasoningBlockId !== null) {\n              controller.enqueue({\n                type: 'reasoning-end',\n                id: currentReasoningBlockId,\n              });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage,\n              providerMetadata,\n            });\n          },\n        }),\n      ),\n      response: { headers: responseHeaders },\n      request: { body },\n    };\n  }\n}\n\nfunction getToolCallsFromParts({\n  parts,\n  generateId,\n}: {\n  parts: ContentSchema['parts'];\n  generateId: () => string;\n}) {\n  const functionCallParts = parts?.filter(\n    part => 'functionCall' in part,\n  ) as Array<\n    GoogleGenerativeAIContentPart & {\n      functionCall: { name: string; args: unknown };\n      thoughtSignature?: string | null;\n    }\n  >;\n\n  return functionCallParts == null || functionCallParts.length === 0\n    ? undefined\n    : functionCallParts.map(part => ({\n        type: 'tool-call' as const,\n        toolCallId: generateId(),\n        toolName: part.functionCall.name,\n        args: JSON.stringify(part.functionCall.args),\n        providerMetadata: part.thoughtSignature\n          ? { google: { thoughtSignature: part.thoughtSignature } }\n          : undefined,\n      }));\n}\n\nfunction extractSources({\n  groundingMetadata,\n  generateId,\n}: {\n  groundingMetadata: GroundingMetadataSchema | undefined | null;\n  generateId: () => string;\n}): undefined | LanguageModelV2Source[] {\n  if (!groundingMetadata?.groundingChunks) {\n    return undefined;\n  }\n\n  const sources: LanguageModelV2Source[] = [];\n\n  for (const chunk of groundingMetadata.groundingChunks) {\n    if (chunk.web != null) {\n      // Handle web chunks as URL sources\n      sources.push({\n        type: 'source',\n        sourceType: 'url',\n        id: generateId(),\n        url: chunk.web.uri,\n        title: chunk.web.title ?? undefined,\n      });\n    } else if (chunk.image != null) {\n      // Handle image chunks as image sources\n      sources.push({\n        type: 'source',\n        sourceType: 'url',\n        id: generateId(),\n        // Google requires attribution to the source URI, not the actual image URI.\n        // TODO: add another type in v7 to allow both the image and source URL to be included separately\n        url: chunk.image.sourceUri,\n        title: chunk.image.title ?? undefined,\n      });\n    } else if (chunk.retrievedContext != null) {\n      // Handle retrievedContext chunks from RAG operations\n      const uri = chunk.retrievedContext.uri;\n      const fileSearchStore = chunk.retrievedContext.fileSearchStore;\n\n      if (uri && (uri.startsWith('http://') || uri.startsWith('https://'))) {\n        // Old format: Google Search with HTTP/HTTPS URL\n        sources.push({\n          type: 'source',\n          sourceType: 'url',\n          id: generateId(),\n          url: uri,\n          title: chunk.retrievedContext.title ?? undefined,\n        });\n      } else if (uri) {\n        // Old format: Document with file path (gs://, etc.)\n        const title = chunk.retrievedContext.title ?? 'Unknown Document';\n        let mediaType = 'application/octet-stream';\n        let filename: string | undefined = undefined;\n\n        if (uri.endsWith('.pdf')) {\n          mediaType = 'application/pdf';\n          filename = uri.split('/').pop();\n        } else if (uri.endsWith('.txt')) {\n          mediaType = 'text/plain';\n          filename = uri.split('/').pop();\n        } else if (uri.endsWith('.docx')) {\n          mediaType =\n            'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n          filename = uri.split('/').pop();\n        } else if (uri.endsWith('.doc')) {\n          mediaType = 'application/msword';\n          filename = uri.split('/').pop();\n        } else if (uri.match(/\\.(md|markdown)$/)) {\n          mediaType = 'text/markdown';\n          filename = uri.split('/').pop();\n        } else {\n          filename = uri.split('/').pop();\n        }\n\n        sources.push({\n          type: 'source',\n          sourceType: 'document',\n          id: generateId(),\n          mediaType,\n          title,\n          filename,\n        });\n      } else if (fileSearchStore) {\n        // New format: File Search with fileSearchStore (no uri)\n        const title = chunk.retrievedContext.title ?? 'Unknown Document';\n        sources.push({\n          type: 'source',\n          sourceType: 'document',\n          id: generateId(),\n          mediaType: 'application/octet-stream',\n          title,\n          filename: fileSearchStore.split('/').pop(),\n        });\n      }\n    } else if (chunk.maps != null) {\n      if (chunk.maps.uri) {\n        sources.push({\n          type: 'source',\n          sourceType: 'url',\n          id: generateId(),\n          url: chunk.maps.uri,\n          title: chunk.maps.title ?? undefined,\n        });\n      }\n    }\n  }\n\n  return sources.length > 0 ? sources : undefined;\n}\n\nexport const getGroundingMetadataSchema = () =>\n  z.object({\n    webSearchQueries: z.array(z.string()).nullish(),\n    imageSearchQueries: z.array(z.string()).nullish(),\n    retrievalQueries: z.array(z.string()).nullish(),\n    searchEntryPoint: z.object({ renderedContent: z.string() }).nullish(),\n    groundingChunks: z\n      .array(\n        z.object({\n          web: z\n            .object({ uri: z.string(), title: z.string().nullish() })\n            .nullish(),\n          image: z\n            .object({\n              sourceUri: z.string(),\n              imageUri: z.string(),\n              title: z.string().nullish(),\n              domain: z.string().nullish(),\n            })\n            .nullish(),\n          retrievedContext: z\n            .object({\n              uri: z.string().nullish(),\n              title: z.string().nullish(),\n              text: z.string().nullish(),\n              fileSearchStore: z.string().nullish(),\n            })\n            .nullish(),\n          maps: z\n            .object({\n              uri: z.string().nullish(),\n              title: z.string().nullish(),\n              text: z.string().nullish(),\n              placeId: z.string().nullish(),\n            })\n            .nullish(),\n        }),\n      )\n      .nullish(),\n    groundingSupports: z\n      .array(\n        z.object({\n          segment: z\n            .object({\n              startIndex: z.number().nullish(),\n              endIndex: z.number().nullish(),\n              text: z.string().nullish(),\n            })\n            .nullish(),\n          segment_text: z.string().nullish(),\n          groundingChunkIndices: z.array(z.number()).nullish(),\n          supportChunkIndices: z.array(z.number()).nullish(),\n          confidenceScores: z.array(z.number()).nullish(),\n          confidenceScore: z.array(z.number()).nullish(),\n        }),\n      )\n      .nullish(),\n    retrievalMetadata: z\n      .union([\n        z.object({\n          webDynamicRetrievalScore: z.number(),\n        }),\n        z.object({}),\n      ])\n      .nullish(),\n  });\n\nconst getContentSchema = () =>\n  z.object({\n    parts: z\n      .array(\n        z.union([\n          // note: order matters since text can be fully empty\n          z.object({\n            functionCall: z.object({\n              name: z.string(),\n              args: z.unknown(),\n            }),\n            thoughtSignature: z.string().nullish(),\n          }),\n          z.object({\n            inlineData: z.object({\n              mimeType: z.string(),\n              data: z.string(),\n            }),\n          }),\n          z.object({\n            executableCode: z\n              .object({\n                language: z.string(),\n                code: z.string(),\n              })\n              .nullish(),\n            codeExecutionResult: z\n              .object({\n                outcome: z.string(),\n                output: z.string(),\n              })\n              .nullish(),\n            text: z.string().nullish(),\n            thought: z.boolean().nullish(),\n            thoughtSignature: z.string().nullish(),\n          }),\n        ]),\n      )\n      .nullish(),\n  });\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters\nconst getSafetyRatingSchema = () =>\n  z.object({\n    category: z.string().nullish(),\n    probability: z.string().nullish(),\n    probabilityScore: z.number().nullish(),\n    severity: z.string().nullish(),\n    severityScore: z.number().nullish(),\n    blocked: z.boolean().nullish(),\n  });\n\nconst tokenDetailsSchema = z\n  .array(\n    z.object({\n      modality: z.string(),\n      tokenCount: z.number(),\n    }),\n  )\n  .nullish();\n\nconst usageSchema = z.object({\n  cachedContentTokenCount: z.number().nullish(),\n  thoughtsTokenCount: z.number().nullish(),\n  promptTokenCount: z.number().nullish(),\n  candidatesTokenCount: z.number().nullish(),\n  totalTokenCount: z.number().nullish(),\n  // https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType\n  trafficType: z.string().nullish(),\n  // https://ai.google.dev/api/generate-content#Modality\n  promptTokensDetails: tokenDetailsSchema,\n  candidatesTokensDetails: tokenDetailsSchema,\n});\n\n// https://ai.google.dev/api/generate-content#UrlRetrievalMetadata\nexport const getUrlContextMetadataSchema = () =>\n  z.object({\n    urlMetadata: z.array(\n      z.object({\n        retrievedUrl: z.string(),\n        urlRetrievalStatus: z.string(),\n      }),\n    ),\n  });\n\nconst responseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      candidates: z.array(\n        z.object({\n          content: getContentSchema().nullish().or(z.object({}).strict()),\n          finishReason: z.string().nullish(),\n          safetyRatings: z.array(getSafetyRatingSchema()).nullish(),\n          groundingMetadata: getGroundingMetadataSchema().nullish(),\n          urlContextMetadata: getUrlContextMetadataSchema().nullish(),\n        }),\n      ),\n      usageMetadata: usageSchema.nullish(),\n      promptFeedback: z\n        .object({\n          blockReason: z.string().nullish(),\n          safetyRatings: z.array(getSafetyRatingSchema()).nullish(),\n        })\n        .nullish(),\n      serviceTier: z.string().nullish(),\n    }),\n  ),\n);\n\ntype ContentSchema = NonNullable<\n  InferValidator<typeof responseSchema>['candidates'][number]['content']\n>;\nexport type GroundingMetadataSchema = NonNullable<\n  InferValidator<\n    typeof responseSchema\n  >['candidates'][number]['groundingMetadata']\n>;\n\ntype GroundingChunkSchema = NonNullable<\n  GroundingMetadataSchema['groundingChunks']\n>[number];\n\nexport type UrlContextMetadataSchema = NonNullable<\n  InferValidator<\n    typeof responseSchema\n  >['candidates'][number]['urlContextMetadata']\n>;\n\nexport type SafetyRatingSchema = NonNullable<\n  InferValidator<typeof responseSchema>['candidates'][number]['safetyRatings']\n>[number];\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst chunkSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      candidates: z\n        .array(\n          z.object({\n            content: getContentSchema().nullish(),\n            finishReason: z.string().nullish(),\n            safetyRatings: z.array(getSafetyRatingSchema()).nullish(),\n            groundingMetadata: getGroundingMetadataSchema().nullish(),\n            urlContextMetadata: getUrlContextMetadataSchema().nullish(),\n          }),\n        )\n        .nullish(),\n      usageMetadata: usageSchema.nullish(),\n      promptFeedback: z\n        .object({\n          blockReason: z.string().nullish(),\n          safetyRatings: z.array(getSafetyRatingSchema()).nullish(),\n        })\n        .nullish(),\n      serviceTier: z.string().nullish(),\n    }),\n  ),\n);\n\ntype ChunkSchema = InferValidator<typeof chunkSchema>;\n","import { createProviderDefinedToolFactoryWithOutputSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * A tool that enables the model to generate and run Python code.\n *\n * @note Ensure the selected model supports Code Execution.\n * Multi-tool usage with the code execution tool is typically compatible with Gemini >=2 models.\n *\n * @see https://ai.google.dev/gemini-api/docs/code-execution (Google AI)\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/code-execution-api (Vertex AI)\n */\nexport const codeExecution = createProviderDefinedToolFactoryWithOutputSchema<\n  {\n    language: string;\n    code: string;\n  },\n  {\n    outcome: string;\n    output: string;\n  },\n  {}\n>({\n  id: 'google.code_execution',\n  name: 'code_execution',\n  inputSchema: z.object({\n    language: z.string().describe('The programming language of the code.'),\n    code: z.string().describe('The code to be executed.'),\n  }),\n  outputSchema: z.object({\n    outcome: z\n      .string()\n      .describe('The outcome of the execution (e.g., \"OUTCOME_OK\").'),\n    output: z.string().describe('The output from the code execution.'),\n  }),\n});\n","import {\n  createProviderDefinedToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/web-grounding-enterprise\n\nexport const enterpriseWebSearch = createProviderDefinedToolFactory<\n  {\n    // Enterprise Web Search does not have any input schema\n  },\n  {}\n>({\n  id: 'google.enterprise_web_search',\n  name: 'enterprise_web_search',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n});\n","import {\n  createProviderDefinedToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/** Tool to retrieve knowledge from the File Search Stores. */\nconst fileSearchArgsBaseSchema = z\n  .object({\n    /** The names of the file_search_stores to retrieve from.\n     *  Example: `fileSearchStores/my-file-search-store-123`\n     */\n    fileSearchStoreNames: z\n      .array(z.string())\n      .describe(\n        'The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`',\n      ),\n    /** The number of file search retrieval chunks to retrieve. */\n    topK: z\n      .number()\n      .int()\n      .positive()\n      .describe('The number of file search retrieval chunks to retrieve.')\n      .optional(),\n\n    /** Metadata filter to apply to the file search retrieval documents.\n     *  See https://google.aip.dev/160 for the syntax of the filter expression.\n     */\n    metadataFilter: z\n      .string()\n      .describe(\n        'Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.',\n      )\n      .optional(),\n  })\n  .passthrough();\n\nexport type GoogleFileSearchToolArgs = z.infer<typeof fileSearchArgsBaseSchema>;\n\nconst fileSearchArgsSchema = lazySchema(() =>\n  zodSchema(fileSearchArgsBaseSchema),\n);\n\nexport const fileSearch = createProviderDefinedToolFactory<\n  {},\n  GoogleFileSearchToolArgs\n>({\n  id: 'google.file_search',\n  name: 'file_search',\n  inputSchema: fileSearchArgsSchema,\n});\n","import {\n  createProviderDefinedToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://ai.google.dev/gemini-api/docs/maps-grounding\n// https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n\nexport const googleMaps = createProviderDefinedToolFactory<{}, {}>({\n  id: 'google.google_maps',\n  name: 'google_maps',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n});\n","import {\n  createProviderDefinedToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://ai.google.dev/gemini-api/docs/google-search\n// https://ai.google.dev/api/generate-content#GroundingSupport\n// https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search\n\nconst googleSearchToolArgsBaseSchema = z\n  .object({\n    searchTypes: z\n      .object({\n        webSearch: z.object({}).optional(),\n        imageSearch: z.object({}).optional(),\n      })\n      .optional(),\n\n    timeRangeFilter: z\n      .object({\n        startTime: z.string(),\n        endTime: z.string(),\n      })\n      .optional(),\n  })\n  .passthrough();\n\nexport type GoogleSearchToolArgs = z.infer<\n  typeof googleSearchToolArgsBaseSchema\n>;\n\nconst googleSearchToolArgsSchema = lazySchema(() =>\n  zodSchema(googleSearchToolArgsBaseSchema),\n);\n\nexport const googleSearch = createProviderDefinedToolFactory<\n  {},\n  GoogleSearchToolArgs\n>({\n  id: 'google.google_search',\n  name: 'google_search',\n  inputSchema: googleSearchToolArgsSchema,\n});\n","import {\n  createProviderDefinedToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const urlContext = createProviderDefinedToolFactory<\n  {\n    // Url context does not have any input schema, it will directly use the url from the prompt\n  },\n  {}\n>({\n  id: 'google.url_context',\n  name: 'url_context',\n  inputSchema: lazySchema(() => zodSchema(z.object({}))),\n});\n","import { createProviderDefinedToolFactory } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/rag-engine/use-vertexai-search#generate-content-using-gemini-api\n// https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/rag-output-explained\n\n/**\n * A tool that enables the model to perform RAG searches against a Vertex RAG Store.\n *\n * @note Only works with Vertex Gemini models.\n */\nexport const vertexRagStore = createProviderDefinedToolFactory<\n  {},\n  {\n    /**\n     * RagCorpus resource names, eg: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}\n     */\n    ragCorpus: string;\n\n    /**\n     * The number of top contexts to retrieve.\n     */\n    topK?: number;\n  }\n>({\n  id: 'google.vertex_rag_store',\n  name: 'vertex_rag_store',\n  inputSchema: z.object({\n    ragCorpus: z.string(),\n    topK: z.number().optional(),\n  }),\n});\n","import { codeExecution } from './tool/code-execution';\nimport { enterpriseWebSearch } from './tool/enterprise-web-search';\nimport { fileSearch } from './tool/file-search';\nimport { googleMaps } from './tool/google-maps';\nimport { googleSearch } from './tool/google-search';\nimport { urlContext } from './tool/url-context';\nimport { vertexRagStore } from './tool/vertex-rag-store';\n\nexport const googleTools = {\n  /**\n   * Creates a Google search tool that gives Google direct access to real-time web content.\n   * Must have name \"google_search\".\n   */\n  googleSearch,\n\n  /**\n   * Creates an Enterprise Web Search tool for grounding responses using a compliance-focused web index.\n   * Designed for highly-regulated industries (finance, healthcare, public sector).\n   * Does not log customer data and supports VPC service controls.\n   * Must have name \"enterprise_web_search\".\n   *\n   * @note Only available on Vertex AI. Requires Gemini 2.0 or newer.\n   *\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/web-grounding-enterprise\n   */\n  enterpriseWebSearch,\n\n  /**\n   * Creates a Google Maps grounding tool that gives the model access to Google Maps data.\n   * Must have name \"google_maps\".\n   *\n   * @see https://ai.google.dev/gemini-api/docs/maps-grounding\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n   */\n  googleMaps,\n\n  /**\n   * Creates a URL context tool that gives Google direct access to real-time web content.\n   * Must have name \"url_context\".\n   */\n  urlContext,\n\n  /**\n   * Enables Retrieval Augmented Generation (RAG) via the Gemini File Search tool.\n   * Must have name \"file_search\".\n   *\n   * @param fileSearchStoreNames - Fully-qualified File Search store resource names.\n   * @param metadataFilter - Optional filter expression to restrict the files that can be retrieved.\n   * @param topK - Optional result limit for the number of chunks returned from File Search.\n   *\n   * @see https://ai.google.dev/gemini-api/docs/file-search\n   */\n  fileSearch,\n  /**\n   * A tool that enables the model to generate and run Python code.\n   * Must have name \"code_execution\".\n   *\n   * @note Ensure the selected model supports Code Execution.\n   * Multi-tool usage with the code execution tool is typically compatible with Gemini >=2 models.\n   *\n   * @see https://ai.google.dev/gemini-api/docs/code-execution (Google AI)\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/code-execution-api (Vertex AI)\n   */\n  codeExecution,\n\n  /**\n   * Creates a Vertex RAG Store tool that enables the model to perform RAG searches against a Vertex RAG Store.\n   * Must have name \"vertex_rag_store\".\n   */\n  vertexRagStore,\n};\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  type InferValidator,\n  lazySchema,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  zodSchema,\n  type FetchFunction,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { googleFailedResponseHandler } from './google-error';\nimport type {\n  GoogleGenerativeAIImageModelId,\n  GoogleGenerativeAIImageSettings,\n} from './google-generative-ai-image-settings';\n\ninterface GoogleGenerativeAIImageModelConfig {\n  provider: string;\n  baseURL: string;\n  headers?: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n  generateId?: () => string;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nexport class GoogleGenerativeAIImageModel implements ImageModelV2 {\n  readonly specificationVersion = 'v2';\n\n  get maxImagesPerCall(): number {\n    // https://ai.google.dev/gemini-api/docs/imagen#imagen-model\n    return this.settings.maxImagesPerCall ?? 4;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: GoogleGenerativeAIImageModelId,\n    private readonly settings: GoogleGenerativeAIImageSettings,\n    private readonly config: GoogleGenerativeAIImageModelConfig,\n  ) {}\n\n  async doGenerate(\n    options: Parameters<ImageModelV2['doGenerate']>[0],\n  ): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>> {\n    const {\n      prompt,\n      n = 1,\n      size = '1024x1024',\n      aspectRatio = '1:1',\n      seed,\n      providerOptions,\n      headers,\n      abortSignal,\n    } = options;\n    const warnings: Array<ImageModelV2CallWarning> = [];\n\n    if (size != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'size',\n        details:\n          'This model does not support the `size` option. Use `aspectRatio` instead.',\n      });\n    }\n\n    if (seed != null) {\n      warnings.push({\n        type: 'unsupported-setting',\n        setting: 'seed',\n        details:\n          'This model does not support the `seed` option through this provider.',\n      });\n    }\n\n    const googleOptions = await parseProviderOptions({\n      provider: 'google',\n      providerOptions,\n      schema: googleImageProviderOptionsSchema,\n    });\n\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n    const parameters: Record<string, unknown> = {\n      sampleCount: n,\n    };\n\n    if (aspectRatio != null) {\n      parameters.aspectRatio = aspectRatio;\n    }\n\n    if (googleOptions) {\n      Object.assign(parameters, googleOptions);\n    }\n\n    const body = {\n      instances: [{ prompt }],\n      parameters,\n    };\n\n    const { responseHeaders, value: response } = await postJsonToApi<{\n      predictions: Array<{ bytesBase64Encoded: string }>;\n    }>({\n      url: `${this.config.baseURL}/models/${this.modelId}:predict`,\n      headers: combineHeaders(await resolve(this.config.headers), headers),\n      body,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        googleImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n    return {\n      images: response.predictions.map(\n        (p: { bytesBase64Encoded: string }) => p.bytesBase64Encoded,\n      ),\n      warnings: warnings ?? [],\n      providerMetadata: {\n        google: {\n          images: response.predictions.map(prediction => ({\n            // Add any prediction-specific metadata here\n          })),\n        },\n      },\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n    };\n  }\n}\n\n// minimal version of the schema\nconst googleImageResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      predictions: z\n        .array(z.object({ bytesBase64Encoded: z.string() }))\n        .default([]),\n    }),\n  ),\n);\n\n// Note: For the initial GA launch of Imagen 3, safety filters are not configurable.\n// https://ai.google.dev/gemini-api/docs/imagen#imagen-model\nconst googleImageProviderOptionsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      personGeneration: z\n        .enum(['dont_allow', 'allow_adult', 'allow_all'])\n        .nullish(),\n      aspectRatio: z.enum(['1:1', '3:4', '4:3', '9:16', '16:9']).nullish(),\n    }),\n  ),\n);\n\nexport type GoogleGenerativeAIImageProviderOptions = InferValidator<\n  typeof googleImageProviderOptionsSchema\n>;\n","import type {\n  EmbeddingModelV2,\n  LanguageModelV2,\n  ProviderV2,\n  ImageModelV2,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  generateId,\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { VERSION } from './version';\nimport { GoogleGenerativeAIEmbeddingModel } from './google-generative-ai-embedding-model';\nimport type { GoogleGenerativeAIEmbeddingModelId } from './google-generative-ai-embedding-options';\nimport { GoogleGenerativeAILanguageModel } from './google-generative-ai-language-model';\nimport type { GoogleGenerativeAIModelId } from './google-generative-ai-options';\nimport { googleTools } from './google-tools';\n\nimport type {\n  GoogleGenerativeAIImageSettings,\n  GoogleGenerativeAIImageModelId,\n} from './google-generative-ai-image-settings';\nimport { GoogleGenerativeAIImageModel } from './google-generative-ai-image-model';\n\nexport interface GoogleGenerativeAIProvider extends ProviderV2 {\n  (modelId: GoogleGenerativeAIModelId): LanguageModelV2;\n\n  languageModel(modelId: GoogleGenerativeAIModelId): LanguageModelV2;\n\n  chat(modelId: GoogleGenerativeAIModelId): LanguageModelV2;\n\n  /**\nCreates a model for image generation.\n */\n  image(\n    modelId: GoogleGenerativeAIImageModelId,\n    settings?: GoogleGenerativeAIImageSettings,\n  ): ImageModelV2;\n\n  /**\n   * @deprecated Use `chat()` instead.\n   */\n  generativeAI(modelId: GoogleGenerativeAIModelId): LanguageModelV2;\n\n  /**\n@deprecated Use `textEmbedding()` instead.\n   */\n  embedding(\n    modelId: GoogleGenerativeAIEmbeddingModelId,\n  ): EmbeddingModelV2<string>;\n\n  textEmbedding(\n    modelId: GoogleGenerativeAIEmbeddingModelId,\n  ): EmbeddingModelV2<string>;\n\n  textEmbeddingModel(\n    modelId: GoogleGenerativeAIEmbeddingModelId,\n  ): EmbeddingModelV2<string>;\n\n  tools: typeof googleTools;\n}\n\nexport interface GoogleGenerativeAIProviderSettings {\n  /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://generativelanguage.googleapis.com/v1beta`.\n   */\n  baseURL?: string;\n\n  /**\nAPI key that is being send using the `x-goog-api-key` header.\nIt defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable.\n   */\n  apiKey?: string;\n\n  /**\nCustom headers to include in the requests.\n     */\n  headers?: Record<string, string | undefined>;\n\n  /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n    */\n  fetch?: FetchFunction;\n\n  /**\nOptional function to generate a unique ID for each request.\n     */\n  generateId?: () => string;\n\n  /**\n   * Custom provider name\n   * Defaults to 'google.generative-ai'.\n   */\n  name?: string;\n}\n\n/**\nCreate a Google Generative AI provider instance.\n */\nexport function createGoogleGenerativeAI(\n  options: GoogleGenerativeAIProviderSettings = {},\n): GoogleGenerativeAIProvider {\n  const baseURL =\n    withoutTrailingSlash(options.baseURL) ??\n    'https://generativelanguage.googleapis.com/v1beta';\n\n  const providerName = options.name ?? 'google.generative-ai';\n\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        'x-goog-api-key': loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'GOOGLE_GENERATIVE_AI_API_KEY',\n          description: 'Google Generative AI',\n        }),\n        ...options.headers,\n      },\n      `ai-sdk/google/${VERSION}`,\n    );\n\n  const createChatModel = (modelId: GoogleGenerativeAIModelId) =>\n    new GoogleGenerativeAILanguageModel(modelId, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      generateId: options.generateId ?? generateId,\n      supportedUrls: () => ({\n        '*': [\n          // Google Generative Language \"files\" endpoint\n          // e.g. https://generativelanguage.googleapis.com/v1beta/files/...\n          new RegExp(`^${baseURL}/files/.*$`),\n          // YouTube URLs (public or unlisted videos)\n          new RegExp(\n            `^https://(?:www\\\\.)?youtube\\\\.com/watch\\\\?v=[\\\\w-]+(?:&[\\\\w=&.-]*)?$`,\n          ),\n          new RegExp(`^https://youtu\\\\.be/[\\\\w-]+(?:\\\\?[\\\\w=&.-]*)?$`),\n        ],\n      }),\n      fetch: options.fetch,\n    });\n\n  const createEmbeddingModel = (modelId: GoogleGenerativeAIEmbeddingModelId) =>\n    new GoogleGenerativeAIEmbeddingModel(modelId, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createImageModel = (\n    modelId: GoogleGenerativeAIImageModelId,\n    settings: GoogleGenerativeAIImageSettings = {},\n  ) =>\n    new GoogleGenerativeAIImageModel(modelId, settings, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const provider = function (modelId: GoogleGenerativeAIModelId) {\n    if (new.target) {\n      throw new Error(\n        'The Google Generative AI model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createChatModel(modelId);\n  };\n\n  provider.languageModel = createChatModel;\n  provider.chat = createChatModel;\n  provider.generativeAI = createChatModel;\n  provider.embedding = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.tools = googleTools;\n  return provider as GoogleGenerativeAIProvider;\n}\n\n/**\nDefault Google Generative AI provider instance.\n */\nexport const google = createGoogleGenerativeAI();\n","import { codeInterpreter } from './tool/code-interpreter';\nimport { fileSearch } from './tool/file-search';\nimport { imageGeneration } from './tool/image-generation';\nimport { localShell } from './tool/local-shell';\nimport { webSearch } from './tool/web-search';\nimport { webSearchPreview } from './tool/web-search-preview';\n\nexport const openaiTools = {\n  /**\n   * The Code Interpreter tool allows models to write and run Python code in a\n   * sandboxed environment to solve complex problems in domains like data analysis,\n   * coding, and math.\n   *\n   * @param container - The container to use for the code interpreter.\n   *\n   * Must have name `code_interpreter`.\n   */\n  codeInterpreter,\n\n  /**\n   * File search is a tool available in the Responses API. It enables models to\n   * retrieve information in a knowledge base of previously uploaded files through\n   * semantic and keyword search.\n   *\n   * Must have name `file_search`.\n   *\n   * @param vectorStoreIds - The vector store IDs to use for the file search.\n   * @param maxNumResults - The maximum number of results to return.\n   * @param ranking - The ranking options to use for the file search.\n   * @param filters - The filters to use for the file search.\n   */\n  fileSearch,\n\n  /**\n   * The image generation tool allows you to generate images using a text prompt,\n   * and optionally image inputs. It leverages the GPT Image model,\n   * and automatically optimizes text inputs for improved performance.\n   *\n   * Must have name `image_generation`.\n   *\n   * @param size - Image dimensions (e.g., 1024x1024, 1024x1536)\n   * @param quality - Rendering quality (e.g. low, medium, high)\n   * @param format - File output format\n   * @param compression - Compression level (0-100%) for JPEG and WebP formats\n   * @param background - Transparent or opaque\n   */\n  imageGeneration,\n\n  /**\n   * Local shell is a tool that allows agents to run shell commands locally\n   * on a machine you or the user provides.\n   *\n   * Supported models: `gpt-5-codex` and `codex-mini-latest`\n   *\n   * Must have name `local_shell`.\n   */\n  localShell,\n\n  /**\n   * Web search allows models to access up-to-date information from the internet\n   * and provide answers with sourced citations.\n   *\n   * Must have name `web_search_preview`.\n   *\n   * @param searchContextSize - The search context size to use for the web search.\n   * @param userLocation - The user location to use for the web search.\n   *\n   * @deprecated Use `webSearch` instead.\n   */\n  webSearchPreview,\n\n  /**\n   * Web search allows models to access up-to-date information from the internet\n   * and provide answers with sourced citations.\n   *\n   * Must have name `web_search`.\n   *\n   * @param filters - The filters to use for the web search.\n   * @param searchContextSize - The search context size to use for the web search.\n   * @param userLocation - The user location to use for the web search.\n   */\n  webSearch,\n};\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import type {\n  EmbeddingModelV2,\n  ImageModelV2,\n  LanguageModelV2,\n  ProviderV2,\n  SpeechModelV2,\n  TranscriptionModelV2,\n} from '@ai-sdk/provider';\nimport {\n  type FetchFunction,\n  loadApiKey,\n  loadOptionalSetting,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIChatLanguageModel } from './chat/openai-chat-language-model';\nimport type { OpenAIChatModelId } from './chat/openai-chat-options';\nimport { OpenAICompletionLanguageModel } from './completion/openai-completion-language-model';\nimport type { OpenAICompletionModelId } from './completion/openai-completion-options';\nimport { OpenAIEmbeddingModel } from './embedding/openai-embedding-model';\nimport type { OpenAIEmbeddingModelId } from './embedding/openai-embedding-options';\nimport { OpenAIImageModel } from './image/openai-image-model';\nimport type { OpenAIImageModelId } from './image/openai-image-options';\nimport { openaiTools } from './openai-tools';\nimport { OpenAIResponsesLanguageModel } from './responses/openai-responses-language-model';\nimport type { OpenAIResponsesModelId } from './responses/openai-responses-options';\nimport { OpenAISpeechModel } from './speech/openai-speech-model';\nimport type { OpenAISpeechModelId } from './speech/openai-speech-options';\nimport { OpenAITranscriptionModel } from './transcription/openai-transcription-model';\nimport type { OpenAITranscriptionModelId } from './transcription/openai-transcription-options';\nimport { VERSION } from './version';\n\nexport interface OpenAIProvider extends ProviderV2 {\n  (modelId: OpenAIResponsesModelId): LanguageModelV2;\n\n  /**\nCreates an OpenAI model for text generation.\n   */\n  languageModel(modelId: OpenAIResponsesModelId): LanguageModelV2;\n\n  /**\nCreates an OpenAI chat model for text generation.\n   */\n  chat(modelId: OpenAIChatModelId): LanguageModelV2;\n\n  /**\nCreates an OpenAI responses API model for text generation.\n   */\n  responses(modelId: OpenAIResponsesModelId): LanguageModelV2;\n\n  /**\nCreates an OpenAI completion model for text generation.\n   */\n  completion(modelId: OpenAICompletionModelId): LanguageModelV2;\n\n  /**\nCreates a model for text embeddings.\n   */\n  embedding(modelId: OpenAIEmbeddingModelId): EmbeddingModelV2<string>;\n\n  /**\nCreates a model for text embeddings.\n   */\n  textEmbedding(modelId: OpenAIEmbeddingModelId): EmbeddingModelV2<string>;\n\n  /**\nCreates a model for text embeddings.\n   */\n  textEmbeddingModel(modelId: OpenAIEmbeddingModelId): EmbeddingModelV2<string>;\n\n  /**\nCreates a model for image generation.\n   */\n  image(modelId: OpenAIImageModelId): ImageModelV2;\n\n  /**\nCreates a model for image generation.\n   */\n  imageModel(modelId: OpenAIImageModelId): ImageModelV2;\n\n  /**\nCreates a model for transcription.\n   */\n  transcription(modelId: OpenAITranscriptionModelId): TranscriptionModelV2;\n\n  /**\nCreates a model for speech generation.\n   */\n  speech(modelId: OpenAISpeechModelId): SpeechModelV2;\n\n  /**\nOpenAI-specific tools.\n   */\n  tools: typeof openaiTools;\n}\n\nexport interface OpenAIProviderSettings {\n  /**\nBase URL for the OpenAI API calls.\n     */\n  baseURL?: string;\n\n  /**\nAPI key for authenticating requests.\n     */\n  apiKey?: string;\n\n  /**\nOpenAI Organization.\n     */\n  organization?: string;\n\n  /**\nOpenAI project.\n     */\n  project?: string;\n\n  /**\nCustom headers to include in the requests.\n     */\n  headers?: Record<string, string>;\n\n  /**\nProvider name. Overrides the `openai` default name for 3rd party providers.\n   */\n  name?: string;\n\n  /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n    */\n  fetch?: FetchFunction;\n}\n\n/**\nCreate an OpenAI provider instance.\n */\nexport function createOpenAI(\n  options: OpenAIProviderSettings = {},\n): OpenAIProvider {\n  const baseURL =\n    withoutTrailingSlash(\n      loadOptionalSetting({\n        settingValue: options.baseURL,\n        environmentVariableName: 'OPENAI_BASE_URL',\n      }),\n    ) ?? 'https://api.openai.com/v1';\n\n  const providerName = options.name ?? 'openai';\n\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'OPENAI_API_KEY',\n          description: 'OpenAI',\n        })}`,\n        'OpenAI-Organization': options.organization,\n        'OpenAI-Project': options.project,\n        ...options.headers,\n      },\n      `ai-sdk/openai/${VERSION}`,\n    );\n\n  const createChatModel = (modelId: OpenAIChatModelId) =>\n    new OpenAIChatLanguageModel(modelId, {\n      provider: `${providerName}.chat`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createCompletionModel = (modelId: OpenAICompletionModelId) =>\n    new OpenAICompletionLanguageModel(modelId, {\n      provider: `${providerName}.completion`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createEmbeddingModel = (modelId: OpenAIEmbeddingModelId) =>\n    new OpenAIEmbeddingModel(modelId, {\n      provider: `${providerName}.embedding`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createImageModel = (modelId: OpenAIImageModelId) =>\n    new OpenAIImageModel(modelId, {\n      provider: `${providerName}.image`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createTranscriptionModel = (modelId: OpenAITranscriptionModelId) =>\n    new OpenAITranscriptionModel(modelId, {\n      provider: `${providerName}.transcription`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createSpeechModel = (modelId: OpenAISpeechModelId) =>\n    new OpenAISpeechModel(modelId, {\n      provider: `${providerName}.speech`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createLanguageModel = (modelId: OpenAIResponsesModelId) => {\n    if (new.target) {\n      throw new Error(\n        'The OpenAI model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createResponsesModel(modelId);\n  };\n\n  const createResponsesModel = (modelId: OpenAIResponsesModelId) => {\n    return new OpenAIResponsesLanguageModel(modelId, {\n      provider: `${providerName}.responses`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n      fileIdPrefixes: ['file-'],\n    });\n  };\n\n  const provider = function (modelId: OpenAIResponsesModelId) {\n    return createLanguageModel(modelId);\n  };\n\n  provider.languageModel = createLanguageModel;\n  provider.chat = createChatModel;\n  provider.completion = createCompletionModel;\n  provider.responses = createResponsesModel;\n  provider.embedding = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n\n  provider.transcription = createTranscriptionModel;\n  provider.transcriptionModel = createTranscriptionModel;\n\n  provider.speech = createSpeechModel;\n  provider.speechModel = createSpeechModel;\n\n  provider.tools = openaiTools;\n\n  return provider as OpenAIProvider;\n}\n\n/**\nDefault OpenAI provider instance.\n */\nexport const openai = createOpenAI();\n","import { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { EmbeddingModel } from '@internal/ai-sdk-v5';\n\ntype EmbeddingModelV2<VALUE> = Exclude<EmbeddingModel<VALUE>, string>;\n\nimport { GatewayRegistry } from './provider-registry.js';\nimport type { OpenAICompatibleConfig } from './shared.types.js';\n\n/**\n * Information about a known embedding model\n */\nexport interface EmbeddingModelInfo {\n  id: string;\n  provider: string;\n  dimensions: number;\n  maxInputTokens: number;\n  description?: string;\n}\n\n/**\n * Hardcoded list of known embedding models\n * This is a curated list that provides autocomplete support\n */\nexport const EMBEDDING_MODELS: EmbeddingModelInfo[] = [\n  // OpenAI\n  {\n    id: 'text-embedding-3-small',\n    provider: 'openai',\n    dimensions: 1536,\n    maxInputTokens: 8191,\n    description: 'OpenAI text-embedding-3-small model',\n  },\n  {\n    id: 'text-embedding-3-large',\n    provider: 'openai',\n    dimensions: 3072,\n    maxInputTokens: 8191,\n    description: 'OpenAI text-embedding-3-large model',\n  },\n  {\n    id: 'text-embedding-ada-002',\n    provider: 'openai',\n    dimensions: 1536,\n    maxInputTokens: 8191,\n    description: 'OpenAI text-embedding-ada-002 model',\n  },\n  // Google\n  {\n    id: 'gemini-embedding-001',\n    provider: 'google',\n    dimensions: 768,\n    maxInputTokens: 2048,\n    description: 'Google gemini-embedding-001 model',\n  },\n];\n\n/**\n * Type for embedding model IDs in the format \"provider/model\"\n */\nexport type EmbeddingModelId =\n  | 'openai/text-embedding-3-small'\n  | 'openai/text-embedding-3-large'\n  | 'openai/text-embedding-ada-002'\n  | 'google/gemini-embedding-001';\n\n/**\n * Check if a model ID is a known embedding model\n */\nexport function isKnownEmbeddingModel(modelId: string): boolean {\n  return EMBEDDING_MODELS.some(m => m.id === modelId);\n}\n\n/**\n * Get information about a known embedding model\n */\nexport function getEmbeddingModelInfo(modelId: string): EmbeddingModelInfo | undefined {\n  return EMBEDDING_MODELS.find(m => m.id === modelId);\n}\n\n/**\n * Model router for embedding models that uses the provider/model string format.\n * Automatically resolves the correct AI SDK provider and initializes the embedding model.\n *\n * @example\n * ```ts\n * const embedder = new ModelRouterEmbeddingModel('openai/text-embedding-3-small');\n * const result = await embedder.doEmbed({ values: ['hello world'] });\n * ```\n */\nexport class ModelRouterEmbeddingModel<VALUE extends string = string> implements EmbeddingModelV2<VALUE> {\n  readonly specificationVersion = 'v2' as const;\n  readonly modelId: string;\n  readonly provider: string;\n  maxEmbeddingsPerCall: number | PromiseLike<number | undefined> = 2048;\n  supportsParallelCalls: boolean | PromiseLike<boolean> = true;\n\n  private providerModel: EmbeddingModelV2<VALUE>;\n\n  constructor(config: string | OpenAICompatibleConfig) {\n    // Normalize config to always have provider and model IDs\n    let normalizedConfig: {\n      providerId: string;\n      modelId: string;\n      url?: string;\n      apiKey?: string;\n      headers?: Record<string, string>;\n    };\n\n    if (typeof config === 'string') {\n      // Parse provider/model from string (e.g., \"openai/text-embedding-3-small\")\n      const parts = config.split('/');\n      if (parts.length !== 2) {\n        throw new Error(`Invalid model string format: \"${config}\". Expected format: \"provider/model\"`);\n      }\n      const [providerId, modelId] = parts as [string, string];\n      normalizedConfig = { providerId, modelId };\n    } else if ('providerId' in config && 'modelId' in config) {\n      normalizedConfig = {\n        providerId: config.providerId,\n        modelId: config.modelId,\n        url: config.url,\n        apiKey: config.apiKey,\n        headers: config.headers,\n      };\n    } else {\n      // config has 'id' field\n      const parts = config.id.split('/');\n      if (parts.length !== 2) {\n        throw new Error(`Invalid model string format: \"${config.id}\". Expected format: \"provider/model\"`);\n      }\n      const [providerId, modelId] = parts as [string, string];\n      normalizedConfig = {\n        providerId,\n        modelId,\n        url: config.url,\n        apiKey: config.apiKey,\n        headers: config.headers,\n      };\n    }\n\n    this.provider = normalizedConfig.providerId;\n    this.modelId = normalizedConfig.modelId;\n\n    // If custom URL is provided, skip provider registry validation\n    // and use the provided API key (or empty string if not provided)\n    if (normalizedConfig.url) {\n      const apiKey = normalizedConfig.apiKey || '';\n      this.providerModel = createOpenAICompatible({\n        name: normalizedConfig.providerId,\n        apiKey,\n        baseURL: normalizedConfig.url,\n        headers: normalizedConfig.headers,\n      }).textEmbeddingModel(normalizedConfig.modelId) as EmbeddingModelV2<VALUE>;\n    } else {\n      // Get provider config from registry\n      const registry = GatewayRegistry.getInstance();\n      const providerConfig = registry.getProviderConfig(normalizedConfig.providerId);\n\n      if (!providerConfig) {\n        throw new Error(`Unknown provider: ${normalizedConfig.providerId}`);\n      }\n\n      // Get API key from config or environment\n      let apiKey = normalizedConfig.apiKey;\n      if (!apiKey) {\n        const apiKeyEnvVar = providerConfig.apiKeyEnvVar;\n        if (Array.isArray(apiKeyEnvVar)) {\n          // Try each possible environment variable\n          for (const envVar of apiKeyEnvVar) {\n            apiKey = process.env[envVar];\n            if (apiKey) break;\n          }\n        } else {\n          apiKey = process.env[apiKeyEnvVar];\n        }\n      }\n\n      if (!apiKey) {\n        const envVarDisplay = Array.isArray(providerConfig.apiKeyEnvVar)\n          ? providerConfig.apiKeyEnvVar.join(' or ')\n          : providerConfig.apiKeyEnvVar;\n        throw new Error(`API key not found for provider ${normalizedConfig.providerId}. Set ${envVarDisplay}`);\n      }\n\n      // Initialize the provider model directly in constructor\n      if (normalizedConfig.providerId === 'openai') {\n        this.providerModel = createOpenAI({ apiKey }).textEmbeddingModel(\n          normalizedConfig.modelId,\n        ) as EmbeddingModelV2<VALUE>;\n      } else if (normalizedConfig.providerId === 'google') {\n        this.providerModel = createGoogleGenerativeAI({ apiKey }).textEmbedding(\n          normalizedConfig.modelId,\n        ) as EmbeddingModelV2<VALUE>;\n      } else {\n        // Use OpenAI-compatible provider for other providers\n        if (!providerConfig.url) {\n          throw new Error(`Provider ${normalizedConfig.providerId} does not have a URL configured`);\n        }\n        this.providerModel = createOpenAICompatible({\n          name: normalizedConfig.providerId,\n          apiKey,\n          baseURL: providerConfig.url,\n        }).textEmbeddingModel(normalizedConfig.modelId) as EmbeddingModelV2<VALUE>;\n      }\n    }\n\n    // Copy properties from the provider model if available\n    if (this.providerModel.maxEmbeddingsPerCall !== undefined) {\n      this.maxEmbeddingsPerCall = this.providerModel.maxEmbeddingsPerCall;\n    }\n    if (this.providerModel.supportsParallelCalls !== undefined) {\n      this.supportsParallelCalls = this.providerModel.supportsParallelCalls;\n    }\n  }\n\n  async doEmbed(\n    args: Parameters<EmbeddingModelV2<VALUE>['doEmbed']>[0],\n  ): Promise<Awaited<ReturnType<EmbeddingModelV2<VALUE>['doEmbed']>>> {\n    const result = await this.providerModel.doEmbed(args);\n    // Ensure warnings is always an array — AI SDK v6's embedMany spreads\n    // result.warnings and crashes if it's undefined.\n    const warnings = (result as { warnings?: unknown[] }).warnings ?? [];\n    return { ...result, warnings } as Awaited<ReturnType<EmbeddingModelV2<VALUE>['doEmbed']>>;\n  }\n}\n"]}