@ai-sdk/openai 3.0.0-beta.87 → 3.0.0-beta.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +4 -4
- package/dist/internal/index.d.ts +4 -4
- package/dist/internal/index.js +2 -2
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +2 -2
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/openai-provider.ts","../src/chat/openai-chat-language-model.ts","../src/openai-error.ts","../src/openai-language-model-capabilities.ts","../src/chat/convert-to-openai-chat-messages.ts","../src/chat/get-response-metadata.ts","../src/chat/map-openai-finish-reason.ts","../src/chat/openai-chat-api.ts","../src/chat/openai-chat-options.ts","../src/chat/openai-chat-prepare-tools.ts","../src/completion/openai-completion-language-model.ts","../src/completion/convert-to-openai-completion-prompt.ts","../src/completion/get-response-metadata.ts","../src/completion/map-openai-finish-reason.ts","../src/completion/openai-completion-api.ts","../src/completion/openai-completion-options.ts","../src/embedding/openai-embedding-model.ts","../src/embedding/openai-embedding-options.ts","../src/embedding/openai-embedding-api.ts","../src/image/openai-image-model.ts","../src/image/openai-image-api.ts","../src/image/openai-image-options.ts","../src/tool/apply-patch.ts","../src/tool/code-interpreter.ts","../src/tool/file-search.ts","../src/tool/image-generation.ts","../src/tool/local-shell.ts","../src/tool/shell.ts","../src/tool/web-search.ts","../src/tool/web-search-preview.ts","../src/tool/mcp.ts","../src/openai-tools.ts","../src/responses/openai-responses-language-model.ts","../src/responses/convert-to-openai-responses-input.ts","../src/responses/map-openai-responses-finish-reason.ts","../src/responses/openai-responses-api.ts","../src/responses/openai-responses-options.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech/openai-speech-model.ts","../src/speech/openai-speech-options.ts","../src/transcription/openai-transcription-model.ts","../src/transcription/openai-transcription-api.ts","../src/transcription/openai-transcription-options.ts","../src/version.ts"],"sourcesContent":["import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV3,\n ProviderV3,\n SpeechModelV3,\n TranscriptionModelV3,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n loadOptionalSetting,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIChatLanguageModel } from './chat/openai-chat-language-model';\nimport { OpenAIChatModelId } from './chat/openai-chat-options';\nimport { OpenAICompletionLanguageModel } from './completion/openai-completion-language-model';\nimport { OpenAICompletionModelId } from './completion/openai-completion-options';\nimport { OpenAIEmbeddingModel } from './embedding/openai-embedding-model';\nimport { OpenAIEmbeddingModelId } from './embedding/openai-embedding-options';\nimport { OpenAIImageModel } from './image/openai-image-model';\nimport { OpenAIImageModelId } from './image/openai-image-options';\nimport { openaiTools } from './openai-tools';\nimport { OpenAIResponsesLanguageModel } from './responses/openai-responses-language-model';\nimport { OpenAIResponsesModelId } from './responses/openai-responses-options';\nimport { OpenAISpeechModel } from './speech/openai-speech-model';\nimport { OpenAISpeechModelId } from './speech/openai-speech-options';\nimport { OpenAITranscriptionModel } from './transcription/openai-transcription-model';\nimport { OpenAITranscriptionModelId } from './transcription/openai-transcription-options';\nimport { VERSION } from './version';\n\nexport interface OpenAIProvider extends ProviderV3 {\n (modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI model for text generation.\n */\n languageModel(modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI chat model for text generation.\n */\n chat(modelId: OpenAIChatModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI responses API model for text generation.\n */\n responses(modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI completion model for text generation.\n */\n completion(modelId: OpenAICompletionModelId): LanguageModelV3;\n\n /**\nCreates a model for text embeddings.\n */\n embedding(modelId: OpenAIEmbeddingModelId): EmbeddingModelV3;\n\n /**\nCreates a model for text embeddings.\n */\n embeddingModel(modelId: OpenAIEmbeddingModelId): EmbeddingModelV3;\n\n /**\nCreates a model for image generation.\n */\n image(modelId: OpenAIImageModelId): ImageModelV3;\n\n /**\nCreates a model for image generation.\n */\n imageModel(modelId: OpenAIImageModelId): ImageModelV3;\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: OpenAITranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: OpenAISpeechModelId): SpeechModelV3;\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.specificationVersion = 'v3' as const;\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.responses = createResponsesModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = 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 {\n InvalidResponseDataError,\n LanguageModelV3,\n LanguageModelV3CallOptions,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n 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 OpenAIChatChunk,\n openaiChatChunkSchema,\n openaiChatResponseSchema,\n} from './openai-chat-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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 }: LanguageModelV3CallOptions) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const openaiOptions =\n (await parseProviderOptions({\n provider: 'openai',\n providerOptions,\n schema: openaiChatLanguageModelOptions,\n })) ?? {};\n\n const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n if (topK != null) {\n warnings.push({ type: 'unsupported', feature: 'topK' });\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 ?? true;\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 ? 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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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 });\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<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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<LanguageModelV3Content> = [];\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,\n title: annotation.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: SharedV3ProviderMetadata = { 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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: LanguageModelV3FinishReason = 'unknown';\n const usage: LanguageModelV3Usage = {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n let metadataExtracted = false;\n let isActiveText = false;\n\n const providerMetadata: SharedV3ProviderMetadata = { openai: {} };\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<OpenAIChatChunk>,\n LanguageModelV3StreamPart\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 (toolCallDelta.type !== 'function') {\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,\n title: annotation.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 { 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-mini') ||\n (modelId.startsWith('gpt-5') &&\n !modelId.startsWith('gpt-5-nano') &&\n !modelId.startsWith('gpt-5-chat')) ||\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 const supportsNonReasoningParameters = modelId.startsWith('gpt-5.1');\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 SharedV3Warning,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { OpenAIChatPrompt } from './openai-chat-prompt';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\n\nexport function convertToOpenAIChatMessages({\n prompt,\n systemMessageMode = 'system',\n}: {\n prompt: LanguageModelV3Prompt;\n systemMessageMode?: 'system' | 'developer' | 'remove';\n}): {\n messages: OpenAIChatPrompt;\n warnings: Array<SharedV3Warning>;\n} {\n const messages: OpenAIChatPrompt = [];\n const warnings: Array<SharedV3Warning> = [];\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 'execution-denied':\n contentValue = output.reason ?? 'Tool execution denied.';\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 { JSONSchema7 } from '@ai-sdk/provider';\nimport { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 start_index: z.number(),\n end_index: z.number(),\n url: z.string(),\n title: z.string(),\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 = lazySchema(() =>\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 start_index: z.number(),\n end_index: z.number(),\n url: z.string(),\n title: z.string(),\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 = InferSchema<typeof openaiChatResponseSchema>;\n\nexport type OpenAIChatChunk = InferSchema<typeof openaiChatChunkSchema>;\n","import { InferSchema, lazySchema, zodSchema } 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 | (string & {});\n\nexport const openaiChatLanguageModelOptions = lazySchema(() =>\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'])\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 * 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 true\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 = InferSchema<\n typeof openaiChatLanguageModelOptions\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport {\n OpenAIChatToolChoice,\n OpenAIChatFunctionTool,\n} from './openai-chat-api';\n\nexport function prepareChatTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV3CallOptions['tools'];\n toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): {\n tools?: OpenAIChatFunctionTool[];\n toolChoice?: OpenAIChatToolChoice;\n toolWarnings: Array<SharedV3Warning>;\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: SharedV3Warning[] = [];\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 ...(tool.strict != null ? { strict: tool.strict } : {}),\n },\n });\n break;\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `tool type: ${tool.type}`,\n });\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 LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n 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 OpenAICompletionChunk,\n openaiCompletionChunkSchema,\n openaiCompletionResponseSchema,\n} from './openai-completion-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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', feature: 'topK' });\n }\n\n if (tools?.length) {\n warnings.push({ type: 'unsupported', feature: 'tools' });\n }\n\n if (toolChoice != null) {\n warnings.push({ type: 'unsupported', feature: 'toolChoice' });\n }\n\n if (responseFormat != null && responseFormat.type !== 'text') {\n warnings.push({\n type: 'unsupported',\n feature: '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<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: SharedV3ProviderMetadata = { 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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: LanguageModelV3FinishReason = 'unknown';\n const providerMetadata: SharedV3ProviderMetadata = { openai: {} };\n const usage: LanguageModelV3Usage = {\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 LanguageModelV3StreamPart\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 InvalidPromptError,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\n\nexport function convertToOpenAICompletionPrompt({\n prompt,\n user = 'user',\n assistant = 'assistant',\n}: {\n prompt: LanguageModelV3Prompt;\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiCompletionChunkSchema\n>;\n\nexport type OpenAICompletionResponse = InferSchema<\n typeof openaiCompletionResponseSchema\n>;\n","import { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiCompletionProviderOptions\n>;\n","import {\n EmbeddingModelV3,\n TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport {\n OpenAIEmbeddingModelId,\n openaiEmbeddingProviderOptions,\n} from './openai-embedding-options';\nimport { openaiTextEmbeddingResponseSchema } from './openai-embedding-api';\n\nexport class OpenAIEmbeddingModel implements EmbeddingModelV3 {\n readonly specificationVersion = 'v3';\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<EmbeddingModelV3['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV3['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 warnings: [],\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiEmbeddingProviderOptions\n>;\n","import { lazySchema, 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 = lazySchema(() =>\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 { ImageModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiImageResponseSchema } from './openai-image-api';\nimport {\n OpenAIImageModelId,\n hasDefaultResponseFormat,\n modelMaxImagesPerCall,\n} from './openai-image-options';\n\ninterface OpenAIImageModelConfig extends OpenAIConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class OpenAIImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\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<ImageModelV3['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: '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', feature: 'seed' });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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 ...(providerOptions.openai ?? {}),\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 usage:\n response.usage != null\n ? {\n inputTokens: response.usage.input_tokens ?? undefined,\n outputTokens: response.usage.output_tokens ?? undefined,\n totalTokens: response.usage.total_tokens ?? undefined,\n }\n : undefined,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n openai: {\n images: response.data.map(item => ({\n ...(item.revised_prompt\n ? { revisedPrompt: item.revised_prompt }\n : {}),\n created: response.created ?? undefined,\n size: response.size ?? undefined,\n quality: response.quality ?? undefined,\n background: response.background ?? undefined,\n outputFormat: response.output_format ?? undefined,\n })),\n },\n },\n };\n }\n}\n","import { lazySchema, 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 = lazySchema(() =>\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","export type OpenAIImageModelId =\n | 'dall-e-3'\n | 'dall-e-2'\n | 'gpt-image-1'\n | 'gpt-image-1-mini'\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};\n\nexport const hasDefaultResponseFormat = new Set([\n 'gpt-image-1',\n 'gpt-image-1-mini',\n]);\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * Schema for the apply_patch input - what the model sends.\n *\n * Refer the official spec here: https://platform.openai.com/docs/api-reference/responses/create#responses_create-input-input_item_list-item-apply_patch_tool_call\n *\n */\nexport const applyPatchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n callId: z.string(),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n ),\n);\n\n/**\n * Schema for the apply_patch output - what we send back.\n */\nexport const applyPatchOutputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n status: z.enum(['completed', 'failed']),\n output: z.string().optional(),\n }),\n ),\n);\n\n/**\n * Schema for tool arguments (configuration options).\n * The apply_patch tool doesn't require any configuration options.\n */\nexport const applyPatchArgsSchema = lazySchema(() => zodSchema(z.object({})));\n\n/**\n * Type definitions for the apply_patch operations.\n */\nexport type ApplyPatchOperation =\n | {\n type: 'create_file';\n /**\n * Path of the file to create relative to the workspace root.\n */\n path: string;\n /**\n * Unified diff content to apply when creating the file.\n */\n diff: string;\n }\n | {\n type: 'delete_file';\n /**\n * Path of the file to delete relative to the workspace root.\n */\n path: string;\n }\n | {\n type: 'update_file';\n /**\n * Path of the file to update relative to the workspace root.\n */\n path: string;\n /**\n * Unified diff content to apply to the existing file.\n */\n diff: string;\n };\n\n/**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n *\n * The tool factory creates a provider-defined tool that:\n * - Receives patch operations from the model (create_file, update_file, delete_file)\n * - Returns the status of applying those patches (completed or failed)\n *\n */\nexport const applyPatchToolFactory = createProviderToolFactoryWithOutputSchema<\n {\n /**\n * The unique ID of the apply patch tool call generated by the model.\n */\n callId: string;\n\n /**\n * The specific create, delete, or update instruction for the apply_patch tool call.\n */\n operation: ApplyPatchOperation;\n },\n {\n /**\n * The status of the apply patch tool call output.\n * - 'completed': The patch was applied successfully.\n * - 'failed': The patch failed to apply.\n */\n status: 'completed' | 'failed';\n\n /**\n * Optional human-readable log text from the apply patch tool\n * (e.g., patch results or errors).\n */\n output?: string;\n },\n // No configuration options for apply_patch\n {}\n>({\n id: 'openai.apply_patch',\n inputSchema: applyPatchInputSchema,\n outputSchema: applyPatchOutputSchema,\n});\n\n/**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n */\nexport const applyPatch = applyPatchToolFactory;\n","import {\n createProviderToolFactoryWithOutputSchema,\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 createProviderToolFactoryWithOutputSchema<\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 inputSchema: codeInterpreterInputSchema,\n outputSchema: codeInterpreterOutputSchema,\n });\n\nexport const codeInterpreter = (\n args: CodeInterpreterArgs = {}, // default\n) => {\n return codeInterpreterToolFactory(args);\n};\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\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']),\n value: z.union([z.string(), z.number(), z.boolean()]),\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 = createProviderToolFactoryWithOutputSchema<\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 inputSchema: z.object({}),\n outputSchema: fileSearchOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\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 * Number of partial images to generate in streaming mode, from 0 (default value) to 3.\n */\n partialImages?: number;\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 = createProviderToolFactoryWithOutputSchema<\n {},\n {\n /**\n * The generated image encoded in base64.\n */\n result: string;\n },\n ImageGenerationArgs\n>({\n id: 'openai.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 createProviderToolFactoryWithOutputSchema,\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 = createProviderToolFactoryWithOutputSchema<\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 inputSchema: localShellInputSchema,\n outputSchema: localShellOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const shellInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n action: z.object({\n commands: z.array(z.string()),\n timeoutMs: z.number().optional(),\n maxOutputLength: z.number().optional(),\n }),\n }),\n ),\n);\n\nexport const shellOutputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n output: z.array(\n z.object({\n stdout: z.string(),\n stderr: z.string(),\n outcome: z.discriminatedUnion('type', [\n z.object({ type: z.literal('timeout') }),\n z.object({ type: z.literal('exit'), exitCode: z.number() }),\n ]),\n }),\n ),\n }),\n ),\n);\n\nexport const shell = createProviderToolFactoryWithOutputSchema<\n {\n /**\n * Shell tool action containing commands to execute.\n */\n action: {\n /**\n * A list of shell commands to execute.\n */\n commands: string[];\n\n /**\n * Optional timeout in milliseconds for the commands.\n */\n timeoutMs?: number;\n\n /**\n * Optional maximum number of characters to return from each command.\n */\n maxOutputLength?: number;\n };\n },\n {\n /**\n * An array of shell call output contents.\n */\n output: Array<{\n /**\n * Standard output from the command.\n */\n stdout: string;\n\n /**\n * Standard error from the command.\n */\n stderr: string;\n\n /**\n * The outcome of the shell execution - either timeout or exit with code.\n */\n outcome: { type: 'timeout' } | { type: 'exit'; exitCode: number };\n }>;\n },\n {}\n>({\n id: 'openai.shell',\n inputSchema: shellInputSchema,\n outputSchema: shellOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\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.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('find'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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 = createProviderToolFactoryWithOutputSchema<\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, find).\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 \"find\": Searches for a pattern within a loaded page.\n */\n type: 'find';\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 inputSchema: webSearchInputSchema,\n outputSchema: webSearchOutputSchema,\n});\n\nexport const webSearch = (\n args: Parameters<typeof webSearchToolFactory>[0] = {}, // default\n) => webSearchToolFactory(args);\n","import {\n createProviderToolFactoryWithOutputSchema,\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.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('find'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\n }),\n ),\n);\n\nexport const webSearchPreview = createProviderToolFactoryWithOutputSchema<\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, find).\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 \"find\": Searches for a pattern within a loaded page.\n */\n type: 'find';\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 /**\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 inputSchema: webSearchPreviewInputSchema,\n outputSchema: webSearchPreviewOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { JSONValue } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nconst jsonValueSchema: z.ZodType<JSONValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\n\nexport const mcpArgsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n serverLabel: z.string(),\n allowedTools: z\n .union([\n z.array(z.string()),\n z.object({\n readOnly: z.boolean().optional(),\n toolNames: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n authorization: z.string().optional(),\n connectorId: z.string().optional(),\n headers: z.record(z.string(), z.string()).optional(),\n\n // TODO: Integrate this MCP tool approval with our SDK's existing tool approval architecture\n // requireApproval: z\n // .union([\n // z.enum(['always', 'never']),\n // z.object({\n // readOnly: z.boolean().optional(),\n // toolNames: z.array(z.string()).optional(),\n // }),\n // ])\n // .optional(),\n serverDescription: z.string().optional(),\n serverUrl: z.string().optional(),\n })\n .refine(\n v => v.serverUrl != null || v.connectorId != null,\n 'One of serverUrl or connectorId must be provided.',\n ),\n ),\n);\n\nconst mcpInputSchema = lazySchema(() => zodSchema(z.object({})));\n\nexport const mcpOutputSchema = lazySchema(() =>\n zodSchema(\n z.discriminatedUnion('type', [\n z.object({\n type: z.literal('call'),\n serverLabel: z.string(),\n name: z.string(),\n arguments: z.string(),\n output: z.string().nullable().optional(),\n error: z.union([z.string(), jsonValueSchema]).optional(),\n }),\n z.object({\n type: z.literal('listTools'),\n serverLabel: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: jsonValueSchema,\n annotations: z.record(z.string(), jsonValueSchema).optional(),\n }),\n ),\n error: z.union([z.string(), jsonValueSchema]).optional(),\n }),\n z.object({\n type: z.literal('approvalRequest'),\n serverLabel: z.string(),\n name: z.string(),\n arguments: z.string(),\n approvalRequestId: z.string(),\n }),\n ]),\n ),\n);\n\ntype McpArgs = {\n /** A label for this MCP server, used to identify it in tool calls. */\n serverLabel: string;\n /** List of allowed tool names or a filter object. */\n allowedTools?:\n | string[]\n | {\n readOnly?: boolean;\n toolNames?: string[];\n };\n /** OAuth access token usable with the remote MCP server or connector. */\n authorization?: string;\n /** Identifier for a service connector. */\n connectorId?: string;\n /** Optional HTTP headers to send to the MCP server. */\n headers?: Record<string, string>;\n // /** Which tools require approval: 'always' | 'never' | filter object. */\n // requireApproval?:\n // | 'always'\n // | 'never'\n // | {\n // readOnly?: boolean;\n // toolNames?: string[];\n // };\n /** Optional description of the MCP server. */\n serverDescription?: string;\n /** URL for the MCP server. One of serverUrl or connectorId must be provided. */\n serverUrl?: string;\n};\n\nexport const mcpToolFactory = createProviderToolFactoryWithOutputSchema<\n {},\n | {\n type: 'call';\n serverLabel: string;\n name: string;\n arguments: string;\n output?: string | null;\n error?: JSONValue;\n }\n | {\n type: 'listTools';\n serverLabel: string;\n tools: Array<{\n name: string;\n description?: string;\n inputSchema: unknown;\n annotations?: unknown;\n }>;\n error?: JSONValue;\n }\n | {\n type: 'approvalRequest';\n serverLabel: string;\n name: string;\n arguments: string;\n approvalRequestId: string;\n },\n McpArgs\n>({\n id: 'openai.mcp',\n inputSchema: mcpInputSchema,\n outputSchema: mcpOutputSchema,\n});\n\nexport const mcp = (args: McpArgs) => mcpToolFactory(args);\n","import { applyPatch } from './tool/apply-patch';\nimport { codeInterpreter } from './tool/code-interpreter';\nimport { fileSearch } from './tool/file-search';\nimport { imageGeneration } from './tool/image-generation';\nimport { localShell } from './tool/local-shell';\nimport { shell } from './tool/shell';\nimport { webSearch } from './tool/web-search';\nimport { webSearchPreview } from './tool/web-search-preview';\nimport { mcp } from './tool/mcp';\n\nexport const openaiTools = {\n /**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n *\n */\n applyPatch,\n\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 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 * @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 * @param background - Background type for the generated image. One of 'auto', 'opaque', or 'transparent'.\n * @param inputFidelity - Input fidelity for the generated image. One of 'low' or 'high'.\n * @param inputImageMask - Optional mask for inpainting. Contains fileId and/or imageUrl.\n * @param model - The image generation model to use. Default: gpt-image-1.\n * @param moderation - Moderation level for the generated image. Default: 'auto'.\n * @param outputCompression - Compression level for the output image (0-100).\n * @param outputFormat - The output format of the generated image. One of 'png', 'jpeg', or 'webp'.\n * @param partialImages - Number of partial images to generate in streaming mode (0-3).\n * @param quality - The quality of the generated image. One of 'auto', 'low', 'medium', or 'high'.\n * @param size - The size of the generated image. One of 'auto', '1024x1024', '1024x1536', or '1536x1024'.\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 localShell,\n\n /**\n * The shell tool allows the model to interact with your local computer through\n * a controlled command-line interface. The model proposes shell commands; your\n * integration executes them and returns the outputs.\n *\n * Available through the Responses API for use with GPT-5.1.\n *\n * WARNING: Running arbitrary shell commands can be dangerous. Always sandbox\n * execution or add strict allow-/deny-lists before forwarding a command to\n * the system shell.\n */\n shell,\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 * @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 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 * @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 /**\n * MCP (Model Context Protocol) allows models to call tools exposed by\n * remote MCP servers or service connectors.\n *\n * @param serverLabel - Label to identify the MCP server.\n * @param allowedTools - Allowed tool names or filter object.\n * @param authorization - OAuth access token for the MCP server/connector.\n * @param connectorId - Identifier for a service connector.\n * @param headers - Optional headers to include in MCP requests.\n * // param requireApproval - Approval policy ('always'|'never'|filter object). (Removed - always 'never')\n * @param serverDescription - Optional description of the server.\n * @param serverUrl - URL for the MCP server.\n */\n mcp,\n};\n","import {\n APICallError,\n LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3ProviderTool,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n JSONValue,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n createToolNameMapping,\n generateId,\n InferSchema,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { applyPatchInputSchema } from '../tool/apply-patch';\nimport {\n codeInterpreterInputSchema,\n codeInterpreterOutputSchema,\n} from '../tool/code-interpreter';\nimport { fileSearchOutputSchema } from '../tool/file-search';\nimport { imageGenerationOutputSchema } from '../tool/image-generation';\nimport { localShellInputSchema } from '../tool/local-shell';\nimport { shellInputSchema } from '../tool/shell';\nimport { webSearchOutputSchema } from '../tool/web-search';\nimport { mcpOutputSchema } from '../tool/mcp';\nimport { convertToOpenAIResponsesInput } from './convert-to-openai-responses-input';\nimport { mapOpenAIResponseFinishReason } from './map-openai-responses-finish-reason';\nimport {\n OpenAIResponsesChunk,\n openaiResponsesChunkSchema,\n OpenAIResponsesIncludeOptions,\n OpenAIResponsesIncludeValue,\n OpenAIResponsesLogprobs,\n openaiResponsesResponseSchema,\n OpenAIResponsesWebSearchAction,\n} from './openai-responses-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n if (topK != null) {\n warnings.push({ type: 'unsupported', feature: 'topK' });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (presencePenalty != null) {\n warnings.push({ type: 'unsupported', feature: 'presencePenalty' });\n }\n\n if (frequencyPenalty != null) {\n warnings.push({ type: 'unsupported', feature: 'frequencyPenalty' });\n }\n\n if (stopSequences != null) {\n warnings.push({ type: 'unsupported', feature: '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',\n feature: 'conversation',\n details: 'conversation and previousResponseId cannot be used together',\n });\n }\n\n const toolNameMapping = createToolNameMapping({\n tools,\n providerToolNames: {\n 'openai.code_interpreter': 'code_interpreter',\n 'openai.file_search': 'file_search',\n 'openai.image_generation': 'image_generation',\n 'openai.local_shell': 'local_shell',\n 'openai.shell': 'shell',\n 'openai.web_search': 'web_search',\n 'openai.web_search_preview': 'web_search_preview',\n 'openai.mcp': 'mcp',\n 'openai.apply_patch': 'apply_patch',\n },\n });\n\n const { input, warnings: inputWarnings } =\n await convertToOpenAIResponsesInput({\n prompt,\n toolNameMapping,\n systemMessageMode: modelCapabilities.systemMessageMode,\n fileIdPrefixes: this.config.fileIdPrefixes,\n store: openaiOptions?.store ?? true,\n hasLocalShellTool: hasOpenAITool('openai.local_shell'),\n hasShellTool: hasOpenAITool('openai.shell'),\n hasApplyPatchTool: hasOpenAITool('openai.apply_patch'),\n });\n\n warnings.push(...inputWarnings);\n\n const strictJsonSchema = openaiOptions?.strictJsonSchema ?? true;\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(tool => tool.type === 'provider' && tool.id === id) != 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' &&\n (tool.id === 'openai.web_search' ||\n tool.id === 'openai.web_search_preview'),\n ) as LanguageModelV3ProviderTool | 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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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 });\n\n return {\n webSearchToolName,\n args: {\n ...baseArgs,\n tools: openaiTools,\n tool_choice: openaiToolChoice,\n },\n warnings: [...warnings, ...toolWarnings],\n store,\n toolNameMapping,\n };\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n toolNameMapping,\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<LanguageModelV3Content> = [];\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: toolNameMapping.toCustomToolName('image_generation'),\n input: '{}',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: part.result,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\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: toolNameMapping.toCustomToolName('local_shell'),\n input: JSON.stringify({\n action: part.action,\n } satisfies InferSchema<typeof localShellInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: part.id,\n },\n },\n });\n\n break;\n }\n\n case 'shell_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.call_id,\n toolName: toolNameMapping.toCustomToolName('shell'),\n input: JSON.stringify({\n action: {\n commands: part.action.commands,\n },\n } satisfies InferSchema<typeof shellInputSchema>),\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 const providerMetadata: SharedV3ProviderMetadata[string] = {\n itemId: part.id,\n ...(contentPart.annotations.length > 0 && {\n annotations: contentPart.annotations,\n }),\n };\n\n content.push({\n type: 'text',\n text: contentPart.text,\n providerMetadata: {\n [providerKey]: providerMetadata,\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n result: mapWebSearchOutput(part.action),\n });\n\n break;\n }\n\n case 'mcp_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'call',\n serverLabel: part.server_label,\n name: part.name,\n arguments: part.arguments,\n ...(part.output != null ? { output: part.output } : {}),\n ...(part.error != null\n ? { error: part.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'mcp_list_tools': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'listTools',\n serverLabel: part.server_label,\n tools: part.tools.map(t => ({\n name: t.name,\n description: t.description ?? undefined,\n inputSchema: t.input_schema,\n annotations:\n (t.annotations as Record<string, JSONValue> | undefined) ??\n undefined,\n })),\n ...(part.error != null\n ? { error: part.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'mcp_approval_request': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'approvalRequest',\n serverLabel: part.server_label,\n name: part.name,\n arguments: part.arguments,\n approvalRequestId: part.approval_request_id,\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'computer_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n input: '',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n result: {\n type: 'computer_use_tool_result',\n status: part.status || 'completed',\n },\n });\n break;\n }\n\n case 'file_search_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('file_search'),\n input: '{}',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('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 InferSchema<typeof fileSearchOutputSchema>,\n });\n break;\n }\n\n case 'code_interpreter_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('code_interpreter'),\n input: JSON.stringify({\n code: part.code,\n containerId: part.container_id,\n } satisfies InferSchema<typeof codeInterpreterInputSchema>),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('code_interpreter'),\n result: {\n outputs: part.outputs,\n } satisfies InferSchema<typeof codeInterpreterOutputSchema>,\n });\n break;\n }\n\n case 'apply_patch_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: part.call_id,\n operation: part.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: part.id,\n },\n },\n });\n\n break;\n }\n }\n }\n\n const providerMetadata: SharedV3ProviderMetadata = {\n [providerKey]: { responseId: response.id },\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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n toolNameMapping,\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: LanguageModelV3FinishReason = 'unknown';\n const usage: LanguageModelV3Usage = {\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 // 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 LanguageModelV3StreamPart\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n toolCallId: value.item.id,\n };\n\n controller.enqueue({\n type: 'tool-input-start',\n id: value.item.id,\n toolName: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n } else if (value.item.type === 'computer_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n toolCallId: value.item.id,\n };\n\n controller.enqueue({\n type: 'tool-input-start',\n id: value.item.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n providerExecuted: true,\n });\n } else if (value.item.type === 'code_interpreter_call') {\n ongoingToolCalls[value.output_index] = {\n toolName:\n toolNameMapping.toCustomToolName('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:\n toolNameMapping.toCustomToolName('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: toolNameMapping.toCustomToolName('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:\n toolNameMapping.toCustomToolName('image_generation'),\n input: '{}',\n providerExecuted: true,\n });\n } else if (\n value.item.type === 'mcp_call' ||\n value.item.type === 'mcp_list_tools' ||\n value.item.type === 'mcp_approval_request'\n ) {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: '{}',\n providerExecuted: true,\n });\n } else if (value.item.type === 'apply_patch_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n toolCallId: value.item.call_id,\n };\n\n // TODO: look into partial diff streaming from the model\n // Only emit tool-call when status is 'completed' to ensure we have the complete diff\n if (value.item.status === 'completed') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: value.item.call_id,\n operation: value.item.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\n },\n },\n });\n }\n } else if (value.item.type === 'shell_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('shell'),\n toolCallId: value.item.call_id,\n };\n } else if (value.item.type === 'message') {\n ongoingAnnotations.splice(0, ongoingAnnotations.length);\n controller.enqueue({\n type: 'text-start',\n id: value.item.id,\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\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 controller.enqueue({\n type: 'text-end',\n id: value.item.id,\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n result: mapWebSearchOutput(value.item.action),\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: toolNameMapping.toCustomToolName('computer_use'),\n input: '',\n providerExecuted: true,\n });\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n result: {\n type: 'computer_use_tool_result',\n status: value.item.status || 'completed',\n },\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: toolNameMapping.toCustomToolName('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 InferSchema<typeof fileSearchOutputSchema>,\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:\n toolNameMapping.toCustomToolName('code_interpreter'),\n result: {\n outputs: value.item.outputs,\n } satisfies InferSchema<typeof codeInterpreterOutputSchema>,\n });\n } else if (value.item.type === 'image_generation_call') {\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName:\n toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: value.item.result,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\n });\n } else if (value.item.type === 'mcp_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'call',\n serverLabel: value.item.server_label,\n name: value.item.name,\n arguments: value.item.arguments,\n ...(value.item.output != null\n ? { output: value.item.output }\n : {}),\n ...(value.item.error != null\n ? { error: value.item.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n } else if (value.item.type === 'mcp_list_tools') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'listTools',\n serverLabel: value.item.server_label,\n tools: value.item.tools.map(t => ({\n name: t.name,\n description: t.description ?? undefined,\n inputSchema: t.input_schema,\n annotations:\n (t.annotations as\n | Record<string, JSONValue>\n | undefined) ?? undefined,\n })),\n ...(value.item.error != null\n ? { error: value.item.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n } else if (value.item.type === 'apply_patch_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n // Emit the final tool-call with complete diff when status is 'completed'\n if (value.item.status === 'completed') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: value.item.call_id,\n operation: value.item.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\n },\n },\n });\n }\n } else if (value.item.type === 'mcp_approval_request') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'approvalRequest',\n serverLabel: value.item.server_label,\n name: value.item.name,\n arguments: value.item.arguments,\n approvalRequestId: value.item.approval_request_id,\n } satisfies InferSchema<typeof mcpOutputSchema>,\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: toolNameMapping.toCustomToolName('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 InferSchema<typeof localShellInputSchema>),\n providerMetadata: {\n [providerKey]: { itemId: value.item.id },\n },\n });\n } else if (value.item.type === 'shell_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('shell'),\n input: JSON.stringify({\n action: {\n commands: value.item.action.commands,\n },\n } satisfies InferSchema<typeof shellInputSchema>),\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 (isResponseImageGenerationCallPartialImageChunk(value)) {\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item_id,\n toolName: toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: value.partial_image_b64,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\n preliminary: true,\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:\n toolNameMapping.toCustomToolName('code_interpreter'),\n input: JSON.stringify({\n code: value.code,\n containerId: toolCall.codeInterpreter!.containerId,\n } satisfies InferSchema<typeof codeInterpreterInputSchema>),\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 } else if (value.annotation.type === 'container_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.filename ??\n value.annotation.file_id ??\n 'Document',\n filename:\n value.annotation.filename ?? value.annotation.file_id,\n providerMetadata: {\n [providerKey]: {\n fileId: value.annotation.file_id,\n containerId: value.annotation.container_id,\n ...(value.annotation.index != null\n ? { index: value.annotation.index }\n : {}),\n },\n },\n });\n } else if (value.annotation.type === 'file_path') {\n controller.enqueue({\n type: 'source',\n sourceType: 'document',\n id: self.config.generateId?.() ?? generateId(),\n mediaType: 'application/octet-stream',\n title: value.annotation.file_id,\n filename: value.annotation.file_id,\n providerMetadata: {\n [providerKey]: {\n fileId: value.annotation.file_id,\n ...(value.annotation.index != null\n ? { index: value.annotation.index }\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: SharedV3ProviderMetadata = {\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}\nfunction isResponseImageGenerationCallPartialImageChunk(\n chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n type: 'response.image_generation_call.partial_image';\n} {\n return chunk.type === 'response.image_generation_call.partial_image';\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,\n): InferSchema<typeof webSearchOutputSchema> {\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':\n return {\n action: { type: 'find', url: action.url, pattern: action.pattern },\n };\n }\n}\n","import {\n LanguageModelV3Prompt,\n LanguageModelV3ToolCallPart,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport {\n convertToBase64,\n isNonNullable,\n parseProviderOptions,\n ToolNameMapping,\n validateTypes,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { applyPatchOutputSchema } from '../tool/apply-patch';\nimport {\n localShellInputSchema,\n localShellOutputSchema,\n} from '../tool/local-shell';\nimport { shellInputSchema, shellOutputSchema } from '../tool/shell';\nimport {\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 toolNameMapping,\n systemMessageMode,\n fileIdPrefixes,\n store,\n hasLocalShellTool = false,\n hasShellTool = false,\n hasApplyPatchTool = false,\n}: {\n prompt: LanguageModelV3Prompt;\n toolNameMapping: ToolNameMapping;\n systemMessageMode: 'system' | 'developer' | 'remove';\n fileIdPrefixes?: readonly string[];\n store: boolean;\n hasLocalShellTool?: boolean;\n hasShellTool?: boolean;\n hasApplyPatchTool?: boolean;\n}): Promise<{\n input: OpenAIResponsesInput;\n warnings: Array<SharedV3Warning>;\n}> {\n const input: OpenAIResponsesInput = [];\n const warnings: Array<SharedV3Warning> = [];\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\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\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 });\n\n break;\n }\n case 'tool-call': {\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 const resolvedToolName = toolNameMapping.toProviderToolName(\n part.toolName,\n );\n\n if (hasLocalShellTool && resolvedToolName === '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 if (hasShellTool && resolvedToolName === 'shell') {\n const parsedInput = await validateTypes({\n value: part.input,\n schema: shellInputSchema,\n });\n input.push({\n type: 'shell_call',\n call_id: part.toolCallId,\n id: id!,\n status: 'completed',\n action: {\n commands: parsedInput.action.commands,\n timeout_ms: parsedInput.action.timeoutMs,\n max_output_length: parsedInput.action.maxOutputLength,\n },\n });\n\n break;\n }\n\n input.push({\n type: 'function_call',\n call_id: part.toolCallId,\n name: resolvedToolName,\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 const resolvedToolName = toolNameMapping.toProviderToolName(\n part.toolName,\n );\n\n if (\n hasLocalShellTool &&\n resolvedToolName === '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 if (\n hasShellTool &&\n resolvedToolName === 'shell' &&\n output.type === 'json'\n ) {\n const parsedOutput = await validateTypes({\n value: output.value,\n schema: shellOutputSchema,\n });\n\n input.push({\n type: 'shell_call_output',\n call_id: part.toolCallId,\n output: parsedOutput.output.map(item => ({\n stdout: item.stdout,\n stderr: item.stderr,\n outcome:\n item.outcome.type === 'timeout'\n ? { type: 'timeout' as const }\n : {\n type: 'exit' as const,\n exit_code: item.outcome.exitCode,\n },\n })),\n });\n break;\n }\n\n if (\n hasApplyPatchTool &&\n part.toolName === 'apply_patch' &&\n output.type === 'json'\n ) {\n const parsedOutput = await validateTypes({\n value: output.value,\n schema: applyPatchOutputSchema,\n });\n\n input.push({\n type: 'apply_patch_call_output',\n call_id: part.toolCallId,\n status: parsedOutput.status,\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 'execution-denied':\n contentValue = output.reason ?? 'Tool execution denied.';\n break;\n case 'json':\n case 'error-json':\n contentValue = JSON.stringify(output.value);\n break;\n case 'content':\n contentValue = output.value\n .map(item => {\n switch (item.type) {\n case 'text': {\n return { type: 'input_text' as const, text: item.text };\n }\n\n case 'image-data': {\n return {\n type: 'input_image' as const,\n image_url: `data:${item.mediaType};base64,${item.data}`,\n };\n }\n\n case 'file-data': {\n return {\n type: 'input_file' as const,\n filename: item.filename ?? 'data',\n file_data: `data:${item.mediaType};base64,${item.data}`,\n };\n }\n\n default: {\n warnings.push({\n type: 'other',\n message: `unsupported tool content part type: ${item.type}`,\n });\n return undefined;\n }\n }\n })\n .filter(isNonNullable);\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 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 { LanguageModelV3FinishReason } 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}): LanguageModelV3FinishReason {\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 { JSONSchema7 } from '@ai-sdk/provider';\nimport { InferSchema, lazySchema, zodSchema } 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 | OpenAIResponsesShellCall\n | OpenAIResponsesShellCallOutput\n | OpenAIResponsesApplyPatchCall\n | OpenAIResponsesApplyPatchCallOutput\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};\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\n/**\n * Official OpenAI API Specifications: https://platform.openai.com/docs/api-reference/responses/object#responses-object-output-shell_tool_call\n */\nexport type OpenAIResponsesShellCall = {\n type: 'shell_call';\n id: string;\n call_id: string;\n status: 'in_progress' | 'completed' | 'incomplete';\n action: {\n commands: string[];\n timeout_ms?: number;\n max_output_length?: number;\n };\n};\n\nexport type OpenAIResponsesShellCallOutput = {\n type: 'shell_call_output';\n call_id: string;\n max_output_length?: number;\n output: Array<{\n stdout: string;\n stderr: string;\n outcome: { type: 'timeout' } | { type: 'exit'; exit_code: number };\n }>;\n};\n\nexport type OpenAIResponsesApplyPatchCall = {\n type: 'apply_patch_call';\n id?: string;\n call_id: string;\n status: 'in_progress' | 'completed';\n operation:\n | {\n type: 'create_file';\n path: string;\n diff: string;\n }\n | {\n type: 'delete_file';\n path: string;\n }\n | {\n type: 'update_file';\n path: string;\n diff: string;\n };\n};\n\nexport type OpenAIResponsesApplyPatchCallOutput = {\n type: 'apply_patch_call_output';\n call_id: string;\n status: 'completed' | 'failed';\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.\n */\n type: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte';\n\n /**\n * The value to compare against the attribute key; supports string, number, or boolean types.\n */\n value: string | number | boolean;\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;\n }\n | {\n type: 'apply_patch';\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 partial_images: number | undefined;\n quality: 'auto' | 'low' | 'medium' | 'high' | undefined;\n size: 'auto' | '1024x1024' | '1024x1536' | '1536x1024' | undefined;\n }\n\n /**\n * Official OpenAI API Specifications: https://platform.openai.com/docs/api-reference/responses/create#responses_create-tools-mcp_tool\n */\n | {\n type: 'mcp';\n server_label: string;\n allowed_tools:\n | string[]\n | {\n read_only?: boolean;\n tool_names?: string[];\n }\n | undefined;\n authorization: string | undefined;\n connector_id: string | undefined;\n headers: Record<string, string> | undefined;\n require_approval:\n | 'always'\n | 'never'\n | {\n read_only?: boolean;\n tool_names?: string[];\n }\n | undefined;\n server_description: string | undefined;\n server_url: string | undefined;\n }\n | {\n type: 'local_shell';\n }\n | {\n type: '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 = lazySchema(() =>\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 }),\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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\n }),\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 }),\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.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'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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('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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n arguments: z.string(),\n name: z.string(),\n server_label: z.string(),\n output: z.string().nullish(),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .nullish(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n server_label: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n input_schema: z.any(),\n annotations: z.record(z.string(), z.unknown()).optional(),\n }),\n ),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .optional(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n server_label: z.string(),\n name: z.string(),\n arguments: z.string(),\n approval_request_id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\n }),\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 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 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 = InferSchema<\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 = lazySchema(() =>\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 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.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'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n arguments: z.string(),\n name: z.string(),\n server_label: z.string(),\n output: z.string().nullish(),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .nullish(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n server_label: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n input_schema: z.any(),\n annotations: z.record(z.string(), z.unknown()).optional(),\n }),\n ),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .optional(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n server_label: z.string(),\n name: z.string(),\n arguments: z.string(),\n approval_request_id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\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 { InferSchema, lazySchema, zodSchema } 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] 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-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 = lazySchema(() =>\n zodSchema(\n z.object({\n /**\n * The ID of the OpenAI Conversation to continue.\n * You must create a conversation first via the OpenAI API.\n * Cannot be used in conjunction with `previousResponseId`.\n * Defaults to `undefined`.\n * @see https://platform.openai.com/docs/api-reference/conversations/create\n */\n conversation: z.string().nullish(),\n\n /**\n * The set of extra fields to include in the response (advanced, usually not needed).\n * Example values: 'reasoning.encrypted_content', 'file_search_call.results', 'message.output_text.logprobs'.\n */\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\n /**\n * Instructions for the model.\n * They can be used to change the system or developer message when continuing a conversation using the `previousResponseId` option.\n * Defaults to `undefined`.\n */\n instructions: z.string().nullish(),\n\n /**\n * Return the log probabilities of the tokens. Including logprobs will increase\n * the response size and can slow down response times. However, it can\n * be useful to better understand how the model is behaving.\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 /**\n * Additional metadata to store with the generation.\n */\n metadata: z.any().nullish(),\n\n /**\n * Whether to use parallel tool calls. Defaults to `true`.\n */\n parallelToolCalls: z.boolean().nullish(),\n\n /**\n * The ID of the previous response. You can use it to continue a conversation.\n * Defaults to `undefined`.\n */\n previousResponseId: z.string().nullish(),\n\n /**\n * Sets a cache key to tie this prompt to cached prefixes for better caching performance.\n */\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'\n *\n * Note: The 'none' type for `reasoningEffort` is only available for OpenAI's GPT-5.1\n * models. Setting `reasoningEffort` to 'none' with other models will result in\n * an error.\n */\n reasoningEffort: z.string().nullish(),\n\n /**\n * Controls reasoning summary output from the model.\n * Set to \"auto\" to automatically receive the richest level available,\n * or \"detailed\" for comprehensive summaries.\n */\n reasoningSummary: z.string().nullish(),\n\n /**\n * The identifier for safety monitoring and tracking.\n */\n safetyIdentifier: z.string().nullish(),\n\n /**\n * Service tier for the request.\n * Set to 'flex' for 50% cheaper processing at the cost of increased latency (available for o3, o4-mini, and gpt-5 models).\n * Set to 'priority' for faster processing with Enterprise access (available for gpt-4, gpt-5, gpt-5-mini, o3, o4-mini; gpt-5-nano is not supported).\n *\n * Defaults to 'auto'.\n */\n serviceTier: z.enum(['auto', 'flex', 'priority', 'default']).nullish(),\n\n /**\n * Whether to store the generation. Defaults to `true`.\n */\n store: z.boolean().nullish(),\n\n /**\n * Whether to use strict JSON schema validation.\n * Defaults to `true`.\n */\n strictJsonSchema: z.boolean().nullish(),\n\n /**\n * Controls the verbosity of the model's responses. Lower values ('low') will result\n * in more concise responses, while higher values ('high') will result in more verbose responses.\n * Valid values: 'low', 'medium', 'high'.\n */\n textVerbosity: z.enum(['low', 'medium', 'high']).nullish(),\n\n /**\n * Controls output truncation. 'auto' (default) performs truncation automatically;\n * 'disabled' turns truncation off.\n */\n truncation: z.enum(['auto', 'disabled']).nullish(),\n\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse.\n * Defaults to `undefined`.\n * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids\n */\n user: z.string().nullish(),\n }),\n ),\n);\n\nexport type OpenAIResponsesProviderOptions = InferSchema<\n typeof openaiResponsesProviderOptionsSchema\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { validateTypes } from '@ai-sdk/provider-utils';\nimport { codeInterpreterArgsSchema } from '../tool/code-interpreter';\nimport { fileSearchArgsSchema } from '../tool/file-search';\nimport { imageGenerationArgsSchema } from '../tool/image-generation';\nimport { mcpArgsSchema } from '../tool/mcp';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { webSearchPreviewArgsSchema } from '../tool/web-search-preview';\nimport { OpenAIResponsesTool } from './openai-responses-api';\n\nexport async function prepareResponsesTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV3CallOptions['tools'];\n toolChoice: LanguageModelV3CallOptions['toolChoice'] | undefined;\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: 'mcp' }\n | { type: 'image_generation' }\n | { type: 'apply_patch' };\n toolWarnings: SharedV3Warning[];\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: SharedV3Warning[] = [];\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 ...(tool.strict != null ? { strict: tool.strict } : {}),\n });\n break;\n case 'provider': {\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.shell': {\n openaiTools.push({\n type: 'shell',\n });\n break;\n }\n case 'openai.apply_patch': {\n openaiTools.push({\n type: 'apply_patch',\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 moderation: args.moderation,\n partial_images: args.partialImages,\n quality: args.quality,\n output_compression: args.outputCompression,\n output_format: args.outputFormat,\n size: args.size,\n });\n break;\n }\n case 'openai.mcp': {\n const args = await validateTypes({\n value: tool.args,\n schema: mcpArgsSchema,\n });\n\n openaiTools.push({\n type: 'mcp',\n server_label: args.serverLabel,\n allowed_tools: Array.isArray(args.allowedTools)\n ? args.allowedTools\n : args.allowedTools\n ? {\n read_only: args.allowedTools.readOnly,\n tool_names: args.allowedTools.toolNames,\n }\n : undefined,\n authorization: args.authorization,\n connector_id: args.connectorId,\n headers: args.headers,\n require_approval: 'never',\n server_description: args.serverDescription,\n server_url: args.serverUrl,\n });\n\n break;\n }\n }\n break;\n }\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `function tool ${tool}`,\n });\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 toolChoice.toolName === 'mcp' ||\n toolChoice.toolName === 'apply_patch'\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 { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { OpenAISpeechAPITypes } from './openai-speech-api';\nimport {\n openaiSpeechProviderOptionsSchema,\n OpenAISpeechModelId,\n} from './openai-speech-options';\n\ninterface OpenAISpeechModelConfig extends OpenAIConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class OpenAISpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\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<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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',\n feature: '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',\n feature: '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<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiSpeechProviderOptionsSchema\n>;\n","import {\n TranscriptionModelV3,\n TranscriptionModelV3CallOptions,\n SharedV3Warning,\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 { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiTranscriptionResponseSchema } from './openai-transcription-api';\nimport {\n OpenAITranscriptionModelId,\n openAITranscriptionProviderOptions,\n OpenAITranscriptionProviderOptions,\n} from './openai-transcription-options';\n\nexport type OpenAITranscriptionCallOptions = Omit<\n TranscriptionModelV3CallOptions,\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 TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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: SharedV3Warning[] = [];\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<TranscriptionModelV3['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 { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const openaiTranscriptionResponseSchema = lazySchema(() =>\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openAITranscriptionProviderOptions\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"],"mappings":"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","names":["_a","z","z","lazySchema","zodSchema","z","UnsupportedFunctionalityError","openaiTools","openaiTools","toolCall","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","parseProviderOptions","postJsonToApi","UnsupportedFunctionalityError","getResponseMetadata","mapOpenAIFinishReason","z","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","mapOpenAIFinishReason","getResponseMetadata","createEventSourceResponseHandler","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","combineHeaders","createJsonResponseHandler","postJsonToApi","lazySchema","zodSchema","z","postJsonToApi","combineHeaders","createJsonResponseHandler","_a","_b","_c","_d","_e","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","generateId","parseProviderOptions","postJsonToApi","UnsupportedFunctionalityError","convertToBase64","parseProviderOptions","z","_a","_b","_c","convertToBase64","UnsupportedFunctionalityError","parseProviderOptions","z","lazySchema","zodSchema","z","lazySchema","zodSchema","z","UnsupportedFunctionalityError","validateTypes","openaiTools","validateTypes","UnsupportedFunctionalityError","parseProviderOptions","openaiTools","postJsonToApi","combineHeaders","createJsonResponseHandler","providerMetadata","generateId","_a","_b","createEventSourceResponseHandler","combineHeaders","parseProviderOptions","postJsonToApi","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","combineHeaders","createJsonResponseHandler","parseProviderOptions","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","combineHeaders","createJsonResponseHandler"]}
|
|
1
|
+
{"version":3,"sources":["../src/openai-provider.ts","../src/chat/openai-chat-language-model.ts","../src/openai-error.ts","../src/openai-language-model-capabilities.ts","../src/chat/convert-to-openai-chat-messages.ts","../src/chat/get-response-metadata.ts","../src/chat/map-openai-finish-reason.ts","../src/chat/openai-chat-api.ts","../src/chat/openai-chat-options.ts","../src/chat/openai-chat-prepare-tools.ts","../src/completion/openai-completion-language-model.ts","../src/completion/convert-to-openai-completion-prompt.ts","../src/completion/get-response-metadata.ts","../src/completion/map-openai-finish-reason.ts","../src/completion/openai-completion-api.ts","../src/completion/openai-completion-options.ts","../src/embedding/openai-embedding-model.ts","../src/embedding/openai-embedding-options.ts","../src/embedding/openai-embedding-api.ts","../src/image/openai-image-model.ts","../src/image/openai-image-api.ts","../src/image/openai-image-options.ts","../src/tool/apply-patch.ts","../src/tool/code-interpreter.ts","../src/tool/file-search.ts","../src/tool/image-generation.ts","../src/tool/local-shell.ts","../src/tool/shell.ts","../src/tool/web-search.ts","../src/tool/web-search-preview.ts","../src/tool/mcp.ts","../src/openai-tools.ts","../src/responses/openai-responses-language-model.ts","../src/responses/convert-to-openai-responses-input.ts","../src/responses/map-openai-responses-finish-reason.ts","../src/responses/openai-responses-api.ts","../src/responses/openai-responses-options.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech/openai-speech-model.ts","../src/speech/openai-speech-options.ts","../src/transcription/openai-transcription-model.ts","../src/transcription/openai-transcription-api.ts","../src/transcription/openai-transcription-options.ts","../src/version.ts"],"sourcesContent":["import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV3,\n ProviderV3,\n SpeechModelV3,\n TranscriptionModelV3,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n loadOptionalSetting,\n withoutTrailingSlash,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIChatLanguageModel } from './chat/openai-chat-language-model';\nimport { OpenAIChatModelId } from './chat/openai-chat-options';\nimport { OpenAICompletionLanguageModel } from './completion/openai-completion-language-model';\nimport { OpenAICompletionModelId } from './completion/openai-completion-options';\nimport { OpenAIEmbeddingModel } from './embedding/openai-embedding-model';\nimport { OpenAIEmbeddingModelId } from './embedding/openai-embedding-options';\nimport { OpenAIImageModel } from './image/openai-image-model';\nimport { OpenAIImageModelId } from './image/openai-image-options';\nimport { openaiTools } from './openai-tools';\nimport { OpenAIResponsesLanguageModel } from './responses/openai-responses-language-model';\nimport { OpenAIResponsesModelId } from './responses/openai-responses-options';\nimport { OpenAISpeechModel } from './speech/openai-speech-model';\nimport { OpenAISpeechModelId } from './speech/openai-speech-options';\nimport { OpenAITranscriptionModel } from './transcription/openai-transcription-model';\nimport { OpenAITranscriptionModelId } from './transcription/openai-transcription-options';\nimport { VERSION } from './version';\n\nexport interface OpenAIProvider extends ProviderV3 {\n (modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI model for text generation.\n */\n languageModel(modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI chat model for text generation.\n */\n chat(modelId: OpenAIChatModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI responses API model for text generation.\n */\n responses(modelId: OpenAIResponsesModelId): LanguageModelV3;\n\n /**\nCreates an OpenAI completion model for text generation.\n */\n completion(modelId: OpenAICompletionModelId): LanguageModelV3;\n\n /**\nCreates a model for text embeddings.\n */\n embedding(modelId: OpenAIEmbeddingModelId): EmbeddingModelV3;\n\n /**\nCreates a model for text embeddings.\n */\n embeddingModel(modelId: OpenAIEmbeddingModelId): EmbeddingModelV3;\n\n /**\nCreates a model for image generation.\n */\n image(modelId: OpenAIImageModelId): ImageModelV3;\n\n /**\nCreates a model for image generation.\n */\n imageModel(modelId: OpenAIImageModelId): ImageModelV3;\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: OpenAITranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: OpenAISpeechModelId): SpeechModelV3;\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.specificationVersion = 'v3' as const;\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.responses = createResponsesModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = 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 {\n InvalidResponseDataError,\n LanguageModelV3,\n LanguageModelV3CallOptions,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n 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 OpenAIChatChunk,\n openaiChatChunkSchema,\n openaiChatResponseSchema,\n} from './openai-chat-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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 }: LanguageModelV3CallOptions) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const openaiOptions =\n (await parseProviderOptions({\n provider: 'openai',\n providerOptions,\n schema: openaiChatLanguageModelOptions,\n })) ?? {};\n\n const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n if (topK != null) {\n warnings.push({ type: 'unsupported', feature: 'topK' });\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 ?? true;\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 ? 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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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 });\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<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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<LanguageModelV3Content> = [];\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,\n title: annotation.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: SharedV3ProviderMetadata = { 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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: LanguageModelV3FinishReason = 'unknown';\n const usage: LanguageModelV3Usage = {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n let metadataExtracted = false;\n let isActiveText = false;\n\n const providerMetadata: SharedV3ProviderMetadata = { openai: {} };\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<OpenAIChatChunk>,\n LanguageModelV3StreamPart\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 (toolCallDelta.type !== 'function') {\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,\n title: annotation.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 { 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-mini') ||\n (modelId.startsWith('gpt-5') &&\n !modelId.startsWith('gpt-5-nano') &&\n !modelId.startsWith('gpt-5-chat')) ||\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 const supportsNonReasoningParameters = modelId.startsWith('gpt-5.1');\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 SharedV3Warning,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { OpenAIChatPrompt } from './openai-chat-prompt';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\n\nexport function convertToOpenAIChatMessages({\n prompt,\n systemMessageMode = 'system',\n}: {\n prompt: LanguageModelV3Prompt;\n systemMessageMode?: 'system' | 'developer' | 'remove';\n}): {\n messages: OpenAIChatPrompt;\n warnings: Array<SharedV3Warning>;\n} {\n const messages: OpenAIChatPrompt = [];\n const warnings: Array<SharedV3Warning> = [];\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 'execution-denied':\n contentValue = output.reason ?? 'Tool execution denied.';\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 { JSONSchema7 } from '@ai-sdk/provider';\nimport { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 start_index: z.number(),\n end_index: z.number(),\n url: z.string(),\n title: z.string(),\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 = lazySchema(() =>\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 start_index: z.number(),\n end_index: z.number(),\n url: z.string(),\n title: z.string(),\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 = InferSchema<typeof openaiChatResponseSchema>;\n\nexport type OpenAIChatChunk = InferSchema<typeof openaiChatChunkSchema>;\n","import { InferSchema, lazySchema, zodSchema } 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 | (string & {});\n\nexport const openaiChatLanguageModelOptions = lazySchema(() =>\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'])\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 * 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 true\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 = InferSchema<\n typeof openaiChatLanguageModelOptions\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport {\n OpenAIChatToolChoice,\n OpenAIChatFunctionTool,\n} from './openai-chat-api';\n\nexport function prepareChatTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV3CallOptions['tools'];\n toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): {\n tools?: OpenAIChatFunctionTool[];\n toolChoice?: OpenAIChatToolChoice;\n toolWarnings: Array<SharedV3Warning>;\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: SharedV3Warning[] = [];\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 ...(tool.strict != null ? { strict: tool.strict } : {}),\n },\n });\n break;\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `tool type: ${tool.type}`,\n });\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 LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n 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 OpenAICompletionChunk,\n openaiCompletionChunkSchema,\n openaiCompletionResponseSchema,\n} from './openai-completion-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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', feature: 'topK' });\n }\n\n if (tools?.length) {\n warnings.push({ type: 'unsupported', feature: 'tools' });\n }\n\n if (toolChoice != null) {\n warnings.push({ type: 'unsupported', feature: 'toolChoice' });\n }\n\n if (responseFormat != null && responseFormat.type !== 'text') {\n warnings.push({\n type: 'unsupported',\n feature: '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<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: SharedV3ProviderMetadata = { 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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['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: LanguageModelV3FinishReason = 'unknown';\n const providerMetadata: SharedV3ProviderMetadata = { openai: {} };\n const usage: LanguageModelV3Usage = {\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 LanguageModelV3StreamPart\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 InvalidPromptError,\n LanguageModelV3Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\n\nexport function convertToOpenAICompletionPrompt({\n prompt,\n user = 'user',\n assistant = 'assistant',\n}: {\n prompt: LanguageModelV3Prompt;\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 { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV3FinishReason {\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiCompletionChunkSchema\n>;\n\nexport type OpenAICompletionResponse = InferSchema<\n typeof openaiCompletionResponseSchema\n>;\n","import { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiCompletionProviderOptions\n>;\n","import {\n EmbeddingModelV3,\n TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport {\n OpenAIEmbeddingModelId,\n openaiEmbeddingProviderOptions,\n} from './openai-embedding-options';\nimport { openaiTextEmbeddingResponseSchema } from './openai-embedding-api';\n\nexport class OpenAIEmbeddingModel implements EmbeddingModelV3 {\n readonly specificationVersion = 'v3';\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<EmbeddingModelV3['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV3['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 warnings: [],\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiEmbeddingProviderOptions\n>;\n","import { lazySchema, 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 = lazySchema(() =>\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 { ImageModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiImageResponseSchema } from './openai-image-api';\nimport {\n OpenAIImageModelId,\n hasDefaultResponseFormat,\n modelMaxImagesPerCall,\n} from './openai-image-options';\n\ninterface OpenAIImageModelConfig extends OpenAIConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class OpenAIImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3';\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<ImageModelV3['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV3['doGenerate']>>\n > {\n const warnings: Array<SharedV3Warning> = [];\n\n if (aspectRatio != null) {\n warnings.push({\n type: 'unsupported',\n feature: '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', feature: 'seed' });\n }\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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 ...(providerOptions.openai ?? {}),\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 usage:\n response.usage != null\n ? {\n inputTokens: response.usage.input_tokens ?? undefined,\n outputTokens: response.usage.output_tokens ?? undefined,\n totalTokens: response.usage.total_tokens ?? undefined,\n }\n : undefined,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n openai: {\n images: response.data.map(item => ({\n ...(item.revised_prompt\n ? { revisedPrompt: item.revised_prompt }\n : {}),\n created: response.created ?? undefined,\n size: response.size ?? undefined,\n quality: response.quality ?? undefined,\n background: response.background ?? undefined,\n outputFormat: response.output_format ?? undefined,\n })),\n },\n },\n };\n }\n}\n","import { lazySchema, 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 = lazySchema(() =>\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","export type OpenAIImageModelId =\n | 'dall-e-3'\n | 'dall-e-2'\n | 'gpt-image-1'\n | 'gpt-image-1-mini'\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};\n\nexport const hasDefaultResponseFormat = new Set([\n 'gpt-image-1',\n 'gpt-image-1-mini',\n]);\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * Schema for the apply_patch input - what the model sends.\n *\n * Refer the official spec here: https://platform.openai.com/docs/api-reference/responses/create#responses_create-input-input_item_list-item-apply_patch_tool_call\n *\n */\nexport const applyPatchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n callId: z.string(),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n ),\n);\n\n/**\n * Schema for the apply_patch output - what we send back.\n */\nexport const applyPatchOutputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n status: z.enum(['completed', 'failed']),\n output: z.string().optional(),\n }),\n ),\n);\n\n/**\n * Schema for tool arguments (configuration options).\n * The apply_patch tool doesn't require any configuration options.\n */\nexport const applyPatchArgsSchema = lazySchema(() => zodSchema(z.object({})));\n\n/**\n * Type definitions for the apply_patch operations.\n */\nexport type ApplyPatchOperation =\n | {\n type: 'create_file';\n /**\n * Path of the file to create relative to the workspace root.\n */\n path: string;\n /**\n * Unified diff content to apply when creating the file.\n */\n diff: string;\n }\n | {\n type: 'delete_file';\n /**\n * Path of the file to delete relative to the workspace root.\n */\n path: string;\n }\n | {\n type: 'update_file';\n /**\n * Path of the file to update relative to the workspace root.\n */\n path: string;\n /**\n * Unified diff content to apply to the existing file.\n */\n diff: string;\n };\n\n/**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n *\n * The tool factory creates a provider-defined tool that:\n * - Receives patch operations from the model (create_file, update_file, delete_file)\n * - Returns the status of applying those patches (completed or failed)\n *\n */\nexport const applyPatchToolFactory = createProviderToolFactoryWithOutputSchema<\n {\n /**\n * The unique ID of the apply patch tool call generated by the model.\n */\n callId: string;\n\n /**\n * The specific create, delete, or update instruction for the apply_patch tool call.\n */\n operation: ApplyPatchOperation;\n },\n {\n /**\n * The status of the apply patch tool call output.\n * - 'completed': The patch was applied successfully.\n * - 'failed': The patch failed to apply.\n */\n status: 'completed' | 'failed';\n\n /**\n * Optional human-readable log text from the apply patch tool\n * (e.g., patch results or errors).\n */\n output?: string;\n },\n // No configuration options for apply_patch\n {}\n>({\n id: 'openai.apply_patch',\n inputSchema: applyPatchInputSchema,\n outputSchema: applyPatchOutputSchema,\n});\n\n/**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n */\nexport const applyPatch = applyPatchToolFactory;\n","import {\n createProviderToolFactoryWithOutputSchema,\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 createProviderToolFactoryWithOutputSchema<\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 inputSchema: codeInterpreterInputSchema,\n outputSchema: codeInterpreterOutputSchema,\n });\n\nexport const codeInterpreter = (\n args: CodeInterpreterArgs = {}, // default\n) => {\n return codeInterpreterToolFactory(args);\n};\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\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 = createProviderToolFactoryWithOutputSchema<\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 inputSchema: z.object({}),\n outputSchema: fileSearchOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\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 * Number of partial images to generate in streaming mode, from 0 (default value) to 3.\n */\n partialImages?: number;\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 = createProviderToolFactoryWithOutputSchema<\n {},\n {\n /**\n * The generated image encoded in base64.\n */\n result: string;\n },\n ImageGenerationArgs\n>({\n id: 'openai.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 createProviderToolFactoryWithOutputSchema,\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 = createProviderToolFactoryWithOutputSchema<\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 inputSchema: localShellInputSchema,\n outputSchema: localShellOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const shellInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n action: z.object({\n commands: z.array(z.string()),\n timeoutMs: z.number().optional(),\n maxOutputLength: z.number().optional(),\n }),\n }),\n ),\n);\n\nexport const shellOutputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n output: z.array(\n z.object({\n stdout: z.string(),\n stderr: z.string(),\n outcome: z.discriminatedUnion('type', [\n z.object({ type: z.literal('timeout') }),\n z.object({ type: z.literal('exit'), exitCode: z.number() }),\n ]),\n }),\n ),\n }),\n ),\n);\n\nexport const shell = createProviderToolFactoryWithOutputSchema<\n {\n /**\n * Shell tool action containing commands to execute.\n */\n action: {\n /**\n * A list of shell commands to execute.\n */\n commands: string[];\n\n /**\n * Optional timeout in milliseconds for the commands.\n */\n timeoutMs?: number;\n\n /**\n * Optional maximum number of characters to return from each command.\n */\n maxOutputLength?: number;\n };\n },\n {\n /**\n * An array of shell call output contents.\n */\n output: Array<{\n /**\n * Standard output from the command.\n */\n stdout: string;\n\n /**\n * Standard error from the command.\n */\n stderr: string;\n\n /**\n * The outcome of the shell execution - either timeout or exit with code.\n */\n outcome: { type: 'timeout' } | { type: 'exit'; exitCode: number };\n }>;\n },\n {}\n>({\n id: 'openai.shell',\n inputSchema: shellInputSchema,\n outputSchema: shellOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\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.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('find'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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 = createProviderToolFactoryWithOutputSchema<\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, find).\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 \"find\": Searches for a pattern within a loaded page.\n */\n type: 'find';\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 inputSchema: webSearchInputSchema,\n outputSchema: webSearchOutputSchema,\n});\n\nexport const webSearch = (\n args: Parameters<typeof webSearchToolFactory>[0] = {}, // default\n) => webSearchToolFactory(args);\n","import {\n createProviderToolFactoryWithOutputSchema,\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.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('find'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\n }),\n ),\n);\n\nexport const webSearchPreview = createProviderToolFactoryWithOutputSchema<\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, find).\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 \"find\": Searches for a pattern within a loaded page.\n */\n type: 'find';\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 /**\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 inputSchema: webSearchPreviewInputSchema,\n outputSchema: webSearchPreviewOutputSchema,\n});\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { JSONValue } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nconst jsonValueSchema: z.ZodType<JSONValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\n\nexport const mcpArgsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n serverLabel: z.string(),\n allowedTools: z\n .union([\n z.array(z.string()),\n z.object({\n readOnly: z.boolean().optional(),\n toolNames: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n authorization: z.string().optional(),\n connectorId: z.string().optional(),\n headers: z.record(z.string(), z.string()).optional(),\n\n // TODO: Integrate this MCP tool approval with our SDK's existing tool approval architecture\n // requireApproval: z\n // .union([\n // z.enum(['always', 'never']),\n // z.object({\n // readOnly: z.boolean().optional(),\n // toolNames: z.array(z.string()).optional(),\n // }),\n // ])\n // .optional(),\n serverDescription: z.string().optional(),\n serverUrl: z.string().optional(),\n })\n .refine(\n v => v.serverUrl != null || v.connectorId != null,\n 'One of serverUrl or connectorId must be provided.',\n ),\n ),\n);\n\nconst mcpInputSchema = lazySchema(() => zodSchema(z.object({})));\n\nexport const mcpOutputSchema = lazySchema(() =>\n zodSchema(\n z.discriminatedUnion('type', [\n z.object({\n type: z.literal('call'),\n serverLabel: z.string(),\n name: z.string(),\n arguments: z.string(),\n output: z.string().nullable().optional(),\n error: z.union([z.string(), jsonValueSchema]).optional(),\n }),\n z.object({\n type: z.literal('listTools'),\n serverLabel: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: jsonValueSchema,\n annotations: z.record(z.string(), jsonValueSchema).optional(),\n }),\n ),\n error: z.union([z.string(), jsonValueSchema]).optional(),\n }),\n z.object({\n type: z.literal('approvalRequest'),\n serverLabel: z.string(),\n name: z.string(),\n arguments: z.string(),\n approvalRequestId: z.string(),\n }),\n ]),\n ),\n);\n\ntype McpArgs = {\n /** A label for this MCP server, used to identify it in tool calls. */\n serverLabel: string;\n /** List of allowed tool names or a filter object. */\n allowedTools?:\n | string[]\n | {\n readOnly?: boolean;\n toolNames?: string[];\n };\n /** OAuth access token usable with the remote MCP server or connector. */\n authorization?: string;\n /** Identifier for a service connector. */\n connectorId?: string;\n /** Optional HTTP headers to send to the MCP server. */\n headers?: Record<string, string>;\n // /** Which tools require approval: 'always' | 'never' | filter object. */\n // requireApproval?:\n // | 'always'\n // | 'never'\n // | {\n // readOnly?: boolean;\n // toolNames?: string[];\n // };\n /** Optional description of the MCP server. */\n serverDescription?: string;\n /** URL for the MCP server. One of serverUrl or connectorId must be provided. */\n serverUrl?: string;\n};\n\nexport const mcpToolFactory = createProviderToolFactoryWithOutputSchema<\n {},\n | {\n type: 'call';\n serverLabel: string;\n name: string;\n arguments: string;\n output?: string | null;\n error?: JSONValue;\n }\n | {\n type: 'listTools';\n serverLabel: string;\n tools: Array<{\n name: string;\n description?: string;\n inputSchema: unknown;\n annotations?: unknown;\n }>;\n error?: JSONValue;\n }\n | {\n type: 'approvalRequest';\n serverLabel: string;\n name: string;\n arguments: string;\n approvalRequestId: string;\n },\n McpArgs\n>({\n id: 'openai.mcp',\n inputSchema: mcpInputSchema,\n outputSchema: mcpOutputSchema,\n});\n\nexport const mcp = (args: McpArgs) => mcpToolFactory(args);\n","import { applyPatch } from './tool/apply-patch';\nimport { codeInterpreter } from './tool/code-interpreter';\nimport { fileSearch } from './tool/file-search';\nimport { imageGeneration } from './tool/image-generation';\nimport { localShell } from './tool/local-shell';\nimport { shell } from './tool/shell';\nimport { webSearch } from './tool/web-search';\nimport { webSearchPreview } from './tool/web-search-preview';\nimport { mcp } from './tool/mcp';\n\nexport const openaiTools = {\n /**\n * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n * codebase using structured diffs. Instead of just suggesting edits, the model\n * emits patch operations that your application applies and then reports back on,\n * enabling iterative, multi-step code editing workflows.\n *\n */\n applyPatch,\n\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 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 * @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 * @param background - Background type for the generated image. One of 'auto', 'opaque', or 'transparent'.\n * @param inputFidelity - Input fidelity for the generated image. One of 'low' or 'high'.\n * @param inputImageMask - Optional mask for inpainting. Contains fileId and/or imageUrl.\n * @param model - The image generation model to use. Default: gpt-image-1.\n * @param moderation - Moderation level for the generated image. Default: 'auto'.\n * @param outputCompression - Compression level for the output image (0-100).\n * @param outputFormat - The output format of the generated image. One of 'png', 'jpeg', or 'webp'.\n * @param partialImages - Number of partial images to generate in streaming mode (0-3).\n * @param quality - The quality of the generated image. One of 'auto', 'low', 'medium', or 'high'.\n * @param size - The size of the generated image. One of 'auto', '1024x1024', '1024x1536', or '1536x1024'.\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 localShell,\n\n /**\n * The shell tool allows the model to interact with your local computer through\n * a controlled command-line interface. The model proposes shell commands; your\n * integration executes them and returns the outputs.\n *\n * Available through the Responses API for use with GPT-5.1.\n *\n * WARNING: Running arbitrary shell commands can be dangerous. Always sandbox\n * execution or add strict allow-/deny-lists before forwarding a command to\n * the system shell.\n */\n shell,\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 * @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 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 * @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 /**\n * MCP (Model Context Protocol) allows models to call tools exposed by\n * remote MCP servers or service connectors.\n *\n * @param serverLabel - Label to identify the MCP server.\n * @param allowedTools - Allowed tool names or filter object.\n * @param authorization - OAuth access token for the MCP server/connector.\n * @param connectorId - Identifier for a service connector.\n * @param headers - Optional headers to include in MCP requests.\n * // param requireApproval - Approval policy ('always'|'never'|filter object). (Removed - always 'never')\n * @param serverDescription - Optional description of the server.\n * @param serverUrl - URL for the MCP server.\n */\n mcp,\n};\n","import {\n APICallError,\n LanguageModelV3,\n SharedV3Warning,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3ProviderTool,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n JSONValue,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n createToolNameMapping,\n generateId,\n InferSchema,\n parseProviderOptions,\n ParseResult,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { applyPatchInputSchema } from '../tool/apply-patch';\nimport {\n codeInterpreterInputSchema,\n codeInterpreterOutputSchema,\n} from '../tool/code-interpreter';\nimport { fileSearchOutputSchema } from '../tool/file-search';\nimport { imageGenerationOutputSchema } from '../tool/image-generation';\nimport { localShellInputSchema } from '../tool/local-shell';\nimport { shellInputSchema } from '../tool/shell';\nimport { webSearchOutputSchema } from '../tool/web-search';\nimport { mcpOutputSchema } from '../tool/mcp';\nimport { convertToOpenAIResponsesInput } from './convert-to-openai-responses-input';\nimport { mapOpenAIResponseFinishReason } from './map-openai-responses-finish-reason';\nimport {\n OpenAIResponsesChunk,\n openaiResponsesChunkSchema,\n OpenAIResponsesIncludeOptions,\n OpenAIResponsesIncludeValue,\n OpenAIResponsesLogprobs,\n openaiResponsesResponseSchema,\n OpenAIResponsesWebSearchAction,\n} from './openai-responses-api';\nimport {\n 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 LanguageModelV3 {\n readonly specificationVersion = 'v3';\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<LanguageModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n\n if (topK != null) {\n warnings.push({ type: 'unsupported', feature: 'topK' });\n }\n\n if (seed != null) {\n warnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n if (presencePenalty != null) {\n warnings.push({ type: 'unsupported', feature: 'presencePenalty' });\n }\n\n if (frequencyPenalty != null) {\n warnings.push({ type: 'unsupported', feature: 'frequencyPenalty' });\n }\n\n if (stopSequences != null) {\n warnings.push({ type: 'unsupported', feature: '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',\n feature: 'conversation',\n details: 'conversation and previousResponseId cannot be used together',\n });\n }\n\n const toolNameMapping = createToolNameMapping({\n tools,\n providerToolNames: {\n 'openai.code_interpreter': 'code_interpreter',\n 'openai.file_search': 'file_search',\n 'openai.image_generation': 'image_generation',\n 'openai.local_shell': 'local_shell',\n 'openai.shell': 'shell',\n 'openai.web_search': 'web_search',\n 'openai.web_search_preview': 'web_search_preview',\n 'openai.mcp': 'mcp',\n 'openai.apply_patch': 'apply_patch',\n },\n });\n\n const { input, warnings: inputWarnings } =\n await convertToOpenAIResponsesInput({\n prompt,\n toolNameMapping,\n systemMessageMode: modelCapabilities.systemMessageMode,\n fileIdPrefixes: this.config.fileIdPrefixes,\n store: openaiOptions?.store ?? true,\n hasLocalShellTool: hasOpenAITool('openai.local_shell'),\n hasShellTool: hasOpenAITool('openai.shell'),\n hasApplyPatchTool: hasOpenAITool('openai.apply_patch'),\n });\n\n warnings.push(...inputWarnings);\n\n const strictJsonSchema = openaiOptions?.strictJsonSchema ?? true;\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(tool => tool.type === 'provider' && tool.id === id) != 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' &&\n (tool.id === 'openai.web_search' ||\n tool.id === 'openai.web_search_preview'),\n ) as LanguageModelV3ProviderTool | 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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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',\n feature: '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 });\n\n return {\n webSearchToolName,\n args: {\n ...baseArgs,\n tools: openaiTools,\n tool_choice: openaiToolChoice,\n },\n warnings: [...warnings, ...toolWarnings],\n store,\n toolNameMapping,\n };\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n toolNameMapping,\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<LanguageModelV3Content> = [];\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: toolNameMapping.toCustomToolName('image_generation'),\n input: '{}',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: part.result,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\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: toolNameMapping.toCustomToolName('local_shell'),\n input: JSON.stringify({\n action: part.action,\n } satisfies InferSchema<typeof localShellInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: part.id,\n },\n },\n });\n\n break;\n }\n\n case 'shell_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.call_id,\n toolName: toolNameMapping.toCustomToolName('shell'),\n input: JSON.stringify({\n action: {\n commands: part.action.commands,\n },\n } satisfies InferSchema<typeof shellInputSchema>),\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 const providerMetadata: SharedV3ProviderMetadata[string] = {\n itemId: part.id,\n ...(contentPart.annotations.length > 0 && {\n annotations: contentPart.annotations,\n }),\n };\n\n content.push({\n type: 'text',\n text: contentPart.text,\n providerMetadata: {\n [providerKey]: providerMetadata,\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n result: mapWebSearchOutput(part.action),\n });\n\n break;\n }\n\n case 'mcp_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'call',\n serverLabel: part.server_label,\n name: part.name,\n arguments: part.arguments,\n ...(part.output != null ? { output: part.output } : {}),\n ...(part.error != null\n ? { error: part.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'mcp_list_tools': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'listTools',\n serverLabel: part.server_label,\n tools: part.tools.map(t => ({\n name: t.name,\n description: t.description ?? undefined,\n inputSchema: t.input_schema,\n annotations:\n (t.annotations as Record<string, JSONValue> | undefined) ??\n undefined,\n })),\n ...(part.error != null\n ? { error: part.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'mcp_approval_request': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'approvalRequest',\n serverLabel: part.server_label,\n name: part.name,\n arguments: part.arguments,\n approvalRequestId: part.approval_request_id,\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n break;\n }\n\n case 'computer_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n input: '',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n result: {\n type: 'computer_use_tool_result',\n status: part.status || 'completed',\n },\n });\n break;\n }\n\n case 'file_search_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('file_search'),\n input: '{}',\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('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 InferSchema<typeof fileSearchOutputSchema>,\n });\n break;\n }\n\n case 'code_interpreter_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('code_interpreter'),\n input: JSON.stringify({\n code: part.code,\n containerId: part.container_id,\n } satisfies InferSchema<typeof codeInterpreterInputSchema>),\n providerExecuted: true,\n });\n\n content.push({\n type: 'tool-result',\n toolCallId: part.id,\n toolName: toolNameMapping.toCustomToolName('code_interpreter'),\n result: {\n outputs: part.outputs,\n } satisfies InferSchema<typeof codeInterpreterOutputSchema>,\n });\n break;\n }\n\n case 'apply_patch_call': {\n content.push({\n type: 'tool-call',\n toolCallId: part.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: part.call_id,\n operation: part.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: part.id,\n },\n },\n });\n\n break;\n }\n }\n }\n\n const providerMetadata: SharedV3ProviderMetadata = {\n [providerKey]: { responseId: response.id },\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<LanguageModelV3['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>> {\n const {\n args: body,\n warnings,\n webSearchToolName,\n toolNameMapping,\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: LanguageModelV3FinishReason = 'unknown';\n const usage: LanguageModelV3Usage = {\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 // 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 LanguageModelV3StreamPart\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n toolCallId: value.item.id,\n };\n\n controller.enqueue({\n type: 'tool-input-start',\n id: value.item.id,\n toolName: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n input: JSON.stringify({}),\n providerExecuted: true,\n });\n } else if (value.item.type === 'computer_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n toolCallId: value.item.id,\n };\n\n controller.enqueue({\n type: 'tool-input-start',\n id: value.item.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n providerExecuted: true,\n });\n } else if (value.item.type === 'code_interpreter_call') {\n ongoingToolCalls[value.output_index] = {\n toolName:\n toolNameMapping.toCustomToolName('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:\n toolNameMapping.toCustomToolName('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: toolNameMapping.toCustomToolName('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:\n toolNameMapping.toCustomToolName('image_generation'),\n input: '{}',\n providerExecuted: true,\n });\n } else if (\n value.item.type === 'mcp_call' ||\n value.item.type === 'mcp_list_tools' ||\n value.item.type === 'mcp_approval_request'\n ) {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n input: '{}',\n providerExecuted: true,\n });\n } else if (value.item.type === 'apply_patch_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n toolCallId: value.item.call_id,\n };\n\n // TODO: look into partial diff streaming from the model\n // Only emit tool-call when status is 'completed' to ensure we have the complete diff\n if (value.item.status === 'completed') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: value.item.call_id,\n operation: value.item.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\n },\n },\n });\n }\n } else if (value.item.type === 'shell_call') {\n ongoingToolCalls[value.output_index] = {\n toolName: toolNameMapping.toCustomToolName('shell'),\n toolCallId: value.item.call_id,\n };\n } else if (value.item.type === 'message') {\n ongoingAnnotations.splice(0, ongoingAnnotations.length);\n controller.enqueue({\n type: 'text-start',\n id: value.item.id,\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\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 controller.enqueue({\n type: 'text-end',\n id: value.item.id,\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\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: toolNameMapping.toCustomToolName(\n webSearchToolName ?? 'web_search',\n ),\n result: mapWebSearchOutput(value.item.action),\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: toolNameMapping.toCustomToolName('computer_use'),\n input: '',\n providerExecuted: true,\n });\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('computer_use'),\n result: {\n type: 'computer_use_tool_result',\n status: value.item.status || 'completed',\n },\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: toolNameMapping.toCustomToolName('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 InferSchema<typeof fileSearchOutputSchema>,\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:\n toolNameMapping.toCustomToolName('code_interpreter'),\n result: {\n outputs: value.item.outputs,\n } satisfies InferSchema<typeof codeInterpreterOutputSchema>,\n });\n } else if (value.item.type === 'image_generation_call') {\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName:\n toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: value.item.result,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\n });\n } else if (value.item.type === 'mcp_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'call',\n serverLabel: value.item.server_label,\n name: value.item.name,\n arguments: value.item.arguments,\n ...(value.item.output != null\n ? { output: value.item.output }\n : {}),\n ...(value.item.error != null\n ? { error: value.item.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n } else if (value.item.type === 'mcp_list_tools') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'listTools',\n serverLabel: value.item.server_label,\n tools: value.item.tools.map(t => ({\n name: t.name,\n description: t.description ?? undefined,\n inputSchema: t.input_schema,\n annotations:\n (t.annotations as\n | Record<string, JSONValue>\n | undefined) ?? undefined,\n })),\n ...(value.item.error != null\n ? { error: value.item.error as unknown as JSONValue }\n : {}),\n } satisfies InferSchema<typeof mcpOutputSchema>,\n });\n } else if (value.item.type === 'apply_patch_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n // Emit the final tool-call with complete diff when status is 'completed'\n if (value.item.status === 'completed') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('apply_patch'),\n input: JSON.stringify({\n callId: value.item.call_id,\n operation: value.item.operation,\n } satisfies InferSchema<typeof applyPatchInputSchema>),\n providerMetadata: {\n [providerKey]: {\n itemId: value.item.id,\n },\n },\n });\n }\n } else if (value.item.type === 'mcp_approval_request') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item.id,\n toolName: toolNameMapping.toCustomToolName('mcp'),\n result: {\n type: 'approvalRequest',\n serverLabel: value.item.server_label,\n name: value.item.name,\n arguments: value.item.arguments,\n approvalRequestId: value.item.approval_request_id,\n } satisfies InferSchema<typeof mcpOutputSchema>,\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: toolNameMapping.toCustomToolName('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 InferSchema<typeof localShellInputSchema>),\n providerMetadata: {\n [providerKey]: { itemId: value.item.id },\n },\n });\n } else if (value.item.type === 'shell_call') {\n ongoingToolCalls[value.output_index] = undefined;\n\n controller.enqueue({\n type: 'tool-call',\n toolCallId: value.item.call_id,\n toolName: toolNameMapping.toCustomToolName('shell'),\n input: JSON.stringify({\n action: {\n commands: value.item.action.commands,\n },\n } satisfies InferSchema<typeof shellInputSchema>),\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 (isResponseImageGenerationCallPartialImageChunk(value)) {\n controller.enqueue({\n type: 'tool-result',\n toolCallId: value.item_id,\n toolName: toolNameMapping.toCustomToolName('image_generation'),\n result: {\n result: value.partial_image_b64,\n } satisfies InferSchema<typeof imageGenerationOutputSchema>,\n preliminary: true,\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:\n toolNameMapping.toCustomToolName('code_interpreter'),\n input: JSON.stringify({\n code: value.code,\n containerId: toolCall.codeInterpreter!.containerId,\n } satisfies InferSchema<typeof codeInterpreterInputSchema>),\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 } else if (value.annotation.type === 'container_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.filename ??\n value.annotation.file_id ??\n 'Document',\n filename:\n value.annotation.filename ?? value.annotation.file_id,\n providerMetadata: {\n [providerKey]: {\n fileId: value.annotation.file_id,\n containerId: value.annotation.container_id,\n ...(value.annotation.index != null\n ? { index: value.annotation.index }\n : {}),\n },\n },\n });\n } else if (value.annotation.type === 'file_path') {\n controller.enqueue({\n type: 'source',\n sourceType: 'document',\n id: self.config.generateId?.() ?? generateId(),\n mediaType: 'application/octet-stream',\n title: value.annotation.file_id,\n filename: value.annotation.file_id,\n providerMetadata: {\n [providerKey]: {\n fileId: value.annotation.file_id,\n ...(value.annotation.index != null\n ? { index: value.annotation.index }\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: SharedV3ProviderMetadata = {\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}\nfunction isResponseImageGenerationCallPartialImageChunk(\n chunk: OpenAIResponsesChunk,\n): chunk is OpenAIResponsesChunk & {\n type: 'response.image_generation_call.partial_image';\n} {\n return chunk.type === 'response.image_generation_call.partial_image';\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,\n): InferSchema<typeof webSearchOutputSchema> {\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':\n return {\n action: { type: 'find', url: action.url, pattern: action.pattern },\n };\n }\n}\n","import {\n LanguageModelV3Prompt,\n LanguageModelV3ToolCallPart,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport {\n convertToBase64,\n isNonNullable,\n parseProviderOptions,\n ToolNameMapping,\n validateTypes,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { applyPatchOutputSchema } from '../tool/apply-patch';\nimport {\n localShellInputSchema,\n localShellOutputSchema,\n} from '../tool/local-shell';\nimport { shellInputSchema, shellOutputSchema } from '../tool/shell';\nimport {\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 toolNameMapping,\n systemMessageMode,\n fileIdPrefixes,\n store,\n hasLocalShellTool = false,\n hasShellTool = false,\n hasApplyPatchTool = false,\n}: {\n prompt: LanguageModelV3Prompt;\n toolNameMapping: ToolNameMapping;\n systemMessageMode: 'system' | 'developer' | 'remove';\n fileIdPrefixes?: readonly string[];\n store: boolean;\n hasLocalShellTool?: boolean;\n hasShellTool?: boolean;\n hasApplyPatchTool?: boolean;\n}): Promise<{\n input: OpenAIResponsesInput;\n warnings: Array<SharedV3Warning>;\n}> {\n const input: OpenAIResponsesInput = [];\n const warnings: Array<SharedV3Warning> = [];\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\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\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 });\n\n break;\n }\n case 'tool-call': {\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 const resolvedToolName = toolNameMapping.toProviderToolName(\n part.toolName,\n );\n\n if (hasLocalShellTool && resolvedToolName === '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 if (hasShellTool && resolvedToolName === 'shell') {\n const parsedInput = await validateTypes({\n value: part.input,\n schema: shellInputSchema,\n });\n input.push({\n type: 'shell_call',\n call_id: part.toolCallId,\n id: id!,\n status: 'completed',\n action: {\n commands: parsedInput.action.commands,\n timeout_ms: parsedInput.action.timeoutMs,\n max_output_length: parsedInput.action.maxOutputLength,\n },\n });\n\n break;\n }\n\n input.push({\n type: 'function_call',\n call_id: part.toolCallId,\n name: resolvedToolName,\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 const resolvedToolName = toolNameMapping.toProviderToolName(\n part.toolName,\n );\n\n if (\n hasLocalShellTool &&\n resolvedToolName === '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 if (\n hasShellTool &&\n resolvedToolName === 'shell' &&\n output.type === 'json'\n ) {\n const parsedOutput = await validateTypes({\n value: output.value,\n schema: shellOutputSchema,\n });\n\n input.push({\n type: 'shell_call_output',\n call_id: part.toolCallId,\n output: parsedOutput.output.map(item => ({\n stdout: item.stdout,\n stderr: item.stderr,\n outcome:\n item.outcome.type === 'timeout'\n ? { type: 'timeout' as const }\n : {\n type: 'exit' as const,\n exit_code: item.outcome.exitCode,\n },\n })),\n });\n break;\n }\n\n if (\n hasApplyPatchTool &&\n part.toolName === 'apply_patch' &&\n output.type === 'json'\n ) {\n const parsedOutput = await validateTypes({\n value: output.value,\n schema: applyPatchOutputSchema,\n });\n\n input.push({\n type: 'apply_patch_call_output',\n call_id: part.toolCallId,\n status: parsedOutput.status,\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 'execution-denied':\n contentValue = output.reason ?? 'Tool execution denied.';\n break;\n case 'json':\n case 'error-json':\n contentValue = JSON.stringify(output.value);\n break;\n case 'content':\n contentValue = output.value\n .map(item => {\n switch (item.type) {\n case 'text': {\n return { type: 'input_text' as const, text: item.text };\n }\n\n case 'image-data': {\n return {\n type: 'input_image' as const,\n image_url: `data:${item.mediaType};base64,${item.data}`,\n };\n }\n\n case 'file-data': {\n return {\n type: 'input_file' as const,\n filename: item.filename ?? 'data',\n file_data: `data:${item.mediaType};base64,${item.data}`,\n };\n }\n\n default: {\n warnings.push({\n type: 'other',\n message: `unsupported tool content part type: ${item.type}`,\n });\n return undefined;\n }\n }\n })\n .filter(isNonNullable);\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 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 { LanguageModelV3FinishReason } 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}): LanguageModelV3FinishReason {\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 { JSONSchema7 } from '@ai-sdk/provider';\nimport { InferSchema, lazySchema, zodSchema } 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 | OpenAIResponsesShellCall\n | OpenAIResponsesShellCallOutput\n | OpenAIResponsesApplyPatchCall\n | OpenAIResponsesApplyPatchCallOutput\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};\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\n/**\n * Official OpenAI API Specifications: https://platform.openai.com/docs/api-reference/responses/object#responses-object-output-shell_tool_call\n */\nexport type OpenAIResponsesShellCall = {\n type: 'shell_call';\n id: string;\n call_id: string;\n status: 'in_progress' | 'completed' | 'incomplete';\n action: {\n commands: string[];\n timeout_ms?: number;\n max_output_length?: number;\n };\n};\n\nexport type OpenAIResponsesShellCallOutput = {\n type: 'shell_call_output';\n call_id: string;\n max_output_length?: number;\n output: Array<{\n stdout: string;\n stderr: string;\n outcome: { type: 'timeout' } | { type: 'exit'; exit_code: number };\n }>;\n};\n\nexport type OpenAIResponsesApplyPatchCall = {\n type: 'apply_patch_call';\n id?: string;\n call_id: string;\n status: 'in_progress' | 'completed';\n operation:\n | {\n type: 'create_file';\n path: string;\n diff: string;\n }\n | {\n type: 'delete_file';\n path: string;\n }\n | {\n type: 'update_file';\n path: string;\n diff: string;\n };\n};\n\nexport type OpenAIResponsesApplyPatchCallOutput = {\n type: 'apply_patch_call_output';\n call_id: string;\n status: 'completed' | 'failed';\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;\n }\n | {\n type: 'apply_patch';\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 partial_images: number | undefined;\n quality: 'auto' | 'low' | 'medium' | 'high' | undefined;\n size: 'auto' | '1024x1024' | '1024x1536' | '1536x1024' | undefined;\n }\n\n /**\n * Official OpenAI API Specifications: https://platform.openai.com/docs/api-reference/responses/create#responses_create-tools-mcp_tool\n */\n | {\n type: 'mcp';\n server_label: string;\n allowed_tools:\n | string[]\n | {\n read_only?: boolean;\n tool_names?: string[];\n }\n | undefined;\n authorization: string | undefined;\n connector_id: string | undefined;\n headers: Record<string, string> | undefined;\n require_approval:\n | 'always'\n | 'never'\n | {\n read_only?: boolean;\n tool_names?: string[];\n }\n | undefined;\n server_description: string | undefined;\n server_url: string | undefined;\n }\n | {\n type: 'local_shell';\n }\n | {\n type: '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 = lazySchema(() =>\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 }),\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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\n }),\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 }),\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.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'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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('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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n arguments: z.string(),\n name: z.string(),\n server_label: z.string(),\n output: z.string().nullish(),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .nullish(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n server_label: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n input_schema: z.any(),\n annotations: z.record(z.string(), z.unknown()).optional(),\n }),\n ),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .optional(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n server_label: z.string(),\n name: z.string(),\n arguments: z.string(),\n approval_request_id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\n }),\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 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 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 = InferSchema<\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 = lazySchema(() =>\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 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.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'),\n url: z.string().nullish(),\n pattern: z.string().nullish(),\n }),\n ]),\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 z.object({\n type: z.literal('mcp_call'),\n id: z.string(),\n status: z.string(),\n arguments: z.string(),\n name: z.string(),\n server_label: z.string(),\n output: z.string().nullish(),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .nullish(),\n }),\n z.object({\n type: z.literal('mcp_list_tools'),\n id: z.string(),\n server_label: z.string(),\n tools: z.array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n input_schema: z.any(),\n annotations: z.record(z.string(), z.unknown()).optional(),\n }),\n ),\n error: z\n .union([\n z.string(),\n z\n .object({\n type: z.string().optional(),\n code: z.union([z.number(), z.string()]).optional(),\n message: z.string().optional(),\n })\n .loose(),\n ])\n .optional(),\n }),\n z.object({\n type: z.literal('mcp_approval_request'),\n id: z.string(),\n server_label: z.string(),\n name: z.string(),\n arguments: z.string(),\n approval_request_id: z.string(),\n }),\n z.object({\n type: z.literal('apply_patch_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed']),\n operation: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('create_file'),\n path: z.string(),\n diff: z.string(),\n }),\n z.object({\n type: z.literal('delete_file'),\n path: z.string(),\n }),\n z.object({\n type: z.literal('update_file'),\n path: z.string(),\n diff: z.string(),\n }),\n ]),\n }),\n z.object({\n type: z.literal('shell_call'),\n id: z.string(),\n call_id: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n action: z.object({\n commands: z.array(z.string()),\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 { InferSchema, lazySchema, zodSchema } 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] 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-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 = lazySchema(() =>\n zodSchema(\n z.object({\n /**\n * The ID of the OpenAI Conversation to continue.\n * You must create a conversation first via the OpenAI API.\n * Cannot be used in conjunction with `previousResponseId`.\n * Defaults to `undefined`.\n * @see https://platform.openai.com/docs/api-reference/conversations/create\n */\n conversation: z.string().nullish(),\n\n /**\n * The set of extra fields to include in the response (advanced, usually not needed).\n * Example values: 'reasoning.encrypted_content', 'file_search_call.results', 'message.output_text.logprobs'.\n */\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\n /**\n * Instructions for the model.\n * They can be used to change the system or developer message when continuing a conversation using the `previousResponseId` option.\n * Defaults to `undefined`.\n */\n instructions: z.string().nullish(),\n\n /**\n * Return the log probabilities of the tokens. Including logprobs will increase\n * the response size and can slow down response times. However, it can\n * be useful to better understand how the model is behaving.\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 /**\n * Additional metadata to store with the generation.\n */\n metadata: z.any().nullish(),\n\n /**\n * Whether to use parallel tool calls. Defaults to `true`.\n */\n parallelToolCalls: z.boolean().nullish(),\n\n /**\n * The ID of the previous response. You can use it to continue a conversation.\n * Defaults to `undefined`.\n */\n previousResponseId: z.string().nullish(),\n\n /**\n * Sets a cache key to tie this prompt to cached prefixes for better caching performance.\n */\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'\n *\n * Note: The 'none' type for `reasoningEffort` is only available for OpenAI's GPT-5.1\n * models. Setting `reasoningEffort` to 'none' with other models will result in\n * an error.\n */\n reasoningEffort: z.string().nullish(),\n\n /**\n * Controls reasoning summary output from the model.\n * Set to \"auto\" to automatically receive the richest level available,\n * or \"detailed\" for comprehensive summaries.\n */\n reasoningSummary: z.string().nullish(),\n\n /**\n * The identifier for safety monitoring and tracking.\n */\n safetyIdentifier: z.string().nullish(),\n\n /**\n * Service tier for the request.\n * Set to 'flex' for 50% cheaper processing at the cost of increased latency (available for o3, o4-mini, and gpt-5 models).\n * Set to 'priority' for faster processing with Enterprise access (available for gpt-4, gpt-5, gpt-5-mini, o3, o4-mini; gpt-5-nano is not supported).\n *\n * Defaults to 'auto'.\n */\n serviceTier: z.enum(['auto', 'flex', 'priority', 'default']).nullish(),\n\n /**\n * Whether to store the generation. Defaults to `true`.\n */\n store: z.boolean().nullish(),\n\n /**\n * Whether to use strict JSON schema validation.\n * Defaults to `true`.\n */\n strictJsonSchema: z.boolean().nullish(),\n\n /**\n * Controls the verbosity of the model's responses. Lower values ('low') will result\n * in more concise responses, while higher values ('high') will result in more verbose responses.\n * Valid values: 'low', 'medium', 'high'.\n */\n textVerbosity: z.enum(['low', 'medium', 'high']).nullish(),\n\n /**\n * Controls output truncation. 'auto' (default) performs truncation automatically;\n * 'disabled' turns truncation off.\n */\n truncation: z.enum(['auto', 'disabled']).nullish(),\n\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse.\n * Defaults to `undefined`.\n * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids\n */\n user: z.string().nullish(),\n }),\n ),\n);\n\nexport type OpenAIResponsesProviderOptions = InferSchema<\n typeof openaiResponsesProviderOptionsSchema\n>;\n","import {\n LanguageModelV3CallOptions,\n SharedV3Warning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { validateTypes } from '@ai-sdk/provider-utils';\nimport { codeInterpreterArgsSchema } from '../tool/code-interpreter';\nimport { fileSearchArgsSchema } from '../tool/file-search';\nimport { imageGenerationArgsSchema } from '../tool/image-generation';\nimport { mcpArgsSchema } from '../tool/mcp';\nimport { webSearchArgsSchema } from '../tool/web-search';\nimport { webSearchPreviewArgsSchema } from '../tool/web-search-preview';\nimport { OpenAIResponsesTool } from './openai-responses-api';\n\nexport async function prepareResponsesTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV3CallOptions['tools'];\n toolChoice: LanguageModelV3CallOptions['toolChoice'] | undefined;\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: 'mcp' }\n | { type: 'image_generation' }\n | { type: 'apply_patch' };\n toolWarnings: SharedV3Warning[];\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: SharedV3Warning[] = [];\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 ...(tool.strict != null ? { strict: tool.strict } : {}),\n });\n break;\n case 'provider': {\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.shell': {\n openaiTools.push({\n type: 'shell',\n });\n break;\n }\n case 'openai.apply_patch': {\n openaiTools.push({\n type: 'apply_patch',\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 moderation: args.moderation,\n partial_images: args.partialImages,\n quality: args.quality,\n output_compression: args.outputCompression,\n output_format: args.outputFormat,\n size: args.size,\n });\n break;\n }\n case 'openai.mcp': {\n const args = await validateTypes({\n value: tool.args,\n schema: mcpArgsSchema,\n });\n\n openaiTools.push({\n type: 'mcp',\n server_label: args.serverLabel,\n allowed_tools: Array.isArray(args.allowedTools)\n ? args.allowedTools\n : args.allowedTools\n ? {\n read_only: args.allowedTools.readOnly,\n tool_names: args.allowedTools.toolNames,\n }\n : undefined,\n authorization: args.authorization,\n connector_id: args.connectorId,\n headers: args.headers,\n require_approval: 'never',\n server_description: args.serverDescription,\n server_url: args.serverUrl,\n });\n\n break;\n }\n }\n break;\n }\n default:\n toolWarnings.push({\n type: 'unsupported',\n feature: `function tool ${tool}`,\n });\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 toolChoice.toolName === 'mcp' ||\n toolChoice.toolName === 'apply_patch'\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 { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { OpenAISpeechAPITypes } from './openai-speech-api';\nimport {\n openaiSpeechProviderOptionsSchema,\n OpenAISpeechModelId,\n} from './openai-speech-options';\n\ninterface OpenAISpeechModelConfig extends OpenAIConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class OpenAISpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\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<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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',\n feature: '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',\n feature: '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<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openaiSpeechProviderOptionsSchema\n>;\n","import {\n TranscriptionModelV3,\n TranscriptionModelV3CallOptions,\n SharedV3Warning,\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 { OpenAIConfig } from '../openai-config';\nimport { openaiFailedResponseHandler } from '../openai-error';\nimport { openaiTranscriptionResponseSchema } from './openai-transcription-api';\nimport {\n OpenAITranscriptionModelId,\n openAITranscriptionProviderOptions,\n OpenAITranscriptionProviderOptions,\n} from './openai-transcription-options';\n\nexport type OpenAITranscriptionCallOptions = Omit<\n TranscriptionModelV3CallOptions,\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 TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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: SharedV3Warning[] = [];\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<TranscriptionModelV3['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 { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const openaiTranscriptionResponseSchema = lazySchema(() =>\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 { InferSchema, lazySchema, zodSchema } 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 = lazySchema(() =>\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 = InferSchema<\n typeof openAITranscriptionProviderOptions\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"],"mappings":";AAQA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACdP;AAAA,EACE;AAAA,OASK;AACP;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACrBP,SAAS,SAAS;AAClB,SAAS,sCAAsC;AAExC,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,OAAO,EAAE,OAAO;AAAA,IACd,SAAS,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAKlB,MAAM,EAAE,OAAO,EAAE,QAAQ;AAAA,IACzB,OAAO,EAAE,IAAI,EAAE,QAAQ;AAAA,IACvB,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ;AAAA,EAClD,CAAC;AACH,CAAC;AAIM,IAAM,8BAA8B,+BAA+B;AAAA,EACxE,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK,MAAM;AACrC,CAAC;;;ACTM,SAAS,mCACd,SACiC;AACjC,QAAM,yBACJ,QAAQ,WAAW,IAAI,KACvB,QAAQ,WAAW,SAAS,KAC3B,QAAQ,WAAW,OAAO,KAAK,CAAC,QAAQ,WAAW,YAAY;AAElE,QAAM,6BACJ,QAAQ,WAAW,OAAO,KAC1B,QAAQ,WAAW,YAAY,KAC9B,QAAQ,WAAW,OAAO,KACzB,CAAC,QAAQ,WAAW,YAAY,KAChC,CAAC,QAAQ,WAAW,YAAY,KAClC,QAAQ,WAAW,IAAI,KACvB,QAAQ,WAAW,SAAS;AAE9B,QAAM,mBAAmB,EACvB,QAAQ,WAAW,OAAO,KAC1B,QAAQ,WAAW,OAAO,KAC1B,QAAQ,WAAW,YAAY,KAC/B,QAAQ,WAAW,YAAY;AAIjC,QAAM,iCAAiC,QAAQ,WAAW,SAAS;AAEnE,QAAM,oBAAoB,mBAAmB,cAAc;AAE3D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AChDA;AAAA,EAGE;AAAA,OACK;AAEP,SAAS,uBAAuB;AAEzB,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA,oBAAoB;AACtB,GAME;AAjBF;AAkBE,QAAM,WAA6B,CAAC;AACpC,QAAM,WAAmC,CAAC;AAE1C,aAAW,EAAE,MAAM,QAAQ,KAAK,QAAQ;AACtC,YAAQ,MAAM;AAAA,MACZ,KAAK,UAAU;AACb,gBAAQ,mBAAmB;AAAA,UACzB,KAAK,UAAU;AACb,qBAAS,KAAK,EAAE,MAAM,UAAU,QAAQ,CAAC;AACzC;AAAA,UACF;AAAA,UACA,KAAK,aAAa;AAChB,qBAAS,KAAK,EAAE,MAAM,aAAa,QAAQ,CAAC;AAC5C;AAAA,UACF;AAAA,UACA,KAAK,UAAU;AACb,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,YACX,CAAC;AACD;AAAA,UACF;AAAA,UACA,SAAS;AACP,kBAAM,mBAA0B;AAChC,kBAAM,IAAI;AAAA,cACR,oCAAoC,gBAAgB;AAAA,YACtD;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AACX,YAAI,QAAQ,WAAW,KAAK,QAAQ,CAAC,EAAE,SAAS,QAAQ;AACtD,mBAAS,KAAK,EAAE,MAAM,QAAQ,SAAS,QAAQ,CAAC,EAAE,KAAK,CAAC;AACxD;AAAA,QACF;AAEA,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS,QAAQ,IAAI,CAAC,MAAM,UAAU;AA1DhD,gBAAAA,KAAA;AA2DY,oBAAQ,KAAK,MAAM;AAAA,cACjB,KAAK,QAAQ;AACX,uBAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,cACzC;AAAA,cACA,KAAK,QAAQ;AACX,oBAAI,KAAK,UAAU,WAAW,QAAQ,GAAG;AACvC,wBAAM,YACJ,KAAK,cAAc,YACf,eACA,KAAK;AAEX,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,WAAW;AAAA,sBACT,KACE,KAAK,gBAAgB,MACjB,KAAK,KAAK,SAAS,IACnB,QAAQ,SAAS,WAAW,gBAAgB,KAAK,IAAI,CAAC;AAAA;AAAA,sBAG5D,SAAQ,MAAAA,MAAA,KAAK,oBAAL,gBAAAA,IAAsB,WAAtB,mBAA8B;AAAA,oBACxC;AAAA,kBACF;AAAA,gBACF,WAAW,KAAK,UAAU,WAAW,QAAQ,GAAG;AAC9C,sBAAI,KAAK,gBAAgB,KAAK;AAC5B,0BAAM,IAAI,8BAA8B;AAAA,sBACtC,eAAe;AAAA,oBACjB,CAAC;AAAA,kBACH;AAEA,0BAAQ,KAAK,WAAW;AAAA,oBACtB,KAAK,aAAa;AAChB,6BAAO;AAAA,wBACL,MAAM;AAAA,wBACN,aAAa;AAAA,0BACX,MAAM,gBAAgB,KAAK,IAAI;AAAA,0BAC/B,QAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA,KAAK;AAAA,oBACL,KAAK,cAAc;AACjB,6BAAO;AAAA,wBACL,MAAM;AAAA,wBACN,aAAa;AAAA,0BACX,MAAM,gBAAgB,KAAK,IAAI;AAAA,0BAC/B,QAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBAEA,SAAS;AACP,4BAAM,IAAI,8BAA8B;AAAA,wBACtC,eAAe,uCAAuC,KAAK,SAAS;AAAA,sBACtE,CAAC;AAAA,oBACH;AAAA,kBACF;AAAA,gBACF,WAAW,KAAK,cAAc,mBAAmB;AAC/C,sBAAI,KAAK,gBAAgB,KAAK;AAC5B,0BAAM,IAAI,8BAA8B;AAAA,sBACtC,eAAe;AAAA,oBACjB,CAAC;AAAA,kBACH;AAEA,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,MACE,OAAO,KAAK,SAAS,YACrB,KAAK,KAAK,WAAW,OAAO,IACxB,EAAE,SAAS,KAAK,KAAK,IACrB;AAAA,sBACE,WAAU,UAAK,aAAL,YAAiB,QAAQ,KAAK;AAAA,sBACxC,WAAW,+BAA+B,gBAAgB,KAAK,IAAI,CAAC;AAAA,oBACtE;AAAA,kBACR;AAAA,gBACF,OAAO;AACL,wBAAM,IAAI,8BAA8B;AAAA,oBACtC,eAAe,wBAAwB,KAAK,SAAS;AAAA,kBACvD,CAAC;AAAA,gBACH;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAED;AAAA,MACF;AAAA,MAEA,KAAK,aAAa;AAChB,YAAI,OAAO;AACX,cAAM,YAID,CAAC;AAEN,mBAAW,QAAQ,SAAS;AAC1B,kBAAQ,KAAK,MAAM;AAAA,YACjB,KAAK,QAAQ;AACX,sBAAQ,KAAK;AACb;AAAA,YACF;AAAA,YACA,KAAK,aAAa;AAChB,wBAAU,KAAK;AAAA,gBACb,IAAI,KAAK;AAAA,gBACT,MAAM;AAAA,gBACN,UAAU;AAAA,kBACR,MAAM,KAAK;AAAA,kBACX,WAAW,KAAK,UAAU,KAAK,KAAK;AAAA,gBACtC;AAAA,cACF,CAAC;AACD;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,YAAY,UAAU,SAAS,IAAI,YAAY;AAAA,QACjD,CAAC;AAED;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AACX,mBAAW,gBAAgB,SAAS;AAClC,gBAAM,SAAS,aAAa;AAE5B,cAAI;AACJ,kBAAQ,OAAO,MAAM;AAAA,YACnB,KAAK;AAAA,YACL,KAAK;AACH,6BAAe,OAAO;AACtB;AAAA,YACF,KAAK;AACH,8BAAe,YAAO,WAAP,YAAiB;AAChC;AAAA,YACF,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,6BAAe,KAAK,UAAU,OAAO,KAAK;AAC1C;AAAA,UACJ;AAEA,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,cAAc,aAAa;AAAA,YAC3B,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AACA;AAAA,MACF;AAAA,MAEA,SAAS;AACP,cAAM,mBAA0B;AAChC,cAAM,IAAI,MAAM,qBAAqB,gBAAgB,EAAE;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,UAAU,SAAS;AAC9B;;;AC7NO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO;AAAA,IACL,IAAI,kBAAM;AAAA,IACV,SAAS,wBAAS;AAAA,IAClB,WAAW,UAAU,IAAI,KAAK,UAAU,GAAI,IAAI;AAAA,EAClD;AACF;;;ACZO,SAAS,sBACd,cAC6B;AAC7B,UAAQ,cAAc;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;;;ACjBA,SAAsB,YAAY,iBAAiB;AACnD,SAAS,KAAAC,UAAS;AAqBX,IAAM,2BAA2B;AAAA,EAAW,MACjD;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACvB,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC5B,OAAOA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC1B,SAASA,GAAE;AAAA,QACTA,GAAE,OAAO;AAAA,UACP,SAASA,GAAE,OAAO;AAAA,YAChB,MAAMA,GAAE,QAAQ,WAAW,EAAE,QAAQ;AAAA,YACrC,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,YAC5B,YAAYA,GACT;AAAA,cACCA,GAAE,OAAO;AAAA,gBACP,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,gBACvB,MAAMA,GAAE,QAAQ,UAAU;AAAA,gBAC1B,UAAUA,GAAE,OAAO;AAAA,kBACjB,MAAMA,GAAE,OAAO;AAAA,kBACf,WAAWA,GAAE,OAAO;AAAA,gBACtB,CAAC;AAAA,cACH,CAAC;AAAA,YACH,EACC,QAAQ;AAAA,YACX,aAAaA,GACV;AAAA,cACCA,GAAE,OAAO;AAAA,gBACP,MAAMA,GAAE,QAAQ,cAAc;AAAA,gBAC9B,aAAaA,GAAE,OAAO;AAAA,gBACtB,WAAWA,GAAE,OAAO;AAAA,gBACpB,KAAKA,GAAE,OAAO;AAAA,gBACd,OAAOA,GAAE,OAAO;AAAA,cAClB,CAAC;AAAA,YACH,EACC,QAAQ;AAAA,UACb,CAAC;AAAA,UACD,OAAOA,GAAE,OAAO;AAAA,UAChB,UAAUA,GACP,OAAO;AAAA,YACN,SAASA,GACN;AAAA,cACCA,GAAE,OAAO;AAAA,gBACP,OAAOA,GAAE,OAAO;AAAA,gBAChB,SAASA,GAAE,OAAO;AAAA,gBAClB,cAAcA,GAAE;AAAA,kBACdA,GAAE,OAAO;AAAA,oBACP,OAAOA,GAAE,OAAO;AAAA,oBAChB,SAASA,GAAE,OAAO;AAAA,kBACpB,CAAC;AAAA,gBACH;AAAA,cACF,CAAC;AAAA,YACH,EACC,QAAQ;AAAA,UACb,CAAC,EACA,QAAQ;AAAA,UACX,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACpC,CAAC;AAAA,MACH;AAAA,MACA,OAAOA,GACJ,OAAO;AAAA,QACN,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAClC,mBAAmBA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACtC,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACjC,uBAAuBA,GACpB,OAAO;AAAA,UACN,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACpC,CAAC,EACA,QAAQ;AAAA,QACX,2BAA2BA,GACxB,OAAO;AAAA,UACN,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACrC,4BAA4BA,GAAE,OAAO,EAAE,QAAQ;AAAA,UAC/C,4BAA4BA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACjD,CAAC,EACA,QAAQ;AAAA,MACb,CAAC,EACA,QAAQ;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAIO,IAAM,wBAAwB;AAAA,EAAW,MAC9C;AAAA,IACEA,GAAE,MAAM;AAAA,MACNA,GAAE,OAAO;AAAA,QACP,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACvB,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAC5B,OAAOA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAC1B,SAASA,GAAE;AAAA,UACTA,GAAE,OAAO;AAAA,YACP,OAAOA,GACJ,OAAO;AAAA,cACN,MAAMA,GAAE,KAAK,CAAC,WAAW,CAAC,EAAE,QAAQ;AAAA,cACpC,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,cAC5B,YAAYA,GACT;AAAA,gBACCA,GAAE,OAAO;AAAA,kBACP,OAAOA,GAAE,OAAO;AAAA,kBAChB,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,kBACvB,MAAMA,GAAE,QAAQ,UAAU,EAAE,QAAQ;AAAA,kBACpC,UAAUA,GAAE,OAAO;AAAA,oBACjB,MAAMA,GAAE,OAAO,EAAE,QAAQ;AAAA,oBACzB,WAAWA,GAAE,OAAO,EAAE,QAAQ;AAAA,kBAChC,CAAC;AAAA,gBACH,CAAC;AAAA,cACH,EACC,QAAQ;AAAA,cACX,aAAaA,GACV;AAAA,gBACCA,GAAE,OAAO;AAAA,kBACP,MAAMA,GAAE,QAAQ,cAAc;AAAA,kBAC9B,aAAaA,GAAE,OAAO;AAAA,kBACtB,WAAWA,GAAE,OAAO;AAAA,kBACpB,KAAKA,GAAE,OAAO;AAAA,kBACd,OAAOA,GAAE,OAAO;AAAA,gBAClB,CAAC;AAAA,cACH,EACC,QAAQ;AAAA,YACb,CAAC,EACA,QAAQ;AAAA,YACX,UAAUA,GACP,OAAO;AAAA,cACN,SAASA,GACN;AAAA,gBACCA,GAAE,OAAO;AAAA,kBACP,OAAOA,GAAE,OAAO;AAAA,kBAChB,SAASA,GAAE,OAAO;AAAA,kBAClB,cAAcA,GAAE;AAAA,oBACdA,GAAE,OAAO;AAAA,sBACP,OAAOA,GAAE,OAAO;AAAA,sBAChB,SAASA,GAAE,OAAO;AAAA,oBACpB,CAAC;AAAA,kBACH;AAAA,gBACF,CAAC;AAAA,cACH,EACC,QAAQ;AAAA,YACb,CAAC,EACA,QAAQ;AAAA,YACX,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,YAClC,OAAOA,GAAE,OAAO;AAAA,UAClB,CAAC;AAAA,QACH;AAAA,QACA,OAAOA,GACJ,OAAO;AAAA,UACN,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,UAClC,mBAAmBA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACtC,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACjC,uBAAuBA,GACpB,OAAO;AAAA,YACN,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACpC,CAAC,EACA,QAAQ;AAAA,UACX,2BAA2BA,GACxB,OAAO;AAAA,YACN,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA,YACrC,4BAA4BA,GAAE,OAAO,EAAE,QAAQ;AAAA,YAC/C,4BAA4BA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACjD,CAAC,EACA,QAAQ;AAAA,QACb,CAAC,EACA,QAAQ;AAAA,MACb,CAAC;AAAA,MACD;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AC7LA,SAAsB,cAAAC,aAAY,aAAAC,kBAAiB;AACnD,SAAS,KAAAC,UAAS;AA2CX,IAAM,iCAAiCF;AAAA,EAAW,MACvDC;AAAA,IACEC,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOP,WAAWA,GAAE,OAAOA,GAAE,OAAO,OAAe,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWpE,UAAUA,GAAE,MAAM,CAACA,GAAE,QAAQ,GAAGA,GAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAKtD,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAMxC,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAK1B,iBAAiBA,GACd,KAAK,CAAC,QAAQ,WAAW,OAAO,UAAU,MAAM,CAAC,EACjD,SAAS;AAAA;AAAA;AAAA;AAAA,MAKZ,qBAAqBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAKzC,OAAOA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAK5B,UAAUA,GAAE,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,GAAGA,GAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAKrE,YAAYA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYnD,aAAaA,GAAE,KAAK,CAAC,QAAQ,QAAQ,YAAY,SAAS,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOtE,kBAAkBA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAMvC,eAAeA,GAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAM1D,gBAAgBA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUpC,sBAAsBA,GAAE,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAS5D,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,IACxC,CAAC;AAAA,EACH;AACF;;;AC3JA;AAAA,EAGE,iCAAAC;AAAA,OACK;AAMA,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAOE;AAEA,WAAQ,+BAAO,UAAS,QAAQ;AAEhC,QAAM,eAAkC,CAAC;AAEzC,MAAI,SAAS,MAAM;AACjB,WAAO,EAAE,OAAO,QAAW,YAAY,QAAW,aAAa;AAAA,EACjE;AAEA,QAAMC,eAAwC,CAAC;AAE/C,aAAW,QAAQ,OAAO;AACxB,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AACH,QAAAA,aAAY,KAAK;AAAA,UACf,MAAM;AAAA,UACN,UAAU;AAAA,YACR,MAAM,KAAK;AAAA,YACX,aAAa,KAAK;AAAA,YAClB,YAAY,KAAK;AAAA,YACjB,GAAI,KAAK,UAAU,OAAO,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,UACvD;AAAA,QACF,CAAC;AACD;AAAA,MACF;AACE,qBAAa,KAAK;AAAA,UAChB,MAAM;AAAA,UACN,SAAS,cAAc,KAAK,IAAI;AAAA,QAClC,CAAC;AACD;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,cAAc,MAAM;AACtB,WAAO,EAAE,OAAOA,cAAa,YAAY,QAAW,aAAa;AAAA,EACnE;AAEA,QAAM,OAAO,WAAW;AAExB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,EAAE,OAAOA,cAAa,YAAY,MAAM,aAAa;AAAA,IAC9D,KAAK;AACH,aAAO;AAAA,QACL,OAAOA;AAAA,QACP,YAAY;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,YACR,MAAM,WAAW;AAAA,UACnB;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF,SAAS;AACP,YAAM,mBAA0B;AAChC,YAAM,IAAID,+BAA8B;AAAA,QACtC,eAAe,qBAAqB,gBAAgB;AAAA,MACtD,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ARtCO,IAAM,0BAAN,MAAyD;AAAA,EAW9D,YAAY,SAA4B,QAA0B;AAVlE,SAAS,uBAAuB;AAIhC,SAAS,gBAAgB;AAAA,MACvB,WAAW,CAAC,iBAAiB;AAAA,IAC/B;AAKE,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA+B;AA/EjC;AAgFI,UAAM,WAA8B,CAAC;AAGrC,UAAM,iBACH,WAAM,qBAAqB;AAAA,MAC1B,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC,MAJA,YAIM,CAAC;AAEV,UAAM,oBAAoB,mCAAmC,KAAK,OAAO;AAEzE,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,UAAM,EAAE,UAAU,UAAU,gBAAgB,IAAI;AAAA,MAC9C;AAAA,QACE;AAAA,QACA,mBAAmB,kBAAkB;AAAA,MACvC;AAAA,IACF;AAEA,aAAS,KAAK,GAAG,eAAe;AAEhC,UAAM,oBAAmB,mBAAc,qBAAd,YAAkC;AAE3D,UAAM,WAAW;AAAA;AAAA,MAEf,OAAO,KAAK;AAAA;AAAA,MAGZ,YAAY,cAAc;AAAA,MAC1B,UACE,cAAc,aAAa,QAC3B,OAAO,cAAc,aAAa,WAC9B,OACA;AAAA,MACN,cACE,OAAO,cAAc,aAAa,WAC9B,cAAc,WACd,OAAO,cAAc,aAAa,YAChC,cAAc,WACZ,IACA,SACF;AAAA,MACR,MAAM,cAAc;AAAA,MACpB,qBAAqB,cAAc;AAAA;AAAA,MAGnC,YAAY;AAAA,MACZ;AAAA,MACA,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,kBACE,iDAAgB,UAAS,SACrB,eAAe,UAAU,OACvB;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,UACX,QAAQ,eAAe;AAAA,UACvB,QAAQ;AAAA,UACR,OAAM,oBAAe,SAAf,YAAuB;AAAA,UAC7B,aAAa,eAAe;AAAA,QAC9B;AAAA,MACF,IACA,EAAE,MAAM,cAAc,IACxB;AAAA,MACN,MAAM;AAAA,MACN;AAAA,MACA,WAAW,cAAc;AAAA;AAAA;AAAA,MAIzB,uBAAuB,cAAc;AAAA,MACrC,OAAO,cAAc;AAAA,MACrB,UAAU,cAAc;AAAA,MACxB,YAAY,cAAc;AAAA,MAC1B,kBAAkB,cAAc;AAAA,MAChC,cAAc,cAAc;AAAA,MAC5B,kBAAkB,cAAc;AAAA,MAChC,wBAAwB,cAAc;AAAA,MACtC,mBAAmB,cAAc;AAAA;AAAA,MAGjC;AAAA,IACF;AAIA,QAAI,kBAAkB,kBAAkB;AAGtC,UACE,cAAc,oBAAoB,UAClC,CAAC,kBAAkB,gCACnB;AACA,YAAI,SAAS,eAAe,MAAM;AAChC,mBAAS,cAAc;AACvB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AACA,YAAI,SAAS,SAAS,MAAM;AAC1B,mBAAS,QAAQ;AACjB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AACA,YAAI,SAAS,YAAY,MAAM;AAC7B,mBAAS,WAAW;AACpB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF;AAEA,UAAI,SAAS,qBAAqB,MAAM;AACtC,iBAAS,oBAAoB;AAC7B,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AACA,UAAI,SAAS,oBAAoB,MAAM;AACrC,iBAAS,mBAAmB;AAC5B,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AACA,UAAI,SAAS,cAAc,MAAM;AAC/B,iBAAS,aAAa;AACtB,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAEA,UAAI,SAAS,gBAAgB,MAAM;AACjC,iBAAS,eAAe;AACxB,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAGA,UAAI,SAAS,cAAc,MAAM;AAC/B,YAAI,SAAS,yBAAyB,MAAM;AAC1C,mBAAS,wBAAwB,SAAS;AAAA,QAC5C;AACA,iBAAS,aAAa;AAAA,MACxB;AAAA,IACF,WACE,KAAK,QAAQ,WAAW,uBAAuB,KAC/C,KAAK,QAAQ,WAAW,4BAA4B,GACpD;AACA,UAAI,SAAS,eAAe,MAAM;AAChC,iBAAS,cAAc;AACvB,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF;AAGA,QACE,cAAc,gBAAgB,UAC9B,CAAC,kBAAkB,wBACnB;AACA,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AACD,eAAS,eAAe;AAAA,IAC1B;AAGA,QACE,cAAc,gBAAgB,cAC9B,CAAC,kBAAkB,4BACnB;AACA,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AACD,eAAS,eAAe;AAAA,IAC1B;AAEA,UAAM;AAAA,MACJ,OAAOE;AAAA,MACP,YAAY;AAAA,MACZ;AAAA,IACF,IAAI,iBAAiB;AAAA,MACnB;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,OAAOA;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA,UAAU,CAAC,GAAG,UAAU,GAAG,YAAY;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SAC6D;AAlTjE;AAmTI,UAAM,EAAE,MAAM,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAE3D,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,IAAI,MAAM,cAAc;AAAA,MACtB,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,SAAS,SAAS,QAAQ,CAAC;AACjC,UAAM,UAAyC,CAAC;AAGhD,UAAM,OAAO,OAAO,QAAQ;AAC5B,QAAI,QAAQ,QAAQ,KAAK,SAAS,GAAG;AACnC,cAAQ,KAAK,EAAE,MAAM,QAAQ,KAAK,CAAC;AAAA,IACrC;AAGA,eAAW,aAAY,YAAO,QAAQ,eAAf,YAA6B,CAAC,GAAG;AACtD,cAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,aAAY,cAAS,OAAT,YAAe,WAAW;AAAA,QACtC,UAAU,SAAS,SAAS;AAAA,QAC5B,OAAO,SAAS,SAAS;AAAA,MAC3B,CAAC;AAAA,IACH;AAGA,eAAW,eAAc,YAAO,QAAQ,gBAAf,YAA8B,CAAC,GAAG;AACzD,cAAQ,KAAK;AAAA,QACX,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,IAAI,WAAW;AAAA,QACf,KAAK,WAAW;AAAA,QAChB,OAAO,WAAW;AAAA,MACpB,CAAC;AAAA,IACH;AAGA,UAAM,0BAAyB,cAAS,UAAT,mBAAgB;AAC/C,UAAM,sBAAqB,cAAS,UAAT,mBAAgB;AAC3C,UAAM,mBAA6C,EAAE,QAAQ,CAAC,EAAE;AAChE,SAAI,iEAAwB,+BAA8B,MAAM;AAC9D,uBAAiB,OAAO,2BACtB,iEAAwB;AAAA,IAC5B;AACA,SAAI,iEAAwB,+BAA8B,MAAM;AAC9D,uBAAiB,OAAO,2BACtB,iEAAwB;AAAA,IAC5B;AACA,UAAI,YAAO,aAAP,mBAAiB,YAAW,MAAM;AACpC,uBAAiB,OAAO,WAAW,OAAO,SAAS;AAAA,IACrD;AAEA,WAAO;AAAA,MACL;AAAA,MACA,cAAc,sBAAsB,OAAO,aAAa;AAAA,MACxD,OAAO;AAAA,QACL,cAAa,oBAAS,UAAT,mBAAgB,kBAAhB,YAAiC;AAAA,QAC9C,eAAc,oBAAS,UAAT,mBAAgB,sBAAhB,YAAqC;AAAA,QACnD,cAAa,oBAAS,UAAT,mBAAgB,iBAAhB,YAAgC;AAAA,QAC7C,kBAAiB,sEAAwB,qBAAxB,YAA4C;AAAA,QAC7D,oBAAmB,8DAAoB,kBAApB,YAAqC;AAAA,MAC1D;AAAA,MACA,SAAS,EAAE,KAAK;AAAA,MAChB,UAAU;AAAA,QACR,GAAG,oBAAoB,QAAQ;AAAA,QAC/B,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SACJ,SAC2D;AAC3D,UAAM,EAAE,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAErD,UAAM,OAAO;AAAA,MACX,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,gBAAgB;AAAA,QACd,eAAe;AAAA,MACjB;AAAA,IACF;AAEA,UAAM,EAAE,iBAAiB,OAAO,SAAS,IAAI,MAAM,cAAc;AAAA,MAC/D,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,YAQD,CAAC;AAEN,QAAI,eAA4C;AAChD,UAAM,QAA8B;AAAA,MAClC,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AACA,QAAI,oBAAoB;AACxB,QAAI,eAAe;AAEnB,UAAM,mBAA6C,EAAE,QAAQ,CAAC,EAAE;AAEhE,WAAO;AAAA,MACL,QAAQ,SAAS;AAAA,QACf,IAAI,gBAGF;AAAA,UACA,MAAM,YAAY;AAChB,uBAAW,QAAQ,EAAE,MAAM,gBAAgB,SAAS,CAAC;AAAA,UACvD;AAAA,UAEA,UAAU,OAAO,YAAY;AAtcvC;AAucY,gBAAI,QAAQ,kBAAkB;AAC5B,yBAAW,QAAQ,EAAE,MAAM,OAAO,UAAU,MAAM,SAAS,CAAC;AAAA,YAC9D;AAGA,gBAAI,CAAC,MAAM,SAAS;AAClB,6BAAe;AACf,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AACxD;AAAA,YACF;AAEA,kBAAM,QAAQ,MAAM;AAGpB,gBAAI,WAAW,OAAO;AACpB,6BAAe;AACf,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AACxD;AAAA,YACF;AAKA,gBAAI,CAAC,mBAAmB;AACtB,oBAAM,WAAW,oBAAoB,KAAK;AAC1C,kBAAI,OAAO,OAAO,QAAQ,EAAE,KAAK,OAAO,GAAG;AACzC,oCAAoB;AACpB,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,GAAG,oBAAoB,KAAK;AAAA,gBAC9B,CAAC;AAAA,cACH;AAAA,YACF;AAEA,gBAAI,MAAM,SAAS,MAAM;AACvB,oBAAM,eAAc,WAAM,MAAM,kBAAZ,YAA6B;AACjD,oBAAM,gBAAe,WAAM,MAAM,sBAAZ,YAAiC;AACtD,oBAAM,eAAc,WAAM,MAAM,iBAAZ,YAA4B;AAChD,oBAAM,mBACJ,iBAAM,MAAM,8BAAZ,mBAAuC,qBAAvC,YACA;AACF,oBAAM,qBACJ,iBAAM,MAAM,0BAAZ,mBAAmC,kBAAnC,YAAoD;AAEtD,oBACE,WAAM,MAAM,8BAAZ,mBACI,+BAA8B,MAClC;AACA,iCAAiB,OAAO,4BACtB,WAAM,MAAM,8BAAZ,mBAAuC;AAAA,cAC3C;AACA,oBACE,WAAM,MAAM,8BAAZ,mBACI,+BAA8B,MAClC;AACA,iCAAiB,OAAO,4BACtB,WAAM,MAAM,8BAAZ,mBAAuC;AAAA,cAC3C;AAAA,YACF;AAEA,kBAAM,SAAS,MAAM,QAAQ,CAAC;AAE9B,iBAAI,iCAAQ,kBAAiB,MAAM;AACjC,6BAAe,sBAAsB,OAAO,aAAa;AAAA,YAC3D;AAEA,kBAAI,sCAAQ,aAAR,mBAAkB,YAAW,MAAM;AACrC,+BAAiB,OAAO,WAAW,OAAO,SAAS;AAAA,YACrD;AAEA,iBAAI,iCAAQ,UAAS,MAAM;AACzB;AAAA,YACF;AAEA,kBAAM,QAAQ,OAAO;AAErB,gBAAI,MAAM,WAAW,MAAM;AACzB,kBAAI,CAAC,cAAc;AACjB,2BAAW,QAAQ,EAAE,MAAM,cAAc,IAAI,IAAI,CAAC;AAClD,+BAAe;AAAA,cACjB;AAEA,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,IAAI;AAAA,gBACJ,OAAO,MAAM;AAAA,cACf,CAAC;AAAA,YACH;AAEA,gBAAI,MAAM,cAAc,MAAM;AAC5B,yBAAW,iBAAiB,MAAM,YAAY;AAC5C,sBAAM,QAAQ,cAAc;AAG5B,oBAAI,UAAU,KAAK,KAAK,MAAM;AAC5B,sBAAI,cAAc,SAAS,YAAY;AACrC,0BAAM,IAAI,yBAAyB;AAAA,sBACjC,MAAM;AAAA,sBACN,SAAS;AAAA,oBACX,CAAC;AAAA,kBACH;AAEA,sBAAI,cAAc,MAAM,MAAM;AAC5B,0BAAM,IAAI,yBAAyB;AAAA,sBACjC,MAAM;AAAA,sBACN,SAAS;AAAA,oBACX,CAAC;AAAA,kBACH;AAEA,wBAAI,mBAAc,aAAd,mBAAwB,SAAQ,MAAM;AACxC,0BAAM,IAAI,yBAAyB;AAAA,sBACjC,MAAM;AAAA,sBACN,SAAS;AAAA,oBACX,CAAC;AAAA,kBACH;AAEA,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,IAAI,cAAc;AAAA,oBAClB,UAAU,cAAc,SAAS;AAAA,kBACnC,CAAC;AAED,4BAAU,KAAK,IAAI;AAAA,oBACjB,IAAI,cAAc;AAAA,oBAClB,MAAM;AAAA,oBACN,UAAU;AAAA,sBACR,MAAM,cAAc,SAAS;AAAA,sBAC7B,YAAW,mBAAc,SAAS,cAAvB,YAAoC;AAAA,oBACjD;AAAA,oBACA,aAAa;AAAA,kBACf;AAEA,wBAAMC,YAAW,UAAU,KAAK;AAEhC,wBACE,KAAAA,UAAS,aAAT,mBAAmB,SAAQ,UAC3B,KAAAA,UAAS,aAAT,mBAAmB,cAAa,MAChC;AAEA,wBAAIA,UAAS,SAAS,UAAU,SAAS,GAAG;AAC1C,iCAAW,QAAQ;AAAA,wBACjB,MAAM;AAAA,wBACN,IAAIA,UAAS;AAAA,wBACb,OAAOA,UAAS,SAAS;AAAA,sBAC3B,CAAC;AAAA,oBACH;AAIA,wBAAI,eAAeA,UAAS,SAAS,SAAS,GAAG;AAC/C,iCAAW,QAAQ;AAAA,wBACjB,MAAM;AAAA,wBACN,IAAIA,UAAS;AAAA,sBACf,CAAC;AAED,iCAAW,QAAQ;AAAA,wBACjB,MAAM;AAAA,wBACN,aAAY,KAAAA,UAAS,OAAT,YAAe,WAAW;AAAA,wBACtC,UAAUA,UAAS,SAAS;AAAA,wBAC5B,OAAOA,UAAS,SAAS;AAAA,sBAC3B,CAAC;AACD,sBAAAA,UAAS,cAAc;AAAA,oBACzB;AAAA,kBACF;AAEA;AAAA,gBACF;AAGA,sBAAM,WAAW,UAAU,KAAK;AAEhC,oBAAI,SAAS,aAAa;AACxB;AAAA,gBACF;AAEA,sBAAI,mBAAc,aAAd,mBAAwB,cAAa,MAAM;AAC7C,2BAAS,SAAU,cACjB,yBAAc,aAAd,mBAAwB,cAAxB,YAAqC;AAAA,gBACzC;AAGA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,SAAS;AAAA,kBACb,QAAO,mBAAc,SAAS,cAAvB,YAAoC;AAAA,gBAC7C,CAAC;AAGD,sBACE,cAAS,aAAT,mBAAmB,SAAQ,UAC3B,cAAS,aAAT,mBAAmB,cAAa,QAChC,eAAe,SAAS,SAAS,SAAS,GAC1C;AACA,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,IAAI,SAAS;AAAA,kBACf,CAAC;AAED,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,aAAY,cAAS,OAAT,YAAe,WAAW;AAAA,oBACtC,UAAU,SAAS,SAAS;AAAA,oBAC5B,OAAO,SAAS,SAAS;AAAA,kBAC3B,CAAC;AACD,2BAAS,cAAc;AAAA,gBACzB;AAAA,cACF;AAAA,YACF;AAGA,gBAAI,MAAM,eAAe,MAAM;AAC7B,yBAAW,cAAc,MAAM,aAAa;AAC1C,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,IAAI,WAAW;AAAA,kBACf,KAAK,WAAW;AAAA,kBAChB,OAAO,WAAW;AAAA,gBACpB,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,UAEA,MAAM,YAAY;AAChB,gBAAI,cAAc;AAChB,yBAAW,QAAQ,EAAE,MAAM,YAAY,IAAI,IAAI,CAAC;AAAA,YAClD;AAEA,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA,GAAI,oBAAoB,OAAO,EAAE,iBAAiB,IAAI,CAAC;AAAA,YACzD,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,SAAS,EAAE,KAAK;AAAA,MAChB,UAAU,EAAE,SAAS,gBAAgB;AAAA,IACvC;AAAA,EACF;AACF;;;AShrBA;AAAA,EAGE,kBAAAC;AAAA,EACA,oCAAAC;AAAA,EACA,6BAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;;;AChBP;AAAA,EACE;AAAA,EAEA,iCAAAC;AAAA,OACK;AAEA,SAAS,gCAAgC;AAAA,EAC9C;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AACd,GAOE;AAEA,MAAI,OAAO;AAGX,MAAI,OAAO,CAAC,EAAE,SAAS,UAAU;AAC/B,YAAQ,GAAG,OAAO,CAAC,EAAE,OAAO;AAAA;AAAA;AAC5B,aAAS,OAAO,MAAM,CAAC;AAAA,EACzB;AAEA,aAAW,EAAE,MAAM,QAAQ,KAAK,QAAQ;AACtC,YAAQ,MAAM;AAAA,MACZ,KAAK,UAAU;AACb,cAAM,IAAI,mBAAmB;AAAA,UAC3B,SAAS;AAAA,UACT;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MAEA,KAAK,QAAQ;AACX,cAAM,cAAc,QACjB,IAAI,UAAQ;AACX,kBAAQ,KAAK,MAAM;AAAA,YACjB,KAAK,QAAQ;AACX,qBAAO,KAAK;AAAA,YACd;AAAA,UACF;AAAA,QACF,CAAC,EACA,OAAO,OAAO,EACd,KAAK,EAAE;AAEV,gBAAQ,GAAG,IAAI;AAAA,EAAM,WAAW;AAAA;AAAA;AAChC;AAAA,MACF;AAAA,MAEA,KAAK,aAAa;AAChB,cAAM,mBAAmB,QACtB,IAAI,UAAQ;AACX,kBAAQ,KAAK,MAAM;AAAA,YACjB,KAAK,QAAQ;AACX,qBAAO,KAAK;AAAA,YACd;AAAA,YACA,KAAK,aAAa;AAChB,oBAAM,IAAIA,+BAA8B;AAAA,gBACtC,eAAe;AAAA,cACjB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF,CAAC,EACA,KAAK,EAAE;AAEV,gBAAQ,GAAG,SAAS;AAAA,EAAM,gBAAgB;AAAA;AAAA;AAC1C;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AACX,cAAM,IAAIA,+BAA8B;AAAA,UACtC,eAAe;AAAA,QACjB,CAAC;AAAA,MACH;AAAA,MAEA,SAAS;AACP,cAAM,mBAA0B;AAChC,cAAM,IAAI,MAAM,qBAAqB,gBAAgB,EAAE;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAGA,UAAQ,GAAG,SAAS;AAAA;AAEpB,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,eAAe,CAAC;AAAA,EAAK,IAAI,GAAG;AAAA,EAC9B;AACF;;;AC5FO,SAASC,qBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO;AAAA,IACL,IAAI,kBAAM;AAAA,IACV,SAAS,wBAAS;AAAA,IAClB,WAAW,WAAW,OAAO,IAAI,KAAK,UAAU,GAAI,IAAI;AAAA,EAC1D;AACF;;;ACZO,SAASC,uBACd,cAC6B;AAC7B,UAAQ,cAAc;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;;;AClBA,SAAS,KAAAC,UAAS;AAElB,SAAsB,cAAAC,aAAY,aAAAC,kBAAiB;AAI5C,IAAM,iCAAiCD;AAAA,EAAW,MACvDC;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACvB,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC5B,OAAOA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC1B,SAASA,GAAE;AAAA,QACTA,GAAE,OAAO;AAAA,UACP,MAAMA,GAAE,OAAO;AAAA,UACf,eAAeA,GAAE,OAAO;AAAA,UACxB,UAAUA,GACP,OAAO;AAAA,YACN,QAAQA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,YAC1B,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,YAClC,cAAcA,GAAE,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,CAAC,EAAE,QAAQ;AAAA,UAClE,CAAC,EACA,QAAQ;AAAA,QACb,CAAC;AAAA,MACH;AAAA,MACA,OAAOA,GACJ,OAAO;AAAA,QACN,eAAeA,GAAE,OAAO;AAAA,QACxB,mBAAmBA,GAAE,OAAO;AAAA,QAC5B,cAAcA,GAAE,OAAO;AAAA,MACzB,CAAC,EACA,QAAQ;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAIO,IAAM,8BAA8BF;AAAA,EAAW,MACpDC;AAAA,IACEC,GAAE,MAAM;AAAA,MACNA,GAAE,OAAO;AAAA,QACP,IAAIA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACvB,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAC5B,OAAOA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAC1B,SAASA,GAAE;AAAA,UACTA,GAAE,OAAO;AAAA,YACP,MAAMA,GAAE,OAAO;AAAA,YACf,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,YAClC,OAAOA,GAAE,OAAO;AAAA,YAChB,UAAUA,GACP,OAAO;AAAA,cACN,QAAQA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,cAC1B,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,cAClC,cAAcA,GACX,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,CAAC,EACtC,QAAQ;AAAA,YACb,CAAC,EACA,QAAQ;AAAA,UACb,CAAC;AAAA,QACH;AAAA,QACA,OAAOA,GACJ,OAAO;AAAA,UACN,eAAeA,GAAE,OAAO;AAAA,UACxB,mBAAmBA,GAAE,OAAO;AAAA,UAC5B,cAAcA,GAAE,OAAO;AAAA,QACzB,CAAC,EACA,QAAQ;AAAA,MACb,CAAC;AAAA,MACD;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACxEA,SAAsB,cAAAC,aAAY,aAAAC,kBAAiB;AACnD,SAAS,KAAAC,UAAS;AAKX,IAAM,kCAAkCF;AAAA,EAAW,MACxDC;AAAA,IACEC,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAIP,MAAMA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgB3B,WAAWA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAKrD,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAM5B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAW1B,UAAUA,GAAE,MAAM,CAACA,GAAE,QAAQ,GAAGA,GAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,IACxD,CAAC;AAAA,EACH;AACF;;;ALfO,IAAM,gCAAN,MAA+D;AAAA,EAWpE,YACE,SACA,QACA;AAbF,SAAS,uBAAuB;AAsBhC,SAAS,gBAA0C;AAAA;AAAA,IAEnD;AAVE,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA,EAVA,IAAY,sBAA8B;AACxC,WAAO,KAAK,OAAO,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK;AAAA,EACjD;AAAA,EAUA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAMA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAiD;AAC/C,UAAM,WAA8B,CAAC;AAGrC,UAAM,gBAAgB;AAAA,MACpB,GAAI,MAAMC,sBAAqB;AAAA,QAC7B,UAAU;AAAA,QACV;AAAA,QACA,QAAQ;AAAA,MACV,CAAC;AAAA,MACD,GAAI,MAAMA,sBAAqB;AAAA,QAC7B,UAAU,KAAK;AAAA,QACf;AAAA,QACA,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,QAAI,+BAAO,QAAQ;AACjB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,QAAQ,CAAC;AAAA,IACzD;AAEA,QAAI,cAAc,MAAM;AACtB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,aAAa,CAAC;AAAA,IAC9D;AAEA,QAAI,kBAAkB,QAAQ,eAAe,SAAS,QAAQ;AAC5D,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,EAAE,QAAQ,kBAAkB,cAAc,IAC9C,gCAAgC,EAAE,OAAO,CAAC;AAE5C,UAAM,OAAO,CAAC,GAAI,wCAAiB,CAAC,GAAI,GAAI,gDAAqB,CAAC,CAAE;AAEpE,WAAO;AAAA,MACL,MAAM;AAAA;AAAA,QAEJ,OAAO,KAAK;AAAA;AAAA,QAGZ,MAAM,cAAc;AAAA,QACpB,YAAY,cAAc;AAAA,QAC1B,WACE,+CAAe,cAAa,OACxB,KACA,+CAAe,cAAa,QAC1B,SACA,+CAAe;AAAA,QACvB,QAAQ,cAAc;AAAA,QACtB,MAAM,cAAc;AAAA;AAAA,QAGpB,YAAY;AAAA,QACZ;AAAA,QACA,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB;AAAA;AAAA,QAGA,QAAQ;AAAA;AAAA,QAGR,MAAM,KAAK,SAAS,IAAI,OAAO;AAAA,MACjC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SAC6D;AA9JjE;AA+JI,UAAM,EAAE,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAErD,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,IAAI,MAAMC,eAAc;AAAA,MACtB,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D,MAAM;AAAA,MACN,uBAAuB;AAAA,MACvB,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,SAAS,SAAS,QAAQ,CAAC;AAEjC,UAAM,mBAA6C,EAAE,QAAQ,CAAC,EAAE;AAEhE,QAAI,OAAO,YAAY,MAAM;AAC3B,uBAAiB,OAAO,WAAW,OAAO;AAAA,IAC5C;AAEA,WAAO;AAAA,MACL,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,KAAK,CAAC;AAAA,MAC7C,OAAO;AAAA,QACL,cAAa,cAAS,UAAT,mBAAgB;AAAA,QAC7B,eAAc,cAAS,UAAT,mBAAgB;AAAA,QAC9B,cAAa,cAAS,UAAT,mBAAgB;AAAA,MAC/B;AAAA,MACA,cAAcC,uBAAsB,OAAO,aAAa;AAAA,MACxD,SAAS,EAAE,MAAM,KAAK;AAAA,MACtB,UAAU;AAAA,QACR,GAAGC,qBAAoB,QAAQ;AAAA,QAC/B,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SACJ,SAC2D;AAC3D,UAAM,EAAE,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAErD,UAAM,OAAO;AAAA,MACX,GAAG;AAAA,MACH,QAAQ;AAAA,MAER,gBAAgB;AAAA,QACd,eAAe;AAAA,MACjB;AAAA,IACF;AAEA,UAAM,EAAE,iBAAiB,OAAO,SAAS,IAAI,MAAMJ,eAAc;AAAA,MAC/D,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BI;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,QAAI,eAA4C;AAChD,UAAM,mBAA6C,EAAE,QAAQ,CAAC,EAAE;AAChE,UAAM,QAA8B;AAAA,MAClC,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AACA,QAAI,eAAe;AAEnB,WAAO;AAAA,MACL,QAAQ,SAAS;AAAA,QACf,IAAI,gBAGF;AAAA,UACA,MAAM,YAAY;AAChB,uBAAW,QAAQ,EAAE,MAAM,gBAAgB,SAAS,CAAC;AAAA,UACvD;AAAA,UAEA,UAAU,OAAO,YAAY;AAC3B,gBAAI,QAAQ,kBAAkB;AAC5B,yBAAW,QAAQ,EAAE,MAAM,OAAO,UAAU,MAAM,SAAS,CAAC;AAAA,YAC9D;AAGA,gBAAI,CAAC,MAAM,SAAS;AAClB,6BAAe;AACf,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AACxD;AAAA,YACF;AAEA,kBAAM,QAAQ,MAAM;AAGpB,gBAAI,WAAW,OAAO;AACpB,6BAAe;AACf,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AACxD;AAAA,YACF;AAEA,gBAAI,cAAc;AAChB,6BAAe;AAEf,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,GAAGD,qBAAoB,KAAK;AAAA,cAC9B,CAAC;AAED,yBAAW,QAAQ,EAAE,MAAM,cAAc,IAAI,IAAI,CAAC;AAAA,YACpD;AAEA,gBAAI,MAAM,SAAS,MAAM;AACvB,oBAAM,cAAc,MAAM,MAAM;AAChC,oBAAM,eAAe,MAAM,MAAM;AACjC,oBAAM,cAAc,MAAM,MAAM;AAAA,YAClC;AAEA,kBAAM,SAAS,MAAM,QAAQ,CAAC;AAE9B,iBAAI,iCAAQ,kBAAiB,MAAM;AACjC,6BAAeD,uBAAsB,OAAO,aAAa;AAAA,YAC3D;AAEA,iBAAI,iCAAQ,aAAY,MAAM;AAC5B,+BAAiB,OAAO,WAAW,OAAO;AAAA,YAC5C;AAEA,iBAAI,iCAAQ,SAAQ,QAAQ,OAAO,KAAK,SAAS,GAAG;AAClD,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,IAAI;AAAA,gBACJ,OAAO,OAAO;AAAA,cAChB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UAEA,MAAM,YAAY;AAChB,gBAAI,CAAC,cAAc;AACjB,yBAAW,QAAQ,EAAE,MAAM,YAAY,IAAI,IAAI,CAAC;AAAA,YAClD;AAEA,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,SAAS,EAAE,KAAK;AAAA,MAChB,UAAU,EAAE,SAAS,gBAAgB;AAAA,IACvC;AAAA,EACF;AACF;;;AM1UA;AAAA,EAEE;AAAA,OACK;AACP;AAAA,EACE,kBAAAG;AAAA,EACA,6BAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;;;ACTP,SAAsB,cAAAC,aAAY,aAAAC,kBAAiB;AACnD,SAAS,KAAAC,UAAS;AAQX,IAAM,iCAAiCF;AAAA,EAAW,MACvDC;AAAA,IACEC,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKP,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAMhC,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,CAAC;AAAA,EACH;AACF;;;ACzBA,SAAS,cAAAC,aAAY,aAAAC,kBAAiB;AACtC,SAAS,KAAAC,UAAS;AAIX,IAAM,oCAAoCF;AAAA,EAAW,MAC1DC;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,MAAMA,GAAE,MAAMA,GAAE,OAAO,EAAE,WAAWA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAAA,MAC1D,OAAOA,GAAE,OAAO,EAAE,eAAeA,GAAE,OAAO,EAAE,CAAC,EAAE,QAAQ;AAAA,IACzD,CAAC;AAAA,EACH;AACF;;;AFMO,IAAM,uBAAN,MAAuD;AAAA,EAY5D,YAAY,SAAiC,QAAsB;AAXnE,SAAS,uBAAuB;AAEhC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AAS/B,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA,EAPA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AA1CJ;AA2CI,QAAI,OAAO,SAAS,KAAK,sBAAsB;AAC7C,YAAM,IAAI,mCAAmC;AAAA,QAC3C,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,QACd,sBAAsB,KAAK;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH;AAGA,UAAM,iBACH,WAAMC,sBAAqB;AAAA,MAC1B,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC,MAJA,YAIM,CAAC;AAEV,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IACF,IAAI,MAAMC,eAAc;AAAA,MACtB,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ,OAAO,KAAK;AAAA,QACZ,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,YAAY,cAAc;AAAA,QAC1B,MAAM,cAAc;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,UAAU,CAAC;AAAA,MACX,YAAY,SAAS,KAAK,IAAI,UAAQ,KAAK,SAAS;AAAA,MACpD,OAAO,SAAS,QACZ,EAAE,QAAQ,SAAS,MAAM,cAAc,IACvC;AAAA,MACJ,UAAU,EAAE,SAAS,iBAAiB,MAAM,SAAS;AAAA,IACvD;AAAA,EACF;AACF;;;AG7FA;AAAA,EACE,kBAAAC;AAAA,EACA,6BAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;;;ACLP,SAAS,cAAAC,aAAY,aAAAC,kBAAiB;AACtC,SAAS,KAAAC,UAAS;AAIX,IAAM,4BAA4BF;AAAA,EAAW,MAClDC;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC5B,MAAMA,GAAE;AAAA,QACNA,GAAE,OAAO;AAAA,UACP,UAAUA,GAAE,OAAO;AAAA,UACnB,gBAAgBA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACrC,CAAC;AAAA,MACH;AAAA,MACA,YAAYA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC/B,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAClC,MAAMA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACzB,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC5B,OAAOA,GACJ,OAAO;AAAA,QACN,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACjC,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAClC,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACjC,sBAAsBA,GACnB,OAAO;AAAA,UACN,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,UACjC,aAAaA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAClC,CAAC,EACA,QAAQ;AAAA,MACb,CAAC,EACA,QAAQ;AAAA,IACb,CAAC;AAAA,EACH;AACF;;;AC1BO,IAAM,wBAA4D;AAAA,EACvE,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AACtB;AAEO,IAAM,2BAA2B,oBAAI,IAAI;AAAA,EAC9C;AAAA,EACA;AACF,CAAC;;;AFGM,IAAM,mBAAN,MAA+C;AAAA,EAWpD,YACW,SACQ,QACjB;AAFS;AACQ;AAZnB,SAAS,uBAAuB;AAAA,EAa7B;AAAA,EAXH,IAAI,mBAA2B;AAxBjC;AAyBI,YAAO,2BAAsB,KAAK,OAAO,MAAlC,YAAuC;AAAA,EAChD;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AAhDJ;AAiDI,UAAM,WAAmC,CAAC;AAE1C,QAAI,eAAe,MAAM;AACvB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI,MAAMC,eAAc;AAAA,MAC/D,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ,OAAO,KAAK;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI,qBAAgB,WAAhB,YAA0B,CAAC;AAAA,QAC/B,GAAI,CAAC,yBAAyB,IAAI,KAAK,OAAO,IAC1C,EAAE,iBAAiB,WAAW,IAC9B,CAAC;AAAA,MACP;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,QAAQ,SAAS,KAAK,IAAI,UAAQ,KAAK,QAAQ;AAAA,MAC/C;AAAA,MACA,OACE,SAAS,SAAS,OACd;AAAA,QACE,cAAa,cAAS,MAAM,iBAAf,YAA+B;AAAA,QAC5C,eAAc,cAAS,MAAM,kBAAf,YAAgC;AAAA,QAC9C,cAAa,cAAS,MAAM,iBAAf,YAA+B;AAAA,MAC9C,IACA;AAAA,MACN,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAQ;AAAA,UACN,QAAQ,SAAS,KAAK,IAAI,UAAK;AA3GzC,gBAAAC,KAAAC,KAAAC,KAAAC,KAAAC;AA2G6C;AAAA,cACjC,GAAI,KAAK,iBACL,EAAE,eAAe,KAAK,eAAe,IACrC,CAAC;AAAA,cACL,UAASJ,MAAA,SAAS,YAAT,OAAAA,MAAoB;AAAA,cAC7B,OAAMC,MAAA,SAAS,SAAT,OAAAA,MAAiB;AAAA,cACvB,UAASC,MAAA,SAAS,YAAT,OAAAA,MAAoB;AAAA,cAC7B,aAAYC,MAAA,SAAS,eAAT,OAAAA,MAAuB;AAAA,cACnC,eAAcC,MAAA,SAAS,kBAAT,OAAAA,MAA0B;AAAA,YAC1C;AAAA,WAAE;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AGzHA;AAAA,EACE;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,UAAS;AAQX,IAAM,wBAAwBF;AAAA,EAAW,MAC9CC;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,QAAQA,GAAE,OAAO;AAAA,MACjB,WAAWA,GAAE,mBAAmB,QAAQ;AAAA,QACtCA,GAAE,OAAO;AAAA,UACP,MAAMA,GAAE,QAAQ,aAAa;AAAA,UAC7B,MAAMA,GAAE,OAAO;AAAA,UACf,MAAMA,GAAE,OAAO;AAAA,QACjB,CAAC;AAAA,QACDA,GAAE,OAAO;AAAA,UACP,MAAMA,GAAE,QAAQ,aAAa;AAAA,UAC7B,MAAMA,GAAE,OAAO;AAAA,QACjB,CAAC;AAAA,QACDA,GAAE,OAAO;AAAA,UACP,MAAMA,GAAE,QAAQ,aAAa;AAAA,UAC7B,MAAMA,GAAE,OAAO;AAAA,UACf,MAAMA,GAAE,OAAO;AAAA,QACjB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAKO,IAAM,yBAAyBF;AAAA,EAAW,MAC/CC;AAAA,IACEC,GAAE,OAAO;AAAA,MACP,QAAQA,GAAE,KAAK,CAAC,aAAa,QAAQ,CAAC;AAAA,MACtC,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,CAAC;AAAA,EACH;AACF;AAMO,IAAM,uBAAuBF,YAAW,MAAMC,WAAUC,GAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AA+CrE,IAAM,wBAAwB,0CA4BnC;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAQM,IAAM,aAAa;;;AC5I1B;AAAA,EACE,6CAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,6BAA6BF;AAAA,EAAW,MACnDC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,MAAMA,IAAE,OAAO,EAAE,QAAQ;AAAA,MACzB,aAAaA,IAAE,OAAO;AAAA,IACxB,CAAC;AAAA,EACH;AACF;AAEO,IAAM,8BAA8BF;AAAA,EAAW,MACpDC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,SAASA,IACN;AAAA,QACCA,IAAE,mBAAmB,QAAQ;AAAA,UAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,UACtDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,QACxD,CAAC;AAAA,MACH,EACC,QAAQ;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAEO,IAAM,4BAA4BF;AAAA,EAAW,MAClDC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,WAAWA,IACR,MAAM;AAAA,QACLA,IAAE,OAAO;AAAA,QACTA,IAAE,OAAO;AAAA,UACP,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QACxC,CAAC;AAAA,MACH,CAAC,EACA,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAWO,IAAM,6BACXH,2CAqCE;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAEI,IAAM,kBAAkB,CAC7B,OAA4B,CAAC,MAC1B;AACH,SAAO,2BAA2B,IAAI;AACxC;;;ACvGA;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAMlB,IAAM,yBAAyBA,IAAE,OAAO;AAAA,EACtC,KAAKA,IAAE,OAAO;AAAA,EACd,MAAMA,IAAE,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,KAAK,CAAC;AAAA,EAChE,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,GAAGA,IAAE,QAAQ,GAAGA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,IAAM,uBAAuCA,IAAE,OAAO;AAAA,EACpD,MAAMA,IAAE,KAAK,CAAC,OAAO,IAAI,CAAC;AAAA,EAC1B,SAASA,IAAE;AAAA,IACTA,IAAE,MAAM,CAAC,wBAAwBA,IAAE,KAAK,MAAM,oBAAoB,CAAC,CAAC;AAAA,EACtE;AACF,CAAC;AAEM,IAAM,uBAAuBF;AAAA,EAAW,MAC7CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,gBAAgBA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,MAClC,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,MACnC,SAASA,IACN,OAAO;AAAA,QACN,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC5B,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,MACtC,CAAC,EACA,SAAS;AAAA,MACZ,SAASA,IACN,MAAM,CAAC,wBAAwB,oBAAoB,CAAC,EACpD,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,yBAAyBF;AAAA,EAAW,MAC/CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,MAC3B,SAASA,IACN;AAAA,QACCA,IAAE,OAAO;AAAA,UACP,YAAYA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC;AAAA,UAC5C,QAAQA,IAAE,OAAO;AAAA,UACjB,UAAUA,IAAE,OAAO;AAAA,UACnB,OAAOA,IAAE,OAAO;AAAA,UAChB,MAAMA,IAAE,OAAO;AAAA,QACjB,CAAC;AAAA,MACH,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,aAAaH,2CA+ExB;AAAA,EACA,IAAI;AAAA,EACJ,aAAaG,IAAE,OAAO,CAAC,CAAC;AAAA,EACxB,cAAc;AAChB,CAAC;;;AChJD;AAAA,EACE,6CAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,4BAA4BF;AAAA,EAAW,MAClDC;AAAA,IACEC,IACG,OAAO;AAAA,MACN,YAAYA,IAAE,KAAK,CAAC,QAAQ,UAAU,aAAa,CAAC,EAAE,SAAS;AAAA,MAC/D,eAAeA,IAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,MAChD,gBAAgBA,IACb,OAAO;AAAA,QACN,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC5B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,SAAS;AAAA,MACZ,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,YAAYA,IAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA,MACtC,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,MAC7D,cAAcA,IAAE,KAAK,CAAC,OAAO,QAAQ,MAAM,CAAC,EAAE,SAAS;AAAA,MACvD,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,MACvD,SAASA,IAAE,KAAK,CAAC,QAAQ,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,MAC5D,MAAMA,IACH,KAAK,CAAC,aAAa,aAAa,aAAa,MAAM,CAAC,EACpD,SAAS;AAAA,IACd,CAAC,EACA,OAAO;AAAA,EACZ;AACF;AAEA,IAAM,6BAA6BF,aAAW,MAAMC,YAAUC,IAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpE,IAAM,8BAA8BF;AAAA,EAAW,MACpDC,YAAUC,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC,CAAC;AAC5C;AAqEA,IAAM,6BAA6BH,2CASjC;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAEM,IAAM,kBAAkB,CAC7B,OAA4B,CAAC,MAC1B;AACH,SAAO,2BAA2B,IAAI;AACxC;;;AC7HA;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,wBAAwBF;AAAA,EAAW,MAC9CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,QAAQA,IAAE,OAAO;AAAA,QACf,MAAMA,IAAE,QAAQ,MAAM;AAAA,QACtB,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,QAC3B,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC/B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC1B,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,QACtC,KAAKA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACjD,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,yBAAyBF;AAAA,EAAW,MAC/CC,YAAUC,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC,CAAC;AAC5C;AAEO,IAAM,aAAaH,2CAyCxB;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;;;ACvED;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,mBAAmBF;AAAA,EAAW,MACzCC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,QAAQA,IAAE,OAAO;AAAA,QACf,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,QAC5B,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC/B,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,MACvC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,oBAAoBF;AAAA,EAAW,MAC1CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,QAAQA,IAAE;AAAA,QACRA,IAAE,OAAO;AAAA,UACP,QAAQA,IAAE,OAAO;AAAA,UACjB,QAAQA,IAAE,OAAO;AAAA,UACjB,SAASA,IAAE,mBAAmB,QAAQ;AAAA,YACpCA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,SAAS,EAAE,CAAC;AAAA,YACvCA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,UAAUA,IAAE,OAAO,EAAE,CAAC;AAAA,UAC5D,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,IAAM,QAAQH,2CA4CnB;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;;;ACpFD;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,sBAAsBF;AAAA,EAAW,MAC5CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACxC,SAASA,IACN,OAAO,EAAE,gBAAgBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EACzD,SAAS;AAAA,MACZ,mBAAmBA,IAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,MAC9D,cAAcA,IACX,OAAO;AAAA,QACN,MAAMA,IAAE,QAAQ,aAAa;AAAA,QAC7B,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC1B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC5B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEA,IAAM,uBAAuBF,aAAW,MAAMC,YAAUC,IAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAE9D,IAAM,wBAAwBF;AAAA,EAAW,MAC9CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,QAAQA,IAAE,mBAAmB,QAAQ;AAAA,QACnCA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,UACxB,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,CAAC;AAAA,QACDA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,UAAU;AAAA,UAC1B,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC1B,CAAC;AAAA,QACDA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,MAAM;AAAA,UACtB,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,UACxB,SAASA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACH,CAAC;AAAA,MACD,SAASA,IACN;AAAA,QACCA,IAAE,mBAAmB,QAAQ;AAAA,UAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,UACpDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,QACvD,CAAC;AAAA,MACH,EACC,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,uBAAuBH,2CA8GlC;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAEM,IAAM,YAAY,CACvB,OAAmD,CAAC,MACjD,qBAAqB,IAAI;;;AClL9B;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAEX,IAAM,6BAA6BF;AAAA,EAAW,MACnDC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,mBAAmBA,IAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,MAC9D,cAAcA,IACX,OAAO;AAAA,QACN,MAAMA,IAAE,QAAQ,aAAa;AAAA,QAC7B,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC1B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC5B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAEO,IAAM,8BAA8BF;AAAA,EAAW,MACpDC,YAAUC,IAAE,OAAO,CAAC,CAAC,CAAC;AACxB;AAEA,IAAM,+BAA+BF;AAAA,EAAW,MAC9CC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,QAAQA,IAAE,mBAAmB,QAAQ;AAAA,QACnCA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,UACxB,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,CAAC;AAAA,QACDA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,UAAU;AAAA,UAC1B,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC1B,CAAC;AAAA,QACDA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,QAAQ,MAAM;AAAA,UACtB,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,UACxB,SAASA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,mBAAmBH,2CAoF9B;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;;;AC1ID;AAAA,EACE,6CAAAI;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AAEP,SAAS,KAAAC,WAAS;AAElB,IAAM,kBAAwCA,IAAE;AAAA,EAAK,MACnDA,IAAE,MAAM;AAAA,IACNA,IAAE,OAAO;AAAA,IACTA,IAAE,OAAO;AAAA,IACTA,IAAE,QAAQ;AAAA,IACVA,IAAE,KAAK;AAAA,IACPA,IAAE,MAAM,eAAe;AAAA,IACvBA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe;AAAA,EACtC,CAAC;AACH;AAEO,IAAM,gBAAgBF;AAAA,EAAW,MACtCC;AAAA,IACEC,IACG,OAAO;AAAA,MACN,aAAaA,IAAE,OAAO;AAAA,MACtB,cAAcA,IACX,MAAM;AAAA,QACLA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,QAClBA,IAAE,OAAO;AAAA,UACP,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,UAC/B,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC1C,CAAC;AAAA,MACH,CAAC,EACA,SAAS;AAAA,MACZ,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,MACnC,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,MACjC,SAASA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYnD,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,MACvC,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,IACjC,CAAC,EACA;AAAA,MACC,OAAK,EAAE,aAAa,QAAQ,EAAE,eAAe;AAAA,MAC7C;AAAA,IACF;AAAA,EACJ;AACF;AAEA,IAAM,iBAAiBF,aAAW,MAAMC,YAAUC,IAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAExD,IAAM,kBAAkBF;AAAA,EAAW,MACxCC;AAAA,IACEC,IAAE,mBAAmB,QAAQ;AAAA,MAC3BA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,MAAM;AAAA,QACtB,aAAaA,IAAE,OAAO;AAAA,QACtB,MAAMA,IAAE,OAAO;AAAA,QACf,WAAWA,IAAE,OAAO;AAAA,QACpB,QAAQA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QACvC,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAG,eAAe,CAAC,EAAE,SAAS;AAAA,MACzD,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,QAC3B,aAAaA,IAAE,OAAO;AAAA,QACtB,OAAOA,IAAE;AAAA,UACPA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,OAAO;AAAA,YACf,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,YACjC,aAAa;AAAA,YACb,aAAaA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,UAC9D,CAAC;AAAA,QACH;AAAA,QACA,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAG,eAAe,CAAC,EAAE,SAAS;AAAA,MACzD,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,QACjC,aAAaA,IAAE,OAAO;AAAA,QACtB,MAAMA,IAAE,OAAO;AAAA,QACf,WAAWA,IAAE,OAAO;AAAA,QACpB,mBAAmBA,IAAE,OAAO;AAAA,MAC9B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAgCO,IAAM,iBAAiBH,2CA6B5B;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAEM,IAAM,MAAM,CAAC,SAAkB,eAAe,IAAI;;;ACrJlD,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA;AACF;;;ACjHA;AAAA,EACE;AAAA,OAUK;AACP;AAAA,EACE,kBAAAI;AAAA,EACA,oCAAAC;AAAA,EACA,6BAAAC;AAAA,EACA;AAAA,EACA,cAAAC;AAAA,EAEA,wBAAAC;AAAA,EAEA,iBAAAC;AAAA,OACK;;;ACtBP;AAAA,EAIE,iCAAAC;AAAA,OACK;AACP;AAAA,EACE,mBAAAC;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EAEA;AAAA,OACK;AACP,SAAS,KAAAC,WAAS;AAiBlB,SAAS,SAAS,MAAc,UAAuC;AACrE,MAAI,CAAC,SAAU,QAAO;AACtB,SAAO,SAAS,KAAK,YAAU,KAAK,WAAW,MAAM,CAAC;AACxD;AAEA,eAAsB,8BAA8B;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,oBAAoB;AACtB,GAYG;AAxDH;AAyDE,QAAM,QAA8B,CAAC;AACrC,QAAM,WAAmC,CAAC;AAE1C,aAAW,EAAE,MAAM,QAAQ,KAAK,QAAQ;AACtC,YAAQ,MAAM;AAAA,MACZ,KAAK,UAAU;AACb,gBAAQ,mBAAmB;AAAA,UACzB,KAAK,UAAU;AACb,kBAAM,KAAK,EAAE,MAAM,UAAU,QAAQ,CAAC;AACtC;AAAA,UACF;AAAA,UACA,KAAK,aAAa;AAChB,kBAAM,KAAK,EAAE,MAAM,aAAa,QAAQ,CAAC;AACzC;AAAA,UACF;AAAA,UACA,KAAK,UAAU;AACb,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,YACX,CAAC;AACD;AAAA,UACF;AAAA,UACA,SAAS;AACP,kBAAM,mBAA0B;AAChC,kBAAM,IAAI;AAAA,cACR,oCAAoC,gBAAgB;AAAA,YACtD;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AACX,cAAM,KAAK;AAAA,UACT,MAAM;AAAA,UACN,SAAS,QAAQ,IAAI,CAAC,MAAM,UAAU;AA5FhD,gBAAAC,KAAAC,KAAAC;AA6FY,oBAAQ,KAAK,MAAM;AAAA,cACjB,KAAK,QAAQ;AACX,uBAAO,EAAE,MAAM,cAAc,MAAM,KAAK,KAAK;AAAA,cAC/C;AAAA,cACA,KAAK,QAAQ;AACX,oBAAI,KAAK,UAAU,WAAW,QAAQ,GAAG;AACvC,wBAAM,YACJ,KAAK,cAAc,YACf,eACA,KAAK;AAEX,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,GAAI,KAAK,gBAAgB,MACrB,EAAE,WAAW,KAAK,KAAK,SAAS,EAAE,IAClC,OAAO,KAAK,SAAS,YACnB,SAAS,KAAK,MAAM,cAAc,IAClC,EAAE,SAAS,KAAK,KAAK,IACrB;AAAA,sBACE,WAAW,QAAQ,SAAS,WAAWC,iBAAgB,KAAK,IAAI,CAAC;AAAA,oBACnE;AAAA,oBACN,SAAQF,OAAAD,MAAA,KAAK,oBAAL,gBAAAA,IAAsB,WAAtB,gBAAAC,IAA8B;AAAA,kBACxC;AAAA,gBACF,WAAW,KAAK,cAAc,mBAAmB;AAC/C,sBAAI,KAAK,gBAAgB,KAAK;AAC5B,2BAAO;AAAA,sBACL,MAAM;AAAA,sBACN,UAAU,KAAK,KAAK,SAAS;AAAA,oBAC/B;AAAA,kBACF;AACA,yBAAO;AAAA,oBACL,MAAM;AAAA,oBACN,GAAI,OAAO,KAAK,SAAS,YACzB,SAAS,KAAK,MAAM,cAAc,IAC9B,EAAE,SAAS,KAAK,KAAK,IACrB;AAAA,sBACE,WAAUC,MAAA,KAAK,aAAL,OAAAA,MAAiB,QAAQ,KAAK;AAAA,sBACxC,WAAW,+BAA+BC,iBAAgB,KAAK,IAAI,CAAC;AAAA,oBACtE;AAAA,kBACN;AAAA,gBACF,OAAO;AACL,wBAAM,IAAIC,+BAA8B;AAAA,oBACtC,eAAe,wBAAwB,KAAK,SAAS;AAAA,kBACvD,CAAC;AAAA,gBACH;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAED;AAAA,MACF;AAAA,MAEA,KAAK,aAAa;AAChB,cAAM,oBAA8D,CAAC;AAErE,mBAAW,QAAQ,SAAS;AAC1B,kBAAQ,KAAK,MAAM;AAAA,YACjB,KAAK,QAAQ;AACX,oBAAM,MAAK,gBAAK,oBAAL,mBAAsB,WAAtB,mBAA8B;AAKzC,kBAAI,SAAS,MAAM,MAAM;AACvB,sBAAM,KAAK,EAAE,MAAM,kBAAkB,GAAG,CAAC;AACzC;AAAA,cACF;AAEA,oBAAM,KAAK;AAAA,gBACT,MAAM;AAAA,gBACN,SAAS,CAAC,EAAE,MAAM,eAAe,MAAM,KAAK,KAAK,CAAC;AAAA,gBAClD;AAAA,cACF,CAAC;AAED;AAAA,YACF;AAAA,YACA,KAAK,aAAa;AAChB,kBAAI,KAAK,kBAAkB;AACzB;AAAA,cACF;AAEA,oBAAM,MAAK,gBAAK,oBAAL,mBAAsB,WAAtB,mBAA8B;AAKzC,kBAAI,SAAS,MAAM,MAAM;AACvB,sBAAM,KAAK,EAAE,MAAM,kBAAkB,GAAG,CAAC;AACzC;AAAA,cACF;AAEA,oBAAM,mBAAmB,gBAAgB;AAAA,gBACvC,KAAK;AAAA,cACP;AAEA,kBAAI,qBAAqB,qBAAqB,eAAe;AAC3D,sBAAM,cAAc,MAAM,cAAc;AAAA,kBACtC,OAAO,KAAK;AAAA,kBACZ,QAAQ;AAAA,gBACV,CAAC;AACD,sBAAM,KAAK;AAAA,kBACT,MAAM;AAAA,kBACN,SAAS,KAAK;AAAA,kBACd;AAAA,kBACA,QAAQ;AAAA,oBACN,MAAM;AAAA,oBACN,SAAS,YAAY,OAAO;AAAA,oBAC5B,YAAY,YAAY,OAAO;AAAA,oBAC/B,MAAM,YAAY,OAAO;AAAA,oBACzB,mBAAmB,YAAY,OAAO;AAAA,oBACtC,KAAK,YAAY,OAAO;AAAA,kBAC1B;AAAA,gBACF,CAAC;AAED;AAAA,cACF;AAEA,kBAAI,gBAAgB,qBAAqB,SAAS;AAChD,sBAAM,cAAc,MAAM,cAAc;AAAA,kBACtC,OAAO,KAAK;AAAA,kBACZ,QAAQ;AAAA,gBACV,CAAC;AACD,sBAAM,KAAK;AAAA,kBACT,MAAM;AAAA,kBACN,SAAS,KAAK;AAAA,kBACd;AAAA,kBACA,QAAQ;AAAA,kBACR,QAAQ;AAAA,oBACN,UAAU,YAAY,OAAO;AAAA,oBAC7B,YAAY,YAAY,OAAO;AAAA,oBAC/B,mBAAmB,YAAY,OAAO;AAAA,kBACxC;AAAA,gBACF,CAAC;AAED;AAAA,cACF;AAEA,oBAAM,KAAK;AAAA,gBACT,MAAM;AAAA,gBACN,SAAS,KAAK;AAAA,gBACd,MAAM;AAAA,gBACN,WAAW,KAAK,UAAU,KAAK,KAAK;AAAA,gBACpC;AAAA,cACF,CAAC;AACD;AAAA,YACF;AAAA;AAAA,YAGA,KAAK,eAAe;AAClB,kBAAI,OAAO;AAET,sBAAM,KAAK,EAAE,MAAM,kBAAkB,IAAI,KAAK,WAAW,CAAC;AAAA,cAC5D,OAAO;AACL,yBAAS,KAAK;AAAA,kBACZ,MAAM;AAAA,kBACN,SAAS,2BAA2B,KAAK,QAAQ;AAAA,gBACnD,CAAC;AAAA,cACH;AAEA;AAAA,YACF;AAAA,YAEA,KAAK,aAAa;AAChB,oBAAM,kBAAkB,MAAMC,sBAAqB;AAAA,gBACjD,UAAU;AAAA,gBACV,iBAAiB,KAAK;AAAA,gBACtB,QAAQ;AAAA,cACV,CAAC;AAED,oBAAM,cAAc,mDAAiB;AAErC,kBAAI,eAAe,MAAM;AACvB,sBAAM,mBAAmB,kBAAkB,WAAW;AAEtD,oBAAI,OAAO;AAGT,sBAAI,qBAAqB,QAAW;AAClC,0BAAM,KAAK,EAAE,MAAM,kBAAkB,IAAI,YAAY,CAAC;AAGtD,sCAAkB,WAAW,IAAI;AAAA,sBAC/B,MAAM;AAAA,sBACN,IAAI;AAAA,sBACJ,SAAS,CAAC;AAAA,oBACZ;AAAA,kBACF;AAAA,gBACF,OAAO;AACL,wBAAM,eAGD,CAAC;AAEN,sBAAI,KAAK,KAAK,SAAS,GAAG;AACxB,iCAAa,KAAK;AAAA,sBAChB,MAAM;AAAA,sBACN,MAAM,KAAK;AAAA,oBACb,CAAC;AAAA,kBACH,WAAW,qBAAqB,QAAW;AACzC,6BAAS,KAAK;AAAA,sBACZ,MAAM;AAAA,sBACN,SAAS,+FAA+F,KAAK,UAAU,IAAI,CAAC;AAAA,oBAC9H,CAAC;AAAA,kBACH;AAEA,sBAAI,qBAAqB,QAAW;AAClC,sCAAkB,WAAW,IAAI;AAAA,sBAC/B,MAAM;AAAA,sBACN,IAAI;AAAA,sBACJ,mBACE,mDAAiB;AAAA,sBACnB,SAAS;AAAA,oBACX;AACA,0BAAM,KAAK,kBAAkB,WAAW,CAAC;AAAA,kBAC3C,OAAO;AACL,qCAAiB,QAAQ,KAAK,GAAG,YAAY;AAG7C,yBAAI,mDAAiB,8BAA6B,MAAM;AACtD,uCAAiB,oBACf,gBAAgB;AAAA,oBACpB;AAAA,kBACF;AAAA,gBACF;AAAA,cACF,OAAO;AACL,yBAAS,KAAK;AAAA,kBACZ,MAAM;AAAA,kBACN,SAAS,0EAA0E,KAAK,UAAU,IAAI,CAAC;AAAA,gBACzG,CAAC;AAAA,cACH;AACA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ;AACX,mBAAW,QAAQ,SAAS;AAC1B,gBAAM,SAAS,KAAK;AAEpB,gBAAM,mBAAmB,gBAAgB;AAAA,YACvC,KAAK;AAAA,UACP;AAEA,cACE,qBACA,qBAAqB,iBACrB,OAAO,SAAS,QAChB;AACA,kBAAM,eAAe,MAAM,cAAc;AAAA,cACvC,OAAO,OAAO;AAAA,cACd,QAAQ;AAAA,YACV,CAAC;AAED,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,SAAS,KAAK;AAAA,cACd,QAAQ,aAAa;AAAA,YACvB,CAAC;AACD;AAAA,UACF;AAEA,cACE,gBACA,qBAAqB,WACrB,OAAO,SAAS,QAChB;AACA,kBAAM,eAAe,MAAM,cAAc;AAAA,cACvC,OAAO,OAAO;AAAA,cACd,QAAQ;AAAA,YACV,CAAC;AAED,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,SAAS,KAAK;AAAA,cACd,QAAQ,aAAa,OAAO,IAAI,WAAS;AAAA,gBACvC,QAAQ,KAAK;AAAA,gBACb,QAAQ,KAAK;AAAA,gBACb,SACE,KAAK,QAAQ,SAAS,YAClB,EAAE,MAAM,UAAmB,IAC3B;AAAA,kBACE,MAAM;AAAA,kBACN,WAAW,KAAK,QAAQ;AAAA,gBAC1B;AAAA,cACR,EAAE;AAAA,YACJ,CAAC;AACD;AAAA,UACF;AAEA,cACE,qBACA,KAAK,aAAa,iBAClB,OAAO,SAAS,QAChB;AACA,kBAAM,eAAe,MAAM,cAAc;AAAA,cACvC,OAAO,OAAO;AAAA,cACd,QAAQ;AAAA,YACV,CAAC;AAED,kBAAM,KAAK;AAAA,cACT,MAAM;AAAA,cACN,SAAS,KAAK;AAAA,cACd,QAAQ,aAAa;AAAA,cACrB,QAAQ,aAAa;AAAA,YACvB,CAAC;AACD;AAAA,UACF;AAEA,cAAI;AACJ,kBAAQ,OAAO,MAAM;AAAA,YACnB,KAAK;AAAA,YACL,KAAK;AACH,6BAAe,OAAO;AACtB;AAAA,YACF,KAAK;AACH,8BAAe,YAAO,WAAP,YAAiB;AAChC;AAAA,YACF,KAAK;AAAA,YACL,KAAK;AACH,6BAAe,KAAK,UAAU,OAAO,KAAK;AAC1C;AAAA,YACF,KAAK;AACH,6BAAe,OAAO,MACnB,IAAI,UAAQ;AApa7B,oBAAAL;AAqakB,wBAAQ,KAAK,MAAM;AAAA,kBACjB,KAAK,QAAQ;AACX,2BAAO,EAAE,MAAM,cAAuB,MAAM,KAAK,KAAK;AAAA,kBACxD;AAAA,kBAEA,KAAK,cAAc;AACjB,2BAAO;AAAA,sBACL,MAAM;AAAA,sBACN,WAAW,QAAQ,KAAK,SAAS,WAAW,KAAK,IAAI;AAAA,oBACvD;AAAA,kBACF;AAAA,kBAEA,KAAK,aAAa;AAChB,2BAAO;AAAA,sBACL,MAAM;AAAA,sBACN,WAAUA,MAAA,KAAK,aAAL,OAAAA,MAAiB;AAAA,sBAC3B,WAAW,QAAQ,KAAK,SAAS,WAAW,KAAK,IAAI;AAAA,oBACvD;AAAA,kBACF;AAAA,kBAEA,SAAS;AACP,6BAAS,KAAK;AAAA,sBACZ,MAAM;AAAA,sBACN,SAAS,uCAAuC,KAAK,IAAI;AAAA,oBAC3D,CAAC;AACD,2BAAO;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,CAAC,EACA,OAAO,aAAa;AACvB;AAAA,UACJ;AAEA,gBAAM,KAAK;AAAA,YACT,MAAM;AAAA,YACN,SAAS,KAAK;AAAA,YACd,QAAQ;AAAA,UACV,CAAC;AAAA,QACH;AAEA;AAAA,MACF;AAAA,MAEA,SAAS;AACP,cAAM,mBAA0B;AAChC,cAAM,IAAI,MAAM,qBAAqB,gBAAgB,EAAE;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,OAAO,SAAS;AAC3B;AAEA,IAAM,gDAAgDM,IAAE,OAAO;AAAA,EAC7D,QAAQA,IAAE,OAAO,EAAE,QAAQ;AAAA,EAC3B,2BAA2BA,IAAE,OAAO,EAAE,QAAQ;AAChD,CAAC;;;AC3dM,SAAS,8BAA8B;AAAA,EAC5C;AAAA,EACA;AACF,GAIgC;AAC9B,UAAQ,cAAc;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,kBAAkB,eAAe;AAAA,IAC1C,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO,kBAAkB,eAAe;AAAA,EAC5C;AACF;;;ACpBA,SAAsB,cAAAC,cAAY,aAAAC,mBAAiB;AACnD,SAAS,KAAAC,WAAS;AA+TX,IAAM,6BAA6BF;AAAA,EAAW,MACnDC;AAAA,IACEC,IAAE,MAAM;AAAA,MACNA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,4BAA4B;AAAA,QAC5C,SAASA,IAAE,OAAO;AAAA,QAClB,OAAOA,IAAE,OAAO;AAAA,QAChB,UAAUA,IACP;AAAA,UACCA,IAAE,OAAO;AAAA,YACP,OAAOA,IAAE,OAAO;AAAA,YAChB,SAASA,IAAE,OAAO;AAAA,YAClB,cAAcA,IAAE;AAAA,cACdA,IAAE,OAAO;AAAA,gBACP,OAAOA,IAAE,OAAO;AAAA,gBAChB,SAASA,IAAE,OAAO;AAAA,cACpB,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,QACH,EACC,QAAQ;AAAA,MACb,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,KAAK,CAAC,sBAAsB,qBAAqB,CAAC;AAAA,QAC1D,UAAUA,IAAE,OAAO;AAAA,UACjB,oBAAoBA,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC,EAAE,QAAQ;AAAA,UAC7D,OAAOA,IAAE,OAAO;AAAA,YACd,cAAcA,IAAE,OAAO;AAAA,YACvB,sBAAsBA,IACnB,OAAO,EAAE,eAAeA,IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAC9C,QAAQ;AAAA,YACX,eAAeA,IAAE,OAAO;AAAA,YACxB,uBAAuBA,IACpB,OAAO,EAAE,kBAAkBA,IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACjD,QAAQ;AAAA,UACb,CAAC;AAAA,UACD,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,QAClC,UAAUA,IAAE,OAAO;AAAA,UACjB,IAAIA,IAAE,OAAO;AAAA,UACb,YAAYA,IAAE,OAAO;AAAA,UACrB,OAAOA,IAAE,OAAO;AAAA,UAChB,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,4BAA4B;AAAA,QAC5C,cAAcA,IAAE,OAAO;AAAA,QACvB,MAAMA,IAAE,mBAAmB,QAAQ;AAAA,UACjCA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,SAAS;AAAA,YACzB,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,YAC3B,IAAIA,IAAE,OAAO;AAAA,YACb,mBAAmBA,IAAE,OAAO,EAAE,QAAQ;AAAA,UACxC,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,MAAMA,IAAE,OAAO;AAAA,YACf,WAAWA,IAAE,OAAO;AAAA,UACtB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,YACjC,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,YACb,cAAcA,IAAE,OAAO;AAAA,YACvB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,YAC1B,SAASA,IACN;AAAA,cACCA,IAAE,mBAAmB,QAAQ;AAAA,gBAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,gBACtDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,cACxD,CAAC;AAAA,YACH,EACC,SAAS;AAAA,YACZ,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,UAAU;AAAA,YAC1B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,gBAAgB;AAAA,YAChC,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,sBAAsB;AAAA,YACtC,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,WAAW,CAAC;AAAA,YAC3C,WAAWA,IAAE,mBAAmB,QAAQ;AAAA,cACtCA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,YAAY;AAAA,YAC5B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,aAAa,YAAY,CAAC;AAAA,YACzD,QAAQA,IAAE,OAAO;AAAA,cACf,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,YAC9B,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,2BAA2B;AAAA,QAC3C,cAAcA,IAAE,OAAO;AAAA,QACvB,MAAMA,IAAE,mBAAmB,QAAQ;AAAA,UACjCA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,SAAS;AAAA,YACzB,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,YAC3B,IAAIA,IAAE,OAAO;AAAA,YACb,mBAAmBA,IAAE,OAAO,EAAE,QAAQ;AAAA,UACxC,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,MAAMA,IAAE,OAAO;AAAA,YACf,WAAWA,IAAE,OAAO;AAAA,YACpB,QAAQA,IAAE,QAAQ,WAAW;AAAA,UAC/B,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,YACb,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,YAC1B,cAAcA,IAAE,OAAO;AAAA,YACvB,SAASA,IACN;AAAA,cACCA,IAAE,mBAAmB,QAAQ;AAAA,gBAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,gBACtDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,cACxD,CAAC;AAAA,YACH,EACC,SAAS;AAAA,UACd,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,YACjC,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,YACjB,QAAQA,IAAE,mBAAmB,QAAQ;AAAA,cACnCA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,gBACxB,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,gBAC1B,SAASA,IACN;AAAA,kBACCA,IAAE,mBAAmB,QAAQ;AAAA,oBAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,oBACpDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,kBACvD,CAAC;AAAA,gBACH,EACC,QAAQ;AAAA,cACb,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,gBAC3B,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,cAC1B,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,MAAM;AAAA,gBACtB,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,gBACxB,SAASA,IAAE,OAAO,EAAE,QAAQ;AAAA,cAC9B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,YAC3B,SAASA,IACN;AAAA,cACCA,IAAE,OAAO;AAAA,gBACP,YAAYA,IAAE;AAAA,kBACZA,IAAE,OAAO;AAAA,kBACTA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,CAAC;AAAA,gBAC/C;AAAA,gBACA,SAASA,IAAE,OAAO;AAAA,gBAClB,UAAUA,IAAE,OAAO;AAAA,gBACnB,OAAOA,IAAE,OAAO;AAAA,gBAChB,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH,EACC,QAAQ;AAAA,UACb,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,OAAO;AAAA,cACf,MAAMA,IAAE,QAAQ,MAAM;AAAA,cACtB,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,cAC3B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,cAChC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC1B,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,cACvC,KAAKA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,YACjD,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,QAAQ,WAAW;AAAA,UAC/B,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,UAAU;AAAA,YAC1B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,YACjB,WAAWA,IAAE,OAAO;AAAA,YACpB,MAAMA,IAAE,OAAO;AAAA,YACf,cAAcA,IAAE,OAAO;AAAA,YACvB,QAAQA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC3B,OAAOA,IACJ,MAAM;AAAA,cACLA,IAAE,OAAO;AAAA,cACTA,IACG,OAAO;AAAA,gBACN,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,gBAC1B,MAAMA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,gBACjD,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC/B,CAAC,EACA,MAAM;AAAA,YACX,CAAC,EACA,QAAQ;AAAA,UACb,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,gBAAgB;AAAA,YAChC,IAAIA,IAAE,OAAO;AAAA,YACb,cAAcA,IAAE,OAAO;AAAA,YACvB,OAAOA,IAAE;AAAA,cACPA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,OAAO;AAAA,gBACf,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,gBACjC,cAAcA,IAAE,IAAI;AAAA,gBACpB,aAAaA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,cAC1D,CAAC;AAAA,YACH;AAAA,YACA,OAAOA,IACJ,MAAM;AAAA,cACLA,IAAE,OAAO;AAAA,cACTA,IACG,OAAO;AAAA,gBACN,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,gBAC1B,MAAMA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,gBACjD,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC/B,CAAC,EACA,MAAM;AAAA,YACX,CAAC,EACA,SAAS;AAAA,UACd,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,sBAAsB;AAAA,YACtC,IAAIA,IAAE,OAAO;AAAA,YACb,cAAcA,IAAE,OAAO;AAAA,YACvB,MAAMA,IAAE,OAAO;AAAA,YACf,WAAWA,IAAE,OAAO;AAAA,YACpB,qBAAqBA,IAAE,OAAO;AAAA,UAChC,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,WAAW,CAAC;AAAA,YAC3C,WAAWA,IAAE,mBAAmB,QAAQ;AAAA,cACtCA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,YAAY;AAAA,YAC5B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,aAAa,YAAY,CAAC;AAAA,YACzD,QAAQA,IAAE,OAAO;AAAA,cACf,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,YAC9B,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,wCAAwC;AAAA,QACxD,SAASA,IAAE,OAAO;AAAA,QAClB,cAAcA,IAAE,OAAO;AAAA,QACvB,OAAOA,IAAE,OAAO;AAAA,MAClB,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,8CAA8C;AAAA,QAC9D,SAASA,IAAE,OAAO;AAAA,QAClB,cAAcA,IAAE,OAAO;AAAA,QACvB,mBAAmBA,IAAE,OAAO;AAAA,MAC9B,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,2CAA2C;AAAA,QAC3D,SAASA,IAAE,OAAO;AAAA,QAClB,cAAcA,IAAE,OAAO;AAAA,QACvB,OAAOA,IAAE,OAAO;AAAA,MAClB,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,0CAA0C;AAAA,QAC1D,SAASA,IAAE,OAAO;AAAA,QAClB,cAAcA,IAAE,OAAO;AAAA,QACvB,MAAMA,IAAE,OAAO;AAAA,MACjB,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,uCAAuC;AAAA,QACvD,YAAYA,IAAE,mBAAmB,QAAQ;AAAA,UACvCA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,cAAc;AAAA,YAC9B,aAAaA,IAAE,OAAO;AAAA,YACtB,WAAWA,IAAE,OAAO;AAAA,YACpB,KAAKA,IAAE,OAAO;AAAA,YACd,OAAOA,IAAE,OAAO;AAAA,UAClB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,SAASA,IAAE,OAAO;AAAA,YAClB,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC7B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC1B,aAAaA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAChC,WAAWA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC9B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,UAC5B,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,yBAAyB;AAAA,YACzC,cAAcA,IAAE,OAAO;AAAA,YACvB,SAASA,IAAE,OAAO;AAAA,YAClB,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC7B,aAAaA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAChC,WAAWA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC9B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,UAC5B,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,YAC3B,SAASA,IAAE,OAAO;AAAA,YAClB,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,UAC5B,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,uCAAuC;AAAA,QACvD,SAASA,IAAE,OAAO;AAAA,QAClB,eAAeA,IAAE,OAAO;AAAA,MAC1B,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,uCAAuC;AAAA,QACvD,SAASA,IAAE,OAAO;AAAA,QAClB,eAAeA,IAAE,OAAO;AAAA,QACxB,OAAOA,IAAE,OAAO;AAAA,MAClB,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,sCAAsC;AAAA,QACtD,SAASA,IAAE,OAAO;AAAA,QAClB,eAAeA,IAAE,OAAO;AAAA,MAC1B,CAAC;AAAA,MACDA,IAAE,OAAO;AAAA,QACP,MAAMA,IAAE,QAAQ,OAAO;AAAA,QACvB,iBAAiBA,IAAE,OAAO;AAAA,QAC1B,OAAOA,IAAE,OAAO;AAAA,UACd,MAAMA,IAAE,OAAO;AAAA,UACf,MAAMA,IAAE,OAAO;AAAA,UACf,SAASA,IAAE,OAAO;AAAA,UAClB,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC5B,CAAC;AAAA,MACH,CAAC;AAAA,MACDA,IACG,OAAO,EAAE,MAAMA,IAAE,OAAO,EAAE,CAAC,EAC3B,MAAM,EACN,UAAU,YAAU;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,MACjB,EAAE;AAAA;AAAA,IACN,CAAC;AAAA,EACH;AACF;AAoBO,IAAM,gCAAgCF;AAAA,EAAW,MACtDC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,IAAIA,IAAE,OAAO,EAAE,SAAS;AAAA,MACxB,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,OAAOA,IACJ,OAAO;AAAA,QACN,SAASA,IAAE,OAAO;AAAA,QAClB,MAAMA,IAAE,OAAO;AAAA,QACf,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,QAC1B,MAAMA,IAAE,OAAO;AAAA,MACjB,CAAC,EACA,QAAQ;AAAA,MACX,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,QAAQA,IACL;AAAA,QACCA,IAAE,mBAAmB,QAAQ;AAAA,UAC3BA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,SAAS;AAAA,YACzB,MAAMA,IAAE,QAAQ,WAAW;AAAA,YAC3B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE;AAAA,cACTA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,UAAUA,IACP;AAAA,kBACCA,IAAE,OAAO;AAAA,oBACP,OAAOA,IAAE,OAAO;AAAA,oBAChB,SAASA,IAAE,OAAO;AAAA,oBAClB,cAAcA,IAAE;AAAA,sBACdA,IAAE,OAAO;AAAA,wBACP,OAAOA,IAAE,OAAO;AAAA,wBAChB,SAASA,IAAE,OAAO;AAAA,sBACpB,CAAC;AAAA,oBACH;AAAA,kBACF,CAAC;AAAA,gBACH,EACC,QAAQ;AAAA,gBACX,aAAaA,IAAE;AAAA,kBACbA,IAAE,mBAAmB,QAAQ;AAAA,oBAC3BA,IAAE,OAAO;AAAA,sBACP,MAAMA,IAAE,QAAQ,cAAc;AAAA,sBAC9B,aAAaA,IAAE,OAAO;AAAA,sBACtB,WAAWA,IAAE,OAAO;AAAA,sBACpB,KAAKA,IAAE,OAAO;AAAA,sBACd,OAAOA,IAAE,OAAO;AAAA,oBAClB,CAAC;AAAA,oBACDA,IAAE,OAAO;AAAA,sBACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,sBAC/B,SAASA,IAAE,OAAO;AAAA,sBAClB,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAC7B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAC1B,aAAaA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAChC,WAAWA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAC9B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,oBAC5B,CAAC;AAAA,oBACDA,IAAE,OAAO;AAAA,sBACP,MAAMA,IAAE,QAAQ,yBAAyB;AAAA,sBACzC,cAAcA,IAAE,OAAO;AAAA,sBACvB,SAASA,IAAE,OAAO;AAAA,sBAClB,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAC7B,aAAaA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAChC,WAAWA,IAAE,OAAO,EAAE,QAAQ;AAAA,sBAC9B,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,oBAC5B,CAAC;AAAA,oBACDA,IAAE,OAAO;AAAA,sBACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,sBAC3B,SAASA,IAAE,OAAO;AAAA,sBAClB,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,oBAC5B,CAAC;AAAA,kBACH,CAAC;AAAA,gBACH;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,YACjC,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,YACjB,QAAQA,IAAE,mBAAmB,QAAQ;AAAA,cACnCA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,QAAQ;AAAA,gBACxB,OAAOA,IAAE,OAAO,EAAE,QAAQ;AAAA,gBAC1B,SAASA,IACN;AAAA,kBACCA,IAAE,mBAAmB,QAAQ;AAAA,oBAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,oBACpDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,kBACvD,CAAC;AAAA,gBACH,EACC,QAAQ;AAAA,cACb,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,gBAC3B,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,cAC1B,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,MAAM;AAAA,gBACtB,KAAKA,IAAE,OAAO,EAAE,QAAQ;AAAA,gBACxB,SAASA,IAAE,OAAO,EAAE,QAAQ;AAAA,cAC9B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,YAC3B,SAASA,IACN;AAAA,cACCA,IAAE,OAAO;AAAA,gBACP,YAAYA,IAAE;AAAA,kBACZA,IAAE,OAAO;AAAA,kBACTA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,CAAC;AAAA,gBAC/C;AAAA,gBACA,SAASA,IAAE,OAAO;AAAA,gBAClB,UAAUA,IAAE,OAAO;AAAA,gBACnB,OAAOA,IAAE,OAAO;AAAA,gBAChB,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH,EACC,QAAQ;AAAA,UACb,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,YACb,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,YAC1B,cAAcA,IAAE,OAAO;AAAA,YACvB,SAASA,IACN;AAAA,cACCA,IAAE,mBAAmB,QAAQ;AAAA,gBAC3BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,MAAMA,IAAE,OAAO,EAAE,CAAC;AAAA,gBACtDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,KAAKA,IAAE,OAAO,EAAE,CAAC;AAAA,cACxD,CAAC;AAAA,YACH,EACC,SAAS;AAAA,UACd,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,uBAAuB;AAAA,YACvC,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,UACnB,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,OAAO;AAAA,cACf,MAAMA,IAAE,QAAQ,MAAM;AAAA,cACtB,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,cAC3B,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,cAChC,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC1B,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,cACvC,KAAKA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,YACjD,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,SAASA,IAAE,OAAO;AAAA,YAClB,MAAMA,IAAE,OAAO;AAAA,YACf,WAAWA,IAAE,OAAO;AAAA,YACpB,IAAIA,IAAE,OAAO;AAAA,UACf,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,eAAe;AAAA,YAC/B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,UAC9B,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,WAAW;AAAA,YAC3B,IAAIA,IAAE,OAAO;AAAA,YACb,mBAAmBA,IAAE,OAAO,EAAE,QAAQ;AAAA,YACtC,SAASA,IAAE;AAAA,cACTA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,cAAc;AAAA,gBAC9B,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,UAAU;AAAA,YAC1B,IAAIA,IAAE,OAAO;AAAA,YACb,QAAQA,IAAE,OAAO;AAAA,YACjB,WAAWA,IAAE,OAAO;AAAA,YACpB,MAAMA,IAAE,OAAO;AAAA,YACf,cAAcA,IAAE,OAAO;AAAA,YACvB,QAAQA,IAAE,OAAO,EAAE,QAAQ;AAAA,YAC3B,OAAOA,IACJ,MAAM;AAAA,cACLA,IAAE,OAAO;AAAA,cACTA,IACG,OAAO;AAAA,gBACN,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,gBAC1B,MAAMA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,gBACjD,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC/B,CAAC,EACA,MAAM;AAAA,YACX,CAAC,EACA,QAAQ;AAAA,UACb,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,gBAAgB;AAAA,YAChC,IAAIA,IAAE,OAAO;AAAA,YACb,cAAcA,IAAE,OAAO;AAAA,YACvB,OAAOA,IAAE;AAAA,cACPA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,OAAO;AAAA,gBACf,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,gBACjC,cAAcA,IAAE,IAAI;AAAA,gBACpB,aAAaA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,cAC1D,CAAC;AAAA,YACH;AAAA,YACA,OAAOA,IACJ,MAAM;AAAA,cACLA,IAAE,OAAO;AAAA,cACTA,IACG,OAAO;AAAA,gBACN,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,gBAC1B,MAAMA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,gBACjD,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,cAC/B,CAAC,EACA,MAAM;AAAA,YACX,CAAC,EACA,SAAS;AAAA,UACd,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,sBAAsB;AAAA,YACtC,IAAIA,IAAE,OAAO;AAAA,YACb,cAAcA,IAAE,OAAO;AAAA,YACvB,MAAMA,IAAE,OAAO;AAAA,YACf,WAAWA,IAAE,OAAO;AAAA,YACpB,qBAAqBA,IAAE,OAAO;AAAA,UAChC,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,YAClC,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,WAAW,CAAC;AAAA,YAC3C,WAAWA,IAAE,mBAAmB,QAAQ;AAAA,cACtCA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,cACDA,IAAE,OAAO;AAAA,gBACP,MAAMA,IAAE,QAAQ,aAAa;AAAA,gBAC7B,MAAMA,IAAE,OAAO;AAAA,gBACf,MAAMA,IAAE,OAAO;AAAA,cACjB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACDA,IAAE,OAAO;AAAA,YACP,MAAMA,IAAE,QAAQ,YAAY;AAAA,YAC5B,IAAIA,IAAE,OAAO;AAAA,YACb,SAASA,IAAE,OAAO;AAAA,YAClB,QAAQA,IAAE,KAAK,CAAC,eAAe,aAAa,YAAY,CAAC;AAAA,YACzD,QAAQA,IAAE,OAAO;AAAA,cACf,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,YAC9B,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH,EACC,SAAS;AAAA,MACZ,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA,MACjC,oBAAoBA,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,CAAC,EAAE,QAAQ;AAAA,MAC7D,OAAOA,IACJ,OAAO;AAAA,QACN,cAAcA,IAAE,OAAO;AAAA,QACvB,sBAAsBA,IACnB,OAAO,EAAE,eAAeA,IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAC9C,QAAQ;AAAA,QACX,eAAeA,IAAE,OAAO;AAAA,QACxB,uBAAuBA,IACpB,OAAO,EAAE,kBAAkBA,IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACjD,QAAQ;AAAA,MACb,CAAC,EACA,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;;;AChiCA,SAAsB,cAAAC,cAAY,aAAAC,mBAAiB;AACnD,SAAS,KAAAC,WAAS;AASX,IAAM,mBAAmB;AAEzB,IAAM,mCAAmC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;AA8CO,IAAM,uCAAuCF;AAAA,EAAW,MAC7DC;AAAA,IACEC,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQP,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAMjC,SAASA,IACN;AAAA,QACCA,IAAE,KAAK;AAAA,UACL;AAAA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,EACC,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOX,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgBjC,UAAUA,IACP,MAAM,CAACA,IAAE,QAAQ,GAAGA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB,CAAC,CAAC,EAC5D,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOZ,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKjC,UAAUA,IAAE,IAAI,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAK1B,mBAAmBA,IAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAMvC,oBAAoBA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKvC,gBAAgBA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUnC,sBAAsBA,IAAE,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAW3D,iBAAiBA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOpC,kBAAkBA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKrC,kBAAkBA,IAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASrC,aAAaA,IAAE,KAAK,CAAC,QAAQ,QAAQ,YAAY,SAAS,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKrE,OAAOA,IAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAM3B,kBAAkBA,IAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOtC,eAAeA,IAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAMzD,YAAYA,IAAE,KAAK,CAAC,QAAQ,UAAU,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQjD,MAAMA,IAAE,OAAO,EAAE,QAAQ;AAAA,IAC3B,CAAC;AAAA,EACH;AACF;;;ACrRA;AAAA,EAGE,iCAAAC;AAAA,OACK;AACP,SAAS,iBAAAC,sBAAqB;AAS9B,eAAsB,sBAAsB;AAAA,EAC1C;AAAA,EACA;AACF,GAkBG;AAED,WAAQ,+BAAO,UAAS,QAAQ;AAEhC,QAAM,eAAkC,CAAC;AAEzC,MAAI,SAAS,MAAM;AACjB,WAAO,EAAE,OAAO,QAAW,YAAY,QAAW,aAAa;AAAA,EACjE;AAEA,QAAMC,eAA0C,CAAC;AAEjD,aAAW,QAAQ,OAAO;AACxB,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AACH,QAAAA,aAAY,KAAK;AAAA,UACf,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,aAAa,KAAK;AAAA,UAClB,YAAY,KAAK;AAAA,UACjB,GAAI,KAAK,UAAU,OAAO,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,QACvD,CAAC;AACD;AAAA,MACF,KAAK,YAAY;AACf,gBAAQ,KAAK,IAAI;AAAA,UACf,KAAK,sBAAsB;AACzB,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AAED,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,kBAAkB,KAAK;AAAA,cACvB,iBAAiB,KAAK;AAAA,cACtB,iBAAiB,KAAK,UAClB;AAAA,gBACE,QAAQ,KAAK,QAAQ;AAAA,gBACrB,iBAAiB,KAAK,QAAQ;AAAA,cAChC,IACA;AAAA,cACJ,SAAS,KAAK;AAAA,YAChB,CAAC;AAED;AAAA,UACF;AAAA,UACA,KAAK,sBAAsB;AACzB,YAAAA,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,YACR,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,gBAAgB;AACnB,YAAAA,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,YACR,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,sBAAsB;AACzB,YAAAA,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,YACR,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,6BAA6B;AAChC,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AACD,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,qBAAqB,KAAK;AAAA,cAC1B,eAAe,KAAK;AAAA,YACtB,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,qBAAqB;AACxB,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AACD,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,SACE,KAAK,WAAW,OACZ,EAAE,iBAAiB,KAAK,QAAQ,eAAe,IAC/C;AAAA,cACN,qBAAqB,KAAK;AAAA,cAC1B,qBAAqB,KAAK;AAAA,cAC1B,eAAe,KAAK;AAAA,YACtB,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,2BAA2B;AAC9B,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AAED,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,WACE,KAAK,aAAa,OACd,EAAE,MAAM,QAAQ,UAAU,OAAU,IACpC,OAAO,KAAK,cAAc,WACxB,KAAK,YACL,EAAE,MAAM,QAAQ,UAAU,KAAK,UAAU,QAAQ;AAAA,YAC3D,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,2BAA2B;AAC9B,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AAED,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,YAAY,KAAK;AAAA,cACjB,gBAAgB,KAAK;AAAA,cACrB,kBAAkB,KAAK,iBACnB;AAAA,gBACE,SAAS,KAAK,eAAe;AAAA,gBAC7B,WAAW,KAAK,eAAe;AAAA,cACjC,IACA;AAAA,cACJ,OAAO,KAAK;AAAA,cACZ,YAAY,KAAK;AAAA,cACjB,gBAAgB,KAAK;AAAA,cACrB,SAAS,KAAK;AAAA,cACd,oBAAoB,KAAK;AAAA,cACzB,eAAe,KAAK;AAAA,cACpB,MAAM,KAAK;AAAA,YACb,CAAC;AACD;AAAA,UACF;AAAA,UACA,KAAK,cAAc;AACjB,kBAAM,OAAO,MAAMC,eAAc;AAAA,cAC/B,OAAO,KAAK;AAAA,cACZ,QAAQ;AAAA,YACV,CAAC;AAED,YAAAD,aAAY,KAAK;AAAA,cACf,MAAM;AAAA,cACN,cAAc,KAAK;AAAA,cACnB,eAAe,MAAM,QAAQ,KAAK,YAAY,IAC1C,KAAK,eACL,KAAK,eACH;AAAA,gBACE,WAAW,KAAK,aAAa;AAAA,gBAC7B,YAAY,KAAK,aAAa;AAAA,cAChC,IACA;AAAA,cACN,eAAe,KAAK;AAAA,cACpB,cAAc,KAAK;AAAA,cACnB,SAAS,KAAK;AAAA,cACd,kBAAkB;AAAA,cAClB,oBAAoB,KAAK;AAAA,cACzB,YAAY,KAAK;AAAA,YACnB,CAAC;AAED;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MACA;AACE,qBAAa,KAAK;AAAA,UAChB,MAAM;AAAA,UACN,SAAS,iBAAiB,IAAI;AAAA,QAChC,CAAC;AACD;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,cAAc,MAAM;AACtB,WAAO,EAAE,OAAOA,cAAa,YAAY,QAAW,aAAa;AAAA,EACnE;AAEA,QAAM,OAAO,WAAW;AAExB,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,EAAE,OAAOA,cAAa,YAAY,MAAM,aAAa;AAAA,IAC9D,KAAK;AACH,aAAO;AAAA,QACL,OAAOA;AAAA,QACP,YACE,WAAW,aAAa,sBACxB,WAAW,aAAa,iBACxB,WAAW,aAAa,sBACxB,WAAW,aAAa,wBACxB,WAAW,aAAa,gBACxB,WAAW,aAAa,SACxB,WAAW,aAAa,gBACpB,EAAE,MAAM,WAAW,SAAS,IAC5B,EAAE,MAAM,YAAY,MAAM,WAAW,SAAS;AAAA,QACpD;AAAA,MACF;AAAA,IACF,SAAS;AACP,YAAM,mBAA0B;AAChC,YAAM,IAAIE,+BAA8B;AAAA,QACtC,eAAe,qBAAqB,gBAAgB;AAAA,MACtD,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;AL5LO,IAAM,+BAAN,MAA8D;AAAA,EAOnE,YAAY,SAAiC,QAAsB;AANnE,SAAS,uBAAuB;AAWhC,SAAS,gBAA0C;AAAA,MACjD,WAAW,CAAC,iBAAiB;AAAA,MAC7B,mBAAmB,CAAC,iBAAiB;AAAA,IACvC;AAPE,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAChB;AAAA,EAOA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAiD;AA1FnD;AA2FI,UAAM,WAA8B,CAAC;AACrC,UAAM,oBAAoB,mCAAmC,KAAK,OAAO;AAEzE,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,QAAI,QAAQ,MAAM;AAChB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC;AAAA,IACxD;AAEA,QAAI,mBAAmB,MAAM;AAC3B,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,kBAAkB,CAAC;AAAA,IACnE;AAEA,QAAI,oBAAoB,MAAM;AAC5B,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,mBAAmB,CAAC;AAAA,IACpE;AAEA,QAAI,iBAAiB,MAAM;AACzB,eAAS,KAAK,EAAE,MAAM,eAAe,SAAS,gBAAgB,CAAC;AAAA,IACjE;AAEA,UAAM,gBAAgB,MAAMC,sBAAqB;AAAA,MAC/C,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,SAAI,+CAAe,kBAAgB,+CAAe,qBAAoB;AACpE,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,kBAAkB,sBAAsB;AAAA,MAC5C;AAAA,MACA,mBAAmB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,sBAAsB;AAAA,QACtB,2BAA2B;AAAA,QAC3B,sBAAsB;AAAA,QACtB,gBAAgB;AAAA,QAChB,qBAAqB;AAAA,QACrB,6BAA6B;AAAA,QAC7B,cAAc;AAAA,QACd,sBAAsB;AAAA,MACxB;AAAA,IACF,CAAC;AAED,UAAM,EAAE,OAAO,UAAU,cAAc,IACrC,MAAM,8BAA8B;AAAA,MAClC;AAAA,MACA;AAAA,MACA,mBAAmB,kBAAkB;AAAA,MACrC,gBAAgB,KAAK,OAAO;AAAA,MAC5B,QAAO,oDAAe,UAAf,YAAwB;AAAA,MAC/B,mBAAmB,cAAc,oBAAoB;AAAA,MACrD,cAAc,cAAc,cAAc;AAAA,MAC1C,mBAAmB,cAAc,oBAAoB;AAAA,IACvD,CAAC;AAEH,aAAS,KAAK,GAAG,aAAa;AAE9B,UAAM,oBAAmB,oDAAe,qBAAf,YAAmC;AAE5D,QAAI,UAAyC,+CAAe;AAE5D,aAAS,WAAW,KAAkC;AACpD,UAAI,WAAW,MAAM;AACnB,kBAAU,CAAC,GAAG;AAAA,MAChB,WAAW,CAAC,QAAQ,SAAS,GAAG,GAAG;AACjC,kBAAU,CAAC,GAAG,SAAS,GAAG;AAAA,MAC5B;AAAA,IACF;AAEA,aAAS,cAAc,IAAY;AACjC,cACE,+BAAO,KAAK,UAAQ,KAAK,SAAS,cAAc,KAAK,OAAO,QAAO;AAAA,IAEvE;AAGA,UAAM,cACJ,QAAO,+CAAe,cAAa,WAC/B,+CAAe,YACf,+CAAe,cAAa,OAC1B,mBACA;AAER,QAAI,aAAa;AACf,iBAAW,8BAA8B;AAAA,IAC3C;AAGA,UAAM,qBACJ,oCAAO;AAAA,MACL,UACE,KAAK,SAAS,eACb,KAAK,OAAO,uBACX,KAAK,OAAO;AAAA,UAJlB,mBAMC;AAEH,QAAI,mBAAmB;AACrB,iBAAW,gCAAgC;AAAA,IAC7C;AAGA,QAAI,cAAc,yBAAyB,GAAG;AAC5C,iBAAW,+BAA+B;AAAA,IAC5C;AAEA,UAAM,QAAQ,+CAAe;AAG7B,QAAI,UAAU,SAAS,kBAAkB,kBAAkB;AACzD,iBAAW,6BAA6B;AAAA,IAC1C;AAEA,UAAM,WAAW;AAAA,MACf,OAAO,KAAK;AAAA,MACZ;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,mBAAmB;AAAA,MAEnB,KAAK,iDAAgB,UAAS,WAAU,+CAAe,mBAAkB;AAAA,QACvE,MAAM;AAAA,UACJ,IAAI,iDAAgB,UAAS,UAAU;AAAA,YACrC,QACE,eAAe,UAAU,OACrB;AAAA,cACE,MAAM;AAAA,cACN,QAAQ;AAAA,cACR,OAAM,oBAAe,SAAf,YAAuB;AAAA,cAC7B,aAAa,eAAe;AAAA,cAC5B,QAAQ,eAAe;AAAA,YACzB,IACA,EAAE,MAAM,cAAc;AAAA,UAC9B;AAAA,UACA,IAAI,+CAAe,kBAAiB;AAAA,YAClC,WAAW,cAAc;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAAA;AAAA,MAGA,cAAc,+CAAe;AAAA,MAC7B,gBAAgB,+CAAe;AAAA,MAC/B,UAAU,+CAAe;AAAA,MACzB,qBAAqB,+CAAe;AAAA,MACpC,sBAAsB,+CAAe;AAAA,MACrC;AAAA,MACA,MAAM,+CAAe;AAAA,MACrB,cAAc,+CAAe;AAAA,MAC7B,cAAc,+CAAe;AAAA,MAC7B;AAAA,MACA,kBAAkB,+CAAe;AAAA,MACjC,wBAAwB,+CAAe;AAAA,MACvC,mBAAmB,+CAAe;AAAA,MAClC,cAAc;AAAA,MACd,YAAY,+CAAe;AAAA;AAAA,MAG3B,GAAI,kBAAkB,sBACnB,+CAAe,oBAAmB,SACjC,+CAAe,qBAAoB,SAAS;AAAA,QAC5C,WAAW;AAAA,UACT,IAAI,+CAAe,oBAAmB,QAAQ;AAAA,YAC5C,QAAQ,cAAc;AAAA,UACxB;AAAA,UACA,IAAI,+CAAe,qBAAoB,QAAQ;AAAA,YAC7C,SAAS,cAAc;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAAA,IACJ;AAIA,QAAI,kBAAkB,kBAAkB;AAGtC,UACE,GACE,+CAAe,qBAAoB,UACnC,kBAAkB,iCAEpB;AACA,YAAI,SAAS,eAAe,MAAM;AAChC,mBAAS,cAAc;AACvB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAEA,YAAI,SAAS,SAAS,MAAM;AAC1B,mBAAS,QAAQ;AACjB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,OAAO;AACL,WAAI,+CAAe,oBAAmB,MAAM;AAC1C,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAEA,WAAI,+CAAe,qBAAoB,MAAM;AAC3C,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,IACF;AAGA,SACE,+CAAe,iBAAgB,UAC/B,CAAC,kBAAkB,wBACnB;AACA,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAED,aAAQ,SAAiB;AAAA,IAC3B;AAGA,SACE,+CAAe,iBAAgB,cAC/B,CAAC,kBAAkB,4BACnB;AACA,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAED,aAAQ,SAAiB;AAAA,IAC3B;AAEA,UAAM;AAAA,MACJ,OAAOC;AAAA,MACP,YAAY;AAAA,MACZ;AAAA,IACF,IAAI,MAAM,sBAAsB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,OAAOA;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA,UAAU,CAAC,GAAG,UAAU,GAAG,YAAY;AAAA,MACvC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SAC6D;AArXjE;AAsXI,UAAM;AAAA,MACJ,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,MAAM,KAAK,QAAQ,OAAO;AAC9B,UAAM,MAAM,KAAK,OAAO,IAAI;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,IAChB,CAAC;AAED,UAAM,cAAc,KAAK,OAAO,SAAS,QAAQ,cAAc,EAAE;AAEjE,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,IAAI,MAAMC,eAAc;AAAA,MACtB;AAAA,MACA,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,QAAI,SAAS,OAAO;AAClB,YAAM,IAAI,aAAa;AAAA,QACrB,SAAS,SAAS,MAAM;AAAA,QACxB;AAAA,QACA,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ;AAAA,QACA,cAAc;AAAA,QACd,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAEA,UAAM,UAAyC,CAAC;AAChD,UAAM,WAA2C,CAAC;AAGlD,QAAI,kBAAkB;AAGtB,eAAW,QAAQ,SAAS,QAAS;AACnC,cAAQ,KAAK,MAAM;AAAA,QACjB,KAAK,aAAa;AAEhB,cAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,iBAAK,QAAQ,KAAK,EAAE,MAAM,gBAAgB,MAAM,GAAG,CAAC;AAAA,UACtD;AAEA,qBAAW,WAAW,KAAK,SAAS;AAClC,oBAAQ,KAAK;AAAA,cACX,MAAM;AAAA,cACN,MAAM,QAAQ;AAAA,cACd,kBAAkB;AAAA,gBAChB,CAAC,WAAW,GAAG;AAAA,kBACb,QAAQ,KAAK;AAAA,kBACb,4BAA2B,UAAK,sBAAL,YAA0B;AAAA,gBACvD;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AACA;AAAA,QACF;AAAA,QAEA,KAAK,yBAAyB;AAC5B,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,kBAAkB;AAAA,YAC7D,OAAO;AAAA,YACP,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,kBAAkB;AAAA,YAC7D,QAAQ;AAAA,cACN,QAAQ,KAAK;AAAA,YACf;AAAA,UACF,CAAC;AAED;AAAA,QACF;AAAA,QAEA,KAAK,oBAAoB;AACvB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,YACxD,OAAO,KAAK,UAAU;AAAA,cACpB,QAAQ,KAAK;AAAA,YACf,CAAqD;AAAA,YACrD,kBAAkB;AAAA,cAChB,CAAC,WAAW,GAAG;AAAA,gBACb,QAAQ,KAAK;AAAA,cACf;AAAA,YACF;AAAA,UACF,CAAC;AAED;AAAA,QACF;AAAA,QAEA,KAAK,cAAc;AACjB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,OAAO;AAAA,YAClD,OAAO,KAAK,UAAU;AAAA,cACpB,QAAQ;AAAA,gBACN,UAAU,KAAK,OAAO;AAAA,cACxB;AAAA,YACF,CAAgD;AAAA,YAChD,kBAAkB;AAAA,cAChB,CAAC,WAAW,GAAG;AAAA,gBACb,QAAQ,KAAK;AAAA,cACf;AAAA,YACF;AAAA,UACF,CAAC;AAED;AAAA,QACF;AAAA,QAEA,KAAK,WAAW;AACd,qBAAW,eAAe,KAAK,SAAS;AACtC,kBACE,mBAAQ,oBAAR,mBAAyB,WAAzB,mBAAiC,aACjC,YAAY,UACZ;AACA,uBAAS,KAAK,YAAY,QAAQ;AAAA,YACpC;AAEA,kBAAMC,oBAAqD;AAAA,cACzD,QAAQ,KAAK;AAAA,cACb,GAAI,YAAY,YAAY,SAAS,KAAK;AAAA,gBACxC,aAAa,YAAY;AAAA,cAC3B;AAAA,YACF;AAEA,oBAAQ,KAAK;AAAA,cACX,MAAM;AAAA,cACN,MAAM,YAAY;AAAA,cAClB,kBAAkB;AAAA,gBAChB,CAAC,WAAW,GAAGA;AAAA,cACjB;AAAA,YACF,CAAC;AAED,uBAAW,cAAc,YAAY,aAAa;AAChD,kBAAI,WAAW,SAAS,gBAAgB;AACtC,wBAAQ,KAAK;AAAA,kBACX,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BC,YAAW;AAAA,kBAC7C,KAAK,WAAW;AAAA,kBAChB,OAAO,WAAW;AAAA,gBACpB,CAAC;AAAA,cACH,WAAW,WAAW,SAAS,iBAAiB;AAC9C,wBAAQ,KAAK;AAAA,kBACX,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,QAAO,sBAAW,UAAX,YAAoB,WAAW,aAA/B,YAA2C;AAAA,kBAClD,WAAU,gBAAW,aAAX,YAAuB,WAAW;AAAA,kBAC5C,GAAI,WAAW,UACX;AAAA,oBACE,kBAAkB;AAAA,sBAChB,CAAC,WAAW,GAAG;AAAA,wBACb,QAAQ,WAAW;AAAA,sBACrB;AAAA,oBACF;AAAA,kBACF,IACA,CAAC;AAAA,gBACP,CAAC;AAAA,cACH,WAAW,WAAW,SAAS,2BAA2B;AACxD,wBAAQ,KAAK;AAAA,kBACX,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,QACE,sBAAW,aAAX,YAAuB,WAAW,YAAlC,YAA6C;AAAA,kBAC/C,WAAU,gBAAW,aAAX,YAAuB,WAAW;AAAA,kBAC5C,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,WAAW;AAAA,sBACnB,aAAa,WAAW;AAAA,sBACxB,GAAI,WAAW,SAAS,OACpB,EAAE,OAAO,WAAW,MAAM,IAC1B,CAAC;AAAA,oBACP;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,WAAW,SAAS,aAAa;AAC1C,wBAAQ,KAAK;AAAA,kBACX,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,OAAO,WAAW;AAAA,kBAClB,UAAU,WAAW;AAAA,kBACrB,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,WAAW;AAAA,sBACnB,GAAI,WAAW,SAAS,OACpB,EAAE,OAAO,WAAW,MAAM,IAC1B,CAAC;AAAA,oBACP;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,iBAAiB;AACpB,4BAAkB;AAElB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,KAAK;AAAA,YACf,OAAO,KAAK;AAAA,YACZ,kBAAkB;AAAA,cAChB,CAAC,WAAW,GAAG;AAAA,gBACb,QAAQ,KAAK;AAAA,cACf;AAAA,YACF;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,mBAAmB;AACtB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB;AAAA,cACxB,gDAAqB;AAAA,YACvB;AAAA,YACA,OAAO,KAAK,UAAU,CAAC,CAAC;AAAA,YACxB,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB;AAAA,cACxB,gDAAqB;AAAA,YACvB;AAAA,YACA,QAAQ,mBAAmB,KAAK,MAAM;AAAA,UACxC,CAAC;AAED;AAAA,QACF;AAAA,QAEA,KAAK,YAAY;AACf,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,OAAO,KAAK,UAAU,CAAC,CAAC;AAAA,YACxB,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,aAAa,KAAK;AAAA,cAClB,MAAM,KAAK;AAAA,cACX,WAAW,KAAK;AAAA,cAChB,GAAI,KAAK,UAAU,OAAO,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,cACrD,GAAI,KAAK,SAAS,OACd,EAAE,OAAO,KAAK,MAA8B,IAC5C,CAAC;AAAA,YACP;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,kBAAkB;AACrB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,OAAO,KAAK,UAAU,CAAC,CAAC;AAAA,YACxB,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,aAAa,KAAK;AAAA,cAClB,OAAO,KAAK,MAAM,IAAI,OAAE;AAzqBtC,oBAAAC,KAAAC;AAyqB0C;AAAA,kBAC1B,MAAM,EAAE;AAAA,kBACR,cAAaD,MAAA,EAAE,gBAAF,OAAAA,MAAiB;AAAA,kBAC9B,aAAa,EAAE;AAAA,kBACf,cACGC,MAAA,EAAE,gBAAF,OAAAA,MACD;AAAA,gBACJ;AAAA,eAAE;AAAA,cACF,GAAI,KAAK,SAAS,OACd,EAAE,OAAO,KAAK,MAA8B,IAC5C,CAAC;AAAA,YACP;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,wBAAwB;AAC3B,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,OAAO,KAAK,UAAU,CAAC,CAAC;AAAA,YACxB,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,YAChD,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,aAAa,KAAK;AAAA,cAClB,MAAM,KAAK;AAAA,cACX,WAAW,KAAK;AAAA,cAChB,mBAAmB,KAAK;AAAA,YAC1B;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,iBAAiB;AACpB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,YACzD,OAAO;AAAA,YACP,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,YACzD,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,QAAQ,KAAK,UAAU;AAAA,YACzB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,oBAAoB;AACvB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,YACxD,OAAO;AAAA,YACP,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,YACxD,QAAQ;AAAA,cACN,SAAS,KAAK;AAAA,cACd,UACE,gBAAK,YAAL,mBAAc,IAAI,aAAW;AAAA,gBAC3B,YAAY,OAAO;AAAA,gBACnB,QAAQ,OAAO;AAAA,gBACf,UAAU,OAAO;AAAA,gBACjB,OAAO,OAAO;AAAA,gBACd,MAAM,OAAO;AAAA,cACf,QANA,YAMO;AAAA,YACX;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,yBAAyB;AAC5B,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,kBAAkB;AAAA,YAC7D,OAAO,KAAK,UAAU;AAAA,cACpB,MAAM,KAAK;AAAA,cACX,aAAa,KAAK;AAAA,YACpB,CAA0D;AAAA,YAC1D,kBAAkB;AAAA,UACpB,CAAC;AAED,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,kBAAkB;AAAA,YAC7D,QAAQ;AAAA,cACN,SAAS,KAAK;AAAA,YAChB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,oBAAoB;AACvB,kBAAQ,KAAK;AAAA,YACX,MAAM;AAAA,YACN,YAAY,KAAK;AAAA,YACjB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,YACxD,OAAO,KAAK,UAAU;AAAA,cACpB,QAAQ,KAAK;AAAA,cACb,WAAW,KAAK;AAAA,YAClB,CAAqD;AAAA,YACrD,kBAAkB;AAAA,cAChB,CAAC,WAAW,GAAG;AAAA,gBACb,QAAQ,KAAK;AAAA,cACf;AAAA,YACF;AAAA,UACF,CAAC;AAED;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,mBAA6C;AAAA,MACjD,CAAC,WAAW,GAAG,EAAE,YAAY,SAAS,GAAG;AAAA,IAC3C;AAEA,QAAI,SAAS,SAAS,GAAG;AACvB,uBAAiB,WAAW,EAAE,WAAW;AAAA,IAC3C;AAEA,QAAI,OAAO,SAAS,iBAAiB,UAAU;AAC7C,uBAAiB,WAAW,EAAE,cAAc,SAAS;AAAA,IACvD;AAEA,UAAM,QAAQ,SAAS;AAEvB,WAAO;AAAA,MACL;AAAA,MACA,cAAc,8BAA8B;AAAA,QAC1C,eAAc,cAAS,uBAAT,mBAA6B;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,MACD,OAAO;AAAA,QACL,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AAAA,QACpB,aAAa,MAAM,eAAe,MAAM;AAAA,QACxC,kBACE,iBAAM,0BAAN,mBAA6B,qBAA7B,YAAiD;AAAA,QACnD,oBACE,iBAAM,yBAAN,mBAA4B,kBAA5B,YAA6C;AAAA,MACjD;AAAA,MACA,SAAS,EAAE,KAAK;AAAA,MAChB,UAAU;AAAA,QACR,IAAI,SAAS;AAAA,QACb,WAAW,IAAI,KAAK,SAAS,aAAc,GAAI;AAAA,QAC/C,SAAS,SAAS;AAAA,QAClB,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SACJ,SAC2D;AAC3D,UAAM;AAAA,MACJ,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,MAAM,KAAK,QAAQ,OAAO;AAE9B,UAAM,EAAE,iBAAiB,OAAO,SAAS,IAAI,MAAMN,eAAc;AAAA,MAC/D,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,QAAQ;AAAA,MACV;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BM;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,OAAO;AACb,UAAM,cAAc,KAAK,OAAO,SAAS,QAAQ,cAAc,EAAE;AAEjE,QAAI,eAA4C;AAChD,UAAM,QAA8B;AAAA,MAClC,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,IACf;AACA,UAAM,WAA2C,CAAC;AAClD,QAAI,aAA4B;AAChC,UAAM,mBAUF,CAAC;AAGL,UAAM,qBAKF,CAAC;AAGL,QAAI,kBAAkB;AAEtB,UAAM,kBAOF,CAAC;AAEL,QAAI;AAEJ,WAAO;AAAA,MACL,QAAQ,SAAS;AAAA,QACf,IAAI,gBAGF;AAAA,UACA,MAAM,YAAY;AAChB,uBAAW,QAAQ,EAAE,MAAM,gBAAgB,SAAS,CAAC;AAAA,UACvD;AAAA,UAEA,UAAU,OAAO,YAAY;AA56BvC;AA66BY,gBAAI,QAAQ,kBAAkB;AAC5B,yBAAW,QAAQ,EAAE,MAAM,OAAO,UAAU,MAAM,SAAS,CAAC;AAAA,YAC9D;AAGA,gBAAI,CAAC,MAAM,SAAS;AAClB,6BAAe;AACf,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AACxD;AAAA,YACF;AAEA,kBAAM,QAAQ,MAAM;AAEpB,gBAAI,+BAA+B,KAAK,GAAG;AACzC,kBAAI,MAAM,KAAK,SAAS,iBAAiB;AACvC,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UAAU,MAAM,KAAK;AAAA,kBACrB,YAAY,MAAM,KAAK;AAAA,gBACzB;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,UAAU,MAAM,KAAK;AAAA,gBACvB,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,mBAAmB;AAChD,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UAAU,gBAAgB;AAAA,oBACxB,gDAAqB;AAAA,kBACvB;AAAA,kBACA,YAAY,MAAM,KAAK;AAAA,gBACzB;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,UAAU,gBAAgB;AAAA,oBACxB,gDAAqB;AAAA,kBACvB;AAAA,kBACA,kBAAkB;AAAA,gBACpB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,gBACjB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB;AAAA,oBACxB,gDAAqB;AAAA,kBACvB;AAAA,kBACA,OAAO,KAAK,UAAU,CAAC,CAAC;AAAA,kBACxB,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,iBAAiB;AAC9C,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,kBACzD,YAAY,MAAM,KAAK;AAAA,gBACzB;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,kBACzD,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,yBAAyB;AACtD,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,YAAY,MAAM,KAAK;AAAA,kBACvB,iBAAiB;AAAA,oBACf,aAAa,MAAM,KAAK;AAAA,kBAC1B;AAAA,gBACF;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,kBAAkB;AAAA,gBACpB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,OAAO,mBAAmB,MAAM,KAAK,YAAY;AAAA,gBACnD,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,oBAAoB;AACjD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,kBACxD,OAAO;AAAA,kBACP,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,yBAAyB;AACtD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,OAAO;AAAA,kBACP,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH,WACE,MAAM,KAAK,SAAS,cACpB,MAAM,KAAK,SAAS,oBACpB,MAAM,KAAK,SAAS,wBACpB;AACA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,kBAChD,OAAO;AAAA,kBACP,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,oBAAoB;AACjD,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,kBACxD,YAAY,MAAM,KAAK;AAAA,gBACzB;AAIA,oBAAI,MAAM,KAAK,WAAW,aAAa;AACrC,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,YAAY,MAAM,KAAK;AAAA,oBACvB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,oBACxD,OAAO,KAAK,UAAU;AAAA,sBACpB,QAAQ,MAAM,KAAK;AAAA,sBACnB,WAAW,MAAM,KAAK;AAAA,oBACxB,CAAqD;AAAA,oBACrD,kBAAkB;AAAA,sBAChB,CAAC,WAAW,GAAG;AAAA,wBACb,QAAQ,MAAM,KAAK;AAAA,sBACrB;AAAA,oBACF;AAAA,kBACF,CAAC;AAAA,gBACH;AAAA,cACF,WAAW,MAAM,KAAK,SAAS,cAAc;AAC3C,iCAAiB,MAAM,YAAY,IAAI;AAAA,kBACrC,UAAU,gBAAgB,iBAAiB,OAAO;AAAA,kBAClD,YAAY,MAAM,KAAK;AAAA,gBACzB;AAAA,cACF,WAAW,MAAM,KAAK,SAAS,WAAW;AACxC,mCAAmB,OAAO,GAAG,mBAAmB,MAAM;AACtD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,KAAK;AAAA,oBACrB;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WACE,+BAA+B,KAAK,KACpC,MAAM,KAAK,SAAS,aACpB;AACA,gCAAgB,MAAM,KAAK,EAAE,IAAI;AAAA,kBAC/B,kBAAkB,MAAM,KAAK;AAAA,kBAC7B,cAAc,EAAE,GAAG,SAAS;AAAA,gBAC9B;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,GAAG,MAAM,KAAK,EAAE;AAAA,kBACpB,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,KAAK;AAAA,sBACnB,4BACE,WAAM,KAAK,sBAAX,YAAgC;AAAA,oBACpC;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,YACF,WAAW,8BAA8B,KAAK,GAAG;AAC/C,kBAAI,MAAM,KAAK,SAAS,WAAW;AACjC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,kBACf,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,KAAK;AAAA,sBACnB,GAAI,mBAAmB,SAAS,KAAK;AAAA,wBACnC,aAAa;AAAA,sBACf;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,iBAAiB;AAC9C,iCAAiB,MAAM,YAAY,IAAI;AACvC,kCAAkB;AAElB,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,gBACjB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,MAAM,KAAK;AAAA,kBACrB,OAAO,MAAM,KAAK;AAAA,kBAClB,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,KAAK;AAAA,oBACrB;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,mBAAmB;AAChD,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB;AAAA,oBACxB,gDAAqB;AAAA,kBACvB;AAAA,kBACA,QAAQ,mBAAmB,MAAM,KAAK,MAAM;AAAA,gBAC9C,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,iBAAiB;AAC9C,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,MAAM,KAAK;AAAA,gBACjB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,kBACzD,OAAO;AAAA,kBACP,kBAAkB;AAAA,gBACpB,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,cAAc;AAAA,kBACzD,QAAQ;AAAA,oBACN,MAAM;AAAA,oBACN,QAAQ,MAAM,KAAK,UAAU;AAAA,kBAC/B;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,oBAAoB;AACjD,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,kBACxD,QAAQ;AAAA,oBACN,SAAS,MAAM,KAAK;AAAA,oBACpB,UACE,iBAAM,KAAK,YAAX,mBAAoB,IAAI,aAAW;AAAA,sBACjC,YAAY,OAAO;AAAA,sBACnB,QAAQ,OAAO;AAAA,sBACf,UAAU,OAAO;AAAA,sBACjB,OAAO,OAAO;AAAA,sBACd,MAAM,OAAO;AAAA,oBACf,QANA,YAMO;AAAA,kBACX;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,yBAAyB;AACtD,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,QAAQ;AAAA,oBACN,SAAS,MAAM,KAAK;AAAA,kBACtB;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,yBAAyB;AACtD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,QAAQ;AAAA,oBACN,QAAQ,MAAM,KAAK;AAAA,kBACrB;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,YAAY;AACzC,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,kBAChD,QAAQ;AAAA,oBACN,MAAM;AAAA,oBACN,aAAa,MAAM,KAAK;AAAA,oBACxB,MAAM,MAAM,KAAK;AAAA,oBACjB,WAAW,MAAM,KAAK;AAAA,oBACtB,GAAI,MAAM,KAAK,UAAU,OACrB,EAAE,QAAQ,MAAM,KAAK,OAAO,IAC5B,CAAC;AAAA,oBACL,GAAI,MAAM,KAAK,SAAS,OACpB,EAAE,OAAO,MAAM,KAAK,MAA8B,IAClD,CAAC;AAAA,kBACP;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,kBAAkB;AAC/C,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,kBAChD,QAAQ;AAAA,oBACN,MAAM;AAAA,oBACN,aAAa,MAAM,KAAK;AAAA,oBACxB,OAAO,MAAM,KAAK,MAAM,IAAI,OAAE;AA/uClD,0BAAAF,KAAAC;AA+uCsD;AAAA,wBAChC,MAAM,EAAE;AAAA,wBACR,cAAaD,MAAA,EAAE,gBAAF,OAAAA,MAAiB;AAAA,wBAC9B,aAAa,EAAE;AAAA,wBACf,cACGC,MAAA,EAAE,gBAAF,OAAAA,MAEiB;AAAA,sBACtB;AAAA,qBAAE;AAAA,oBACF,GAAI,MAAM,KAAK,SAAS,OACpB,EAAE,OAAO,MAAM,KAAK,MAA8B,IAClD,CAAC;AAAA,kBACP;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,oBAAoB;AACjD,iCAAiB,MAAM,YAAY,IAAI;AAGvC,oBAAI,MAAM,KAAK,WAAW,aAAa;AACrC,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,YAAY,MAAM,KAAK;AAAA,oBACvB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,oBACxD,OAAO,KAAK,UAAU;AAAA,sBACpB,QAAQ,MAAM,KAAK;AAAA,sBACnB,WAAW,MAAM,KAAK;AAAA,oBACxB,CAAqD;AAAA,oBACrD,kBAAkB;AAAA,sBAChB,CAAC,WAAW,GAAG;AAAA,wBACb,QAAQ,MAAM,KAAK;AAAA,sBACrB;AAAA,oBACF;AAAA,kBACF,CAAC;AAAA,gBACH;AAAA,cACF,WAAW,MAAM,KAAK,SAAS,wBAAwB;AACrD,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,KAAK;AAAA,kBAChD,QAAQ;AAAA,oBACN,MAAM;AAAA,oBACN,aAAa,MAAM,KAAK;AAAA,oBACxB,MAAM,MAAM,KAAK;AAAA,oBACjB,WAAW,MAAM,KAAK;AAAA,oBACtB,mBAAmB,MAAM,KAAK;AAAA,kBAChC;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,oBAAoB;AACjD,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,aAAa;AAAA,kBACxD,OAAO,KAAK,UAAU;AAAA,oBACpB,QAAQ;AAAA,sBACN,MAAM;AAAA,sBACN,SAAS,MAAM,KAAK,OAAO;AAAA,sBAC3B,WAAW,MAAM,KAAK,OAAO;AAAA,sBAC7B,MAAM,MAAM,KAAK,OAAO;AAAA,sBACxB,kBAAkB,MAAM,KAAK,OAAO;AAAA,sBACpC,KAAK,MAAM,KAAK,OAAO;AAAA,oBACzB;AAAA,kBACF,CAAqD;AAAA,kBACrD,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG,EAAE,QAAQ,MAAM,KAAK,GAAG;AAAA,kBACzC;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,cAAc;AAC3C,iCAAiB,MAAM,YAAY,IAAI;AAEvC,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,MAAM,KAAK;AAAA,kBACvB,UAAU,gBAAgB,iBAAiB,OAAO;AAAA,kBAClD,OAAO,KAAK,UAAU;AAAA,oBACpB,QAAQ;AAAA,sBACN,UAAU,MAAM,KAAK,OAAO;AAAA,oBAC9B;AAAA,kBACF,CAAgD;AAAA,kBAChD,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG,EAAE,QAAQ,MAAM,KAAK,GAAG;AAAA,kBACzC;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,KAAK,SAAS,aAAa;AAC1C,sBAAM,sBAAsB,gBAAgB,MAAM,KAAK,EAAE;AAIzD,sBAAM,qBAAqB,OAAO;AAAA,kBAChC,oBAAoB;AAAA,gBACtB,EACG;AAAA,kBACC,CAAC,CAAC,GAAG,MAAM,MACT,WAAW,YAAY,WAAW;AAAA,gBACtC,EACC,IAAI,CAAC,CAAC,YAAY,MAAM,YAAY;AAEvC,2BAAW,gBAAgB,oBAAoB;AAC7C,6BAAW,QAAQ;AAAA,oBACjB,MAAM;AAAA,oBACN,IAAI,GAAG,MAAM,KAAK,EAAE,IAAI,YAAY;AAAA,oBACpC,kBAAkB;AAAA,sBAChB,CAAC,WAAW,GAAG;AAAA,wBACb,QAAQ,MAAM,KAAK;AAAA,wBACnB,4BACE,WAAM,KAAK,sBAAX,YAAgC;AAAA,sBACpC;AAAA,oBACF;AAAA,kBACF,CAAC;AAAA,gBACH;AAEA,uBAAO,gBAAgB,MAAM,KAAK,EAAE;AAAA,cACtC;AAAA,YACF,WAAW,0CAA0C,KAAK,GAAG;AAC3D,oBAAM,WAAW,iBAAiB,MAAM,YAAY;AAEpD,kBAAI,YAAY,MAAM;AACpB,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,SAAS;AAAA,kBACb,OAAO,MAAM;AAAA,gBACf,CAAC;AAAA,cACH;AAAA,YACF,WAAW,+CAA+C,KAAK,GAAG;AAChE,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,YAAY,MAAM;AAAA,gBAClB,UAAU,gBAAgB,iBAAiB,kBAAkB;AAAA,gBAC7D,QAAQ;AAAA,kBACN,QAAQ,MAAM;AAAA,gBAChB;AAAA,gBACA,aAAa;AAAA,cACf,CAAC;AAAA,YACH,WAAW,4CAA4C,KAAK,GAAG;AAC7D,oBAAM,WAAW,iBAAiB,MAAM,YAAY;AAEpD,kBAAI,YAAY,MAAM;AACpB,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,SAAS;AAAA;AAAA;AAAA,kBAGb,OAAO,KAAK,UAAU,MAAM,KAAK,EAAE,MAAM,GAAG,EAAE;AAAA,gBAChD,CAAC;AAAA,cACH;AAAA,YACF,WAAW,2CAA2C,KAAK,GAAG;AAC5D,oBAAM,WAAW,iBAAiB,MAAM,YAAY;AAEpD,kBAAI,YAAY,MAAM;AACpB,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,SAAS;AAAA,kBACb,OAAO;AAAA,gBACT,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,SAAS;AAAA,gBACf,CAAC;AAGD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY,SAAS;AAAA,kBACrB,UACE,gBAAgB,iBAAiB,kBAAkB;AAAA,kBACrD,OAAO,KAAK,UAAU;AAAA,oBACpB,MAAM,MAAM;AAAA,oBACZ,aAAa,SAAS,gBAAiB;AAAA,kBACzC,CAA0D;AAAA,kBAC1D,kBAAkB;AAAA,gBACpB,CAAC;AAAA,cACH;AAAA,YACF,WAAW,uBAAuB,KAAK,GAAG;AACxC,2BAAa,MAAM,SAAS;AAC5B,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,IAAI,MAAM,SAAS;AAAA,gBACnB,WAAW,IAAI,KAAK,MAAM,SAAS,aAAa,GAAI;AAAA,gBACpD,SAAS,MAAM,SAAS;AAAA,cAC1B,CAAC;AAAA,YACH,WAAW,iBAAiB,KAAK,GAAG;AAClC,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,IAAI,MAAM;AAAA,gBACV,OAAO,MAAM;AAAA,cACf,CAAC;AAED,oBAAI,mBAAQ,oBAAR,mBAAyB,WAAzB,mBAAiC,aAAY,MAAM,UAAU;AAC/D,yBAAS,KAAK,MAAM,QAAQ;AAAA,cAC9B;AAAA,YACF,WAAW,MAAM,SAAS,yCAAyC;AAEjE,kBAAI,MAAM,gBAAgB,GAAG;AAC3B,sBAAM,sBAAsB,gBAAgB,MAAM,OAAO;AAEzD,oCAAoB,aAAa,MAAM,aAAa,IAClD;AAGF,2BAAW,gBAAgB,OAAO;AAAA,kBAChC,oBAAoB;AAAA,gBACtB,GAAG;AACD,sBACE,oBAAoB,aAAa,YAAY,MAC7C,gBACA;AACA,+BAAW,QAAQ;AAAA,sBACjB,MAAM;AAAA,sBACN,IAAI,GAAG,MAAM,OAAO,IAAI,YAAY;AAAA,sBACpC,kBAAkB;AAAA,wBAChB,CAAC,WAAW,GAAG,EAAE,QAAQ,MAAM,QAAQ;AAAA,sBACzC;AAAA,oBACF,CAAC;AACD,wCAAoB,aAAa,YAAY,IAC3C;AAAA,kBACJ;AAAA,gBACF;AAEA,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,GAAG,MAAM,OAAO,IAAI,MAAM,aAAa;AAAA,kBAC3C,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM;AAAA,sBACd,4BACE,2BAAgB,MAAM,OAAO,MAA7B,mBAAgC,qBAAhC,YACA;AAAA,oBACJ;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,YACF,WAAW,MAAM,SAAS,yCAAyC;AACjE,yBAAW,QAAQ;AAAA,gBACjB,MAAM;AAAA,gBACN,IAAI,GAAG,MAAM,OAAO,IAAI,MAAM,aAAa;AAAA,gBAC3C,OAAO,MAAM;AAAA,gBACb,kBAAkB;AAAA,kBAChB,CAAC,WAAW,GAAG;AAAA,oBACb,QAAQ,MAAM;AAAA,kBAChB;AAAA,gBACF;AAAA,cACF,CAAC;AAAA,YACH,WAAW,MAAM,SAAS,wCAAwC;AAGhE,kBAAI,OAAO;AACT,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,IAAI,GAAG,MAAM,OAAO,IAAI,MAAM,aAAa;AAAA,kBAC3C,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG,EAAE,QAAQ,MAAM,QAAQ;AAAA,kBACzC;AAAA,gBACF,CAAC;AAGD,gCAAgB,MAAM,OAAO,EAAG,aAC9B,MAAM,aACR,IAAI;AAAA,cACN,OAAO;AAGL,gCAAgB,MAAM,OAAO,EAAG,aAC9B,MAAM,aACR,IAAI;AAAA,cACN;AAAA,YACF,WAAW,wBAAwB,KAAK,GAAG;AACzC,6BAAe,8BAA8B;AAAA,gBAC3C,eAAc,WAAM,SAAS,uBAAf,mBAAmC;AAAA,gBACjD;AAAA,cACF,CAAC;AACD,oBAAM,cAAc,MAAM,SAAS,MAAM;AACzC,oBAAM,eAAe,MAAM,SAAS,MAAM;AAC1C,oBAAM,cACJ,MAAM,SAAS,MAAM,eACrB,MAAM,SAAS,MAAM;AACvB,oBAAM,mBACJ,iBAAM,SAAS,MAAM,0BAArB,mBAA4C,qBAA5C,YACA;AACF,oBAAM,qBACJ,iBAAM,SAAS,MAAM,yBAArB,mBAA2C,kBAA3C,YACA;AACF,kBAAI,OAAO,MAAM,SAAS,iBAAiB,UAAU;AACnD,8BAAc,MAAM,SAAS;AAAA,cAC/B;AAAA,YACF,WAAW,+BAA+B,KAAK,GAAG;AAChD,iCAAmB,KAAK,MAAM,UAAU;AACxC,kBAAI,MAAM,WAAW,SAAS,gBAAgB;AAC5C,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BF,YAAW;AAAA,kBAC7C,KAAK,MAAM,WAAW;AAAA,kBACtB,OAAO,MAAM,WAAW;AAAA,gBAC1B,CAAC;AAAA,cACH,WAAW,MAAM,WAAW,SAAS,iBAAiB;AACpD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,QACE,iBAAM,WAAW,UAAjB,YACA,MAAM,WAAW,aADjB,YAEA;AAAA,kBACF,WACE,WAAM,WAAW,aAAjB,YAA6B,MAAM,WAAW;AAAA,kBAChD,GAAI,MAAM,WAAW,UACjB;AAAA,oBACE,kBAAkB;AAAA,sBAChB,CAAC,WAAW,GAAG;AAAA,wBACb,QAAQ,MAAM,WAAW;AAAA,sBAC3B;AAAA,oBACF;AAAA,kBACF,IACA,CAAC;AAAA,gBACP,CAAC;AAAA,cACH,WAAW,MAAM,WAAW,SAAS,2BAA2B;AAC9D,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,QACE,iBAAM,WAAW,aAAjB,YACA,MAAM,WAAW,YADjB,YAEA;AAAA,kBACF,WACE,WAAM,WAAW,aAAjB,YAA6B,MAAM,WAAW;AAAA,kBAChD,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,WAAW;AAAA,sBACzB,aAAa,MAAM,WAAW;AAAA,sBAC9B,GAAI,MAAM,WAAW,SAAS,OAC1B,EAAE,OAAO,MAAM,WAAW,MAAM,IAChC,CAAC;AAAA,oBACP;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,MAAM,WAAW,SAAS,aAAa;AAChD,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN,YAAY;AAAA,kBACZ,KAAI,sBAAK,QAAO,eAAZ,4CAA8BA,YAAW;AAAA,kBAC7C,WAAW;AAAA,kBACX,OAAO,MAAM,WAAW;AAAA,kBACxB,UAAU,MAAM,WAAW;AAAA,kBAC3B,kBAAkB;AAAA,oBAChB,CAAC,WAAW,GAAG;AAAA,sBACb,QAAQ,MAAM,WAAW;AAAA,sBACzB,GAAI,MAAM,WAAW,SAAS,OAC1B,EAAE,OAAO,MAAM,WAAW,MAAM,IAChC,CAAC;AAAA,oBACP;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,YACF,WAAW,aAAa,KAAK,GAAG;AAC9B,yBAAW,QAAQ,EAAE,MAAM,SAAS,OAAO,MAAM,CAAC;AAAA,YACpD;AAAA,UACF;AAAA,UAEA,MAAM,YAAY;AAChB,kBAAM,mBAA6C;AAAA,cACjD,CAAC,WAAW,GAAG;AAAA,gBACb;AAAA,cACF;AAAA,YACF;AAEA,gBAAI,SAAS,SAAS,GAAG;AACvB,+BAAiB,WAAW,EAAE,WAAW;AAAA,YAC3C;AAEA,gBAAI,gBAAgB,QAAW;AAC7B,+BAAiB,WAAW,EAAE,cAAc;AAAA,YAC9C;AAEA,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,SAAS,EAAE,KAAK;AAAA,MAChB,UAAU,EAAE,SAAS,gBAAgB;AAAA,IACvC;AAAA,EACF;AACF;AAEA,SAAS,iBACP,OACwE;AACxE,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,8BACP,OACuE;AACvE,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,wBACP,OAGA;AACA,SACE,MAAM,SAAS,wBAAwB,MAAM,SAAS;AAE1D;AAEA,SAAS,uBACP,OAC8D;AAC9D,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,0CACP,OAGA;AACA,SAAO,MAAM,SAAS;AACxB;AACA,SAAS,+CACP,OAGA;AACA,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,4CACP,OAGA;AACA,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,2CACP,OAGA;AACA,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,+BACP,OACwE;AACxE,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,+BACP,OAGA;AACA,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,aACP,OACmD;AACnD,SAAO,MAAM,SAAS;AACxB;AAEA,SAAS,mBACP,QAC2C;AA3sD7C;AA4sDE,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO;AAAA,QACL,QAAQ,EAAE,MAAM,UAAU,QAAO,YAAO,UAAP,YAAgB,OAAU;AAAA;AAAA,QAE3D,GAAI,OAAO,WAAW,QAAQ,EAAE,SAAS,OAAO,QAAQ;AAAA,MAC1D;AAAA,IACF,KAAK;AACH,aAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,KAAK,OAAO,IAAI,EAAE;AAAA,IACzD,KAAK;AACH,aAAO;AAAA,QACL,QAAQ,EAAE,MAAM,QAAQ,KAAK,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,MACnE;AAAA,EACJ;AACF;;;AMztDA;AAAA,EACE,kBAAAI;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EACA,iBAAAC;AAAA,OACK;;;ACNP,SAAsB,cAAAC,cAAY,aAAAC,mBAAiB;AACnD,SAAS,KAAAC,WAAS;AASX,IAAM,oCAAoCF;AAAA,EAAW,MAC1DC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,cAAcA,IAAE,OAAO,EAAE,QAAQ;AAAA,MACjC,OAAOA,IAAE,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,CAAG,EAAE,QAAQ,CAAG,EAAE,QAAQ;AAAA,IAC5D,CAAC;AAAA,EACH;AACF;;;ADIO,IAAM,oBAAN,MAAiD;AAAA,EAOtD,YACW,SACQ,QACjB;AAFS;AACQ;AARnB,SAAS,uBAAuB;AAAA,EAS7B;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA,QAAQ;AAAA,IACR,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA+C;AAC7C,UAAM,WAA8B,CAAC;AAGrC,UAAM,gBAAgB,MAAMC,sBAAqB;AAAA,MAC/C,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,cAAuC;AAAA,MAC3C,OAAO,KAAK;AAAA,MACZ,OAAO;AAAA,MACP;AAAA,MACA,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAEA,QAAI,cAAc;AAChB,UAAI,CAAC,OAAO,QAAQ,OAAO,QAAQ,OAAO,KAAK,EAAE,SAAS,YAAY,GAAG;AACvE,oBAAY,kBAAkB;AAAA,MAChC,OAAO;AACL,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS,8BAA8B,YAAY;AAAA,QACrD,CAAC;AAAA,MACH;AAAA,IACF;AAGA,QAAI,eAAe;AACjB,YAAM,qBAA2C,CAAC;AAElD,iBAAW,OAAO,oBAAoB;AACpC,cAAM,QAAQ,mBAAmB,GAAiC;AAClE,YAAI,UAAU,QAAW;AACvB,sBAAY,GAAG,IAAI;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAEA,QAAI,UAAU;AACZ,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS,+EAA+E,QAAQ;AAAA,MAClG,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SAC2D;AArG/D;AAsGI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,aAAa,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAE5D,UAAM;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MACA,UAAU;AAAA,IACZ,IAAI,MAAMC,eAAc;AAAA,MACtB,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D,MAAM;AAAA,MACN,uBAAuB;AAAA,MACvB,2BAA2B,4BAA4B;AAAA,MACvD,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP,MAAM,KAAK,UAAU,WAAW;AAAA,MAClC;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AEnIA;AAAA,EACE,kBAAAC;AAAA,EACA;AAAA,EACA,6BAAAC;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EACA;AAAA,OACK;;;ACZP,SAAS,cAAAC,cAAY,aAAAC,mBAAiB;AACtC,SAAS,KAAAC,WAAS;AAEX,IAAM,oCAAoCF;AAAA,EAAW,MAC1DC;AAAA,IACEC,IAAE,OAAO;AAAA,MACP,MAAMA,IAAE,OAAO;AAAA,MACf,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,MAC7B,UAAUA,IAAE,OAAO,EAAE,QAAQ;AAAA,MAC7B,OAAOA,IACJ;AAAA,QACCA,IAAE,OAAO;AAAA,UACP,MAAMA,IAAE,OAAO;AAAA,UACf,OAAOA,IAAE,OAAO;AAAA,UAChB,KAAKA,IAAE,OAAO;AAAA,QAChB,CAAC;AAAA,MACH,EACC,QAAQ;AAAA,MACX,UAAUA,IACP;AAAA,QACCA,IAAE,OAAO;AAAA,UACP,IAAIA,IAAE,OAAO;AAAA,UACb,MAAMA,IAAE,OAAO;AAAA,UACf,OAAOA,IAAE,OAAO;AAAA,UAChB,KAAKA,IAAE,OAAO;AAAA,UACd,MAAMA,IAAE,OAAO;AAAA,UACf,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAAA,UAC1B,aAAaA,IAAE,OAAO;AAAA,UACtB,aAAaA,IAAE,OAAO;AAAA,UACtB,mBAAmBA,IAAE,OAAO;AAAA,UAC5B,gBAAgBA,IAAE,OAAO;AAAA,QAC3B,CAAC;AAAA,MACH,EACC,QAAQ;AAAA,IACb,CAAC;AAAA,EACH;AACF;;;ACpCA,SAAsB,cAAAC,cAAY,aAAAC,mBAAiB;AACnD,SAAS,KAAAC,WAAS;AASX,IAAM,qCAAqCF;AAAA,EAAW,MAC3DC;AAAA,IACEC,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,MAKP,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAKtC,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,MAK9B,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAM5B,aAAaA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAM1D,wBAAwBA,IACrB,MAAMA,IAAE,KAAK,CAAC,QAAQ,SAAS,CAAC,CAAC,EACjC,QAAQ,CAAC,SAAS,CAAC,EACnB,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AACF;;;AFPA,IAAM,cAAc;AAAA,EAClB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AACT;AAEO,IAAM,2BAAN,MAA+D;AAAA,EAOpE,YACW,SACQ,QACjB;AAFS;AACQ;AARnB,SAAS,uBAAuB;AAAA,EAS7B;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAmC;AACjC,UAAM,WAA8B,CAAC;AAGrC,UAAM,gBAAgB,MAAMC,sBAAqB;AAAA,MAC/C,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,OACJ,iBAAiB,aACb,IAAI,KAAK,CAAC,KAAK,CAAC,IAChB,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,CAAC;AAEjD,aAAS,OAAO,SAAS,KAAK,OAAO;AACrC,UAAM,gBAAgB,qBAAqB,SAAS;AACpD,aAAS;AAAA,MACP;AAAA,MACA,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,UAAU,CAAC;AAAA,MAC7C,SAAS,aAAa;AAAA,IACxB;AAGA,QAAI,eAAe;AACjB,YAAM,4BAA4B;AAAA,QAChC,SAAS,cAAc;AAAA,QACvB,UAAU,cAAc;AAAA,QACxB,QAAQ,cAAc;AAAA;AAAA;AAAA,QAGtB,iBAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF,EAAE,SAAS,KAAK,OAAO,IACnB,SACA;AAAA,QACJ,aAAa,cAAc;AAAA,QAC3B,yBAAyB,cAAc;AAAA,MACzC;AAEA,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,yBAAyB,GAAG;AACpE,YAAI,SAAS,MAAM;AACjB,cAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,uBAAW,QAAQ,OAAO;AACxB,uBAAS,OAAO,GAAG,GAAG,MAAM,OAAO,IAAI,CAAC;AAAA,YAC1C;AAAA,UACF,OAAO;AACL,qBAAS,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SACkE;AAlLtE;AAmLI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,UAAU,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAEzD,UAAM;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MACA,UAAU;AAAA,IACZ,IAAI,MAAM,kBAAkB;AAAA,MAC1B,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,MACD,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,WACJ,SAAS,YAAY,QAAQ,SAAS,YAAY,cAC9C,YAAY,SAAS,QAAoC,IACzD;AAEN,WAAO;AAAA,MACL,MAAM,SAAS;AAAA,MACf,WACE,0BAAS,aAAT,mBAAmB,IAAI,cAAY;AAAA,QACjC,MAAM,QAAQ;AAAA,QACd,aAAa,QAAQ;AAAA,QACrB,WAAW,QAAQ;AAAA,MACrB,QAJA,aAKA,cAAS,UAAT,mBAAgB,IAAI,WAAS;AAAA,QAC3B,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,WAAW,KAAK;AAAA,MAClB,QATA,YAUA,CAAC;AAAA,MACH;AAAA,MACA,oBAAmB,cAAS,aAAT,YAAqB;AAAA,MACxC;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AGrOO,IAAM,UACX,OACI,kBACA;;;A3C+HC,SAAS,aACd,UAAkC,CAAC,GACnB;AAtIlB;AAuIE,QAAM,WACJ;AAAA,IACE,oBAAoB;AAAA,MAClB,cAAc,QAAQ;AAAA,MACtB,yBAAyB;AAAA,IAC3B,CAAC;AAAA,EACH,MALA,YAKK;AAEP,QAAM,gBAAe,aAAQ,SAAR,YAAgB;AAErC,QAAM,aAAa,MACjB;AAAA,IACE;AAAA,MACE,eAAe,UAAU,WAAW;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC,CAAC;AAAA,MACF,uBAAuB,QAAQ;AAAA,MAC/B,kBAAkB,QAAQ;AAAA,MAC1B,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,iBAAiB,OAAO;AAAA,EAC1B;AAEF,QAAM,kBAAkB,CAAC,YACvB,IAAI,wBAAwB,SAAS;AAAA,IACnC,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,wBAAwB,CAAC,YAC7B,IAAI,8BAA8B,SAAS;AAAA,IACzC,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,qBAAqB,SAAS;AAAA,IAChC,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CAAC,YACxB,IAAI,iBAAiB,SAAS;AAAA,IAC5B,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,yBAAyB,SAAS;AAAA,IACpC,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,oBAAoB,CAAC,YACzB,IAAI,kBAAkB,SAAS;AAAA,IAC7B,UAAU,GAAG,YAAY;AAAA,IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,sBAAsB,CAAC,YAAoC;AAC/D,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,qBAAqB,OAAO;AAAA,EACrC;AAEA,QAAM,uBAAuB,CAAC,YAAoC;AAChE,WAAO,IAAI,6BAA6B,SAAS;AAAA,MAC/C,UAAU,GAAG,YAAY;AAAA,MACzB,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,MACpC,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,gBAAgB,CAAC,OAAO;AAAA,IAC1B,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,SAAU,SAAiC;AAC1D,WAAO,oBAAoB,OAAO;AAAA,EACpC;AAEA,WAAS,uBAAuB;AAChC,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,YAAY;AACrB,WAAS,iBAAiB;AAE1B,WAAS,QAAQ;AACjB,WAAS,aAAa;AAEtB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAE9B,WAAS,SAAS;AAClB,WAAS,cAAc;AAEvB,WAAS,QAAQ;AAEjB,SAAO;AACT;AAKO,IAAM,SAAS,aAAa;","names":["_a","z","z","lazySchema","zodSchema","z","UnsupportedFunctionalityError","openaiTools","openaiTools","toolCall","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","parseProviderOptions","postJsonToApi","UnsupportedFunctionalityError","getResponseMetadata","mapOpenAIFinishReason","z","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","mapOpenAIFinishReason","getResponseMetadata","createEventSourceResponseHandler","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","combineHeaders","createJsonResponseHandler","postJsonToApi","lazySchema","zodSchema","z","postJsonToApi","combineHeaders","createJsonResponseHandler","_a","_b","_c","_d","_e","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","generateId","parseProviderOptions","postJsonToApi","UnsupportedFunctionalityError","convertToBase64","parseProviderOptions","z","_a","_b","_c","convertToBase64","UnsupportedFunctionalityError","parseProviderOptions","z","lazySchema","zodSchema","z","lazySchema","zodSchema","z","UnsupportedFunctionalityError","validateTypes","openaiTools","validateTypes","UnsupportedFunctionalityError","parseProviderOptions","openaiTools","postJsonToApi","combineHeaders","createJsonResponseHandler","providerMetadata","generateId","_a","_b","createEventSourceResponseHandler","combineHeaders","parseProviderOptions","postJsonToApi","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","combineHeaders","createJsonResponseHandler","parseProviderOptions","lazySchema","zodSchema","z","lazySchema","zodSchema","z","parseProviderOptions","combineHeaders","createJsonResponseHandler"]}
|