{"version":3,"sources":["../src/configs/chat-model/common.config.chat-model.openai.ts","../src/configs/chat-model/base.config.chat-model.openai.ts","../src/configs/chat-model/response-schema.config.chat-model.openai.ts","../src/configs/chat-model/gpt5.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-1.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-1-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-2-plus.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-2-plus-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-codex.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-pro.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-pro-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/gpt5-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/o-series.config.chat-model.openai.ts","../src/configs/chat-model/o-series-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/o1-series-with-web-search.config.chat-model.openai.ts","../src/configs/chat-model/response-format.config.chat-model.openai.ts","../src/configs/chat-model/response-schema-with-web-search.config.chat-model.openai.ts","../src/configs/embedding-model/common.config.embedding-model.openai.ts","../src/configs/embedding-model/base.config.embedding-model.openai.ts","../src/configs/embedding-model/dimensions.config.embedding-model.openai.ts","../src/configs/configs.openai.ts","../src/models/pricing.json","../src/provider/provider.openai.ts","../src/models/chat-models/types/roles.chat-model.openai.ts","../src/models/chat-models/types/modalities.chat-model.openai.ts","../src/models/chat-models/types/response.chat-model.openai.ts","../src/models/chat-models/types/request.chat-model.openai.ts","../src/models/chat-models/types/responses-api.chat-model.openai.ts","../src/models/chat-models/base-chat-model.openai.ts","../src/models/chat-models/chatgpt-5-2.openai.ts","../src/models/chat-models/gpt-3-5-turbo-0125.openai.ts","../src/models/chat-models/gpt-3-5-turbo-1106.openai.ts","../src/models/chat-models/gpt-3-5-turbo.openai.ts","../src/models/chat-models/gpt-4-0125-preview.openai.ts","../src/models/chat-models/gpt-4-0613.openai.ts","../src/models/chat-models/gpt-4-1106-preview.openai.ts","../src/models/chat-models/gpt-4-1.openai.ts","../src/models/chat-models/gpt-4-1-mini.openai.ts","../src/models/chat-models/gpt-4-1-nano.openai.ts","../src/models/chat-models/gpt-5-1.openai.ts","../src/models/chat-models/gpt-5-2.openai.ts","../src/models/chat-models/gpt-5-2-chat-latest.openai.ts","../src/models/chat-models/gpt-5-2-codex.openai.ts","../src/models/chat-models/gpt-5-2-pro.openai.ts","../src/models/chat-models/gpt-5-3-codex.openai.ts","../src/models/chat-models/gpt-5-4.openai.ts","../src/models/chat-models/gpt-5-4-mini.openai.ts","../src/models/chat-models/gpt-5-4-nano.openai.ts","../src/models/chat-models/gpt-5-4-pro.openai.ts","../src/models/chat-models/gpt-5-5.openai.ts","../src/models/chat-models/gpt-5-5-pro.openai.ts","../src/models/chat-models/gpt-5.openai.ts","../src/models/chat-models/gpt-5-pro.openai.ts","../src/models/chat-models/gpt-5-mini.openai.ts","../src/models/chat-models/gpt-5-nano.openai.ts","../src/models/chat-models/gpt-5-chat-latest.openai.ts","../src/models/chat-models/gpt-4-turbo-2024-04-09.openai.ts","../src/models/chat-models/gpt-4-turbo-preview.openai.ts","../src/models/chat-models/gpt-4-turbo.openai.ts","../src/models/chat-models/gpt-4.openai.ts","../src/models/chat-models/gpt-4o-2024-05-13.openai.ts","../src/models/chat-models/gpt-4o-2024-08-06.openai.ts","../src/models/chat-models/gpt-4o-mini-2024-07-18.openai.ts","../src/models/chat-models/gpt-4o-mini.openai.ts","../src/models/chat-models/gpt-4o.openai.ts","../src/models/chat-models/gpt-4o-search-preview.openai.ts","../src/models/chat-models/gpt-4o-search-preview-2025-03-11.openai.ts","../src/models/chat-models/gpt-4o-mini-search-preview.openai.ts","../src/models/chat-models/gpt-4o-mini-search-preview-2025-03-11.openai.ts","../src/models/chat-models/gpt-5-search-api.openai.ts","../src/models/chat-models/chatgpt-4o-latest.openai.ts","../src/models/chat-models/o1-2024-12-17.openai.ts","../src/models/chat-models/o1.openai.ts","../src/models/chat-models/o3-2025-04-16.openai.ts","../src/models/chat-models/o3.openai.ts","../src/models/chat-models/o3-pro.openai.ts","../src/models/chat-models/o3-mini.openai.ts","../src/models/chat-models/o3-mini-2025-01-31.openai.ts","../src/models/chat-models/o4-mini-2025-04-16.openai.ts","../src/models/chat-models/o4-mini.openai.ts","../src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../src/models/embedding-models/types/response.embedding-model.openai.ts","../src/models/embedding-models/types/request.embedding-model.openai.ts","../src/models/embedding-pricing.json","../src/models/embedding-models/base-embedding-model.openai.ts","../src/models/embedding-models/text-embedding-ada-002.openai.ts","../src/models/embedding-models/text-embedding-3-small.openai.ts","../src/models/embedding-models/text-embedding-3-large.openai.ts"],"names":["temperature","RangeConfigItem","CHAT_CONFIG","maxTokens","maxOutputTokens","stop","maxSequences","MultiStringConfigItem","topP","frequencyPenalty","presencePenalty","seed","logProbs","SelectBooleanConfigItem","topLogProbs","toolChoice","SelectStringConfigItem","reasoningEffort","reasoningEffort5_1","reasoningEffort5_2Plus","reasoningEffortCodex","reasoningEffortPro","verbosity","webSearchTool","webSearchAllowedDomains","webSearchExternalAccess","ChatModelBaseConfigSchema","z","value","ChatModelBaseConfigDef","responseSchema","ObjectSchemaConfigItem","ResponseSchema","responseFormat","ChatModelResponseSchemaConfigDef","__spreadProps","__spreadValues","ChatModelResponseSchemaConfigSchema","ChatModelGPT5ConfigDef","ChatModelGPT5ConfigSchema","ChatModelGPT5_1ConfigDef","ChatModelGPT5_1ConfigSchema","ChatModelGPT5_1WithWebSearchConfigDef","ChatModelGPT5_1WithWebSearchConfigSchema","ChatModelGPT5_2PlusConfigDef","ChatModelGPT5_2PlusConfigSchema","ChatModelGPT5_2PlusWithWebSearchConfigDef","ChatModelGPT5_2PlusWithWebSearchConfigSchema","ChatModelGPT5CodexConfigDef","ChatModelGPT5CodexConfigSchema","ChatModelGPT5ProConfigDef","ChatModelGPT5ProConfigSchema","ChatModelGPT5ProWithWebSearchConfigDef","ChatModelGPT5ProWithWebSearchConfigSchema","ChatModelGPT5WithWebSearchConfigDef","ChatModelGPT5WithWebSearchConfigSchema","oSeriesTemperature","o1SeriesTemperature","ChatModelOSeriesConfigDef","ChatModelOSeriesConfigSchema","ChatModelO1SeriesConfigDef","ChatModelO1SeriesConfigSchema","ChatModelOSeriesWithWebSearchConfigDef","ChatModelOSeriesWithWebSearchConfigSchema","ChatModelO1SeriesWithWebSearchConfigDef","ChatModelO1SeriesWithWebSearchConfigSchema","ChatModelResponseFormatConfigDef","ChatModelResponseFormatConfigSchema","ChatModelResponseSchemaWithWebSearchConfigDef","ChatModelResponseSchemaWithWebSearchConfigSchema","encodingFormat","dimensions","maxDimensions","EmbeddingModelBaseConfigSchema","EmbeddingModelBaseConfigDef","EmbeddingModelDimensionsConfigSchema","EmbeddingModelDimensionsConfigDef","OpenAIChatModelConfigs","OpenAIEmbeddingModelConfigs","pricing_default","ProviderLiteral","OpenAI","GPT_3_5_TurboLiteral","GPT_3_5_Turbo","GPT_3_5_TurboOptions","GPT_3_5_TurboSchema","GPT_3_5_Turbo_0125Literal","GPT_3_5_Turbo_0125","GPT_3_5_Turbo_0125Options","GPT_3_5_Turbo_0125Schema","GPT_3_5_Turbo_1106Literal","GPT_3_5_Turbo_1106","GPT_3_5_Turbo_1106Options","GPT_3_5_Turbo_1106Schema","GPT_4_0125_PreviewLiteral","GPT_4_0125_Preview","GPT_4_0125_PreviewOptions","GPT_4_0125_PreviewSchema","GPT_4_0613Literal","GPT_4_0613","GPT_4_0613Options","GPT_4_0613Schema","GPT_4_1106_PreviewLiteral","GPT_4_1106_Preview","GPT_4_1106_PreviewOptions","GPT_4_1106_PreviewSchema","GPT_4_1Literal","GPT_4_1","GPT_4_1Options","GPT_4_1Schema","GPT_4_1_MiniLiteral","GPT_4_1_Mini","GPT_4_1_MiniOptions","GPT_4_1_MiniSchema","GPT_4_1_NanoLiteral","GPT_4_1_Nano","GPT_4_1_NanoOptions","GPT_4_1_NanoSchema","GPT_5Literal","GPT_5","GPT_5Options","GPT_5Schema","GPT_5_ProLiteral","GPT_5_Pro","GPT_5_ProOptions","GPT_5_ProSchema","GPT_5_1Literal","GPT_5_1","GPT_5_1Options","GPT_5_1Schema","GPT_5_2Literal","GPT_5_2","GPT_5_2Options","GPT_5_2Schema","GPT_5_2_CodexLiteral","GPT_5_2_Codex","GPT_5_2_CodexOptions","GPT_5_2_CodexSchema","ChatGPT_5_2Literal","ChatGPT_5_2","ChatGPT_5_2Options","ChatGPT_5_2Schema","GPT_5_2_ProLiteral","GPT_5_2_Pro","GPT_5_2_ProOptions","GPT_5_2_ProSchema","GPT_5_2_ChatLatestLiteral","GPT_5_2_ChatLatest","GPT_5_2_ChatLatestOptions","GPT_5_2_ChatLatestSchema","GPT_5_3_CodexLiteral","GPT_5_3_Codex","GPT_5_3_CodexOptions","GPT_5_3_CodexSchema","GPT_5_4Literal","GPT_5_4","GPT_5_4Options","GPT_5_4Schema","GPT_5_4_MiniLiteral","GPT_5_4_Mini","GPT_5_4_MiniOptions","GPT_5_4_MiniSchema","GPT_5_4_NanoLiteral","GPT_5_4_Nano","GPT_5_4_NanoOptions","GPT_5_4_NanoSchema","GPT_5_4_ProLiteral","GPT_5_4_Pro","GPT_5_4_ProOptions","GPT_5_4_ProSchema","GPT_5_5Literal","GPT_5_5","GPT_5_5Options","GPT_5_5Schema","GPT_5_5_ProLiteral","GPT_5_5_Pro","GPT_5_5_ProOptions","GPT_5_5_ProSchema","GPT_5_MiniLiteral","GPT_5_Mini","GPT_5_MiniOptions","GPT_5_MiniSchema","GPT_5_NanoLiteral","GPT_5_Nano","GPT_5_NanoOptions","GPT_5_NanoSchema","GPT_5_ChatLatestLiteral","GPT_5_ChatLatest","GPT_5_ChatLatestOptions","GPT_5_ChatLatestSchema","GPT_4_Turbo_2024_04_09Literal","GPT_4_Turbo_2024_04_09","GPT_4_Turbo_2024_04_09Options","GPT_4_Turbo_2024_04_09Schema","GPT_4_Turbo_PreviewLiteral","GPT_4_Turbo_Preview","GPT_4_Turbo_PreviewOptions","GPT_4_Turbo_PreviewSchema","GPT_4_TurboLiteral","GPT_4_Turbo","GPT_4_TurboOptions","GPT_4_TurboSchema","GPT_4Literal","GPT_4","GPT_4Options","GPT_4Schema","GPT_4o_2024_08_06Literal","GPT_4o_2024_08_06","GPT_4o_2024_08_06Options","GPT_4o_2024_08_06Schema","GPT_4o_MiniLiteral","GPT_4o_Mini","GPT_4o_MiniOptions","GPT_4o_MiniSchema","GPT_4oLiteral","GPT_4o","GPT_4oOptions","GPT_4oSchema","ChatGPT_4o_LatestLiteral","ChatGPT_4o_Latest","ChatGPT_4o_LatestOptions","ChatGPT_4o_LatestSchema","GPT_4o_Search_PreviewLiteral","GPT_4o_Search_Preview","GPT_4o_Search_PreviewOptions","GPT_4o_Search_PreviewSchema","GPT_4o_Search_Preview_2025_03_11Literal","GPT_4o_Search_Preview_2025_03_11","GPT_4o_Search_Preview_2025_03_11Options","GPT_4o_Search_Preview_2025_03_11Schema","GPT_4o_Mini_Search_PreviewLiteral","GPT_4o_Mini_Search_Preview","GPT_4o_Mini_Search_PreviewOptions","GPT_4o_Mini_Search_PreviewSchema","GPT_4o_Mini_Search_Preview_2025_03_11Literal","GPT_4o_Mini_Search_Preview_2025_03_11","GPT_4o_Mini_Search_Preview_2025_03_11Options","GPT_4o_Mini_Search_Preview_2025_03_11Schema","GPT_5_Search_ApiLiteral","GPT_5_Search_Api","GPT_5_Search_ApiOptions","GPT_5_Search_ApiSchema","GPT_4o_Mini_2024_07_18Literal","GPT_4o_Mini_2024_07_18","GPT_4o_Mini_2024_07_18Options","GPT_4o_Mini_2024_07_18Schema","GPT_4o_2024_05_13Literal","GPT_4o_2024_05_13","GPT_4o_2024_05_13Options","GPT_4o_2024_05_13Schema","O1Literal","O1","O1Options","O1Schema","O1_2024_12_17Literal","O1_2024_12_17","O1_2024_12_17Options","O1_2024_12_17Schema","O3Mini2025_01_31Literal","O3Mini2025_01_31","O3Mini2025_01_31Options","O3Mini2025_01_31Schema","O3MiniLiteral","O3Mini","O3MiniOptions","O3MiniSchema","O3_2025_04_16Literal","O3_2025_04_16","O3_2025_04_16Options","O3_2025_04_16Schema","O3Literal","O3","O3Options","O3Schema","O3ProLiteral","O3Pro","O3ProOptions","O3ProSchema","O4_Mini_2025_04_16Literal","O4_Mini_2025_04_16","O4_Mini_2025_04_16Options","O4_Mini_2025_04_16Schema","O4_MiniLiteral","O4_Mini","O4_MiniOptions","O4_MiniSchema","Text_Embedding_Ada002Literal","Text_Embedding_Ada002","Text_Embedding_Ada002_Options","Text_Embedding_Ada002Schema","Text_Embedding_3_SmallLiteral","Text_Embedding_3_Small","Text_Embedding_3_Small_Options","Text_Embedding_3_SmallSchema","Text_Embedding_3_LargeLiteral","Text_Embedding_3_Large","Text_Embedding_3_Large_Options","Text_Embedding_3_LargeSchema","acc","key","options","modelName","ProviderError","model","parsedOptions","OpenAIChatModelRoles","SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","OpenAIChatModelRolesMap","OpenAIChatModelModalities","TextModalityLiteral","ImageModalityLiteral","ToolCallModalityLiteral","ToolResponseModalityLiteral","OpenAIChatModelModalitiesEnum","OpenAIChatModelTextModalities","OpenAIChatModelTextModalitiesEnum","OpenAIChatModelTextToolModalities","OpenAIChatModelTextToolModalitiesEnum","OpenAIChatModelWebSearchModalities","SearchResultModalityLiteral","OpenAIChatModelWebSearchModalitiesEnum","OpenAIChatModelWithWebSearchModalities","OpenAIChatModelWithWebSearchModalitiesEnum","OpenAIChatModelProWithWebSearchModalities","OpenAIChatModelProWithWebSearchModalitiesEnum","OpenAIBaseLogProb","OpenAILogProb","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","OpenAIChatJsonSchemaObject","OpenAIChatRequestTool","OpenAIChatRequestToolChoiceEnum","OpenAIChatRequestToolChoiceFunction","OpenAIChatRequestResponseFormat","OpenAIChatRequestTextContent","OpenAIChatRequestImageContent","OpenAIChatRequestToolCallContent","OpenAIChatRequestSystemMessage","OpenAIChatRequestUserMessage","OpenAIChatRequestAssistantMessage","OpenAIChatRequestToolMessage","OpenAIChatRequestMessage","OpenAIChatRequest","OpenAIResponsesRequestInputTextContent","OpenAIResponsesRequestInputImageContent","OpenAIResponsesRequestInputFileContent","OpenAIResponsesRequestOutputTextContent","OpenAIResponsesRequestInputContentPart","OpenAIResponsesRequestOutputContentPart","OpenAIResponsesRequestMessageItem","OpenAIResponsesRequestFunctionCallItem","OpenAIResponsesRequestFunctionCallOutputItem","OpenAIResponsesRequestInputItem","OpenAIJsonSchemaObject","OpenAIResponsesRequestFunctionTool","OpenAIResponsesRequestWebSearchTool","OpenAIResponsesRequestTool","OpenAIResponsesRequestToolChoice","OpenAIResponsesRequestReasoning","OpenAIResponsesRequestTextFormat","OpenAIResponsesRequestText","OpenAIResponsesRequest","OpenAIResponsesUrlCitationAnnotation","OpenAIResponsesFileCitationAnnotation","OpenAIResponsesFilePathAnnotation","OpenAIResponsesContainerFileCitationAnnotation","OpenAIResponsesOutputTextAnnotation","OpenAIResponsesOutputTextLogProb","OpenAIResponsesOutputTextContentPart","OpenAIResponsesOutputRefusalContentPart","OpenAIResponsesOutputContentPart","OpenAIResponsesOutputMessageItem","OpenAIResponsesOutputFunctionCallItem","OpenAIResponsesOutputWebSearchCallItem","OpenAIResponsesReasoningSummaryPart","OpenAIResponsesOutputReasoningItem","OpenAIResponsesFileSearchResult","OpenAIResponsesOutputFileSearchCallItem","OpenAIResponsesOutputItem","OpenAIResponsesUsage","OpenAIResponsesError","OpenAIResponsesCompleteResponse","OpenAIResponsesStreamEventResponseCreated","OpenAIResponsesStreamEventResponseInProgress","OpenAIResponsesStreamEventResponseQueued","OpenAIResponsesStreamEventResponseCompleted","OpenAIResponsesStreamEventResponseFailed","OpenAIResponsesStreamEventResponseIncomplete","OpenAIResponsesStreamEventOutputItemAdded","OpenAIResponsesStreamEventOutputItemDone","OpenAIResponsesStreamEventContentPartAdded","OpenAIResponsesStreamEventContentPartDone","OpenAIResponsesStreamEventOutputTextDelta","OpenAIResponsesStreamEventOutputTextDone","OpenAIResponsesStreamEventOutputTextAnnotationAdded","OpenAIResponsesStreamEventRefusalDelta","OpenAIResponsesStreamEventRefusalDone","OpenAIResponsesStreamEventReasoningSummaryPartAdded","OpenAIResponsesStreamEventReasoningSummaryPartDone","OpenAIResponsesStreamEventReasoningSummaryTextDelta","OpenAIResponsesStreamEventReasoningSummaryTextDone","OpenAIResponsesStreamEventReasoningTextDelta","OpenAIResponsesStreamEventReasoningTextDone","OpenAIResponsesStreamEventFunctionCallArgumentsDelta","OpenAIResponsesStreamEventFunctionCallArgumentsDone","OpenAIResponsesStreamEventWebSearchCallInProgress","OpenAIResponsesStreamEventWebSearchCallSearching","OpenAIResponsesStreamEventWebSearchCallCompleted","OpenAIResponsesStreamEventFileSearchCallInProgress","OpenAIResponsesStreamEventFileSearchCallSearching","OpenAIResponsesStreamEventFileSearchCallCompleted","OpenAIResponsesStreamEventError","OpenAIResponsesStreamEvent","BaseChatModelOptions","BaseChatModel","modelSchema","_a","urlWithoutTrailingSlash","responseHeaders","_responseData","parseDuration","duration","regex","timeUnits","match","totalMs","unit","resetRequestsDelayMs","resetTokensDelayMs","shouldRetry","delayMs","messages","message","content","config","_tools","request","safeRequest","InvalidModelRequestError","parsedRequest","_config","Config","removeUndefinedEntries","toolCallMap","role","_content","c","Base64ImageContentTypeLiteral","getMimeTypeFromBase64","UrlImageContentTypeLiteral","assistantContent","toolCall","index","toolCallContent","toolResponse","tools","tool","workingConfig","_toolChoice","_parsedConfig","InvalidConfigError","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","Message","InvalidMessagesError","textContent","toolCalls","imageContent","combinedContent","InvalidToolsError","parsedTool","Tool","__async","resolve","transformedMessages","transformedTools","response","safe","ModelResponseError","parsedResponse","createTextContent","createToolCallContent","annotations","annotation","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","_b","__yieldStar","data","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","createPartialTextMessage","createPartialToolCallMessage","error","headers","query","sanitizedHeaders","skipFromResponsesTopLevel","responsesConfig","textParams","responseFormatValue","responseSchemaValue","_topLogProbs","instructionsParts","input","contentParts","url","textParts","result","responsesTools","parsedTools","schema","domains","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","parsed","responseError","hasNoOutput","collectedAnnotations","searchQueries","collectedText","functionCallIndex","hadWebSearchCall","item","part","createResponseErrorContent","thinking","p","signature","createReasoningContent","joinedQuery","lp","top","idx","nlIdx","payload","e","marker","newlineIdx","stateJson","rest","state","_q","newBufferTail","event","evt","type","delta","createPartialSearchResultMessage","createPartialResponseErrorMessage","createPartialReasoningMessage","itemId","resp","code","reason","errorPayload","text","urlMap","responses","references","citation","prefixStart","citationText","createSearchResultContent","ChatGPT_5_2Description","ChatModelSchema","GPT_3_5_Turbo_0125Description","GPT_3_5_Turbo_1106Description","GPT_3_5_TurboDescription","GPT_4_0125_PreviewDescription","GPT_4_0613Description","GPT_4_1106_PreviewDescription","GPT_4_1Description","GPT_4_1_MiniDescription","GPT_4_1_NanoDescription","GPT_5_1Description","GPT_5_2Description","GPT_5_2_ChatLatestDescription","GPT_5_2_CodexDescription","GPT_5_2_ProDescription","GPT_5_3_CodexDescription","GPT_5_4Description","GPT_5_4_MiniDescription","GPT_5_4_NanoDescription","GPT_5_4_ProDescription","GPT_5_5Description","GPT_5_5_ProDescription","GPT_5Description","GPT_5_ProDescription","GPT_5_MiniDescription","GPT_5_NanoDescription","GPT_5_ChatLatestDescription","GPT_4_Turbo_2024_04_09Description","GPT_4_Turbo_PreviewDescription","GPT_4_TurboDescription","GPT_4Description","GPT_4o_2024_05_13Description","GPT_4o_2024_08_06Description","GPT_4o_MiniDescription","GPT_4oDescription","GPT_4o_Search_PreviewDescription","GPT_4o_Search_Preview_2025_03_11Description","GPT_4o_Mini_Search_PreviewDescription","GPT_4o_Mini_Search_Preview_2025_03_11Description","GPT_5_Search_ApiDescription","ChatGPT_4o_LatestDescription","ChatGPT_4o_LatestModalities","ChatGPT_4o_LatestModalitiesEnum","O1_2024_12_17Description","O1Description","O3_2025_04_16Description","O3Description","O3ProDescription","O3MiniDescription","O3Mini2025_01_31Description","O4_Mini_2025_04_16Description","O4_MiniDescription","OpenAIEmbeddingModelModalities","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","OpenAIEmbeddingRequestInput","OpenAIEmbeddingRequest","embedding_pricing_default","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","embeddingRequests","embeddingFormat","_parsedRequests","EmbeddingRequests","InvalidEmbeddingRequestsError","Base64EmbeddingLiteral","FloatEmbeddingLiteral","embeddings","entry","EmbeddingModelPrice","Text_Embedding_Ada002Description","EmbeddingModelSchema","Text_Embedding_3_SmallDescription","Text_Embedding_3_LargeDescription"],"mappings":"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","file":"index.mjs","sourcesContent":["import { CHAT_CONFIG, MultiStringConfigItem, RangeConfigItem, SelectBooleanConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n  param: \"temperature\",\n  title: CHAT_CONFIG.TEMPERATURE.title,\n  description: CHAT_CONFIG.TEMPERATURE.description,\n  min: 0,\n  max: 2,\n  step: 0.01,\n  default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n  RangeConfigItem({\n    param: \"max_completion_tokens\",\n    title: CHAT_CONFIG.MAX_TOKENS.title,\n    description: CHAT_CONFIG.MAX_TOKENS.description,\n    min: 0,\n    max: maxOutputTokens,\n    step: 1,\n    default: 0,\n  });\n\nconst stop = (maxSequences: number) =>\n  MultiStringConfigItem({\n    param: \"stop\",\n    title: CHAT_CONFIG.STOP(maxSequences).title,\n    description: CHAT_CONFIG.STOP(maxSequences).description,\n    max: maxSequences,\n  });\n\nconst topP = RangeConfigItem({\n  param: \"top_p\",\n  title: CHAT_CONFIG.TOP_P.title,\n  description: CHAT_CONFIG.TOP_P.description,\n  min: 0,\n  max: 1,\n  step: 0.01,\n  default: 1,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n  param: \"frequency_penalty\",\n  title: CHAT_CONFIG.FREQUENCY_PENALTY.title,\n  description: CHAT_CONFIG.FREQUENCY_PENALTY.description,\n  min: -2,\n  max: 2,\n  step: 0.01,\n  default: 0,\n});\n\nconst presencePenalty = RangeConfigItem({\n  param: \"presence_penalty\",\n  title: CHAT_CONFIG.PRESENCE_PENALTY.title,\n  description: CHAT_CONFIG.PRESENCE_PENALTY.description,\n  min: -2,\n  max: 2,\n  step: 0.01,\n  default: 0,\n});\n\nconst seed = RangeConfigItem({\n  param: \"seed\",\n  title: CHAT_CONFIG.SEED.title,\n  description: CHAT_CONFIG.SEED.description,\n  min: 0,\n  max: 1000000,\n  step: 1,\n  default: 0,\n});\n\nconst logProbs = SelectBooleanConfigItem({\n  param: \"logprobs\",\n  title: CHAT_CONFIG.LOG_PROBS.title,\n  description: CHAT_CONFIG.LOG_PROBS.description,\n  default: false,\n});\n\nconst topLogProbs = RangeConfigItem({\n  param: \"top_logprobs\",\n  title: CHAT_CONFIG.TOP_LOG_PROBS.title,\n  description: CHAT_CONFIG.TOP_LOG_PROBS.description,\n  min: 0,\n  max: 20,\n  step: 1,\n  default: 0,\n});\n\nconst toolChoice = SelectStringConfigItem({\n  param: \"tool_choice\",\n  title: \"Tool choice\",\n  description:\n    \"Controls which (if any) tool is called by the model. 'none' means the model will not call a function. 'auto' means the model can pick between generating a message or calling a tool.\",\n  default: \"auto\",\n  choices: [\"auto\", \"required\", \"none\"],\n});\n\nconst reasoningEffort = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Controls the depth of the model's reasoning before delivering an answer. 'minimal' prioritizes speed, 'high' engages in deep reasoning.\",\n  default: \"medium\",\n  choices: [\"minimal\", \"low\", \"medium\", \"high\"],\n});\n\n// GPT-5.1 reasoning effort: replaces the legacy 'minimal' with 'none' but does not\n// yet include 'xhigh'. Default is 'none'.\n// See https://developers.openai.com/api/docs/models/gpt-5.1\nconst reasoningEffort5_1 = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Controls the depth of the model's reasoning before delivering an answer. 'none' disables reasoning for fastest responses, 'high' engages the deepest reasoning.\",\n  default: \"none\",\n  choices: [\"none\", \"low\", \"medium\", \"high\"],\n});\n\n// Shared reasoning effort for gpt-5.2 through gpt-5.4 chat models: adds 'xhigh' on top\n// of the 5.1 enum. Default is 'none'. Pro and codex variants use their own enums.\n// See https://developers.openai.com/api/docs/models/gpt-5.4\nconst reasoningEffort5_2Plus = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Controls the depth of the model's reasoning before delivering an answer. 'none' disables reasoning for fastest responses, 'xhigh' engages the deepest reasoning.\",\n  default: \"none\",\n  choices: [\"none\", \"low\", \"medium\", \"high\", \"xhigh\"],\n});\n\n// Reasoning effort for codex variants (gpt-5.2-codex, gpt-5.3-codex). Codex models\n// always run with some reasoning, so 'none' and 'minimal' are not accepted.\n// See https://developers.openai.com/api/docs/models/gpt-5.3-codex\nconst reasoningEffortCodex = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Controls the depth of the model's reasoning before delivering an answer. 'low' is the minimum for codex models; 'xhigh' engages the deepest reasoning.\",\n  default: \"medium\",\n  choices: [\"low\", \"medium\", \"high\", \"xhigh\"],\n});\n\n// Reasoning effort for pro variants (gpt-5.2-pro, gpt-5.4-pro). Pro tiers are\n// reasoning-heavy by design and only expose medium/high/xhigh.\n// See https://developers.openai.com/api/docs/models/gpt-5.4-pro\nconst reasoningEffortPro = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Controls the depth of the model's reasoning before delivering an answer. Pro tiers require at least 'medium' and support up to 'xhigh'.\",\n  default: \"medium\",\n  choices: [\"medium\", \"high\", \"xhigh\"],\n});\n\nconst verbosity = SelectStringConfigItem({\n  param: \"verbosity\",\n  title: \"Verbosity\",\n  description:\n    \"Controls the length and detail of the model's responses, independent of reasoning depth. 'low' generates concise answers, 'high' provides comprehensive responses.\",\n  default: \"medium\",\n  choices: [\"low\", \"medium\", \"high\"],\n});\n\nconst webSearchTool = SelectBooleanConfigItem({\n  param: \"webSearch\",\n  title: \"Web Search Tool\",\n  description: \"Controls whether the model searches the web for relevant results before responding.\",\n  default: false,\n});\n\n// Responses API only. Up to 100 domains; subdomains included automatically by OpenAI.\nconst webSearchAllowedDomains = MultiStringConfigItem({\n  param: \"webSearchAllowedDomains\",\n  title: \"Web Search Allowed Domains\",\n  description:\n    \"Restrict web search to this list of domains. Up to 100 entries; subdomains included automatically. Responses API only — ignored on Chat Completions search-preview SKUs.\",\n  max: 100,\n});\n\n// Responses API only. Default true (live web access). Set false for cached/indexed-only.\nconst webSearchExternalAccess = SelectBooleanConfigItem({\n  param: \"webSearchExternalAccess\",\n  title: \"Web Search External Access\",\n  description:\n    \"Allow external web access. Set to false to restrict to cached/indexed results. Responses API only. Ignored on web_search_preview.\",\n  default: true,\n});\n\nexport {\n  frequencyPenalty,\n  logProbs,\n  maxTokens,\n  presencePenalty,\n  reasoningEffort,\n  reasoningEffort5_1,\n  reasoningEffort5_2Plus,\n  reasoningEffortCodex,\n  reasoningEffortPro,\n  seed,\n  stop,\n  temperature,\n  toolChoice,\n  topLogProbs,\n  topP,\n  verbosity,\n  webSearchAllowedDomains,\n  webSearchExternalAccess,\n  webSearchTool,\n};\n","import { z } from \"zod\";\n\nimport {\n  frequencyPenalty,\n  logProbs,\n  maxTokens,\n  presencePenalty,\n  seed,\n  stop,\n  temperature,\n  toolChoice,\n  topLogProbs,\n  topP,\n} from \"./common.config.chat-model.openai\";\n\nconst ChatModelBaseConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  z.object({\n    temperature: temperature.schema,\n    maxTokens: maxTokens(maxOutputTokens).schema,\n    stop: stop(maxSequences).schema,\n    topP: topP.schema,\n    frequencyPenalty: frequencyPenalty.schema,\n    presencePenalty: presencePenalty.schema,\n    seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n    logProbs: logProbs.schema,\n    topLogProbs: topLogProbs.schema,\n    toolChoice: toolChoice.schema,\n  });\n\nconst ChatModelBaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n  ({\n    temperature: temperature.def,\n    maxTokens: maxTokens(maxOutputTokens).def,\n    stop: stop(maxSequences).def,\n    topP: topP.def,\n    frequencyPenalty: frequencyPenalty.def,\n    presencePenalty: presencePenalty.def,\n    seed: seed.def,\n    logProbs: logProbs.def,\n    topLogProbs: topLogProbs.def,\n    toolChoice: toolChoice.def,\n  }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { CHAT_CONFIG, ObjectSchemaConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\nimport { ResponseSchema } from \"@adaline/types\";\n\nimport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\n\nconst responseSchema = ObjectSchemaConfigItem({\n  param: \"response_schema\",\n  title: CHAT_CONFIG.RESPONSE_SCHEMA.title,\n  description: CHAT_CONFIG.RESPONSE_SCHEMA.description,\n  objectSchema: ResponseSchema,\n});\n\nconst responseFormat = SelectStringConfigItem({\n  param: \"response_format\",\n  title: CHAT_CONFIG.RESPONSE_FORMAT_WITH_SCHEMA.title,\n  description: CHAT_CONFIG.RESPONSE_FORMAT_WITH_SCHEMA.description,\n  default: \"text\",\n  choices: [\"text\", \"json_object\", \"json_schema\"],\n});\n\nconst ChatModelResponseSchemaConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  responseFormat: responseFormat.def,\n  responseSchema: responseSchema.def,\n});\n\nconst ChatModelResponseSchemaConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    responseFormat: responseFormat.schema,\n    responseSchema: responseSchema.schema,\n  });\n\nexport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema };\n","\nimport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\nimport { reasoningEffort, verbosity } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\nconst ChatModelGPT5ConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  reasoningEffort: reasoningEffort.def,\n  verbosity: verbosity.def,\n  responseFormat: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseFormat,\n  responseSchema: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseSchema,\n});\n\nconst ChatModelGPT5ConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    reasoningEffort: reasoningEffort.schema,\n    verbosity: verbosity.schema,\n    responseFormat: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseFormat,\n    responseSchema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseSchema,\n  });\n\nexport { ChatModelGPT5ConfigDef, ChatModelGPT5ConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\nimport { reasoningEffort5_1, verbosity } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// Config for gpt-5.1. Uses reasoning_effort values none/low/medium/high (default 'none').\n// Unlike 5.2+, gpt-5.1 does not support 'xhigh'.\nconst ChatModelGPT5_1ConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  reasoningEffort: reasoningEffort5_1.def,\n  verbosity: verbosity.def,\n  responseFormat: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseFormat,\n  responseSchema: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseSchema,\n});\n\nconst ChatModelGPT5_1ConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    reasoningEffort: reasoningEffort5_1.schema,\n    verbosity: verbosity.schema,\n    responseFormat: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseFormat,\n    responseSchema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseSchema,\n  });\n\nexport { ChatModelGPT5_1ConfigDef, ChatModelGPT5_1ConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelGPT5_1ConfigDef, ChatModelGPT5_1ConfigSchema } from \"./gpt5-1.config.chat-model.openai\";\n\nconst ChatModelGPT5_1WithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelGPT5_1ConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelGPT5_1WithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelGPT5_1ConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelGPT5_1WithWebSearchConfigDef, ChatModelGPT5_1WithWebSearchConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\nimport { reasoningEffort5_2Plus, verbosity } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// Config for gpt-5.2 through gpt-5.4 chat models (excluding codex and pro variants).\n// Uses the reasoning_effort enum that OpenAI introduced in 5.2: none/low/medium/high/xhigh,\n// default 'none'. gpt-5.4 kept the same enum as 5.2.\nconst ChatModelGPT5_2PlusConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  reasoningEffort: reasoningEffort5_2Plus.def,\n  verbosity: verbosity.def,\n  responseFormat: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseFormat,\n  responseSchema: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseSchema,\n});\n\nconst ChatModelGPT5_2PlusConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    reasoningEffort: reasoningEffort5_2Plus.schema,\n    verbosity: verbosity.schema,\n    responseFormat: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseFormat,\n    responseSchema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseSchema,\n  });\n\nexport { ChatModelGPT5_2PlusConfigDef, ChatModelGPT5_2PlusConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelGPT5_2PlusConfigDef, ChatModelGPT5_2PlusConfigSchema } from \"./gpt5-2-plus.config.chat-model.openai\";\n\nconst ChatModelGPT5_2PlusWithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelGPT5_2PlusConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelGPT5_2PlusWithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelGPT5_2PlusConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelGPT5_2PlusWithWebSearchConfigDef, ChatModelGPT5_2PlusWithWebSearchConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\nimport { reasoningEffortCodex, verbosity } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// Config for gpt-5.2-codex and gpt-5.3-codex. Codex models support reasoning_effort\n// values low/medium/high/xhigh only ('none' and 'minimal' are rejected).\nconst ChatModelGPT5CodexConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  reasoningEffort: reasoningEffortCodex.def,\n  verbosity: verbosity.def,\n  responseFormat: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseFormat,\n  responseSchema: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseSchema,\n});\n\nconst ChatModelGPT5CodexConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    reasoningEffort: reasoningEffortCodex.schema,\n    verbosity: verbosity.schema,\n    responseFormat: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseFormat,\n    responseSchema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseSchema,\n  });\n\nexport { ChatModelGPT5CodexConfigDef, ChatModelGPT5CodexConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\nimport { reasoningEffortPro, verbosity } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// Config for gpt-5.2-pro and gpt-5.4-pro (Responses API models).\n// Pro models accept only medium/high/xhigh for reasoning_effort — 'none' and 'low' are\n// intentionally rejected since pro tiers always engage reasoning.\nconst ChatModelGPT5ProConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  reasoningEffort: reasoningEffortPro.def,\n  verbosity: verbosity.def,\n  responseFormat: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseFormat,\n  responseSchema: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences).responseSchema,\n});\n\nconst ChatModelGPT5ProConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    reasoningEffort: reasoningEffortPro.schema,\n    verbosity: verbosity.schema,\n    responseFormat: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseFormat,\n    responseSchema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).shape.responseSchema,\n  });\n\nexport { ChatModelGPT5ProConfigDef, ChatModelGPT5ProConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelGPT5ProConfigDef, ChatModelGPT5ProConfigSchema } from \"./gpt5-pro.config.chat-model.openai\";\n\nconst ChatModelGPT5ProWithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelGPT5ProConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelGPT5ProWithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelGPT5ProConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelGPT5ProWithWebSearchConfigDef, ChatModelGPT5ProWithWebSearchConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelGPT5ConfigDef, ChatModelGPT5ConfigSchema } from \"./gpt5.config.chat-model.openai\";\n\nconst ChatModelGPT5WithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelGPT5ConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelGPT5WithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelGPT5ConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelGPT5WithWebSearchConfigDef, ChatModelGPT5WithWebSearchConfigSchema };\n","import { CHAT_CONFIG, RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\nconst oSeriesTemperature = RangeConfigItem({\n  param: \"temperature\",\n  title: CHAT_CONFIG.TEMPERATURE.title,\n  description: CHAT_CONFIG.TEMPERATURE.description,\n  min: 0,\n  max: 2,\n  step: 0.01,\n  default: 1,\n});\n\n// o1 models only support temperature = 1.0\nconst o1SeriesTemperature = RangeConfigItem({\n  param: \"temperature\",\n  title: CHAT_CONFIG.TEMPERATURE.title,\n  description: CHAT_CONFIG.TEMPERATURE.description,\n  min: 1,\n  max: 1,\n  step: 0.01,\n  default: 1,\n});\n\nconst reasoningEffort = SelectStringConfigItem({\n  param: \"reasoning_effort\",\n  title: \"Reasoning Effort\",\n  description:\n    \"Constrains effort on reasoning for reasoning models. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.\",\n  default: \"medium\",\n  choices: [\"low\", \"medium\", \"high\"],\n});\nconst ChatModelOSeriesConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n  temperature: oSeriesTemperature.def,\n  reasoningEffort: reasoningEffort.def,\n});\n\nconst ChatModelOSeriesConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).extend({\n    temperature: oSeriesTemperature.schema,\n    reasoningEffort: reasoningEffort.schema,\n  });\n\nconst ChatModelO1SeriesConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n  temperature: o1SeriesTemperature.def,\n  reasoningEffort: reasoningEffort.def,\n});\n\nconst ChatModelO1SeriesConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).extend({\n    temperature: o1SeriesTemperature.schema,\n    reasoningEffort: reasoningEffort.schema,\n  });\n\nexport { ChatModelO1SeriesConfigDef, ChatModelO1SeriesConfigSchema, ChatModelOSeriesConfigDef, ChatModelOSeriesConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelOSeriesConfigDef, ChatModelOSeriesConfigSchema } from \"./o-series.config.chat-model.openai\";\n\nconst ChatModelOSeriesWithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelOSeriesConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelOSeriesWithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelOSeriesConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelOSeriesWithWebSearchConfigDef, ChatModelOSeriesWithWebSearchConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelO1SeriesConfigDef, ChatModelO1SeriesConfigSchema } from \"./o-series.config.chat-model.openai\";\n\nconst ChatModelO1SeriesWithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelO1SeriesConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelO1SeriesWithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelO1SeriesConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelO1SeriesWithWebSearchConfigDef, ChatModelO1SeriesWithWebSearchConfigSchema };\n","import { CHAT_CONFIG, SelectStringConfigItem } from \"@adaline/provider\";\n\nimport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./base.config.chat-model.openai\";\n\nconst responseFormat = SelectStringConfigItem({\n  param: \"response_format\",\n  title: CHAT_CONFIG.RESPONSE_FORMAT.title,\n  description: CHAT_CONFIG.RESPONSE_FORMAT.description,\n  default: \"text\",\n  choices: [\"text\", \"json_object\"],\n});\n\nconst ChatModelResponseFormatConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n  responseFormat: responseFormat.def,\n});\n\nconst ChatModelResponseFormatConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelBaseConfigSchema(maxOutputTokens, maxSequences).extend({\n    responseFormat: responseFormat.schema,\n  });\n\nexport { ChatModelResponseFormatConfigDef, ChatModelResponseFormatConfigSchema };\n","import { webSearchAllowedDomains, webSearchExternalAccess, webSearchTool } from \"./common.config.chat-model.openai\";\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\nconst ChatModelResponseSchemaWithWebSearchConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n  ...ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n  webSearchTool: webSearchTool.def,\n  webSearchAllowedDomains: webSearchAllowedDomains.def,\n  webSearchExternalAccess: webSearchExternalAccess.def,\n});\n\nconst ChatModelResponseSchemaWithWebSearchConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n  ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).extend({\n    webSearchTool: webSearchTool.schema,\n    webSearchAllowedDomains: webSearchAllowedDomains.schema,\n    webSearchExternalAccess: webSearchExternalAccess.schema,\n  });\n\nexport { ChatModelResponseSchemaWithWebSearchConfigDef, ChatModelResponseSchemaWithWebSearchConfigSchema };\n","import { RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst encodingFormat = SelectStringConfigItem({\n  param: \"encoding_format\",\n  title: \"Encoding format\",\n  description: \"Select the encoding format for the word embedding.\",\n  default: \"float\",\n  choices: [\"float\", \"base64\"],\n});\n\nconst dimensions = (maxDimensions: number) =>\n  RangeConfigItem({\n    param: \"dimensions\",\n    title: \"Dimensions\",\n    description: \"Select the number of dimensions for the word embedding.\",\n    min: 1,\n    max: maxDimensions,\n    step: 1,\n    default: maxDimensions,\n  });\n\nexport { encodingFormat, dimensions };\n","import { z } from \"zod\";\n\nimport { encodingFormat } from \"./common.config.embedding-model.openai\";\n\nconst EmbeddingModelBaseConfigSchema = () =>\n  z.object({\n    encodingFormat: encodingFormat.schema,\n  });\n\nconst EmbeddingModelBaseConfigDef = () =>\n  ({\n    encodingFormat: encodingFormat.def,\n  }) as const;\n\nexport { EmbeddingModelBaseConfigDef, EmbeddingModelBaseConfigSchema };\n","import { EmbeddingModelBaseConfigDef, EmbeddingModelBaseConfigSchema } from \"./base.config.embedding-model.openai\";\nimport { dimensions } from \"./common.config.embedding-model.openai\";\n\nconst EmbeddingModelDimensionsConfigSchema = (maxDimensions: number) =>\n  EmbeddingModelBaseConfigSchema().extend({\n    dimensions: dimensions(maxDimensions).schema,\n  });\n\nconst EmbeddingModelDimensionsConfigDef = (maxDimensions: number) =>\n  ({\n    ...EmbeddingModelBaseConfigDef(),\n    dimensions: dimensions(maxDimensions).def,\n  }) as const;\n\nexport { EmbeddingModelDimensionsConfigDef, EmbeddingModelDimensionsConfigSchema };\n","import {\n  ChatModelBaseConfigDef,\n  ChatModelBaseConfigSchema,\n  ChatModelGPT5_1ConfigDef,\n  ChatModelGPT5_1ConfigSchema,\n  ChatModelGPT5_1WithWebSearchConfigDef,\n  ChatModelGPT5_1WithWebSearchConfigSchema,\n  ChatModelGPT5_2PlusConfigDef,\n  ChatModelGPT5_2PlusConfigSchema,\n  ChatModelGPT5_2PlusWithWebSearchConfigDef,\n  ChatModelGPT5_2PlusWithWebSearchConfigSchema,\n  ChatModelGPT5CodexConfigDef,\n  ChatModelGPT5CodexConfigSchema,\n  ChatModelGPT5ConfigDef,\n  ChatModelGPT5ConfigSchema,\n  ChatModelGPT5ProConfigDef,\n  ChatModelGPT5ProConfigSchema,\n  ChatModelGPT5ProWithWebSearchConfigDef,\n  ChatModelGPT5ProWithWebSearchConfigSchema,\n  ChatModelGPT5WithWebSearchConfigDef,\n  ChatModelGPT5WithWebSearchConfigSchema,\n  ChatModelO1SeriesConfigDef,\n  ChatModelO1SeriesConfigSchema,\n  ChatModelO1SeriesWithWebSearchConfigDef,\n  ChatModelO1SeriesWithWebSearchConfigSchema,\n  ChatModelOSeriesConfigDef,\n  ChatModelOSeriesConfigSchema,\n  ChatModelOSeriesWithWebSearchConfigDef,\n  ChatModelOSeriesWithWebSearchConfigSchema,\n  ChatModelResponseFormatConfigDef,\n  ChatModelResponseFormatConfigSchema,\n  ChatModelResponseSchemaConfigDef,\n  ChatModelResponseSchemaConfigSchema,\n  ChatModelResponseSchemaWithWebSearchConfigDef,\n  ChatModelResponseSchemaWithWebSearchConfigSchema,\n} from \"./chat-model\";\nimport {\n  EmbeddingModelBaseConfigDef,\n  EmbeddingModelBaseConfigSchema,\n  EmbeddingModelDimensionsConfigDef,\n  EmbeddingModelDimensionsConfigSchema,\n} from \"./embedding-model\";\n\nconst OpenAIChatModelConfigs = {\n  base: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelBaseConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  responseFormat: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelResponseFormatConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelResponseFormatConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  responseSchema: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  oSeries: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelOSeriesConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelOSeriesConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  o1Series: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelO1SeriesConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelO1SeriesConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5ConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5ConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5_1: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5_1ConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5_1ConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5_2Plus: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5_2PlusConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5_2PlusConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5Codex: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5CodexConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5CodexConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5Pro: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5ProConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5ProConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  responseSchemaWithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelResponseSchemaWithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelResponseSchemaWithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  oSeriesWithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelOSeriesWithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelOSeriesWithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  o1SeriesWithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelO1SeriesWithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelO1SeriesWithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5WithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5WithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5WithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5_1WithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5_1WithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5_1WithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5_2PlusWithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5_2PlusWithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5_2PlusWithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n  gpt5ProWithWebSearch: (maxOutputTokens: number, maxSequences: number) => ({\n    def: ChatModelGPT5ProWithWebSearchConfigDef(maxOutputTokens, maxSequences),\n    schema: ChatModelGPT5ProWithWebSearchConfigSchema(maxOutputTokens, maxSequences),\n  }),\n} as const;\n\nconst OpenAIEmbeddingModelConfigs = {\n  base: () => ({\n    def: EmbeddingModelBaseConfigDef(),\n    schema: EmbeddingModelBaseConfigSchema(),\n  }),\n  dimensions: (maxDimensions: number) => ({\n    def: EmbeddingModelDimensionsConfigDef(maxDimensions),\n    schema: EmbeddingModelDimensionsConfigSchema(maxDimensions),\n  }),\n} as const;\n\nexport { OpenAIChatModelConfigs, OpenAIEmbeddingModelConfigs };\n","{\n  \"gpt-3.5-turbo-0125\": {\n    \"modelName\": \"gpt-3.5-turbo-0125\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.5,\n            \"outputPricePerMillion\": 1.5\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-3.5-turbo-1106\": {\n    \"modelName\": \"gpt-3.5-turbo-1106\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.5,\n            \"outputPricePerMillion\": 1.5\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-3.5-turbo\": {\n    \"modelName\": \"gpt-3.5-turbo\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.5,\n            \"outputPricePerMillion\": 1.5\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-0125-preview\": {\n    \"modelName\": \"gpt-4-0125-preview\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-0613\": {\n    \"modelName\": \"gpt-4-0613\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-1106-preview\": {\n    \"modelName\": \"gpt-4-1106-preview\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-turbo-2024-04-09\": {\n    \"modelName\": \"gpt-4-turbo-2024-04-09\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10,\n            \"outputPricePerMillion\": 30\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-turbo-preview\": {\n    \"modelName\": \"gpt-4-turbo-preview\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10,\n            \"outputPricePerMillion\": 30\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4-turbo\": {\n    \"modelName\": \"gpt-4-turbo\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10,\n            \"outputPricePerMillion\": 30\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4\": {\n    \"modelName\": \"gpt-4\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-2024-05-13\": {\n    \"modelName\": \"gpt-4o-2024-05-13\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 20\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-2024-08-06\": {\n    \"modelName\": \"gpt-4o-2024-08-06\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 2.5,\n            \"outputPricePerMillion\": 10\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-mini-2024-07-18\": {\n    \"modelName\": \"gpt-4o-mini-2024-07-18\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.6,\n            \"outputPricePerMillion\": 2.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-mini\": {\n    \"modelName\": \"gpt-4o-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.6,\n            \"outputPricePerMillion\": 2.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o\": {\n    \"modelName\": \"gpt-4o\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 20\n          }\n        }\n      }\n    ]\n  },\n  \"chatgpt-4o-latest\": {\n    \"modelName\": \"chatgpt-4o-latest\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 15\n          }\n        }\n      }\n    ]\n  },\n  \"o1-2024-12-17\": {\n    \"modelName\": \"o1-2024-12-17\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 15,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"o1\": {\n    \"modelName\": \"o1\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 15,\n            \"outputPricePerMillion\": 60\n          }\n        }\n      }\n    ]\n  },\n  \"o3-mini-2025-01-31\": {\n    \"modelName\": \"o3-mini-2025-01-31\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.1,\n            \"outputPricePerMillion\": 4.4\n          }\n        }\n      }\n    ]\n  },\n  \"o3-mini\": {\n    \"modelName\": \"o3-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.1,\n            \"outputPricePerMillion\": 4.4\n          }\n        }\n      }\n    ]\n  },\n  \"o3-2025-04-16\": {\n    \"modelName\": \"o3-2025-04-16\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10.0,\n            \"outputPricePerMillion\": 40.0\n          }\n        }\n      }\n    ]\n  },\n  \"o3\": {\n    \"modelName\": \"o3\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10.0,\n            \"outputPricePerMillion\": 40.0\n          }\n        }\n      }\n    ]\n  },\n  \"o4-mini-2025-04-16\": {\n    \"modelName\": \"o4-mini-2025-04-16\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.1,\n            \"outputPricePerMillion\": 4.4\n          }\n        }\n      }\n    ]\n  },\n  \"o4-mini\": {\n    \"modelName\": \"o4-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.1,\n            \"outputPricePerMillion\": 4.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4.1\": {\n    \"modelName\": \"gpt-4.1\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 2.0,\n            \"outputPricePerMillion\": 8.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4.1-mini\": {\n    \"modelName\": \"gpt-4.1-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.4,\n            \"outputPricePerMillion\": 1.6\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4.1-nano\": {\n    \"modelName\": \"gpt-4.1-nano\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.1,\n            \"outputPricePerMillion\": 0.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5\": {\n    \"modelName\": \"gpt-5\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.25,\n            \"outputPricePerMillion\": 10.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5-mini\": {\n    \"modelName\": \"gpt-5-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.25,\n            \"outputPricePerMillion\": 2.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5-nano\": {\n    \"modelName\": \"gpt-5-nano\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.05,\n            \"outputPricePerMillion\": 0.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5-chat-latest\": {\n    \"modelName\": \"gpt-5-chat-latest\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.25,\n            \"outputPricePerMillion\": 10.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.1\": {\n    \"modelName\": \"gpt-5.1\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.5,\n            \"outputPricePerMillion\": 12.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.2\": {\n    \"modelName\": \"gpt-5.2\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.75,\n            \"outputPricePerMillion\": 14.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.2-codex\": {\n    \"modelName\": \"gpt-5.2-codex\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.75,\n            \"outputPricePerMillion\": 14.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.2-chat-latest\": {\n    \"modelName\": \"gpt-5.2-chat-latest\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 1.75,\n            \"outputPricePerMillion\": 14.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.2-pro\": {\n    \"modelName\": \"gpt-5.2-pro\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 21.0,\n            \"outputPricePerMillion\": 168.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.3-codex\": {\n    \"modelName\": \"gpt-5.3-codex\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 2.1,\n            \"outputPricePerMillion\": 16.8\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.4\": {\n    \"modelName\": \"gpt-5.4\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 2.5,\n            \"outputPricePerMillion\": 15.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.4-mini\": {\n    \"modelName\": \"gpt-5.4-mini\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.75,\n            \"outputPricePerMillion\": 4.5\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.4-pro\": {\n    \"modelName\": \"gpt-5.4-pro\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30.0,\n            \"outputPricePerMillion\": 180.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.5\": {\n    \"modelName\": \"gpt-5.5\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": 272000,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5.0,\n            \"outputPricePerMillion\": 30.0\n          }\n        }\n      },\n      {\n        \"minTokens\": 272000,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 10.0,\n            \"outputPricePerMillion\": 45.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-search-preview\": {\n    \"modelName\": \"gpt-4o-search-preview\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 20\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-search-preview-2025-03-11\": {\n    \"modelName\": \"gpt-4o-search-preview-2025-03-11\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 20\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-mini-search-preview\": {\n    \"modelName\": \"gpt-4o-mini-search-preview\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.6,\n            \"outputPricePerMillion\": 2.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5-search-api\": {\n    \"modelName\": \"gpt-5-search-api\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 5,\n            \"outputPricePerMillion\": 20\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-4o-mini-search-preview-2025-03-11\": {\n    \"modelName\": \"gpt-4o-mini-search-preview-2025-03-11\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.6,\n            \"outputPricePerMillion\": 2.4\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.5-pro\": {\n    \"modelName\": \"gpt-5.5-pro\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 30.0,\n            \"outputPricePerMillion\": 180.0\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5.4-nano\": {\n    \"modelName\": \"gpt-5.4-nano\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 0.2,\n            \"outputPricePerMillion\": 1.25\n          }\n        }\n      }\n    ]\n  },\n  \"gpt-5-pro\": {\n    \"modelName\": \"gpt-5-pro\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 15.0,\n            \"outputPricePerMillion\": 120.0\n          }\n        }\n      }\n    ]\n  },\n  \"o3-pro\": {\n    \"modelName\": \"o3-pro\",\n    \"currency\": \"USD\",\n    \"tokenRanges\": [\n      {\n        \"minTokens\": 0,\n        \"maxTokens\": null,\n        \"prices\": {\n          \"base\": {\n            \"inputPricePerMillion\": 20.0,\n            \"outputPricePerMillion\": 80.0\n          }\n        }\n      }\n    ]\n  }\n}\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport * as Models from \"../models\";\n\nconst ProviderLiteral = \"openai\";\nclass OpenAI<C extends Models.BaseChatModelOptionsType, E extends Models.BaseEmbeddingModelOptionsType> implements ProviderV1<C, E> {\n  readonly version = \"v1\" as const;\n  readonly name = ProviderLiteral;\n  static readonly baseUrl = \"https://api.openai.com/v1\";\n\n  private readonly chatModelFactories: Record<\n    string,\n    {\n      model: { new (options: any): ChatModelV1 };\n      modelOptions: z.ZodType<any>;\n      modelSchema: ChatModelSchemaType;\n    }\n  > = {\n    [Models.GPT_3_5_TurboLiteral]: {\n      model: Models.GPT_3_5_Turbo,\n      modelOptions: Models.GPT_3_5_TurboOptions,\n      modelSchema: Models.GPT_3_5_TurboSchema,\n    },\n    [Models.GPT_3_5_Turbo_0125Literal]: {\n      model: Models.GPT_3_5_Turbo_0125,\n      modelOptions: Models.GPT_3_5_Turbo_0125Options,\n      modelSchema: Models.GPT_3_5_Turbo_0125Schema,\n    },\n    [Models.GPT_3_5_Turbo_1106Literal]: {\n      model: Models.GPT_3_5_Turbo_1106,\n      modelOptions: Models.GPT_3_5_Turbo_1106Options,\n      modelSchema: Models.GPT_3_5_Turbo_1106Schema,\n    },\n    [Models.GPT_4_0125_PreviewLiteral]: {\n      model: Models.GPT_4_0125_Preview,\n      modelOptions: Models.GPT_4_0125_PreviewOptions,\n      modelSchema: Models.GPT_4_0125_PreviewSchema,\n    },\n    [Models.GPT_4_0613Literal]: {\n      model: Models.GPT_4_0613,\n      modelOptions: Models.GPT_4_0613Options,\n      modelSchema: Models.GPT_4_0613Schema,\n    },\n    [Models.GPT_4_1106_PreviewLiteral]: {\n      model: Models.GPT_4_1106_Preview,\n      modelOptions: Models.GPT_4_1106_PreviewOptions,\n      modelSchema: Models.GPT_4_1106_PreviewSchema,\n    },\n    [Models.GPT_4_1Literal]: {\n      model: Models.GPT_4_1,\n      modelOptions: Models.GPT_4_1Options,\n      modelSchema: Models.GPT_4_1Schema,\n    },\n    [Models.GPT_4_1_MiniLiteral]: {\n      model: Models.GPT_4_1_Mini,\n      modelOptions: Models.GPT_4_1_MiniOptions,\n      modelSchema: Models.GPT_4_1_MiniSchema,\n    },\n    [Models.GPT_4_1_NanoLiteral]: {\n      model: Models.GPT_4_1_Nano,\n      modelOptions: Models.GPT_4_1_NanoOptions,\n      modelSchema: Models.GPT_4_1_NanoSchema,\n    },\n    [Models.GPT_5Literal]: {\n      model: Models.GPT_5,\n      modelOptions: Models.GPT_5Options,\n      modelSchema: Models.GPT_5Schema,\n    },\n    [Models.GPT_5_ProLiteral]: {\n      model: Models.GPT_5_Pro,\n      modelOptions: Models.GPT_5_ProOptions,\n      modelSchema: Models.GPT_5_ProSchema,\n    },\n    [Models.GPT_5_1Literal]: {\n      model: Models.GPT_5_1,\n      modelOptions: Models.GPT_5_1Options,\n      modelSchema: Models.GPT_5_1Schema,\n    },\n    [Models.GPT_5_2Literal]: {\n      model: Models.GPT_5_2,\n      modelOptions: Models.GPT_5_2Options,\n      modelSchema: Models.GPT_5_2Schema,\n    },\n    [Models.GPT_5_2_CodexLiteral]: {\n      model: Models.GPT_5_2_Codex,\n      modelOptions: Models.GPT_5_2_CodexOptions,\n      modelSchema: Models.GPT_5_2_CodexSchema,\n    },\n    [Models.ChatGPT_5_2Literal]: {\n      model: Models.ChatGPT_5_2,\n      modelOptions: Models.ChatGPT_5_2Options,\n      modelSchema: Models.ChatGPT_5_2Schema,\n    },\n    [Models.GPT_5_2_ProLiteral]: {\n      model: Models.GPT_5_2_Pro,\n      modelOptions: Models.GPT_5_2_ProOptions,\n      modelSchema: Models.GPT_5_2_ProSchema,\n    },\n    [Models.GPT_5_2_ChatLatestLiteral]: {\n      model: Models.GPT_5_2_ChatLatest,\n      modelOptions: Models.GPT_5_2_ChatLatestOptions,\n      modelSchema: Models.GPT_5_2_ChatLatestSchema,\n    },\n    [Models.GPT_5_3_CodexLiteral]: {\n      model: Models.GPT_5_3_Codex,\n      modelOptions: Models.GPT_5_3_CodexOptions,\n      modelSchema: Models.GPT_5_3_CodexSchema,\n    },\n    [Models.GPT_5_4Literal]: {\n      model: Models.GPT_5_4,\n      modelOptions: Models.GPT_5_4Options,\n      modelSchema: Models.GPT_5_4Schema,\n    },\n    [Models.GPT_5_4_MiniLiteral]: {\n      model: Models.GPT_5_4_Mini,\n      modelOptions: Models.GPT_5_4_MiniOptions,\n      modelSchema: Models.GPT_5_4_MiniSchema,\n    },\n    [Models.GPT_5_4_NanoLiteral]: {\n      model: Models.GPT_5_4_Nano,\n      modelOptions: Models.GPT_5_4_NanoOptions,\n      modelSchema: Models.GPT_5_4_NanoSchema,\n    },\n    [Models.GPT_5_4_ProLiteral]: {\n      model: Models.GPT_5_4_Pro,\n      modelOptions: Models.GPT_5_4_ProOptions,\n      modelSchema: Models.GPT_5_4_ProSchema,\n    },\n    [Models.GPT_5_5Literal]: {\n      model: Models.GPT_5_5,\n      modelOptions: Models.GPT_5_5Options,\n      modelSchema: Models.GPT_5_5Schema,\n    },\n    [Models.GPT_5_5_ProLiteral]: {\n      model: Models.GPT_5_5_Pro,\n      modelOptions: Models.GPT_5_5_ProOptions,\n      modelSchema: Models.GPT_5_5_ProSchema,\n    },\n    [Models.GPT_5_MiniLiteral]: {\n      model: Models.GPT_5_Mini,\n      modelOptions: Models.GPT_5_MiniOptions,\n      modelSchema: Models.GPT_5_MiniSchema,\n    },\n    [Models.GPT_5_NanoLiteral]: {\n      model: Models.GPT_5_Nano,\n      modelOptions: Models.GPT_5_NanoOptions,\n      modelSchema: Models.GPT_5_NanoSchema,\n    },\n    [Models.GPT_5_ChatLatestLiteral]: {\n      model: Models.GPT_5_ChatLatest,\n      modelOptions: Models.GPT_5_ChatLatestOptions,\n      modelSchema: Models.GPT_5_ChatLatestSchema,\n    },\n    [Models.GPT_4_Turbo_2024_04_09Literal]: {\n      model: Models.GPT_4_Turbo_2024_04_09,\n      modelOptions: Models.GPT_4_Turbo_2024_04_09Options,\n      modelSchema: Models.GPT_4_Turbo_2024_04_09Schema,\n    },\n    [Models.GPT_4_Turbo_PreviewLiteral]: {\n      model: Models.GPT_4_Turbo_Preview,\n      modelOptions: Models.GPT_4_Turbo_PreviewOptions,\n      modelSchema: Models.GPT_4_Turbo_PreviewSchema,\n    },\n    [Models.GPT_4_TurboLiteral]: {\n      model: Models.GPT_4_Turbo,\n      modelOptions: Models.GPT_4_TurboOptions,\n      modelSchema: Models.GPT_4_TurboSchema,\n    },\n    [Models.GPT_4Literal]: {\n      model: Models.GPT_4,\n      modelOptions: Models.GPT_4Options,\n      modelSchema: Models.GPT_4Schema,\n    },\n    [Models.GPT_4o_2024_08_06Literal]: {\n      model: Models.GPT_4o_2024_08_06,\n      modelOptions: Models.GPT_4o_2024_08_06Options,\n      modelSchema: Models.GPT_4o_2024_08_06Schema,\n    },\n    [Models.GPT_4o_MiniLiteral]: {\n      model: Models.GPT_4o_Mini,\n      modelOptions: Models.GPT_4o_MiniOptions,\n      modelSchema: Models.GPT_4o_MiniSchema,\n    },\n    [Models.GPT_4oLiteral]: {\n      model: Models.GPT_4o,\n      modelOptions: Models.GPT_4oOptions,\n      modelSchema: Models.GPT_4oSchema,\n    },\n    [Models.ChatGPT_4o_LatestLiteral]: {\n      model: Models.ChatGPT_4o_Latest,\n      modelOptions: Models.ChatGPT_4o_LatestOptions,\n      modelSchema: Models.ChatGPT_4o_LatestSchema,\n    },\n    [Models.GPT_4o_Search_PreviewLiteral]: {\n      model: Models.GPT_4o_Search_Preview,\n      modelOptions: Models.GPT_4o_Search_PreviewOptions,\n      modelSchema: Models.GPT_4o_Search_PreviewSchema,\n    },\n    [Models.GPT_4o_Search_Preview_2025_03_11Literal]: {\n      model: Models.GPT_4o_Search_Preview_2025_03_11,\n      modelOptions: Models.GPT_4o_Search_Preview_2025_03_11Options,\n      modelSchema: Models.GPT_4o_Search_Preview_2025_03_11Schema,\n    },\n    [Models.GPT_4o_Mini_Search_PreviewLiteral]: {\n      model: Models.GPT_4o_Mini_Search_Preview,\n      modelOptions: Models.GPT_4o_Mini_Search_PreviewOptions,\n      modelSchema: Models.GPT_4o_Mini_Search_PreviewSchema,\n    },\n    [Models.GPT_4o_Mini_Search_Preview_2025_03_11Literal]: {\n      model: Models.GPT_4o_Mini_Search_Preview_2025_03_11,\n      modelOptions: Models.GPT_4o_Mini_Search_Preview_2025_03_11Options,\n      modelSchema: Models.GPT_4o_Mini_Search_Preview_2025_03_11Schema,\n    },\n    [Models.GPT_5_Search_ApiLiteral]: {\n      model: Models.GPT_5_Search_Api,\n      modelOptions: Models.GPT_5_Search_ApiOptions,\n      modelSchema: Models.GPT_5_Search_ApiSchema,\n    },\n    [Models.GPT_4o_Mini_2024_07_18Literal]: {\n      model: Models.GPT_4o_Mini_2024_07_18,\n      modelOptions: Models.GPT_4o_Mini_2024_07_18Options,\n      modelSchema: Models.GPT_4o_Mini_2024_07_18Schema,\n    },\n    [Models.GPT_4o_2024_05_13Literal]: {\n      model: Models.GPT_4o_2024_05_13,\n      modelOptions: Models.GPT_4o_2024_05_13Options,\n      modelSchema: Models.GPT_4o_2024_05_13Schema,\n    },\n    [Models.O1Literal]: {\n      model: Models.O1,\n      modelOptions: Models.O1Options,\n      modelSchema: Models.O1Schema,\n    },\n    [Models.O1_2024_12_17Literal]: {\n      model: Models.O1_2024_12_17,\n      modelOptions: Models.O1_2024_12_17Options,\n      modelSchema: Models.O1_2024_12_17Schema,\n    },\n    [Models.O3Mini2025_01_31Literal]: {\n      model: Models.O3Mini2025_01_31,\n      modelOptions: Models.O3Mini2025_01_31Options,\n      modelSchema: Models.O3Mini2025_01_31Schema,\n    },\n    [Models.O3MiniLiteral]: {\n      model: Models.O3Mini,\n      modelOptions: Models.O3MiniOptions,\n      modelSchema: Models.O3MiniSchema,\n    },\n    [Models.O3_2025_04_16Literal]: {\n      model: Models.O3_2025_04_16,\n      modelOptions: Models.O3_2025_04_16Options,\n      modelSchema: Models.O3_2025_04_16Schema,\n    },\n    [Models.O3Literal]: {\n      model: Models.O3,\n      modelOptions: Models.O3Options,\n      modelSchema: Models.O3Schema,\n    },\n    [Models.O3ProLiteral]: {\n      model: Models.O3Pro,\n      modelOptions: Models.O3ProOptions,\n      modelSchema: Models.O3ProSchema,\n    },\n    [Models.O4_Mini_2025_04_16Literal]: {\n      model: Models.O4_Mini_2025_04_16,\n      modelOptions: Models.O4_Mini_2025_04_16Options,\n      modelSchema: Models.O4_Mini_2025_04_16Schema,\n    },\n    [Models.O4_MiniLiteral]: {\n      model: Models.O4_Mini,\n      modelOptions: Models.O4_MiniOptions,\n      modelSchema: Models.O4_MiniSchema,\n    },\n  };\n\n  private readonly embeddingModelFactories: Record<\n    string,\n    {\n      model: { new (options: any): EmbeddingModelV1 };\n      modelOptions: z.ZodType<any>;\n      modelSchema: EmbeddingModelSchemaType;\n    }\n  > = {\n    [Models.Text_Embedding_Ada002Literal]: {\n      model: Models.Text_Embedding_Ada002,\n      modelOptions: Models.Text_Embedding_Ada002_Options,\n      modelSchema: Models.Text_Embedding_Ada002Schema,\n    },\n    [Models.Text_Embedding_3_SmallLiteral]: {\n      model: Models.Text_Embedding_3_Small,\n      modelOptions: Models.Text_Embedding_3_Small_Options,\n      modelSchema: Models.Text_Embedding_3_SmallSchema,\n    },\n    [Models.Text_Embedding_3_LargeLiteral]: {\n      model: Models.Text_Embedding_3_Large,\n      modelOptions: Models.Text_Embedding_3_Large_Options,\n      modelSchema: Models.Text_Embedding_3_LargeSchema,\n    },\n  };\n\n  chatModelLiterals(): string[] {\n    return Object.keys(this.chatModelFactories);\n  }\n\n  chatModelSchemas(): Record<string, ChatModelSchemaType> {\n    return Object.keys(this.chatModelFactories).reduce(\n      (acc, key) => {\n        acc[key] = this.chatModelFactories[key].modelSchema;\n        return acc;\n      },\n      {} as Record<string, ChatModelSchemaType>\n    );\n  }\n\n  chatModel(options: C): ChatModelV1 {\n    const modelName = options.modelName;\n    if (!(modelName in this.chatModelFactories)) {\n      throw new ProviderError({\n        info: `OpenAI chat model: ${modelName} not found`,\n        cause: new Error(`OpenAI chat model: ${modelName} not found, available chat models: \n          [${this.chatModelLiterals().join(\", \")}]`),\n      });\n    }\n\n    const model = this.chatModelFactories[modelName].model;\n    const parsedOptions = this.chatModelFactories[modelName].modelOptions.parse(options);\n    return new model(parsedOptions);\n  }\n\n  embeddingModelLiterals(): string[] {\n    return Object.keys(this.embeddingModelFactories);\n  }\n\n  embeddingModelSchemas(): Record<string, EmbeddingModelSchemaType> {\n    return Object.keys(this.embeddingModelFactories).reduce(\n      (acc, key) => {\n        acc[key] = this.embeddingModelFactories[key].modelSchema;\n        return acc;\n      },\n      {} as Record<string, EmbeddingModelSchemaType>\n    );\n  }\n\n  embeddingModel(options: E): EmbeddingModelV1 {\n    const modelName = options.modelName;\n    if (!(modelName in this.embeddingModelFactories)) {\n      throw new ProviderError({\n        info: `OpenAI embedding model: ${modelName} not found`,\n        cause: new Error(`OpenAI embedding model: ${modelName} not found, available embedding models: \n          [${this.embeddingModelLiterals().join(\", \")}]`),\n      });\n    }\n\n    const model = this.embeddingModelFactories[modelName].model;\n    const parsedOptions = this.embeddingModelFactories[modelName].modelOptions.parse(options);\n    return new model(parsedOptions);\n  }\n}\n\nexport { OpenAI, ProviderLiteral };\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenAIChatModelRolesMap = {\n  system: SystemRoleLiteral,\n  user: UserRoleLiteral,\n  assistant: AssistantRoleLiteral,\n  tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenAIChatModelRoles, OpenAIChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport {\n  ImageModalityLiteral,\n  SearchResultModalityLiteral,\n  TextModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n} from \"@adaline/types\";\n\nconst OpenAIChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n];\n\nconst OpenAIChatModelModalitiesEnum = z.enum([\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n]);\n\nconst OpenAIChatModelTextModalities: ChatModelSchemaType[\"modalities\"] = [TextModalityLiteral];\n\nconst OpenAIChatModelTextModalitiesEnum = z.enum([TextModalityLiteral]);\n\nconst OpenAIChatModelTextToolModalities: ChatModelSchemaType[\"modalities\"] = [\n  TextModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n];\n\nconst OpenAIChatModelTextToolModalitiesEnum = z.enum([TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral]);\n\nconst OpenAIChatModelWebSearchModalities: ChatModelSchemaType[\"modalities\"] = [\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n];\n\nconst OpenAIChatModelWebSearchModalitiesEnum = z.enum([\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n]);\n\nconst OpenAIChatModelWithWebSearchModalities: ChatModelSchemaType[\"modalities\"] = [\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n];\n\nconst OpenAIChatModelWithWebSearchModalitiesEnum = z.enum([\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n]);\n\nconst OpenAIChatModelProWithWebSearchModalities: ChatModelSchemaType[\"modalities\"] = [\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n];\n\nconst OpenAIChatModelProWithWebSearchModalitiesEnum = z.enum([\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  SearchResultModalityLiteral,\n]);\n\nexport {\n  OpenAIChatModelModalitiesEnum,\n  OpenAIChatModelModalities,\n  OpenAIChatModelProWithWebSearchModalities,\n  OpenAIChatModelProWithWebSearchModalitiesEnum,\n  OpenAIChatModelTextModalitiesEnum,\n  OpenAIChatModelTextModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n};\n","import { z } from \"zod\";\n\nconst OpenAIBaseLogProb = z.object({\n  token: z.string(),\n  logprob: z.number(),\n  bytes: z.array(z.number()).nullable(),\n});\n\nconst OpenAILogProb = z\n  .object({\n    content: z\n      .array(\n        OpenAIBaseLogProb.extend({\n          top_logprobs: z.array(OpenAIBaseLogProb),\n        })\n      )\n      .nullable()\n      .optional(),\n    refusal: z\n      .array(\n        OpenAIBaseLogProb.extend({\n          top_logprobs: z.array(OpenAIBaseLogProb),\n        })\n      )\n      .nullable()\n      .optional(),\n  })\n  .nullable();\n\nconst OpenAIToolCallsCompleteChatResponse = z.array(\n  z.object({\n    id: z.string().min(1),\n    type: z.enum([\"function\"]),\n    function: z.object({\n      name: z.string(),\n      arguments: z.string(),\n    }),\n  })\n);\n\nconst OpenAICompleteChatResponse = z.object({\n  id: z.string(),\n  object: z.literal(\"chat.completion\"),\n  created: z.number(),\n  model: z.string(),\n  system_fingerprint: z.string().nullable(),\n  choices: z.array(\n    z.object({\n      index: z.number(),\n      message: z.object({\n        role: z.string(),\n        content: z.string().nullable().optional(),\n        tool_calls: OpenAIToolCallsCompleteChatResponse.optional(),\n        refusal: z.string().nullable().optional(),\n        annotations: z\n          .array(\n            z.object({\n              type: z.literal(\"url_citation\"),\n              url_citation: z.object({\n                start_index: z.number(),\n                end_index: z.number(),\n                title: z.string(),\n                url: z.string(),\n              }),\n            })\n          )\n          .optional(),\n      }),\n      logprobs: OpenAILogProb.optional(),\n      finish_reason: z.string(),\n    })\n  ),\n  usage: z.object({\n    prompt_tokens: z.number(),\n    completion_tokens: z.number(),\n    total_tokens: z.number(),\n  }),\n});\ntype OpenAICompleteChatResponseType = z.infer<typeof OpenAICompleteChatResponse>;\n\nconst OpenAIToolCallsStreamChatResponse = z.array(\n  z.object({\n    index: z.number().int(),\n    id: z.string().min(1).optional(),\n    type: z.enum([\"function\"]).optional(),\n    function: z\n      .object({\n        name: z.string().min(1).optional(),\n        arguments: z.string().optional(),\n      })\n      .optional(),\n  })\n);\n\nconst OpenAIStreamChatResponse = z.object({\n  id: z.string(),\n  object: z.string(),\n  created: z.number(),\n  model: z.string(),\n  system_fingerprint: z.string().nullable().optional(),\n  choices: z.array(\n    z.object({\n      index: z.number(),\n      delta: z\n        .object({\n          content: z.string().nullable().optional(),\n          tool_calls: OpenAIToolCallsStreamChatResponse.optional(),\n          refusal: z.string().nullable().optional(),\n        })\n        .or(z.object({})),\n      logprobs: OpenAILogProb.optional(),\n      finish_reason: z.string().nullable(),\n    })\n  ),\n  usage: z\n    .object({\n      prompt_tokens: z.number(),\n      completion_tokens: z.number(),\n      total_tokens: z.number(),\n    })\n    .nullable()\n    .optional(),\n});\ntype OpenAIStreamChatResponseType = z.infer<typeof OpenAIStreamChatResponse>;\n\nexport {\n  OpenAICompleteChatResponse,\n  OpenAIStreamChatResponse,\n  OpenAIToolCallsCompleteChatResponse,\n  OpenAIToolCallsStreamChatResponse,\n  type OpenAICompleteChatResponseType,\n  type OpenAIStreamChatResponseType,\n};\n","import { z } from \"zod\";\n\n// JSON Schema body is structurally recursive with arbitrary keys; validated by the server.\n// Use a typed object record so callers get `Record<string, unknown>` instead of `any`.\nconst OpenAIChatJsonSchemaObject = z.record(z.string(), z.unknown());\n\nconst OpenAIChatRequestTool = z.object({\n  type: z.literal(\"function\"),\n  function: z.object({\n    name: z.string().min(1),\n    description: z.string().min(1).optional(),\n    strict: z.boolean().optional(),\n    parameters: OpenAIChatJsonSchemaObject,\n  }),\n});\ntype OpenAIChatRequestToolType = z.infer<typeof OpenAIChatRequestTool>;\n\nconst OpenAIChatRequestToolChoiceEnum = z.enum([\"none\", \"auto\", \"required\"]);\ntype OpenAIChatRequestToolChoiceEnumType = z.infer<typeof OpenAIChatRequestToolChoiceEnum>;\n\nconst OpenAIChatRequestToolChoiceFunction = z.object({\n  type: z.literal(\"function\"),\n  function: z.object({\n    name: z.string().min(1),\n  }),\n});\ntype OpenAIChatRequestToolChoiceFunctionType = z.infer<typeof OpenAIChatRequestToolChoiceFunction>;\n\nconst OpenAIChatRequestResponseFormat = z\n  .object({\n    type: z.enum([\"text\", \"json_object\"]),\n  })\n  .or(\n    z.object({\n      type: z.literal(\"json_schema\"),\n      json_schema: z.object({\n        name: z.string().min(1),\n        description: z.string().min(1).optional(),\n        strict: z.boolean().optional(),\n        schema: OpenAIChatJsonSchemaObject,\n      }),\n    })\n  );\ntype OpenAIChatRequestResponseFormatType = z.infer<typeof OpenAIChatRequestResponseFormat>;\n\nconst OpenAIChatRequestTextContent = z.object({\n  text: z.string().min(1),\n  type: z.literal(\"text\"),\n});\ntype OpenAIChatRequestTextContentType = z.infer<typeof OpenAIChatRequestTextContent>;\n\nconst OpenAIChatRequestImageContent = z.object({\n  type: z.literal(\"image_url\"),\n  image_url: z.object({\n    url: z.string().url().min(1),\n    detail: z.enum([\"low\", \"high\", \"auto\"]).optional(),\n  }),\n});\ntype OpenAIChatRequestImageContentType = z.infer<typeof OpenAIChatRequestImageContent>;\n\nconst OpenAIChatRequestToolCallContent = z.object({\n  id: z.string().min(1),\n  type: z.literal(\"function\"),\n  function: z.object({\n    name: z.string().min(1),\n    arguments: z.string().min(1),\n  }),\n});\ntype OpenAIChatRequestToolCallContentType = z.infer<typeof OpenAIChatRequestToolCallContent>;\n\nconst OpenAIChatRequestSystemMessage = z.object({\n  role: z.literal(\"system\"),\n  content: z.string().min(1).or(z.array(OpenAIChatRequestTextContent).min(1)),\n});\ntype OpenAIChatRequestSystemMessageType = z.infer<typeof OpenAIChatRequestSystemMessage>;\n\nconst OpenAIChatRequestUserMessage = z.object({\n  role: z.literal(\"user\"),\n  content: z\n    .string()\n    .min(1)\n    .or(z.array(z.union([OpenAIChatRequestTextContent, OpenAIChatRequestImageContent])).min(1)),\n});\ntype OpenAIChatRequestUserMessageType = z.infer<typeof OpenAIChatRequestUserMessage>;\n\nconst OpenAIChatRequestAssistantMessage = z.object({\n  role: z.literal(\"assistant\"),\n  content: z.string().min(1).or(z.array(OpenAIChatRequestTextContent).min(1)).optional(),\n  tool_calls: z.array(OpenAIChatRequestToolCallContent).min(1).optional(),\n});\ntype OpenAIChatRequestAssistantMessageType = z.infer<typeof OpenAIChatRequestAssistantMessage>;\n\nconst OpenAIChatRequestToolMessage = z.object({\n  role: z.literal(\"tool\"),\n  tool_call_id: z.string().min(1),\n  content: z.string().min(1),\n});\ntype OpenAIChatRequestToolMessageType = z.infer<typeof OpenAIChatRequestToolMessage>;\n\nconst OpenAIChatRequestMessage = z.union([\n  OpenAIChatRequestSystemMessage,\n  OpenAIChatRequestUserMessage,\n  OpenAIChatRequestAssistantMessage,\n  OpenAIChatRequestToolMessage,\n]);\ntype OpenAIChatRequestMessageType = z.infer<typeof OpenAIChatRequestMessage>;\n\nconst OpenAIChatRequest = z.object({\n  model: z.string().min(1).optional(),\n  messages: z.array(OpenAIChatRequestMessage).min(1),\n  frequency_penalty: z.number().min(-2).max(2).nullable().optional(),\n  logprobs: z.boolean().nullable().optional(),\n  top_logprobs: z.number().min(0).max(20).nullable().optional(),\n  max_completion_tokens: z.number().min(0).nullable().optional(),\n  presence_penalty: z.number().min(-2).max(2).nullable().optional(),\n  response_format: OpenAIChatRequestResponseFormat.optional(),\n  seed: z.number().nullable().optional(),\n  stop: z.string().or(z.array(z.string()).max(4)).nullable().optional(),\n  temperature: z.number().min(0).max(2).nullable().optional(),\n  top_p: z.number().min(0).max(1).nullable().optional(),\n  tools: z.array(OpenAIChatRequestTool).optional(),\n  tool_choice: OpenAIChatRequestToolChoiceEnum.or(OpenAIChatRequestToolChoiceFunction).optional(),\n  reasoning_effort: z.enum([\"minimal\", \"none\", \"low\", \"medium\", \"high\", \"xhigh\"]).optional(),\n  verbosity: z.enum([\"low\", \"medium\", \"high\"]).optional(),\n});\ntype OpenAIChatRequestType = z.infer<typeof OpenAIChatRequest>;\n\nexport {\n  OpenAIChatRequest,\n  OpenAIChatRequestAssistantMessage,\n  OpenAIChatRequestImageContent,\n  OpenAIChatRequestMessage,\n  OpenAIChatRequestResponseFormat,\n  OpenAIChatRequestSystemMessage,\n  OpenAIChatRequestTextContent,\n  OpenAIChatRequestTool,\n  OpenAIChatRequestToolCallContent,\n  OpenAIChatRequestToolChoiceEnum,\n  OpenAIChatRequestToolChoiceFunction,\n  OpenAIChatRequestToolMessage,\n  OpenAIChatRequestUserMessage,\n  type OpenAIChatRequestAssistantMessageType,\n  type OpenAIChatRequestImageContentType,\n  type OpenAIChatRequestMessageType,\n  type OpenAIChatRequestResponseFormatType,\n  type OpenAIChatRequestSystemMessageType,\n  type OpenAIChatRequestTextContentType,\n  type OpenAIChatRequestToolCallContentType,\n  type OpenAIChatRequestToolChoiceEnumType,\n  type OpenAIChatRequestToolChoiceFunctionType,\n  type OpenAIChatRequestToolMessageType,\n  type OpenAIChatRequestToolType,\n  type OpenAIChatRequestType,\n  type OpenAIChatRequestUserMessageType,\n};\n","import { z } from \"zod\";\n\n// ─── Request: Content Parts ───────────────────────────────────────────────────\n\nconst OpenAIResponsesRequestInputTextContent = z.object({\n  type: z.literal(\"input_text\"),\n  text: z.string(),\n});\ntype OpenAIResponsesRequestInputTextContentType = z.infer<typeof OpenAIResponsesRequestInputTextContent>;\n\nconst OpenAIResponsesRequestInputImageContent = z.object({\n  type: z.literal(\"input_image\"),\n  image_url: z.object({\n    url: z.string(),\n    detail: z.enum([\"low\", \"high\", \"auto\"]).optional(),\n  }),\n});\ntype OpenAIResponsesRequestInputImageContentType = z.infer<typeof OpenAIResponsesRequestInputImageContent>;\n\nconst OpenAIResponsesRequestInputFileContent = z.object({\n  type: z.literal(\"input_file\"),\n  file_id: z.string().optional(),\n  file_url: z.string().optional(),\n  filename: z.string().optional(),\n  file_data: z.string().optional(),\n});\ntype OpenAIResponsesRequestInputFileContentType = z.infer<typeof OpenAIResponsesRequestInputFileContent>;\n\nconst OpenAIResponsesRequestOutputTextContent = z.object({\n  type: z.literal(\"output_text\"),\n  text: z.string(),\n});\ntype OpenAIResponsesRequestOutputTextContentType = z.infer<typeof OpenAIResponsesRequestOutputTextContent>;\n\nconst OpenAIResponsesRequestInputContentPart = z.union([\n  OpenAIResponsesRequestInputTextContent,\n  OpenAIResponsesRequestInputImageContent,\n  OpenAIResponsesRequestInputFileContent,\n]);\ntype OpenAIResponsesRequestInputContentPartType = z.infer<typeof OpenAIResponsesRequestInputContentPart>;\n\nconst OpenAIResponsesRequestOutputContentPart = OpenAIResponsesRequestOutputTextContent;\ntype OpenAIResponsesRequestOutputContentPartType = z.infer<typeof OpenAIResponsesRequestOutputContentPart>;\n\n// ─── Request: Input Items ─────────────────────────────────────────────────────\n\nconst OpenAIResponsesRequestMessageItem = z.object({\n  type: z.literal(\"message\"),\n  role: z.enum([\"user\", \"assistant\", \"system\", \"developer\"]),\n  content: z.union([z.string(), z.array(OpenAIResponsesRequestInputContentPart), z.array(OpenAIResponsesRequestOutputContentPart)]),\n});\ntype OpenAIResponsesRequestMessageItemType = z.infer<typeof OpenAIResponsesRequestMessageItem>;\n\nconst OpenAIResponsesRequestFunctionCallItem = z.object({\n  type: z.literal(\"function_call\"),\n  call_id: z.string(),\n  name: z.string(),\n  arguments: z.string(),\n});\ntype OpenAIResponsesRequestFunctionCallItemType = z.infer<typeof OpenAIResponsesRequestFunctionCallItem>;\n\nconst OpenAIResponsesRequestFunctionCallOutputItem = z.object({\n  type: z.literal(\"function_call_output\"),\n  call_id: z.string(),\n  output: z.string(),\n});\ntype OpenAIResponsesRequestFunctionCallOutputItemType = z.infer<typeof OpenAIResponsesRequestFunctionCallOutputItem>;\n\nconst OpenAIResponsesRequestInputItem = z.discriminatedUnion(\"type\", [\n  OpenAIResponsesRequestMessageItem,\n  OpenAIResponsesRequestFunctionCallItem,\n  OpenAIResponsesRequestFunctionCallOutputItem,\n]);\ntype OpenAIResponsesRequestInputItemType = z.infer<typeof OpenAIResponsesRequestInputItem>;\n\n// ─── Request: Tools ───────────────────────────────────────────────────────────\n\n// JSON Schema is a recursive structure with arbitrary keys; validated by the OpenAI server.\n// Use a typed object record so callers get `Record<string, unknown>` instead of `any`.\nconst OpenAIJsonSchemaObject = z.record(z.string(), z.unknown());\ntype OpenAIJsonSchemaObjectType = z.infer<typeof OpenAIJsonSchemaObject>;\n\nconst OpenAIResponsesRequestFunctionTool = z.object({\n  type: z.literal(\"function\"),\n  name: z.string(),\n  description: z.string().optional(),\n  parameters: OpenAIJsonSchemaObject,\n  strict: z.boolean().optional(),\n});\ntype OpenAIResponsesRequestFunctionToolType = z.infer<typeof OpenAIResponsesRequestFunctionTool>;\n\nconst OpenAIResponsesRequestWebSearchTool = z.object({\n  type: z.literal(\"web_search\"),\n  filters: z\n    .object({\n      allowed_domains: z.array(z.string()).optional(),\n    })\n    .optional(),\n  user_location: 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  external_web_access: z.boolean().optional(),\n});\ntype OpenAIResponsesRequestWebSearchToolType = z.infer<typeof OpenAIResponsesRequestWebSearchTool>;\n\nconst OpenAIResponsesRequestTool = z.discriminatedUnion(\"type\", [OpenAIResponsesRequestFunctionTool, OpenAIResponsesRequestWebSearchTool]);\ntype OpenAIResponsesRequestToolType = z.infer<typeof OpenAIResponsesRequestTool>;\n\nconst OpenAIResponsesRequestToolChoice = z.union([\n  z.enum([\"none\", \"auto\", \"required\"]),\n  z.object({\n    type: z.literal(\"function\"),\n    name: z.string(),\n  }),\n]);\ntype OpenAIResponsesRequestToolChoiceType = z.infer<typeof OpenAIResponsesRequestToolChoice>;\n\n// ─── Request: Reasoning & Text Format ────────────────────────────────────────\n\nconst OpenAIResponsesRequestReasoning = z.object({\n  effort: z.enum([\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\"]).optional(),\n  summary: z.enum([\"auto\", \"concise\", \"detailed\"]).nullable().optional(),\n});\ntype OpenAIResponsesRequestReasoningType = z.infer<typeof OpenAIResponsesRequestReasoning>;\n\nconst OpenAIResponsesRequestTextFormat = z.discriminatedUnion(\"type\", [\n  z.object({ type: z.literal(\"text\") }),\n  z.object({\n    type: z.literal(\"json_schema\"),\n    name: z.string(),\n    description: z.string().optional(),\n    schema: OpenAIJsonSchemaObject,\n    strict: z.boolean().optional(),\n  }),\n  z.object({ type: z.literal(\"json_object\") }),\n]);\ntype OpenAIResponsesRequestTextFormatType = z.infer<typeof OpenAIResponsesRequestTextFormat>;\n\nconst OpenAIResponsesRequestText = z.object({\n  format: OpenAIResponsesRequestTextFormat.optional(),\n  verbosity: z.enum([\"low\", \"medium\", \"high\"]).optional(),\n});\ntype OpenAIResponsesRequestTextType = z.infer<typeof OpenAIResponsesRequestText>;\n\n// ─── Request: Full Envelope ───────────────────────────────────────────────────\n\nconst OpenAIResponsesRequest = z.object({\n  model: z.string().optional(),\n  input: z.union([z.string(), z.array(OpenAIResponsesRequestInputItem)]),\n  instructions: z.string().nullable().optional(),\n  max_output_tokens: z.number().min(0).nullable().optional(),\n  top_logprobs: z.number().int().min(0).max(20).nullable().optional(),\n  temperature: z.number().min(0).max(2).nullable().optional(),\n  top_p: z.number().min(0).max(1).nullable().optional(),\n  stream: z.boolean().optional(),\n  store: z.boolean().optional(),\n  parallel_tool_calls: z.boolean().optional(),\n  metadata: z.record(z.string()).optional(),\n  user: z.string().optional(),\n  previous_response_id: z.string().nullable().optional(),\n  tools: z.array(OpenAIResponsesRequestTool).optional(),\n  tool_choice: OpenAIResponsesRequestToolChoice.optional(),\n  reasoning: OpenAIResponsesRequestReasoning.optional(),\n  text: OpenAIResponsesRequestText.optional(),\n  truncation: z\n    .object({\n      type: z.enum([\"auto\", \"disabled\"]),\n    })\n    .optional(),\n  service_tier: z.enum([\"auto\", \"default\", \"flex\", \"scale\", \"priority\"]).nullable().optional(),\n  safety_identifier: z.string().optional(),\n  include: z.array(z.string()).optional(),\n});\ntype OpenAIResponsesRequestType = z.infer<typeof OpenAIResponsesRequest>;\n\n// ─── Response: Output Content Parts ──────────────────────────────────────────\n\nconst OpenAIResponsesUrlCitationAnnotation = 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});\ntype OpenAIResponsesUrlCitationAnnotationType = z.infer<typeof OpenAIResponsesUrlCitationAnnotation>;\n\nconst OpenAIResponsesFileCitationAnnotation = z.object({\n  type: z.literal(\"file_citation\"),\n  file_id: z.string(),\n  index: z.number(),\n  filename: z.string().optional(),\n  quote: z.string().optional(),\n});\ntype OpenAIResponsesFileCitationAnnotationType = z.infer<typeof OpenAIResponsesFileCitationAnnotation>;\n\nconst OpenAIResponsesFilePathAnnotation = z.object({\n  type: z.literal(\"file_path\"),\n  file_id: z.string(),\n  start_index: z.number(),\n  end_index: z.number(),\n});\ntype OpenAIResponsesFilePathAnnotationType = z.infer<typeof OpenAIResponsesFilePathAnnotation>;\n\nconst OpenAIResponsesContainerFileCitationAnnotation = z.object({\n  type: z.literal(\"container_file_citation\"),\n  container_id: z.string(),\n  file_id: z.string(),\n  start_index: z.number(),\n  end_index: z.number(),\n  filename: z.string().optional(),\n  quote: z.string().optional(),\n});\ntype OpenAIResponsesContainerFileCitationAnnotationType = z.infer<typeof OpenAIResponsesContainerFileCitationAnnotation>;\n\nconst OpenAIResponsesOutputTextAnnotation = z.discriminatedUnion(\"type\", [\n  OpenAIResponsesUrlCitationAnnotation,\n  OpenAIResponsesFileCitationAnnotation,\n  OpenAIResponsesFilePathAnnotation,\n  OpenAIResponsesContainerFileCitationAnnotation,\n]);\ntype OpenAIResponsesOutputTextAnnotationType = z.infer<typeof OpenAIResponsesOutputTextAnnotation>;\n\n// Per OpenAI docs: each logprob carries the token plus `top_logprobs` alternatives.\n// Shape is identical to Chat Completions log-prob entries (token/logprob/bytes).\nconst OpenAIResponsesOutputTextLogProb = z.object({\n  token: z.string(),\n  logprob: z.number(),\n  bytes: z.array(z.number()).nullable(),\n  top_logprobs: z.array(\n    z.object({\n      token: z.string(),\n      logprob: z.number(),\n      bytes: z.array(z.number()).nullable(),\n    })\n  ),\n});\ntype OpenAIResponsesOutputTextLogProbType = z.infer<typeof OpenAIResponsesOutputTextLogProb>;\n\nconst OpenAIResponsesOutputTextContentPart = z.object({\n  type: z.literal(\"output_text\"),\n  text: z.string(),\n  annotations: z.array(OpenAIResponsesOutputTextAnnotation).default([]),\n  logprobs: z.array(OpenAIResponsesOutputTextLogProb).optional(),\n});\ntype OpenAIResponsesOutputTextContentPartType = z.infer<typeof OpenAIResponsesOutputTextContentPart>;\n\nconst OpenAIResponsesOutputRefusalContentPart = z.object({\n  type: z.literal(\"refusal\"),\n  refusal: z.string(),\n});\ntype OpenAIResponsesOutputRefusalContentPartType = z.infer<typeof OpenAIResponsesOutputRefusalContentPart>;\n\nconst OpenAIResponsesOutputContentPart = z.discriminatedUnion(\"type\", [\n  OpenAIResponsesOutputTextContentPart,\n  OpenAIResponsesOutputRefusalContentPart,\n]);\ntype OpenAIResponsesOutputContentPartType = z.infer<typeof OpenAIResponsesOutputContentPart>;\n\n// ─── Response: Output Items ───────────────────────────────────────────────────\n\nconst OpenAIResponsesOutputMessageItem = z.object({\n  id: z.string(),\n  type: z.literal(\"message\"),\n  role: z.literal(\"assistant\"),\n  status: z.string().optional(),\n  content: z.array(OpenAIResponsesOutputContentPart),\n});\ntype OpenAIResponsesOutputMessageItemType = z.infer<typeof OpenAIResponsesOutputMessageItem>;\n\nconst OpenAIResponsesOutputFunctionCallItem = z.object({\n  id: z.string(),\n  type: z.literal(\"function_call\"),\n  call_id: z.string(),\n  name: z.string(),\n  arguments: z.string(),\n  status: z.string().optional(),\n});\ntype OpenAIResponsesOutputFunctionCallItemType = z.infer<typeof OpenAIResponsesOutputFunctionCallItem>;\n\nconst OpenAIResponsesOutputWebSearchCallItem = z.object({\n  id: z.string(),\n  type: z.literal(\"web_search_call\"),\n  status: z.string().optional(),\n  action: z\n    .object({\n      type: z.string(),\n      query: z.string().optional(),\n    })\n    .optional(),\n});\ntype OpenAIResponsesOutputWebSearchCallItemType = z.infer<typeof OpenAIResponsesOutputWebSearchCallItem>;\n\n// Each summary part on a reasoning output item (and the matching streaming events)\n// follows the OpenAI Responses API shape: {type: \"summary_text\", text: string}.\nconst OpenAIResponsesReasoningSummaryPart = z.object({\n  type: z.literal(\"summary_text\"),\n  text: z.string(),\n});\ntype OpenAIResponsesReasoningSummaryPartType = z.infer<typeof OpenAIResponsesReasoningSummaryPart>;\n\nconst OpenAIResponsesOutputReasoningItem = z.object({\n  id: z.string(),\n  type: z.literal(\"reasoning\"),\n  summary: z.array(OpenAIResponsesReasoningSummaryPart).optional(),\n  status: z.string().nullable().optional(),\n  encrypted_content: z.string().optional(),\n});\ntype OpenAIResponsesOutputReasoningItemType = z.infer<typeof OpenAIResponsesOutputReasoningItem>;\n\n// Per OpenAI docs, each file_search result carries the cited file + match metadata.\n// Fields are all optional since OpenAI can omit any of them depending on the vector store configuration.\nconst OpenAIResponsesFileSearchResult = z.object({\n  file_id: z.string().optional(),\n  filename: z.string().optional(),\n  score: z.number().optional(),\n  text: z.string().optional(),\n  attributes: z.record(z.string(), z.unknown()).nullable().optional(),\n});\ntype OpenAIResponsesFileSearchResultType = z.infer<typeof OpenAIResponsesFileSearchResult>;\n\nconst OpenAIResponsesOutputFileSearchCallItem = z.object({\n  id: z.string(),\n  type: z.literal(\"file_search_call\"),\n  status: z.string().optional(),\n  queries: z.array(z.string()).optional(),\n  results: z.array(OpenAIResponsesFileSearchResult).optional(),\n});\ntype OpenAIResponsesOutputFileSearchCallItemType = z.infer<typeof OpenAIResponsesOutputFileSearchCallItem>;\n\nconst OpenAIResponsesOutputItem = z.discriminatedUnion(\"type\", [\n  OpenAIResponsesOutputMessageItem,\n  OpenAIResponsesOutputFunctionCallItem,\n  OpenAIResponsesOutputWebSearchCallItem,\n  OpenAIResponsesOutputReasoningItem,\n  OpenAIResponsesOutputFileSearchCallItem,\n]);\ntype OpenAIResponsesOutputItemType = z.infer<typeof OpenAIResponsesOutputItem>;\n\n// ─── Response: Usage & Error ──────────────────────────────────────────────────\n\nconst OpenAIResponsesUsage = z.object({\n  input_tokens: z.number(),\n  input_tokens_details: z\n    .object({\n      cached_tokens: z.number().optional(),\n    })\n    .optional(),\n  output_tokens: z.number(),\n  output_tokens_details: z\n    .object({\n      reasoning_tokens: z.number().optional(),\n    })\n    .optional(),\n  total_tokens: z.number(),\n});\ntype OpenAIResponsesUsageType = z.infer<typeof OpenAIResponsesUsage>;\n\nconst OpenAIResponsesError = z.object({\n  type: z.string(),\n  code: z.string().nullable().optional(),\n  message: z.string(),\n  param: z.string().nullable().optional(),\n});\ntype OpenAIResponsesErrorType = z.infer<typeof OpenAIResponsesError>;\n\n// ─── Response: Complete Response ─────────────────────────────────────────────\n\nconst OpenAIResponsesCompleteResponse = z.object({\n  id: z.string(),\n  object: z.literal(\"response\"),\n  created_at: z.number().optional(),\n  model: z.string(),\n  status: z.enum([\"queued\", \"in_progress\", \"completed\", \"failed\", \"incomplete\", \"cancelled\"]),\n  output: z.array(OpenAIResponsesOutputItem),\n  output_text: z.string().optional(),\n  usage: OpenAIResponsesUsage.optional(),\n  error: OpenAIResponsesError.nullable().optional(),\n  incomplete_details: z\n    .object({\n      reason: z.string().optional(),\n    })\n    .nullable()\n    .optional(),\n  metadata: z.record(z.string()).optional(),\n  previous_response_id: z.string().nullable().optional(),\n});\ntype OpenAIResponsesCompleteResponseType = z.infer<typeof OpenAIResponsesCompleteResponse>;\n\n// ─── Streaming Events ─────────────────────────────────────────────────────────\n\n// Lifecycle events — response.created / in_progress / queued carry a partial response\nconst OpenAIResponsesStreamEventResponseCreated = z.object({\n  type: z.literal(\"response.created\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse.partial().passthrough(),\n});\n\nconst OpenAIResponsesStreamEventResponseInProgress = z.object({\n  type: z.literal(\"response.in_progress\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse.partial().passthrough(),\n});\n\nconst OpenAIResponsesStreamEventResponseQueued = z.object({\n  type: z.literal(\"response.queued\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse.partial().passthrough(),\n});\n\nconst OpenAIResponsesStreamEventResponseCompleted = z.object({\n  type: z.literal(\"response.completed\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse,\n});\n\nconst OpenAIResponsesStreamEventResponseFailed = z.object({\n  type: z.literal(\"response.failed\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse,\n});\n\nconst OpenAIResponsesStreamEventResponseIncomplete = z.object({\n  type: z.literal(\"response.incomplete\"),\n  sequence_number: z.number().optional(),\n  response: OpenAIResponsesCompleteResponse,\n});\n\n// Output item lifecycle\nconst OpenAIResponsesStreamEventOutputItemAdded = z.object({\n  type: z.literal(\"response.output_item.added\"),\n  sequence_number: z.number().optional(),\n  output_index: z.number(),\n  item: OpenAIResponsesOutputItem,\n});\n\nconst OpenAIResponsesStreamEventOutputItemDone = z.object({\n  type: z.literal(\"response.output_item.done\"),\n  sequence_number: z.number().optional(),\n  output_index: z.number(),\n  item: OpenAIResponsesOutputItem,\n});\n\nconst OpenAIResponsesStreamEventContentPartAdded = z.object({\n  type: z.literal(\"response.content_part.added\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  part: OpenAIResponsesOutputContentPart,\n});\n\nconst OpenAIResponsesStreamEventContentPartDone = z.object({\n  type: z.literal(\"response.content_part.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  part: OpenAIResponsesOutputContentPart,\n});\n\n// Text streaming\nconst OpenAIResponsesStreamEventOutputTextDelta = z.object({\n  type: z.literal(\"response.output_text.delta\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  delta: z.string(),\n});\n\nconst OpenAIResponsesStreamEventOutputTextDone = z.object({\n  type: z.literal(\"response.output_text.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  text: z.string(),\n});\n\nconst OpenAIResponsesStreamEventOutputTextAnnotationAdded = z.object({\n  type: z.literal(\"response.output_text.annotation.added\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  annotation_index: z.number(),\n  annotation: OpenAIResponsesOutputTextAnnotation,\n});\n\n// Refusal streaming\nconst OpenAIResponsesStreamEventRefusalDelta = z.object({\n  type: z.literal(\"response.refusal.delta\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  delta: z.string(),\n});\n\nconst OpenAIResponsesStreamEventRefusalDone = z.object({\n  type: z.literal(\"response.refusal.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  content_index: z.number(),\n  refusal: z.string(),\n});\n\n// Reasoning streaming\nconst OpenAIResponsesStreamEventReasoningSummaryPartAdded = z.object({\n  type: z.literal(\"response.reasoning_summary_part.added\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  summary_index: z.number(),\n  part: OpenAIResponsesReasoningSummaryPart,\n});\n\nconst OpenAIResponsesStreamEventReasoningSummaryPartDone = z.object({\n  type: z.literal(\"response.reasoning_summary_part.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  summary_index: z.number(),\n  part: OpenAIResponsesReasoningSummaryPart,\n});\n\nconst OpenAIResponsesStreamEventReasoningSummaryTextDelta = z.object({\n  type: z.literal(\"response.reasoning_summary_text.delta\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  summary_index: z.number(),\n  delta: z.string(),\n});\n\nconst OpenAIResponsesStreamEventReasoningSummaryTextDone = z.object({\n  type: z.literal(\"response.reasoning_summary_text.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  summary_index: z.number(),\n  text: z.string(),\n});\n\nconst OpenAIResponsesStreamEventReasoningTextDelta = z.object({\n  type: z.literal(\"response.reasoning_text.delta\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  delta: z.string(),\n});\n\nconst OpenAIResponsesStreamEventReasoningTextDone = z.object({\n  type: z.literal(\"response.reasoning_text.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  text: z.string(),\n});\n\n// Function call argument streaming\nconst OpenAIResponsesStreamEventFunctionCallArgumentsDelta = z.object({\n  type: z.literal(\"response.function_call_arguments.delta\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  delta: z.string(),\n});\n\nconst OpenAIResponsesStreamEventFunctionCallArgumentsDone = z.object({\n  type: z.literal(\"response.function_call_arguments.done\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n  arguments: z.string(),\n});\n\n// Web search lifecycle streaming\nconst OpenAIResponsesStreamEventWebSearchCallInProgress = z.object({\n  type: z.literal(\"response.web_search_call.in_progress\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\nconst OpenAIResponsesStreamEventWebSearchCallSearching = z.object({\n  type: z.literal(\"response.web_search_call.searching\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\nconst OpenAIResponsesStreamEventWebSearchCallCompleted = z.object({\n  type: z.literal(\"response.web_search_call.completed\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\n// File search lifecycle streaming\nconst OpenAIResponsesStreamEventFileSearchCallInProgress = z.object({\n  type: z.literal(\"response.file_search_call.in_progress\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\nconst OpenAIResponsesStreamEventFileSearchCallSearching = z.object({\n  type: z.literal(\"response.file_search_call.searching\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\nconst OpenAIResponsesStreamEventFileSearchCallCompleted = z.object({\n  type: z.literal(\"response.file_search_call.completed\"),\n  sequence_number: z.number().optional(),\n  item_id: z.string(),\n  output_index: z.number(),\n});\n\n// Error event\nconst OpenAIResponsesStreamEventError = z.object({\n  type: z.literal(\"error\"),\n  sequence_number: z.number().optional(),\n  error: OpenAIResponsesError,\n});\n\n// ─── Streaming Event Discriminated Union ──────────────────────────────────────\n\nconst OpenAIResponsesStreamEvent = z.discriminatedUnion(\"type\", [\n  OpenAIResponsesStreamEventResponseCreated,\n  OpenAIResponsesStreamEventResponseInProgress,\n  OpenAIResponsesStreamEventResponseQueued,\n  OpenAIResponsesStreamEventResponseCompleted,\n  OpenAIResponsesStreamEventResponseFailed,\n  OpenAIResponsesStreamEventResponseIncomplete,\n  OpenAIResponsesStreamEventOutputItemAdded,\n  OpenAIResponsesStreamEventOutputItemDone,\n  OpenAIResponsesStreamEventContentPartAdded,\n  OpenAIResponsesStreamEventContentPartDone,\n  OpenAIResponsesStreamEventOutputTextDelta,\n  OpenAIResponsesStreamEventOutputTextDone,\n  OpenAIResponsesStreamEventOutputTextAnnotationAdded,\n  OpenAIResponsesStreamEventRefusalDelta,\n  OpenAIResponsesStreamEventRefusalDone,\n  OpenAIResponsesStreamEventReasoningSummaryPartAdded,\n  OpenAIResponsesStreamEventReasoningSummaryPartDone,\n  OpenAIResponsesStreamEventReasoningSummaryTextDelta,\n  OpenAIResponsesStreamEventReasoningSummaryTextDone,\n  OpenAIResponsesStreamEventReasoningTextDelta,\n  OpenAIResponsesStreamEventReasoningTextDone,\n  OpenAIResponsesStreamEventFunctionCallArgumentsDelta,\n  OpenAIResponsesStreamEventFunctionCallArgumentsDone,\n  OpenAIResponsesStreamEventWebSearchCallInProgress,\n  OpenAIResponsesStreamEventWebSearchCallSearching,\n  OpenAIResponsesStreamEventWebSearchCallCompleted,\n  OpenAIResponsesStreamEventFileSearchCallInProgress,\n  OpenAIResponsesStreamEventFileSearchCallSearching,\n  OpenAIResponsesStreamEventFileSearchCallCompleted,\n  OpenAIResponsesStreamEventError,\n]);\ntype OpenAIResponsesStreamEventType = z.infer<typeof OpenAIResponsesStreamEvent>;\n\nexport {\n  OpenAIResponsesCompleteResponse,\n  OpenAIResponsesContainerFileCitationAnnotation,\n  OpenAIResponsesError,\n  OpenAIResponsesFileCitationAnnotation,\n  OpenAIResponsesFilePathAnnotation,\n  OpenAIResponsesOutputContentPart,\n  OpenAIResponsesOutputFileSearchCallItem,\n  OpenAIResponsesOutputFunctionCallItem,\n  OpenAIResponsesOutputItem,\n  OpenAIResponsesOutputMessageItem,\n  OpenAIResponsesOutputReasoningItem,\n  OpenAIResponsesOutputRefusalContentPart,\n  OpenAIResponsesOutputTextAnnotation,\n  OpenAIResponsesOutputTextContentPart,\n  OpenAIResponsesUrlCitationAnnotation,\n  OpenAIResponsesOutputWebSearchCallItem,\n  OpenAIResponsesRequest,\n  OpenAIResponsesRequestFunctionCallItem,\n  OpenAIResponsesRequestFunctionCallOutputItem,\n  OpenAIResponsesRequestFunctionTool,\n  OpenAIResponsesRequestInputContentPart,\n  OpenAIResponsesRequestInputFileContent,\n  OpenAIResponsesRequestInputImageContent,\n  OpenAIResponsesRequestInputItem,\n  OpenAIResponsesRequestInputTextContent,\n  OpenAIResponsesRequestMessageItem,\n  OpenAIResponsesRequestOutputContentPart,\n  OpenAIResponsesRequestOutputTextContent,\n  OpenAIResponsesRequestReasoning,\n  OpenAIResponsesRequestText,\n  OpenAIResponsesRequestTextFormat,\n  OpenAIResponsesRequestTool,\n  OpenAIResponsesRequestToolChoice,\n  OpenAIResponsesRequestWebSearchTool,\n  OpenAIResponsesStreamEvent,\n  OpenAIResponsesStreamEventContentPartAdded,\n  OpenAIResponsesStreamEventContentPartDone,\n  OpenAIResponsesStreamEventError,\n  OpenAIResponsesStreamEventFileSearchCallCompleted,\n  OpenAIResponsesStreamEventFileSearchCallInProgress,\n  OpenAIResponsesStreamEventFileSearchCallSearching,\n  OpenAIResponsesStreamEventFunctionCallArgumentsDelta,\n  OpenAIResponsesStreamEventFunctionCallArgumentsDone,\n  OpenAIResponsesStreamEventOutputItemAdded,\n  OpenAIResponsesStreamEventOutputItemDone,\n  OpenAIResponsesStreamEventOutputTextAnnotationAdded,\n  OpenAIResponsesStreamEventOutputTextDelta,\n  OpenAIResponsesStreamEventOutputTextDone,\n  OpenAIResponsesStreamEventReasoningSummaryPartAdded,\n  OpenAIResponsesStreamEventReasoningSummaryPartDone,\n  OpenAIResponsesStreamEventReasoningSummaryTextDelta,\n  OpenAIResponsesStreamEventReasoningSummaryTextDone,\n  OpenAIResponsesStreamEventReasoningTextDelta,\n  OpenAIResponsesStreamEventReasoningTextDone,\n  OpenAIResponsesStreamEventRefusalDelta,\n  OpenAIResponsesStreamEventRefusalDone,\n  OpenAIResponsesStreamEventResponseCompleted,\n  OpenAIResponsesStreamEventResponseCreated,\n  OpenAIResponsesStreamEventResponseFailed,\n  OpenAIResponsesStreamEventResponseIncomplete,\n  OpenAIResponsesStreamEventResponseInProgress,\n  OpenAIResponsesStreamEventResponseQueued,\n  OpenAIResponsesStreamEventWebSearchCallCompleted,\n  OpenAIResponsesStreamEventWebSearchCallInProgress,\n  OpenAIResponsesStreamEventWebSearchCallSearching,\n  OpenAIResponsesUsage,\n  type OpenAIResponsesCompleteResponseType,\n  type OpenAIResponsesContainerFileCitationAnnotationType,\n  type OpenAIResponsesErrorType,\n  type OpenAIResponsesFileCitationAnnotationType,\n  type OpenAIResponsesFilePathAnnotationType,\n  type OpenAIResponsesOutputContentPartType,\n  type OpenAIResponsesOutputFileSearchCallItemType,\n  type OpenAIResponsesOutputFunctionCallItemType,\n  type OpenAIResponsesOutputItemType,\n  type OpenAIResponsesOutputMessageItemType,\n  type OpenAIResponsesOutputReasoningItemType,\n  type OpenAIResponsesOutputRefusalContentPartType,\n  type OpenAIResponsesOutputTextAnnotationType,\n  type OpenAIResponsesOutputTextContentPartType,\n  type OpenAIResponsesUrlCitationAnnotationType,\n  type OpenAIResponsesOutputWebSearchCallItemType,\n  type OpenAIResponsesRequestFunctionCallItemType,\n  type OpenAIResponsesRequestFunctionCallOutputItemType,\n  type OpenAIResponsesRequestFunctionToolType,\n  type OpenAIResponsesRequestInputContentPartType,\n  type OpenAIResponsesRequestInputFileContentType,\n  type OpenAIResponsesRequestInputImageContentType,\n  type OpenAIResponsesRequestInputItemType,\n  type OpenAIResponsesRequestInputTextContentType,\n  type OpenAIResponsesRequestMessageItemType,\n  type OpenAIResponsesRequestOutputContentPartType,\n  type OpenAIResponsesRequestOutputTextContentType,\n  type OpenAIResponsesRequestReasoningType,\n  type OpenAIResponsesRequestTextFormatType,\n  type OpenAIResponsesRequestTextType,\n  type OpenAIResponsesRequestToolChoiceType,\n  type OpenAIResponsesRequestToolType,\n  type OpenAIResponsesRequestType,\n  type OpenAIResponsesRequestWebSearchToolType,\n  type OpenAIResponsesStreamEventType,\n  type OpenAIResponsesUsageType,\n};\n","import { z } from \"zod\";\n\nimport {\n  ChatModelSchemaType,\n  ChatModelV1,\n  getMimeTypeFromBase64,\n  HeadersType,\n  InvalidConfigError,\n  InvalidMessagesError,\n  InvalidModelRequestError,\n  InvalidToolsError,\n  ModelResponseError,\n  ParamsType,\n  removeUndefinedEntries,\n  SelectStringConfigItemDefType,\n  UrlType,\n  urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\nimport {\n  AssistantRoleLiteral,\n  Base64ImageContentTypeLiteral,\n  Base64ImageContentValueType,\n  ChatLogProbsType,\n  ChatModelPriceType,\n  ChatResponseType,\n  ChatUsageType,\n  Config,\n  ConfigType,\n  ContentType,\n  createPartialReasoningMessage,\n  createPartialResponseErrorMessage,\n  createPartialSearchResultMessage,\n  createPartialTextMessage,\n  createPartialToolCallMessage,\n  createReasoningContent,\n  createResponseErrorContent,\n  createSearchResultContent,\n  createTextContent,\n  createToolCallContent,\n  ImageModalityLiteral,\n  Message,\n  MessageType,\n  PartialChatResponseType,\n  SystemRoleLiteral,\n  TextModalityLiteral,\n  Tool,\n  ToolCallContentType,\n  ToolCallModalityLiteral,\n  ToolResponseContentType,\n  ToolResponseModalityLiteral,\n  ToolRoleLiteral,\n  ToolType,\n  UrlImageContentTypeLiteral,\n  UserRoleLiteral,\n} from \"@adaline/types\";\n\nimport pricingData from \"../pricing.json\";\nimport { OpenAI } from \"./../../provider/provider.openai\";\nimport {\n  OpenAIChatRequest,\n  OpenAIChatRequestImageContentType,\n  OpenAIChatRequestTextContentType,\n  OpenAIChatRequestToolType,\n  OpenAIChatRequestType,\n  OpenAICompleteChatResponse,\n  OpenAICompleteChatResponseType,\n  OpenAIResponsesCompleteResponse,\n  OpenAIStreamChatResponse,\n  OpenAIStreamChatResponseType,\n} from \"./types\";\n\nconst BaseChatModelOptions = z.object({\n  modelName: z.string(),\n  apiKey: z.string(),\n  baseUrl: z.string().url().optional(),\n  completeChatUrl: z.string().url().optional(),\n  streamChatUrl: z.string().url().optional(),\n  organization: z.string().optional(),\n  forceResponsesApi: z.boolean().optional(),\n});\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nclass BaseChatModel implements ChatModelV1<ChatModelSchemaType> {\n  readonly version = \"v1\" as const;\n  modelSchema: ChatModelSchemaType;\n  modelName: string;\n\n  private readonly apiKey: string;\n  private readonly baseUrl: string;\n  private readonly streamChatUrl: string;\n  private readonly completeChatUrl: string;\n  private readonly organization: string | undefined;\n  private readonly forceResponsesApi: boolean;\n\n  constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n    const parsedOptions = BaseChatModelOptions.parse(options);\n    this.modelSchema = modelSchema;\n    this.modelName = parsedOptions.modelName;\n    this.apiKey = parsedOptions.apiKey;\n    this.baseUrl = urlWithoutTrailingSlash(parsedOptions.baseUrl || OpenAI.baseUrl);\n    this.streamChatUrl = urlWithoutTrailingSlash(parsedOptions.streamChatUrl || `${this.baseUrl}/chat/completions`);\n    this.completeChatUrl = urlWithoutTrailingSlash(parsedOptions.completeChatUrl || `${this.baseUrl}/chat/completions`);\n    this.organization = parsedOptions.organization;\n    this.forceResponsesApi = parsedOptions.forceResponsesApi ?? false;\n  }\n\n  getDefaultBaseUrl(): UrlType {\n    return this.baseUrl;\n  }\n\n  getDefaultHeaders(): HeadersType {\n    return {\n      Authorization: `Bearer ${this.apiKey}`,\n      \"Content-Type\": \"application/json\",\n      ...(this.organization ? { \"OpenAI-Organization\": this.organization } : {}),\n    };\n  }\n\n  getDefaultParams(): ParamsType {\n    return {\n      model: this.modelName,\n    };\n  }\n\n  // x-ratelimit-limit-requests\tThe maximum number of requests that are permitted before exhausting the rate limit.\n  // x-ratelimit-limit-tokens\tThe maximum number of tokens that are permitted before exhausting the rate limit.\n  // x-ratelimit-remaining-requests The remaining number of requests that are permitted before exhausting the rate limit.\n  // x-ratelimit-remaining-tokens\tThe remaining number of tokens that are permitted before exhausting the rate limit.\n  // x-ratelimit-reset-requests\tThe time until the rate limit (based on requests) resets to its initial state.\n  // x-ratelimit-reset-tokens\tThe time until the rate limit (based on tokens) resets to its initial state.\n  getRetryDelay(responseHeaders: HeadersType, _responseData: unknown): { shouldRetry: boolean; delayMs: number } {\n    // parse duration from header value of format \"6m0s\" or \"21s\" or \"41ms\" or \"2s81ms\" or \"5h50m30ms\" and such\n    const parseDuration = (duration: string): number => {\n      const regex = /(\\d+)(h|m|s|ms)/g;\n      const timeUnits: { [unit: string]: number } = {\n        h: 3600000, // 1 hour = 60 * 60 * 1000 ms\n        m: 60000, // 1 minute = 60 * 1000 ms\n        s: 1000, // 1 second = 1000 ms\n        ms: 1, // milliseconds\n      };\n\n      let match;\n      let totalMs = 0;\n      while ((match = regex.exec(duration)) !== null) {\n        const value = parseInt(match[1]);\n        const unit = match[2];\n        totalMs += value * timeUnits[unit];\n      }\n\n      return totalMs;\n    };\n\n    let resetRequestsDelayMs = 0;\n    let resetTokensDelayMs = 0;\n    const shouldRetry = true;\n    if (responseHeaders[\"x-ratelimit-reset-requests\"]) {\n      resetRequestsDelayMs = parseDuration(responseHeaders[\"x-ratelimit-reset-requests\"]);\n    }\n    if (responseHeaders[\"x-ratelimit-reset-tokens\"]) {\n      resetTokensDelayMs = parseDuration(responseHeaders[\"x-ratelimit-reset-tokens\"]);\n    }\n\n    // if rate limited by requests, then it's reset must be the higher of two and visa versa\n    const delayMs = Math.max(resetRequestsDelayMs, resetTokensDelayMs);\n    return { shouldRetry, delayMs };\n  }\n\n  getTokenCount(messages: MessageType[]): number {\n    return messages.reduce((acc, message) => {\n      return acc + message.content.map((content) => (content.modality === \"text\" ? content.value : \"\")).join(\" \").length;\n    }, 0);\n  }\n\n  private shouldUseResponsesApi(config: ConfigType, _tools?: ToolType[]): boolean {\n    return this.forceResponsesApi || (config as { webSearchTool?: unknown }).webSearchTool === true;\n  }\n\n  transformModelRequest(request: OpenAIChatRequestType): {\n    modelName: string | undefined;\n    config: ConfigType;\n    messages: MessageType[];\n    tools: ToolType[] | undefined;\n  } {\n    const safeRequest = OpenAIChatRequest.safeParse(request);\n    if (!safeRequest.success) {\n      throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n    }\n\n    const parsedRequest = safeRequest.data;\n\n    const modelName = parsedRequest.model;\n\n    if (parsedRequest.tool_choice && (!parsedRequest.tools || parsedRequest.tools.length === 0)) {\n      throw new InvalidModelRequestError({\n        info: `Invalid model request for model : '${this.modelName}'`,\n        cause: new Error(\"'tools' are required when 'tool_choice' is specified\"),\n      });\n    }\n\n    const _config: ConfigType = {};\n    if (parsedRequest.response_format) {\n      _config.responseFormat = parsedRequest.response_format.type;\n      if (parsedRequest.response_format.type === \"json_schema\") {\n        _config.responseSchema = {\n          name: parsedRequest.response_format.json_schema.name,\n          description: parsedRequest.response_format.json_schema.description || \"\",\n          strict: parsedRequest.response_format.json_schema.strict,\n          schema: parsedRequest.response_format.json_schema.schema,\n        };\n      }\n    }\n\n    if (parsedRequest.tool_choice) {\n      if (typeof parsedRequest.tool_choice === \"string\") {\n        _config.toolChoice = parsedRequest.tool_choice;\n      } else {\n        _config.toolChoice = parsedRequest.tool_choice.function.name;\n      }\n    }\n\n    _config.seed = parsedRequest.seed;\n    _config.maxTokens = parsedRequest.max_completion_tokens;\n    _config.temperature = parsedRequest.temperature;\n    _config.topP = parsedRequest.top_p;\n    _config.presencePenalty = parsedRequest.presence_penalty;\n    _config.frequencyPenalty = parsedRequest.frequency_penalty;\n    _config.stop = parsedRequest.stop;\n    _config.logProbs = parsedRequest.logprobs;\n    _config.topLogProbs = parsedRequest.top_logprobs;\n    _config.reasoningEffort = parsedRequest.reasoning_effort;\n    _config.verbosity = parsedRequest.verbosity;\n\n    const config = Config().parse(removeUndefinedEntries(_config));\n\n    const messages: MessageType[] = [];\n    const toolCallMap: { [id: string]: ToolCallContentType } = {};\n    parsedRequest.messages.forEach((message) => {\n      const role = message.role;\n      switch (role) {\n        case \"system\":\n          {\n            const content = message.content as string | OpenAIChatRequestTextContentType[];\n            if (typeof content === \"string\") {\n              messages.push({\n                role: role,\n                content: [{ modality: TextModalityLiteral, value: content }],\n              });\n            } else {\n              const _content = content.map((c) => {\n                return { modality: TextModalityLiteral, value: c.text };\n              });\n              messages.push({ role: role, content: _content });\n            }\n          }\n          break;\n\n        case \"user\":\n          {\n            const content = message.content as string | (OpenAIChatRequestTextContentType | OpenAIChatRequestImageContentType)[];\n            if (typeof content === \"string\") {\n              messages.push({\n                role: role,\n                content: [{ modality: TextModalityLiteral, value: content }],\n              });\n            } else {\n              const _content = content.map((c) => {\n                if (c.type === \"text\") {\n                  return { modality: TextModalityLiteral, value: c.text };\n                } else {\n                  if (c.image_url.url.startsWith(\"data:\")) {\n                    return {\n                      modality: ImageModalityLiteral,\n                      detail: c.image_url.detail || \"auto\",\n                      value: {\n                        type: Base64ImageContentTypeLiteral,\n                        base64: c.image_url.url,\n                        mediaType: getMimeTypeFromBase64(c.image_url.url) as Base64ImageContentValueType[\"mediaType\"],\n                      },\n                    };\n                  } else {\n                    return {\n                      modality: ImageModalityLiteral,\n                      detail: c.image_url.detail || \"auto\",\n                      value: { type: UrlImageContentTypeLiteral, url: c.image_url.url },\n                    };\n                  }\n                }\n              });\n              messages.push({ role: role, content: _content });\n            }\n          }\n          break;\n\n        case \"assistant\":\n          {\n            const assistantContent: ContentType[] = [];\n\n            if (!message.content && !message.tool_calls) {\n              throw new InvalidModelRequestError({\n                info: `Invalid model request for model : '${this.modelName}'`,\n                cause: new Error(\"one of'content' or 'tool_calls' must be provided\"),\n              });\n            }\n\n            if (message.content) {\n              const content = message.content as string | OpenAIChatRequestTextContentType[];\n              if (typeof content === \"string\") {\n                assistantContent.push({ modality: TextModalityLiteral, value: content });\n              } else {\n                content.forEach((c) => {\n                  assistantContent.push({ modality: TextModalityLiteral, value: c.text });\n                });\n              }\n            }\n\n            if (message.tool_calls) {\n              const toolCalls = message.tool_calls;\n              toolCalls.forEach((toolCall, index) => {\n                const toolCallContent: ToolCallContentType = {\n                  modality: ToolCallModalityLiteral,\n                  id: toolCall.id,\n                  index: index,\n                  name: toolCall.function.name,\n                  arguments: toolCall.function.arguments,\n                };\n                assistantContent.push(toolCallContent);\n                toolCallMap[toolCallContent.id] = toolCallContent;\n              });\n            }\n            messages.push({ role: role, content: assistantContent });\n          }\n          break;\n\n        case \"tool\":\n          {\n            const toolResponse = message;\n            messages.push({\n              role: role,\n              content: [\n                {\n                  modality: ToolResponseModalityLiteral,\n                  id: toolResponse.tool_call_id,\n                  index: toolCallMap[toolResponse.tool_call_id].index,\n                  name: toolCallMap[toolResponse.tool_call_id].name,\n                  data: toolResponse.content,\n                },\n              ],\n            });\n          }\n          break;\n      }\n    });\n\n    const tools: ToolType[] = [];\n    if (parsedRequest.tools) {\n      parsedRequest.tools.forEach((tool: OpenAIChatRequestToolType) => {\n        tools.push({\n          type: \"function\",\n          definition: {\n            schema: {\n              name: tool.function.name,\n              description: tool.function.description || \"\",\n              strict: tool.function.strict,\n              parameters: tool.function.parameters,\n            },\n          },\n        });\n      });\n    }\n\n    return {\n      modelName,\n      config,\n      messages,\n      tools: tools.length > 0 ? tools : undefined,\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  transformConfig(config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType {\n    // Shallow-copy so the caller's object is not mutated (e.g. on retries).\n    const workingConfig = { ...config };\n    const _toolChoice = workingConfig.toolChoice;\n    delete workingConfig.toolChoice; // can have a specific tool name that is not in the model schema, validated at transformation\n\n    const _parsedConfig = this.modelSchema.config.schema.safeParse(workingConfig);\n    if (!_parsedConfig.success) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelName}'`,\n        cause: _parsedConfig.error,\n      });\n    }\n\n    const parsedConfig = _parsedConfig.data as ConfigType;\n    if (_toolChoice !== undefined) {\n      parsedConfig.toolChoice = _toolChoice;\n    }\n\n    Object.keys(parsedConfig).forEach((key) => {\n      if (!(key in this.modelSchema.config.def)) {\n        throw new InvalidConfigError({\n          info: `Invalid config for model : '${this.modelName}'`,\n          cause: new Error(`Invalid config key : '${key}', \n            available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n        });\n      }\n    });\n\n    const transformedConfig = Object.keys(parsedConfig).reduce((acc, key) => {\n      const def = this.modelSchema.config.def[key];\n      const paramKey = def.param;\n      const paramValue = (parsedConfig as ConfigType)[key];\n\n      if (paramKey === \"max_completion_tokens\" && def.type === \"range\" && paramValue === 0) {\n        acc[paramKey] = def.max;\n      } else {\n        acc[paramKey] = paramValue;\n      }\n\n      return acc;\n    }, {} as ParamsType);\n\n    if (transformedConfig.top_logprobs && !transformedConfig.logprobs) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelName}'`,\n        cause: new Error(\"'logprobs' must be 'true' when 'top_logprobs' is specified\"),\n      });\n    }\n\n    if (\"tool_choice\" in transformedConfig && transformedConfig.tool_choice !== undefined) {\n      const toolChoice = transformedConfig.tool_choice as string;\n      if (!tools || (tools && tools.length === 0)) {\n        throw new InvalidConfigError({\n          info: `Invalid config for model : '${this.modelName}'`,\n          cause: new Error(\"'tools' are required when 'toolChoice' is specified\"),\n        });\n      } else if (tools && tools.length > 0) {\n        const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n        if (!configToolChoice.choices.includes(toolChoice)) {\n          if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n            transformedConfig.tool_choice = { type: \"function\", function: { name: toolChoice } };\n          } else {\n            throw new InvalidConfigError({\n              info: `Invalid config for model : '${this.modelName}'`,\n              cause: new Error(`toolChoice : '${toolChoice}' is not part of provided 'tools' names or \n                one of [${configToolChoice.choices.join(\", \")}]`),\n            });\n          }\n        }\n      }\n    }\n\n    if (\"response_format\" in transformedConfig && transformedConfig.response_format !== undefined) {\n      const responseFormat = transformedConfig.response_format as string;\n      if (responseFormat === \"json_schema\") {\n        if (!(\"response_schema\" in transformedConfig)) {\n          throw new InvalidConfigError({\n            info: `Invalid config for model : '${this.modelName}'`,\n            cause: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\"),\n          });\n        } else {\n          transformedConfig.response_format = {\n            type: \"json_schema\",\n            json_schema: transformedConfig.response_schema,\n          };\n          delete transformedConfig.response_schema;\n        }\n      } else {\n        transformedConfig.response_format = { type: responseFormat };\n      }\n    }\n\n    // Always strip internal web-search keys so nothing leaks to the CC body.\n    delete transformedConfig.webSearchAllowedDomains;\n    delete transformedConfig.webSearchExternalAccess;\n\n    return transformedConfig;\n  }\n\n  transformMessages(messages: MessageType[]): ParamsType {\n    if (!messages || (messages && messages.length === 0)) {\n      return { messages: [] };\n    }\n\n    const parsedMessages = messages.map((message) => {\n      const parsedMessage = Message().safeParse(message);\n      if (!parsedMessage.success) {\n        throw new InvalidMessagesError({ info: \"Invalid messages\", cause: parsedMessage.error });\n      }\n      return parsedMessage.data;\n    });\n\n    parsedMessages.forEach((message) => {\n      message.content.forEach((content) => {\n        if (!this.modelSchema.modalities.includes(content.modality)) {\n          throw new InvalidMessagesError({\n            info: `Invalid message content for model : '${this.modelName}'`,\n            cause: new Error(`model : '${this.modelName}' does not support modality : '${content.modality}', \n              available modalities : [${this.modelSchema.modalities.join(\", \")}]`),\n          });\n        }\n      });\n    });\n\n    parsedMessages.forEach((message) => {\n      if (!Object.keys(this.modelSchema.roles).includes(message.role)) {\n        throw new InvalidMessagesError({\n          info: `Invalid message content for model : '${this.modelName}'`,\n          cause: new Error(`model : '${this.modelName}' does not support role : '${message.role}', \n            available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n        });\n      }\n    });\n\n    // Filter out error and search-result modalities from all messages (these are output-only modalities)\n    parsedMessages.forEach((message) => {\n      message.content = message.content.filter((content) => content.modality !== \"error\" && content.modality !== \"search-result\");\n    });\n\n    const transformedMessages = parsedMessages.map((message) => {\n      switch (message.role) {\n        case SystemRoleLiteral: {\n          const textContent: { type: \"text\"; text: string }[] = [];\n          message.content.forEach((content) => {\n            if (content.modality === TextModalityLiteral) {\n              textContent.push({ type: \"text\", text: content.value });\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          });\n\n          return {\n            role: this.modelSchema.roles[message.role],\n            content: textContent,\n          };\n        }\n\n        case AssistantRoleLiteral: {\n          const textContent: { type: \"text\"; text: string }[] = [];\n          const toolCalls: { id: string; type: \"function\"; function: { name: string; arguments: string } }[] = [];\n          message.content.forEach((content) => {\n            if (content.modality === TextModalityLiteral) {\n              textContent.push({ type: \"text\", text: content.value });\n            } else if (content.modality === ToolCallModalityLiteral) {\n              toolCalls.push({\n                id: content.id,\n                type: \"function\",\n                function: { name: content.name, arguments: content.arguments },\n              });\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          });\n\n          return {\n            role: this.modelSchema.roles[message.role],\n            content: textContent,\n            ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),\n          };\n        }\n\n        case UserRoleLiteral: {\n          const textContent: { type: \"text\"; text: string }[] = [];\n          const imageContent: { type: \"image_url\"; image_url: { url: string; detail: string } }[] = [];\n          message.content.forEach((content) => {\n            if (content.modality === TextModalityLiteral) {\n              textContent.push({ type: \"text\", text: content.value });\n            } else if (content.modality === ImageModalityLiteral) {\n              imageContent.push({\n                type: \"image_url\",\n                image_url: {\n                  url: content.value.type === \"url\" ? content.value.url : content.value.base64,\n                  detail: content.detail,\n                },\n              });\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          });\n\n          const combinedContent = [...textContent, ...imageContent];\n\n          return {\n            role: this.modelSchema.roles[message.role],\n            content: combinedContent,\n          };\n        }\n\n        case ToolRoleLiteral: {\n          if (message.content.length !== 1) {\n            throw new InvalidMessagesError({\n              info: `Invalid message for role : '${message.role}'`,\n              cause: new Error(`role : '${message.role}' must have exactly one content item`),\n            });\n          }\n\n          if (message.content[0].modality !== ToolResponseModalityLiteral) {\n            throw new InvalidMessagesError({\n              info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n              cause: new Error(`role : '${message.role}' must have content with modality : '${ToolResponseModalityLiteral}'`),\n            });\n          }\n\n          const toolResponse = message.content[0] as ToolResponseContentType;\n          return {\n            role: this.modelSchema.roles[message.role],\n            tool_call_id: toolResponse.id,\n            content: toolResponse.data,\n          };\n        }\n\n        default: {\n          throw new InvalidMessagesError({\n            info: `Invalid message 'role' for model : ${this.modelName}`,\n            cause: new Error(`role : '${message.role}' is not supported, \n              available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n          });\n        }\n      }\n    });\n\n    return { messages: transformedMessages };\n  }\n\n  transformTools(tools: ToolType[]): ParamsType {\n    if (!this.modelSchema.modalities.includes(ToolCallModalityLiteral)) {\n      throw new InvalidToolsError({\n        info: `Invalid tool 'modality' for model : ${this.modelName}`,\n        cause: new Error(`model : '${this.modelName}' does not support tool modality : '${ToolCallModalityLiteral}'`),\n      });\n    }\n\n    if (!tools || (tools && tools.length === 0)) {\n      return { tools: [] as ToolType[] };\n    }\n\n    const parsedTools = tools.map((tool) => {\n      const parsedTool = Tool().safeParse(tool);\n      if (!parsedTool.success) {\n        throw new InvalidToolsError({ info: \"Invalid tools\", cause: parsedTool.error });\n      }\n      return parsedTool.data;\n    });\n\n    const transformedTools = parsedTools.map((tool) => ({\n      type: \"function\",\n      function: tool.definition.schema,\n    }));\n\n    return { tools: transformedTools };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getCompleteChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n    if (this.shouldUseResponsesApi(config ?? {})) {\n      return Promise.resolve(`${this.baseUrl}/responses`);\n    }\n    return new Promise((resolve) => {\n      resolve(this.completeChatUrl);\n    });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getCompleteChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n    return new Promise((resolve) => {\n      resolve(this.getDefaultHeaders());\n    });\n  }\n\n  async getCompleteChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n    if (this.shouldUseResponsesApi(config, tools)) {\n      return this.getCompleteChatDataResponsesApi(config, messages, tools);\n    }\n    const transformedConfig = this.transformConfig(config, messages, tools);\n    const transformedMessages = this.transformMessages(messages);\n    if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n      throw new InvalidMessagesError({\n        info: \"Messages are required\",\n        cause: new Error(\"Messages are required\"),\n      });\n    }\n\n    const transformedTools = tools ? this.transformTools(tools) : {};\n\n    return new Promise((resolve) => {\n      resolve({\n        ...this.getDefaultParams(),\n        ...transformedConfig,\n        ...transformedMessages,\n        ...transformedTools,\n      });\n    });\n  }\n\n  transformCompleteChatResponse(response: unknown): ChatResponseType {\n    if (response && typeof response === \"object\" && (response as { object?: unknown }).object === \"response\") {\n      return this.transformCompleteChatResponseResponsesApi(response);\n    }\n    const safe = OpenAICompleteChatResponse.safeParse(response);\n    if (safe.success) {\n      if (safe.data.choices.length === 0) {\n        throw new ModelResponseError({\n          info: \"Invalid response from model\",\n          cause: new Error(`No choices in response : ${JSON.stringify(safe.data)}`),\n        });\n      }\n\n      const parsedResponse: OpenAICompleteChatResponseType = safe.data;\n      const messages: MessageType[] = [\n        {\n          role: AssistantRoleLiteral,\n          content: [],\n        },\n      ];\n      const message = parsedResponse.choices[0].message;\n      if (message.content) {\n        messages[0].content.push(createTextContent(message.content));\n      }\n\n      if (message.refusal) {\n        messages[0].content.push(createTextContent(message.refusal));\n      }\n\n      if (message.tool_calls) {\n        message.tool_calls.forEach((toolCall, index) => {\n          messages[0].content.push(createToolCallContent(index, toolCall.id, toolCall.function.name, toolCall.function.arguments));\n        });\n      }\n\n      if (message.content && message.annotations && message.annotations.length > 0) {\n        const annotations = message.annotations.map((annotation) => ({\n          url: annotation.url_citation.url,\n          title: annotation.url_citation.title,\n          start_index: annotation.url_citation.start_index,\n          end_index: annotation.url_citation.end_index,\n        }));\n        messages[0].content.push(this.buildSearchResultContent(message.content, annotations));\n      }\n\n      const usage: ChatUsageType = {\n        promptTokens: parsedResponse.usage.prompt_tokens,\n        completionTokens: parsedResponse.usage.completion_tokens,\n        totalTokens: parsedResponse.usage.total_tokens,\n      };\n\n      const logProbs: ChatLogProbsType = [];\n      const _logProbs = parsedResponse.choices[0].logprobs;\n      if (_logProbs) {\n        if (_logProbs.content) {\n          logProbs.push(\n            ..._logProbs.content.map((logProb) => ({\n              token: logProb.token,\n              logProb: logProb.logprob,\n              bytes: logProb.bytes,\n              topLogProbs: logProb.top_logprobs.map((topLogProb) => ({\n                token: topLogProb.token,\n                logProb: topLogProb.logprob,\n                bytes: topLogProb.bytes,\n              })),\n            }))\n          );\n        }\n        if (_logProbs.refusal) {\n          logProbs.push(\n            ..._logProbs.refusal.map((logProb) => ({\n              token: logProb.token,\n              logProb: logProb.logprob,\n              bytes: logProb.bytes,\n              topLogProbs: logProb.top_logprobs.map((topLogProb) => ({\n                token: topLogProb.token,\n                logProb: topLogProb.logprob,\n                bytes: topLogProb.bytes,\n              })),\n            }))\n          );\n        }\n      }\n\n      return {\n        messages: messages,\n        usage: usage,\n        logProbs: logProbs,\n      };\n    }\n\n    throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getStreamChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<UrlType> {\n    if (this.shouldUseResponsesApi(config ?? {})) {\n      return Promise.resolve(`${this.baseUrl}/responses`);\n    }\n    return new Promise((resolve) => {\n      resolve(this.streamChatUrl);\n    });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getStreamChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n    return new Promise((resolve) => {\n      resolve(this.getDefaultHeaders());\n    });\n  }\n\n  async getStreamChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n    if (this.shouldUseResponsesApi(config, tools)) {\n      return this.getStreamChatDataResponsesApi(config, messages, tools);\n    }\n    const transformedConfig = this.transformConfig(config, messages, tools);\n    const transformedMessages = this.transformMessages(messages);\n    if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n      throw new InvalidMessagesError({\n        info: \"Messages are required\",\n        cause: new Error(\"Messages are required\"),\n      });\n    }\n\n    const transformedTools = tools ? this.transformTools(tools) : {};\n\n    return new Promise((resolve) => {\n      resolve({\n        stream: true,\n        stream_options: { include_usage: true },\n        ...this.getDefaultParams(),\n        ...transformedConfig,\n        ...transformedMessages,\n        ...transformedTools,\n      });\n    });\n  }\n\n  // Dispatch between CC and Responses stream parsers is based on two signals (in priority):\n  //   1. Buffer sidecar marker (__RESP_STATE__): once a call starts parsing Responses events,\n  //      subsequent chunks carry the marker and stay on the Responses path.\n  //   2. First parseable line's identity field: `object === \"chat.completion.chunk\"` routes to CC;\n  //      `type` starting with \"response.\" or equal to \"error\" routes to Responses.\n  // A caller who mixes CC and Responses chunks in the same generator lifecycle is unsupported;\n  // the sidecar state cannot be recovered if the first chunk was CC and the second switches to Responses.\n  async *transformStreamChatResponseChunk(\n    chunk: string,\n    buffer: string\n  ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n    // Dispatch by identity: peek at the first complete `data: ` line (including anything\n    // still held in `buffer`) to decide whether to route this call to the Responses\n    // parser. Responses state sidecar in `buffer` starts with the `__RESP_STATE__` marker\n    // — that alone also forces the Responses path even if the chunk's first line hasn't\n    // arrived yet.\n    if (buffer.startsWith(\"__RESP_STATE__\") || this.looksLikeResponsesStream(buffer + chunk)) {\n      yield* this.transformStreamChatResponseChunkResponsesApi(chunk, buffer);\n      return;\n    }\n\n    const data = buffer + chunk;\n    let lines: string[] = [];\n    let newBuffer = \"\";\n\n    // Split data into complete lines and new buffer\n    let currentIndex = 0;\n    while (currentIndex < data.length) {\n      const newlineIndex = data.indexOf(\"\\n\", currentIndex);\n      if (newlineIndex === -1) {\n        newBuffer = data.substring(currentIndex);\n        break;\n      } else {\n        const line = data.substring(currentIndex, newlineIndex).trim();\n        if (line) {\n          lines.push(line);\n        }\n        currentIndex = newlineIndex + 1;\n      }\n    }\n\n    // Process each complete line\n    for (const line of lines) {\n      if (line === \"data: [DONE]\") {\n        return; // End of stream\n      }\n\n      if (line.startsWith(\"data: \")) {\n        const jsonStr = line.substring(\"data: \".length);\n        try {\n          const structuredLine = JSON.parse(jsonStr);\n          const safe = OpenAIStreamChatResponse.safeParse(structuredLine);\n          if (safe.success) {\n            const partialResponse: PartialChatResponseType = { partialMessages: [] };\n            const parsedResponse: OpenAIStreamChatResponseType = safe.data;\n            // Process message content\n            if (parsedResponse.choices.length > 0) {\n              const message = parsedResponse.choices[0].delta;\n              if (message !== undefined && Object.keys(message).length !== 0) {\n                if (\"content\" in message && message.content !== null) {\n                  partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n                } else if (\"refusal\" in message && message.refusal !== null) {\n                  partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n                } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n                  const toolCall = message.tool_calls.at(0)!;\n                  partialResponse.partialMessages.push(\n                    createPartialToolCallMessage(\n                      AssistantRoleLiteral,\n                      toolCall.index,\n                      toolCall.id,\n                      toolCall.function?.name,\n                      toolCall.function?.arguments\n                    )\n                  );\n                }\n              }\n            }\n\n            if (parsedResponse.usage) {\n              partialResponse.usage = {\n                promptTokens: parsedResponse.usage.prompt_tokens,\n                completionTokens: parsedResponse.usage.completion_tokens,\n                totalTokens: parsedResponse.usage.total_tokens,\n              };\n            }\n            yield { partialResponse: partialResponse, buffer: newBuffer };\n          } else {\n            throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n          }\n        } catch (error) {\n          throw new ModelResponseError({\n            info: `Malformed JSON received in stream: ${jsonStr}`,\n            cause: error,\n          });\n        }\n      }\n    }\n\n    // Yield the updated buffer after processing all lines\n    yield { partialResponse: { partialMessages: [] }, buffer: newBuffer };\n  }\n  async *transformProxyStreamChatResponseChunk(\n    chunk: string,\n    buffer: string,\n    data?: any,\n    headers?: Record<string, string>,\n    query?: Record<string, string>\n  ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n    // Directly delegate to transformStreamChatResponseChunk\n    yield* this.transformStreamChatResponseChunk(chunk, buffer);\n  }\n  async getProxyStreamChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n    return new Promise((resolve) => {\n      resolve(this.streamChatUrl);\n    });\n  }\n  async getProxyCompleteChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n    return new Promise((resolve) => {\n      resolve(this.completeChatUrl);\n    });\n  }\n\n  async getProxyCompleteChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n    if (!headers) {\n      return {};\n    }\n    const sanitizedHeaders: Record<string, string> = { ...headers };\n\n    delete sanitizedHeaders.host;\n    delete sanitizedHeaders[\"content-length\"];\n    return sanitizedHeaders;\n  }\n  async getProxyStreamChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n    // Directly delegate to getProxyCompleteChatHeaders for now\n    return await this.getProxyCompleteChatHeaders(data, headers, query);\n  }\n\n  getModelPricing(): ChatModelPriceType {\n    // Check if the modelName exists in pricingData before accessing it\n    if (!(this.modelName in pricingData)) {\n      throw new ModelResponseError({\n        info: `Invalid model pricing for model : '${this.modelName}'`,\n        cause: new Error(`No pricing configuration found for model \"${this.modelName}\"`),\n      });\n    }\n\n    const entry = pricingData[this.modelName as keyof typeof pricingData];\n    return entry as ChatModelPriceType;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  protected transformConfigResponsesApi(config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType {\n    // Q2 schema-key guard: throw early if webSearchTool is requested on a model\n    // whose schema doesn't advertise the webSearchTool config key.\n    if ((config as { webSearchTool?: unknown }).webSearchTool === true && !(\"webSearchTool\" in this.modelSchema.config.def)) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelName}'`,\n        cause: new Error(\n          `model : '${this.modelName}' does not support the 'webSearchTool' config key — it cannot route to the Responses API web_search built-in tool`\n        ),\n      });\n    }\n\n    // Strip-and-reattach toolChoice so schema.safeParse doesn't reject custom function names\n    // that aren't in the schema's choices list (mirrors CC transformConfig without delegating).\n    // Shallow-copy so the caller's object is not mutated (e.g. on retries).\n    const workingConfig = { ...config };\n    const _toolChoice = workingConfig.toolChoice;\n    delete workingConfig.toolChoice;\n\n    const _parsedConfig = this.modelSchema.config.schema.safeParse(workingConfig);\n    if (!_parsedConfig.success) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelName}'`,\n        cause: _parsedConfig.error,\n      });\n    }\n\n    const parsedConfig = _parsedConfig.data as ConfigType;\n    if (_toolChoice !== undefined) {\n      parsedConfig.toolChoice = _toolChoice;\n    }\n\n    Object.keys(parsedConfig).forEach((key) => {\n      if (!(key in this.modelSchema.config.def)) {\n        throw new InvalidConfigError({\n          info: `Invalid config for model : '${this.modelName}'`,\n          cause: new Error(`Invalid config key : '${key}',\n            available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n        });\n      }\n    });\n\n    // Cross-field guard: OpenAI rejects webSearchTool=true with reasoningEffort=\"minimal\" on gpt-5 models.\n    // Pre-validate here so the caller sees a typed InvalidConfigError instead of a raw HTTP 400.\n    if (\n      (parsedConfig as { webSearchTool?: unknown }).webSearchTool === true &&\n      (parsedConfig as { reasoningEffort?: unknown }).reasoningEffort === \"minimal\"\n    ) {\n      throw new InvalidConfigError({\n        info: `Invalid config combination for model: '${this.modelName}'`,\n        cause: new Error(\n          \"webSearchTool=true is incompatible with reasoningEffort='minimal' — OpenAI Responses API rejects this combination\"\n        ),\n      });\n    }\n\n    // Params (by `def.param` value) that MUST NOT be emitted at the top level of the\n    // Responses API request body. Two disjoint reasons for membership:\n    //   1. Chat-Completions-only fields that Responses API rejects as unknown:\n    //      logprobs, frequency_penalty, presence_penalty, stop, seed, n, stream_options, web_search_options.\n    //   2. Internal config keys that are Responses API params but belong INSIDE `tools[]`,\n    //      not at the top level. `transformToolsResponsesApi` reads them from config and\n    //      builds `{type:\"web_search\", filters, external_web_access}` inside the tools entry.\n    //      Skipping them here prevents double-emission, which OpenAI would reject as unknown\n    //      top-level fields.\n    const skipFromResponsesTopLevel = new Set<string>([\n      // Category 1 — CC-only\n      \"logprobs\",\n      \"frequency_penalty\",\n      \"presence_penalty\",\n      \"stop\",\n      \"seed\",\n      \"n\",\n      \"stream_options\",\n      \"web_search_options\",\n      // Category 2 — Responses API, consumed by transformToolsResponsesApi. These are\n      // the `def.param` wire names (not schema keys). `webSearch` is the param name of\n      // the `webSearchTool` atom — dropping it would leak `{\"webSearch\": true}` to the\n      // top level of the Responses body, which OpenAI rejects.\n      \"webSearch\",\n      \"webSearchAllowedDomains\",\n      \"webSearchExternalAccess\",\n    ]);\n\n    const responsesConfig: ParamsType = {};\n    // Structured-output accumulator — responseFormat/responseSchema/verbosity all fold into `text`.\n    const textParams: { format?: Record<string, unknown>; verbosity?: string } = {};\n    let responseFormatValue: string | undefined;\n    let responseSchemaValue: { name: string; description?: string; schema: unknown; strict?: boolean } | undefined;\n\n    for (const key of Object.keys(parsedConfig)) {\n      const def = this.modelSchema.config.def[key];\n      const paramKey = def.param;\n      const paramValue = (parsedConfig as ConfigType)[key];\n\n      if (skipFromResponsesTopLevel.has(paramKey)) {\n        continue;\n      }\n\n      if (paramKey === \"max_completion_tokens\") {\n        if (def.type === \"range\" && paramValue === 0) {\n          responsesConfig.max_output_tokens = def.max;\n        } else {\n          responsesConfig.max_output_tokens = paramValue;\n        }\n        continue;\n      }\n\n      if (paramKey === \"reasoning_effort\") {\n        responsesConfig.reasoning = { effort: paramValue };\n        continue;\n      }\n\n      if (paramKey === \"verbosity\") {\n        textParams.verbosity = paramValue as string;\n        continue;\n      }\n\n      if (paramKey === \"response_format\") {\n        responseFormatValue = paramValue as string;\n        continue;\n      }\n\n      if (paramKey === \"response_schema\") {\n        responseSchemaValue = paramValue as { name: string; description?: string; schema: unknown; strict?: boolean };\n        continue;\n      }\n\n      if (paramKey === \"tool_choice\") {\n        const toolChoice = paramValue as string;\n        if (!tools || tools.length === 0) {\n          throw new InvalidConfigError({\n            info: `Invalid config for model : '${this.modelName}'`,\n            cause: new Error(\"'tools' are required when 'toolChoice' is specified\"),\n          });\n        }\n        const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n        if (configToolChoice.choices.includes(toolChoice)) {\n          responsesConfig.tool_choice = toolChoice;\n        } else if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n          responsesConfig.tool_choice = { type: \"function\", name: toolChoice };\n        } else {\n          throw new InvalidConfigError({\n            info: `Invalid config for model : '${this.modelName}'`,\n            cause: new Error(`toolChoice : '${toolChoice}' is not part of provided 'tools' names or\n                one of [${configToolChoice.choices.join(\", \")}]`),\n          });\n        }\n        continue;\n      }\n\n      if (paramKey === \"top_logprobs\") {\n        // Handled below after the loop, together with logprobs.\n        continue;\n      }\n\n      responsesConfig[paramKey] = paramValue;\n    }\n\n    // Logprobs: Responses API uses top_logprobs only (no separate logprobs boolean).\n    // Emit top_logprobs when logProbs=true; guard against top_logprobs>0 without logProbs=true.\n    const _logProbs = (parsedConfig as { logProbs?: unknown }).logProbs;\n    const _topLogProbs = (parsedConfig as { topLogProbs?: unknown }).topLogProbs;\n    if (_logProbs === true) {\n      responsesConfig.top_logprobs = typeof _topLogProbs === \"number\" ? _topLogProbs : 0;\n    } else if (typeof _topLogProbs === \"number\" && _topLogProbs > 0) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelName}'`,\n        cause: new Error(\"'logprobs' must be 'true' when 'top_logprobs' is specified\"),\n      });\n    }\n\n    if (responseFormatValue !== undefined) {\n      if (responseFormatValue === \"json_schema\") {\n        if (!responseSchemaValue) {\n          throw new InvalidConfigError({\n            info: `Invalid config for model : '${this.modelName}'`,\n            cause: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\"),\n          });\n        }\n        textParams.format = {\n          type: \"json_schema\",\n          name: responseSchemaValue.name,\n          ...(responseSchemaValue.description !== undefined ? { description: responseSchemaValue.description } : {}),\n          schema: responseSchemaValue.schema,\n          ...(responseSchemaValue.strict !== undefined ? { strict: responseSchemaValue.strict } : {}),\n        };\n      } else {\n        textParams.format = { type: responseFormatValue };\n      }\n    }\n\n    if (textParams.format !== undefined || textParams.verbosity !== undefined) {\n      responsesConfig.text = textParams;\n    }\n\n    return responsesConfig;\n  }\n\n  protected transformMessagesResponsesApi(messages: MessageType[]): ParamsType {\n    if (!messages || messages.length === 0) {\n      return { input: [] };\n    }\n\n    const parsedMessages = messages.map((message) => {\n      const parsedMessage = Message().safeParse(message);\n      if (!parsedMessage.success) {\n        throw new InvalidMessagesError({ info: \"Invalid messages\", cause: parsedMessage.error });\n      }\n      return parsedMessage.data;\n    });\n\n    parsedMessages.forEach((message) => {\n      message.content.forEach((content) => {\n        if (!this.modelSchema.modalities.includes(content.modality)) {\n          throw new InvalidMessagesError({\n            info: `Invalid message content for model : '${this.modelName}'`,\n            cause: new Error(`model : '${this.modelName}' does not support modality : '${content.modality}',\n              available modalities : [${this.modelSchema.modalities.join(\", \")}]`),\n          });\n        }\n      });\n    });\n\n    parsedMessages.forEach((message) => {\n      if (!Object.keys(this.modelSchema.roles).includes(message.role)) {\n        throw new InvalidMessagesError({\n          info: `Invalid message content for model : '${this.modelName}'`,\n          cause: new Error(`model : '${this.modelName}' does not support role : '${message.role}',\n            available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n        });\n      }\n    });\n\n    // Filter out error and search-result modalities (output-only)\n    parsedMessages.forEach((message) => {\n      message.content = message.content.filter((content) => content.modality !== \"error\" && content.modality !== \"search-result\");\n    });\n\n    const instructionsParts: string[] = [];\n    const input: Record<string, unknown>[] = [];\n\n    for (const message of parsedMessages) {\n      switch (message.role) {\n        case SystemRoleLiteral: {\n          for (const content of message.content) {\n            if (content.modality === TextModalityLiteral) {\n              instructionsParts.push(content.value);\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          }\n          break;\n        }\n\n        case UserRoleLiteral: {\n          const contentParts: Record<string, unknown>[] = [];\n          for (const content of message.content) {\n            if (content.modality === TextModalityLiteral) {\n              contentParts.push({ type: \"input_text\", text: content.value });\n            } else if (content.modality === ImageModalityLiteral) {\n              const url = content.value.type === \"url\" ? content.value.url : (content.value as Base64ImageContentValueType).base64;\n              contentParts.push({\n                type: \"input_image\",\n                image_url: {\n                  url,\n                  detail: content.detail,\n                },\n              });\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          }\n          input.push({ type: \"message\", role: \"user\", content: contentParts });\n          break;\n        }\n\n        case AssistantRoleLiteral: {\n          const textParts: { type: \"output_text\"; text: string }[] = [];\n          const toolCalls: ToolCallContentType[] = [];\n          for (const content of message.content) {\n            if (content.modality === TextModalityLiteral) {\n              textParts.push({ type: \"output_text\", text: content.value });\n            } else if (content.modality === ToolCallModalityLiteral) {\n              toolCalls.push(content);\n            } else {\n              throw new InvalidMessagesError({\n                info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n                cause: new Error(`role : '${message.role}' cannot have content with modality : '${content.modality}'`),\n              });\n            }\n          }\n          if (textParts.length > 0) {\n            input.push({ type: \"message\", role: \"assistant\", content: textParts });\n          }\n          for (const toolCall of toolCalls) {\n            input.push({\n              type: \"function_call\",\n              call_id: toolCall.id,\n              name: toolCall.name,\n              arguments: toolCall.arguments,\n            });\n          }\n          break;\n        }\n\n        case ToolRoleLiteral: {\n          if (message.content.length !== 1) {\n            throw new InvalidMessagesError({\n              info: `Invalid message for role : '${message.role}'`,\n              cause: new Error(`role : '${message.role}' must have exactly one content item`),\n            });\n          }\n          const content = message.content[0];\n          if (content.modality !== ToolResponseModalityLiteral) {\n            throw new InvalidMessagesError({\n              info: `Invalid message 'role' and 'modality' combination for model : ${this.modelName}`,\n              cause: new Error(`role : '${message.role}' must have content with modality : '${ToolResponseModalityLiteral}'`),\n            });\n          }\n          const toolResponse = content as ToolResponseContentType;\n          input.push({\n            type: \"function_call_output\",\n            call_id: toolResponse.id,\n            output: toolResponse.data,\n          });\n          break;\n        }\n\n        default: {\n          throw new InvalidMessagesError({\n            info: `Invalid message 'role' for model : ${this.modelName}`,\n            cause: new Error(`role : '${message.role}' is not supported,\n              available roles : [${Object.keys(this.modelSchema.roles).join(\", \")}]`),\n          });\n        }\n      }\n    }\n\n    const result: ParamsType = { input };\n    if (instructionsParts.length > 0) {\n      result.instructions = instructionsParts.join(\"\\n\\n\");\n    }\n    return result;\n  }\n\n  protected transformToolsResponsesApi(config: ConfigType, tools?: ToolType[]): ParamsType {\n    const responsesTools: Record<string, unknown>[] = [];\n\n    if (tools && tools.length > 0) {\n      if (!this.modelSchema.modalities.includes(ToolCallModalityLiteral)) {\n        throw new InvalidToolsError({\n          info: `Invalid tool 'modality' for model : ${this.modelName}`,\n          cause: new Error(`model : '${this.modelName}' does not support tool modality : '${ToolCallModalityLiteral}'`),\n        });\n      }\n\n      const parsedTools = tools.map((tool) => {\n        const parsedTool = Tool().safeParse(tool);\n        if (!parsedTool.success) {\n          throw new InvalidToolsError({ info: \"Invalid tools\", cause: parsedTool.error });\n        }\n        return parsedTool.data;\n      });\n\n      for (const tool of parsedTools) {\n        const schema = tool.definition.schema;\n        responsesTools.push({\n          type: \"function\",\n          name: schema.name,\n          ...(schema.description !== undefined ? { description: schema.description } : {}),\n          parameters: schema.parameters,\n          ...(schema.strict !== undefined ? { strict: schema.strict } : {}),\n        });\n      }\n    }\n\n    if ((config as { webSearchTool?: unknown }).webSearchTool === true) {\n      const webSearchTool: Record<string, unknown> = { type: \"web_search\" };\n\n      const domains = (config as { webSearchAllowedDomains?: string[] }).webSearchAllowedDomains;\n      if (Array.isArray(domains) && domains.length > 0) {\n        webSearchTool.filters = { allowed_domains: domains };\n      }\n\n      const externalAccess = (config as { webSearchExternalAccess?: boolean }).webSearchExternalAccess;\n      if (externalAccess === false) {\n        webSearchTool.external_web_access = false;\n      }\n\n      responsesTools.push(webSearchTool);\n    }\n\n    if (responsesTools.length === 0) {\n      return {};\n    }\n    return { tools: responsesTools };\n  }\n\n  protected getCompleteChatDataResponsesApi(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n    const transformedConfig = this.transformConfigResponsesApi(config, messages, tools);\n    const transformedMessages = this.transformMessagesResponsesApi(messages) as { instructions?: string; input: unknown[] };\n    if (!transformedMessages.input || transformedMessages.input.length === 0) {\n      throw new InvalidMessagesError({\n        info: \"Messages are required\",\n        cause: new Error(\"Messages are required\"),\n      });\n    }\n    const transformedTools = this.transformToolsResponsesApi(config, tools);\n\n    return Promise.resolve({\n      ...this.getDefaultParams(),\n      ...(transformedMessages.instructions ? { instructions: transformedMessages.instructions } : {}),\n      ...transformedConfig,\n      ...transformedTools,\n      input: transformedMessages.input,\n    });\n  }\n\n  protected getStreamChatDataResponsesApi(config: ConfigType, messages: MessageType[], tools?: ToolType[]): Promise<ParamsType> {\n    const transformedConfig = this.transformConfigResponsesApi(config, messages, tools);\n    const transformedMessages = this.transformMessagesResponsesApi(messages) as { instructions?: string; input: unknown[] };\n    if (!transformedMessages.input || transformedMessages.input.length === 0) {\n      throw new InvalidMessagesError({\n        info: \"Messages are required\",\n        cause: new Error(\"Messages are required\"),\n      });\n    }\n    const transformedTools = this.transformToolsResponsesApi(config, tools);\n\n    return Promise.resolve({\n      stream: true,\n      ...this.getDefaultParams(),\n      ...(transformedMessages.instructions ? { instructions: transformedMessages.instructions } : {}),\n      ...transformedConfig,\n      ...transformedTools,\n      input: transformedMessages.input,\n    });\n  }\n\n  protected transformCompleteChatResponseResponsesApi(response: unknown): ChatResponseType {\n    const safe = OpenAIResponsesCompleteResponse.safeParse(response);\n    if (!safe.success) {\n      throw new ModelResponseError({\n        info: \"Invalid response from model\",\n        cause: safe.error,\n      });\n    }\n    const parsed = safe.data;\n\n    // Compute any surfaceable error from status/error fields. Non-terminal statuses (\"failed\"\n    // with output, \"incomplete\", \"cancelled\") produce an ErrorContent appended after parsing\n    // so callers still receive any partial text. Terminal \"failed\" with no output throws.\n    let responseError: { code: string; message: string } | null = null;\n    if (parsed.status === \"failed\") {\n      if (parsed.error) {\n        responseError = {\n          code: parsed.error.code ?? parsed.error.type ?? \"failed\",\n          message: parsed.error.message,\n        };\n      } else {\n        responseError = {\n          code: \"failed\",\n          message: `Response failed for model: '${this.modelName}'`,\n        };\n      }\n    } else if (parsed.status === \"incomplete\") {\n      responseError = {\n        code: \"incomplete\",\n        message: `Response incomplete — reason: ${parsed.incomplete_details?.reason ?? \"unknown\"}`,\n      };\n    } else if (parsed.status === \"cancelled\") {\n      responseError = {\n        code: \"cancelled\",\n        message: `Response cancelled for model: '${this.modelName}'`,\n      };\n    } else if (parsed.error) {\n      // Edge case: status=completed but error field populated.\n      responseError = {\n        code: parsed.error.code ?? parsed.error.type ?? \"error\",\n        message: parsed.error.message,\n      };\n    }\n\n    const hasNoOutput = !parsed.output || parsed.output.length === 0;\n    if (responseError !== null && hasNoOutput && (parsed.status === \"failed\" || parsed.error)) {\n      throw new ModelResponseError({\n        info: `Responses API returned status '${parsed.status}' for model: '${this.modelName}'`,\n        cause: new Error(responseError.message),\n      });\n    }\n\n    const messages: MessageType[] = [{ role: AssistantRoleLiteral, content: [] }];\n    const collectedAnnotations: { url: string; title: string; start_index: number; end_index: number }[] = [];\n    const searchQueries: string[] = [];\n    let collectedText = \"\";\n    let functionCallIndex = 0;\n    let hadWebSearchCall = false;\n\n    for (const item of parsed.output) {\n      if (item.type === \"message\") {\n        for (const part of item.content) {\n          if (part.type === \"output_text\") {\n            messages[0].content.push(createTextContent(part.text));\n            collectedText += part.text;\n            for (const annotation of part.annotations ?? []) {\n              if (annotation.type === \"url_citation\") {\n                collectedAnnotations.push({\n                  url: annotation.url,\n                  title: annotation.title,\n                  start_index: annotation.start_index,\n                  end_index: annotation.end_index,\n                });\n              }\n              // file_citation, file_path, container_file_citation are ignored — file_search and code_interpreter tools are out of scope (Q6)\n            }\n          } else if (part.type === \"refusal\") {\n            messages[0].content.push(createResponseErrorContent(\"refusal\", part.refusal, \"openai\"));\n          }\n        }\n      } else if (item.type === \"function_call\") {\n        messages[0].content.push(createToolCallContent(functionCallIndex++, item.call_id, item.name, item.arguments));\n      } else if (item.type === \"reasoning\") {\n        const summaryParts = item.summary ?? [];\n        const thinking = summaryParts\n          .filter((p) => p.type === \"summary_text\" && typeof p.text === \"string\")\n          .map((p) => p.text)\n          .join(\"\\n\\n\");\n        const signature = item.encrypted_content ?? \"\";\n        if (thinking || signature) {\n          messages[0].content.push(createReasoningContent(thinking, signature));\n        }\n      } else if (item.type === \"web_search_call\") {\n        hadWebSearchCall = true;\n        if (item.action?.query) {\n          searchQueries.push(item.action.query);\n        }\n      }\n      // file_search_call items emit no content (Q5 out-of-scope)\n    }\n\n    const joinedQuery = searchQueries.join(\" | \");\n    if (collectedAnnotations.length > 0 || (hadWebSearchCall && joinedQuery.length > 0)) {\n      messages[0].content.push(this.buildSearchResultContent(collectedText, collectedAnnotations, joinedQuery));\n    }\n\n    if (responseError !== null) {\n      messages[0].content.push(createResponseErrorContent(responseError.code, responseError.message, \"openai\"));\n    }\n\n    const usage: ChatUsageType = {\n      promptTokens: parsed.usage?.input_tokens ?? 0,\n      completionTokens: parsed.usage?.output_tokens ?? 0,\n      totalTokens: parsed.usage?.total_tokens ?? 0,\n    };\n\n    const logProbs: ChatLogProbsType = [];\n    for (const item of parsed.output) {\n      if (item.type === \"message\") {\n        for (const part of item.content) {\n          if (part.type === \"output_text\" && part.logprobs) {\n            for (const lp of part.logprobs) {\n              logProbs.push({\n                token: lp.token,\n                logProb: lp.logprob,\n                bytes: lp.bytes,\n                topLogProbs: lp.top_logprobs.map((top) => ({\n                  token: top.token,\n                  logProb: top.logprob,\n                  bytes: top.bytes,\n                })),\n              });\n            }\n          }\n        }\n      }\n    }\n\n    return { messages, usage, logProbs };\n  }\n\n  private looksLikeResponsesStream(data: string): boolean {\n    // Peek at the first `data: ` line in `data` (buffer + chunk). If it parses as an object\n    // whose `type` starts with `response.` or equals `\"error\"` — and whose `object` is NOT\n    // `\"chat.completion.chunk\"` — it's a Responses-API event stream.\n    let idx = 0;\n    while (idx < data.length) {\n      const nlIdx = data.indexOf(\"\\n\", idx);\n      if (nlIdx === -1) {\n        return false;\n      }\n      const line = data.substring(idx, nlIdx).trim();\n      idx = nlIdx + 1;\n      if (!line || !line.startsWith(\"data: \")) {\n        continue;\n      }\n      const payload = line.substring(\"data: \".length);\n      if (payload === \"[DONE]\") {\n        return false;\n      }\n      try {\n        const parsed = JSON.parse(payload) as { object?: unknown; type?: unknown };\n        if (parsed && typeof parsed === \"object\") {\n          if (parsed.object === \"chat.completion.chunk\") {\n            return false;\n          }\n          if (typeof parsed.type === \"string\" && (parsed.type.startsWith(\"response.\") || parsed.type === \"error\")) {\n            return true;\n          }\n        }\n      } catch {\n        return false;\n      }\n      return false;\n    }\n    return false;\n  }\n\n  private extractStreamState(buffer: string): {\n    state: { itemIdToIndex: Record<string, number>; nextIndex: number };\n    rest: string;\n  } {\n    const marker = \"__RESP_STATE__\";\n    if (!buffer.startsWith(marker)) {\n      return { state: { itemIdToIndex: {}, nextIndex: 0 }, rest: buffer };\n    }\n    const newlineIdx = buffer.indexOf(\"\\n\", marker.length);\n    const stateJson = newlineIdx === -1 ? buffer.slice(marker.length) : buffer.slice(marker.length, newlineIdx);\n    const rest = newlineIdx === -1 ? \"\" : buffer.slice(newlineIdx + 1);\n    try {\n      const parsed = JSON.parse(stateJson) as { itemIdToIndex?: Record<string, number>; nextIndex?: number };\n      return {\n        state: {\n          itemIdToIndex: parsed.itemIdToIndex ?? {},\n          nextIndex: parsed.nextIndex ?? 0,\n        },\n        rest,\n      };\n    } catch {\n      return { state: { itemIdToIndex: {}, nextIndex: 0 }, rest };\n    }\n  }\n\n  private serializeStreamState(state: { itemIdToIndex: Record<string, number>; nextIndex: number }, rest: string): string {\n    return `__RESP_STATE__${JSON.stringify(state)}\\n${rest}`;\n  }\n\n  protected async *transformStreamChatResponseChunkResponsesApi(\n    chunk: string,\n    buffer: string\n  ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n    const { state, rest } = this.extractStreamState(buffer);\n    const data = rest + chunk;\n\n    const lines: string[] = [];\n    let newBufferTail = \"\";\n    let currentIndex = 0;\n    while (currentIndex < data.length) {\n      const newlineIndex = data.indexOf(\"\\n\", currentIndex);\n      if (newlineIndex === -1) {\n        newBufferTail = data.substring(currentIndex);\n        break;\n      }\n      const line = data.substring(currentIndex, newlineIndex).trim();\n      if (line) {\n        lines.push(line);\n      }\n      currentIndex = newlineIndex + 1;\n    }\n\n    for (const line of lines) {\n      if (line === \"data: [DONE]\") {\n        return;\n      }\n      if (!line.startsWith(\"data: \")) {\n        continue;\n      }\n      const jsonStr = line.substring(\"data: \".length);\n      let event: unknown;\n      try {\n        event = JSON.parse(jsonStr);\n      } catch (e) {\n        throw new ModelResponseError({\n          info: `Malformed JSON received in stream: ${jsonStr}`,\n          cause: e instanceof Error ? e : new Error(String(e)),\n        });\n      }\n      if (typeof event !== \"object\" || event === null) {\n        continue;\n      }\n\n      const evt = event as { type?: string; [k: string]: unknown };\n      const type = evt.type ?? \"\";\n      const partialResponse: PartialChatResponseType = { partialMessages: [] };\n\n      if (type === \"response.created\" || type === \"response.in_progress\" || type === \"response.queued\") {\n        continue;\n      }\n\n      if (type === \"response.output_text.delta\") {\n        const delta = (evt as { delta?: unknown }).delta;\n        if (typeof delta === \"string\" && delta.length > 0) {\n          partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, delta));\n        }\n      } else if (type === \"response.output_text.annotation.added\") {\n        const annotation = (\n          evt as {\n            annotation?: { type?: string; url?: string; title?: string; start_index?: number; end_index?: number };\n          }\n        ).annotation;\n        if (annotation && annotation.type === \"url_citation\" && annotation.url) {\n          partialResponse.partialMessages.push(\n            createPartialSearchResultMessage(\n              AssistantRoleLiteral,\n              \"openai\",\n              \"\",\n              [{ source: \"web\", url: annotation.url, title: annotation.title ?? \"\" }],\n              [\n                {\n                  text: \"\",\n                  responseIndices: [0],\n                  startIndex: annotation.start_index ?? 0,\n                  endIndex: annotation.end_index ?? 0,\n                },\n              ]\n            )\n          );\n        }\n      } else if (type === \"response.output_text.done\") {\n        continue;\n      } else if (type === \"response.refusal.delta\") {\n        const delta = (evt as { delta?: unknown }).delta;\n        if (typeof delta === \"string\" && delta.length > 0) {\n          partialResponse.partialMessages.push(createPartialResponseErrorMessage(AssistantRoleLiteral, \"refusal\", delta, \"openai\"));\n        }\n      } else if (type === \"response.refusal.done\") {\n        continue;\n      } else if (type === \"response.reasoning_summary_text.delta\" || type === \"response.reasoning_text.delta\") {\n        const delta = (evt as { delta?: unknown }).delta;\n        if (typeof delta === \"string\" && delta.length > 0) {\n          partialResponse.partialMessages.push(createPartialReasoningMessage(AssistantRoleLiteral, delta, \"\"));\n        }\n      } else if (\n        type === \"response.reasoning_summary_text.done\" ||\n        type === \"response.reasoning_text.done\" ||\n        type === \"response.reasoning_summary_part.added\" ||\n        type === \"response.reasoning_summary_part.done\"\n      ) {\n        continue;\n      } else if (type === \"response.output_item.added\") {\n        const item = (\n          evt as {\n            item?: { id?: string; type?: string; call_id?: string; name?: string; action?: { query?: string } };\n          }\n        ).item;\n        if (item && item.type === \"function_call\" && item.id) {\n          if (!(item.id in state.itemIdToIndex)) {\n            state.itemIdToIndex[item.id] = state.nextIndex++;\n          }\n          if (item.name !== undefined) {\n            partialResponse.partialMessages.push(\n              createPartialToolCallMessage(AssistantRoleLiteral, state.itemIdToIndex[item.id], item.call_id ?? \"\", item.name, \"\")\n            );\n          }\n        } else if (item && item.type === \"web_search_call\" && item.action?.query) {\n          partialResponse.partialMessages.push(createPartialSearchResultMessage(AssistantRoleLiteral, \"openai\", item.action.query, [], []));\n        }\n      } else if (type === \"response.function_call_arguments.delta\") {\n        const itemId = (evt as { item_id?: string }).item_id;\n        const delta = (evt as { delta?: unknown }).delta;\n        if (itemId && typeof delta === \"string\") {\n          if (!(itemId in state.itemIdToIndex)) {\n            state.itemIdToIndex[itemId] = state.nextIndex++;\n          }\n          const idx = state.itemIdToIndex[itemId];\n          partialResponse.partialMessages.push(createPartialToolCallMessage(AssistantRoleLiteral, idx, undefined, undefined, delta));\n        }\n      } else if (type === \"response.function_call_arguments.done\") {\n        continue;\n      } else if (\n        type === \"response.web_search_call.in_progress\" ||\n        type === \"response.web_search_call.searching\" ||\n        type === \"response.web_search_call.completed\"\n      ) {\n        continue;\n      } else if (\n        type === \"response.file_search_call.in_progress\" ||\n        type === \"response.file_search_call.searching\" ||\n        type === \"response.file_search_call.completed\"\n      ) {\n        continue;\n      } else if (type === \"response.content_part.added\" || type === \"response.content_part.done\") {\n        continue;\n      } else if (type === \"response.output_item.done\") {\n        continue;\n      } else if (type === \"response.completed\") {\n        const resp = (\n          evt as {\n            response?: { usage?: { input_tokens?: number; output_tokens?: number; total_tokens?: number } };\n          }\n        ).response;\n        if (resp?.usage) {\n          partialResponse.usage = {\n            promptTokens: resp.usage.input_tokens ?? 0,\n            completionTokens: resp.usage.output_tokens ?? 0,\n            totalTokens: resp.usage.total_tokens ?? 0,\n          };\n        }\n      } else if (type === \"response.failed\" || type === \"response.incomplete\") {\n        const resp = (\n          evt as {\n            response?: {\n              error?: { message?: string };\n              incomplete_details?: { reason?: string };\n              usage?: { input_tokens?: number; output_tokens?: number; total_tokens?: number };\n            };\n          }\n        ).response;\n        const code = type === \"response.failed\" ? \"failed\" : \"incomplete\";\n        const reason = resp?.error?.message ?? resp?.incomplete_details?.reason ?? \"no details\";\n        partialResponse.partialMessages.push(createPartialResponseErrorMessage(AssistantRoleLiteral, code, reason, \"openai\"));\n        if (resp?.usage) {\n          partialResponse.usage = {\n            promptTokens: resp.usage.input_tokens ?? 0,\n            completionTokens: resp.usage.output_tokens ?? 0,\n            totalTokens: resp.usage.total_tokens ?? 0,\n          };\n        }\n      } else if (type === \"error\") {\n        const errorPayload = (\n          evt as {\n            error?: { message?: string; type?: string; code?: string | null; param?: string | null };\n          }\n        ).error;\n        throw new ModelResponseError({\n          info: `Responses API stream error: ${errorPayload?.message ?? \"unknown\"}`,\n          cause: new Error(JSON.stringify(errorPayload ?? {})),\n        });\n      } else {\n        continue;\n      }\n\n      if (partialResponse.partialMessages.length > 0 || partialResponse.usage) {\n        yield { partialResponse, buffer: this.serializeStreamState(state, newBufferTail) };\n      }\n    }\n\n    yield { partialResponse: { partialMessages: [] }, buffer: this.serializeStreamState(state, newBufferTail) };\n  }\n\n  protected buildSearchResultContent(\n    text: string,\n    annotations: ReadonlyArray<{ url: string; title: string; start_index: number; end_index: number }>,\n    query = \"\"\n  ): ContentType {\n    const urlMap = new Map<string, number>();\n    const responses: { source: string; url: string; title: string }[] = [];\n    const references: { text: string; responseIndices: number[]; startIndex?: number; endIndex?: number }[] = [];\n\n    for (const citation of annotations) {\n      if (!urlMap.has(citation.url)) {\n        urlMap.set(citation.url, responses.length);\n        responses.push({\n          source: \"web\",\n          url: citation.url,\n          title: citation.title,\n        });\n      }\n      const prefixChars = 40;\n      const prefixStart = Math.max(0, citation.start_index - prefixChars);\n      const citationText = (prefixStart > 0 ? \"...\" : \"\") + text.slice(prefixStart, citation.end_index);\n\n      references.push({\n        text: citationText,\n        responseIndices: [urlMap.get(citation.url)!],\n        startIndex: citation.start_index,\n        endIndex: citation.end_index,\n      });\n    }\n\n    return createSearchResultContent(\"openai\", query, responses, references);\n  }\n}\n\nexport { BaseChatModel, BaseChatModelOptions, type BaseChatModelOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst ChatGPT_5_2Literal = \"chatgpt-5.2\";\nconst ChatGPT_5_2Description =\n  \"ChatGPT-5.2 model optimized for conversational workloads with tool/function calling support. \\\n  Training data up to January 2025.\";\n\nconst ChatGPT_5_2Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: ChatGPT_5_2Literal,\n  description: ChatGPT_5_2Description,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[\"gpt-5.2\"],\n});\n\nconst ChatGPT_5_2Options = BaseChatModelOptions;\ntype ChatGPT_5_2OptionsType = z.infer<typeof ChatGPT_5_2Options>;\n\nclass ChatGPT_5_2 extends BaseChatModel {\n  constructor(options: ChatGPT_5_2OptionsType) {\n    super(ChatGPT_5_2Schema, options);\n  }\n}\n\nexport { ChatGPT_5_2, ChatGPT_5_2Literal, ChatGPT_5_2Options, ChatGPT_5_2Schema, type ChatGPT_5_2OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_3_5_Turbo_0125Literal = \"gpt-3.5-turbo-0125\";\nconst GPT_3_5_Turbo_0125Description =\n  \"The latest GPT-3.5 Turbo model with higher accuracy at responding in requested formats and a fix for a bug which caused a \\\n  text encoding issue for non-English language function calls. Training data up to Sept 2021.\";\n\nconst GPT_3_5_Turbo_0125Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_3_5_Turbo_0125Literal,\n  description: GPT_3_5_Turbo_0125Description,\n  maxInputTokens: 4092,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(4092, 4).schema,\n  },\n  price: pricingData[GPT_3_5_Turbo_0125Literal],\n});\n\nconst GPT_3_5_Turbo_0125Options = BaseChatModelOptions;\ntype GPT_3_5_Turbo_0125OptionsType = z.infer<typeof GPT_3_5_Turbo_0125Options>;\n\nclass GPT_3_5_Turbo_0125 extends BaseChatModel {\n  constructor(options: GPT_3_5_Turbo_0125OptionsType) {\n    super(GPT_3_5_Turbo_0125Schema, options);\n  }\n}\n\nexport {\n  GPT_3_5_Turbo_0125,\n  GPT_3_5_Turbo_0125Literal,\n  GPT_3_5_Turbo_0125Options,\n  GPT_3_5_Turbo_0125Schema,\n  type GPT_3_5_Turbo_0125OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_3_5_Turbo_1106Literal = \"gpt-3.5-turbo-1106\";\nconst GPT_3_5_Turbo_1106Description =\n  \"The latest GPT-3.5 Turbo model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more.\\\n   Returns a maximum of 4,096 output tokens. Training data up to Sept 2021.\";\n\nconst GPT_3_5_Turbo_1106Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_3_5_Turbo_1106Literal,\n  description: GPT_3_5_Turbo_1106Description,\n  maxInputTokens: 4092,\n  maxOutputTokens: 16385,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(16385, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(16385, 4).schema,\n  },\n  price: pricingData[GPT_3_5_Turbo_1106Literal], // Added price definition\n});\n\nconst GPT_3_5_Turbo_1106Options = BaseChatModelOptions;\ntype GPT_3_5_Turbo_1106OptionsType = z.infer<typeof GPT_3_5_Turbo_1106Options>;\n\nclass GPT_3_5_Turbo_1106 extends BaseChatModel {\n  constructor(options: GPT_3_5_Turbo_1106OptionsType) {\n    super(GPT_3_5_Turbo_1106Schema, options);\n  }\n}\n\nexport {\n  GPT_3_5_Turbo_1106,\n  GPT_3_5_Turbo_1106Literal,\n  GPT_3_5_Turbo_1106Options,\n  GPT_3_5_Turbo_1106Schema,\n  type GPT_3_5_Turbo_1106OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_3_5_TurboLiteral = \"gpt-3.5-turbo\";\nconst GPT_3_5_TurboDescription = \"Currently points to gpt-3.5-turbo-0125. Training data up to Sept 2021.\";\n\nconst GPT_3_5_TurboSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_3_5_TurboLiteral,\n  description: GPT_3_5_TurboDescription,\n  maxInputTokens: 4092,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(4092, 4).schema,\n  },\n  price: pricingData[GPT_3_5_TurboLiteral],\n});\n\nconst GPT_3_5_TurboOptions = BaseChatModelOptions;\ntype GPT_3_5_TurboOptionsType = z.infer<typeof GPT_3_5_TurboOptions>;\n\nclass GPT_3_5_Turbo extends BaseChatModel {\n  constructor(options: GPT_3_5_TurboOptionsType) {\n    super(GPT_3_5_TurboSchema, options);\n  }\n}\n\nexport { GPT_3_5_Turbo, GPT_3_5_TurboLiteral, GPT_3_5_TurboOptions, GPT_3_5_TurboSchema, type GPT_3_5_TurboOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\"; // Added import\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_0125_PreviewLiteral = \"gpt-4-0125-preview\";\nconst GPT_4_0125_PreviewDescription =\n  \"The latest GPT-4 model intended to reduce cases of “laziness” where the model doesn’t complete a task. Training data up to Apr 2023.\";\n\nconst GPT_4_0125_PreviewSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_4_0125_PreviewLiteral,\n  description: GPT_4_0125_PreviewDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.base(4092, 4).def,\n    schema: OpenAIChatModelConfigs.base(4092, 4).schema,\n  },\n  price: pricingData[GPT_4_0125_PreviewLiteral], // Added price definition\n});\n\nconst GPT_4_0125_PreviewOptions = BaseChatModelOptions;\ntype GPT_4_0125_PreviewOptionsType = z.infer<typeof GPT_4_0125_PreviewOptions>;\n\nclass GPT_4_0125_Preview extends BaseChatModel {\n  constructor(options: GPT_4_0125_PreviewOptionsType) {\n    super(GPT_4_0125_PreviewSchema, options);\n  }\n}\n\nexport {\n  GPT_4_0125_Preview,\n  GPT_4_0125_PreviewLiteral,\n  GPT_4_0125_PreviewOptions,\n  GPT_4_0125_PreviewSchema,\n  type GPT_4_0125_PreviewOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_0613Literal = \"gpt-4-0613\";\nconst GPT_4_0613Description =\n  \"Snapshot of gpt-4 from June 13th 2023 with improved function calling support. Training data up to Sept 2021.\";\n\nconst GPT_4_0613Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_4_0613Literal,\n  description: GPT_4_0613Description,\n  maxInputTokens: 8192,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.base(4092, 4).def,\n    schema: OpenAIChatModelConfigs.base(4092, 4).schema,\n  },\n  price: pricingData[GPT_4_0613Literal], // Added price definition\n});\n\nconst GPT_4_0613Options = BaseChatModelOptions;\ntype GPT_4_0613OptionsType = z.infer<typeof GPT_4_0613Options>;\n\nclass GPT_4_0613 extends BaseChatModel {\n  constructor(options: GPT_4_0613OptionsType) {\n    super(GPT_4_0613Schema, options);\n  }\n}\n\nexport { GPT_4_0613, GPT_4_0613Literal, GPT_4_0613Options, GPT_4_0613Schema, type GPT_4_0613OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\"; // Added import\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_1106_PreviewLiteral = \"gpt-4-1106-preview\";\nconst GPT_4_1106_PreviewDescription =\n  \"GPT-4 Turbo model featuring improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. \\\n  Returns a maximum of 4,096 output tokens. This preview model is not yet suited for production traffic. Training data up to Apr 2023.\";\n\nconst GPT_4_1106_PreviewSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_4_1106_PreviewLiteral,\n  description: GPT_4_1106_PreviewDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.base(4092, 4).def,\n    schema: OpenAIChatModelConfigs.base(4092, 4).schema,\n  },\n  price: pricingData[GPT_4_1106_PreviewLiteral], // Added price definition\n});\n\nconst GPT_4_1106_PreviewOptions = BaseChatModelOptions;\ntype GPT_4_1106_PreviewOptionsType = z.infer<typeof GPT_4_1106_PreviewOptions>;\n\nclass GPT_4_1106_Preview extends BaseChatModel {\n  constructor(options: GPT_4_1106_PreviewOptionsType) {\n    super(GPT_4_1106_PreviewSchema, options);\n  }\n}\n\nexport {\n  GPT_4_1106_Preview,\n  GPT_4_1106_PreviewLiteral,\n  GPT_4_1106_PreviewOptions,\n  GPT_4_1106_PreviewSchema,\n  type GPT_4_1106_PreviewOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_1Literal = \"gpt-4.1\";\nconst GPT_4_1Description =\n  \"Flagship model for complex tasks. It is well suited for problem solving across domains. \\\n  Training data up to May 2024.\";\n\nconst GPT_4_1Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4_1Literal,\n  description: GPT_4_1Description,\n  maxInputTokens: 1047576,\n  maxOutputTokens: 32768,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(32768, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(32768, 4).schema,\n  },\n  price: pricingData[GPT_4_1Literal],\n});\n\nconst GPT_4_1Options = BaseChatModelOptions;\ntype GPT_4_1OptionsType = z.infer<typeof GPT_4_1Options>;\n\nclass GPT_4_1 extends BaseChatModel {\n  constructor(options: GPT_4_1OptionsType) {\n    super(GPT_4_1Schema, options);\n  }\n}\n\nexport { GPT_4_1, GPT_4_1Literal, GPT_4_1Options, GPT_4_1Schema, type GPT_4_1OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_1_MiniLiteral = \"gpt-4.1-mini\";\nconst GPT_4_1_MiniDescription =\n  \"Provides a balance between intelligence, speed, and cost that makes it an attractive model for many use cases. \\\n  Training data up to May 2024.\";\n\nconst GPT_4_1_MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4_1_MiniLiteral,\n  description: GPT_4_1_MiniDescription,\n  maxInputTokens: 1047576,\n  maxOutputTokens: 32768,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(32768, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(32768, 4).schema,\n  },\n  price: pricingData[GPT_4_1_MiniLiteral],\n});\n\nconst GPT_4_1_MiniOptions = BaseChatModelOptions;\ntype GPT_4_1_MiniOptionsType = z.infer<typeof GPT_4_1_MiniOptions>;\n\nclass GPT_4_1_Mini extends BaseChatModel {\n  constructor(options: GPT_4_1_MiniOptionsType) {\n    super(GPT_4_1_MiniSchema, options);\n  }\n}\n\nexport { GPT_4_1_Mini, GPT_4_1_MiniLiteral, GPT_4_1_MiniOptions, GPT_4_1_MiniSchema, type GPT_4_1_MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst GPT_4_1_NanoLiteral = \"gpt-4.1-nano\";\nconst GPT_4_1_NanoDescription =\n  \"Fastest, most cost-effective GPT-4.1 model. \\\n  Training data up to May 2024.\";\n\nconst GPT_4_1_NanoSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n  name: GPT_4_1_NanoLiteral,\n  description: GPT_4_1_NanoDescription,\n  maxInputTokens: 1047576,\n  maxOutputTokens: 32768,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(32768, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(32768, 4).schema,\n  },\n  price: pricingData[GPT_4_1_NanoLiteral],\n});\n\nconst GPT_4_1_NanoOptions = BaseChatModelOptions;\ntype GPT_4_1_NanoOptionsType = z.infer<typeof GPT_4_1_NanoOptions>;\n\nclass GPT_4_1_Nano extends BaseChatModel {\n  constructor(options: GPT_4_1_NanoOptionsType) {\n    super(GPT_4_1_NanoSchema, options);\n  }\n}\n\nexport { GPT_4_1_Nano, GPT_4_1_NanoLiteral, GPT_4_1_NanoOptions, GPT_4_1_NanoSchema, type GPT_4_1_NanoOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://platform.openai.com/docs/models/gpt-5.1 (retrieved 2025-11-17)\nconst GPT_5_1Literal = \"gpt-5.1\";\nconst GPT_5_1Description =\n  \"Flagship GPT-5.1 model for coding and agentic tasks with configurable reasoning effort. \\\n  Training data up to September 2024.\";\n\nconst GPT_5_1Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_1Literal,\n  description: GPT_5_1Description,\n  maxInputTokens: 400000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_1WithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_1WithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_1Literal],\n});\n\nconst GPT_5_1Options = BaseChatModelOptions;\ntype GPT_5_1OptionsType = z.infer<typeof GPT_5_1Options>;\n\nclass GPT_5_1 extends BaseChatModel {\n  constructor(options: GPT_5_1OptionsType) {\n    super(GPT_5_1Schema, options);\n  }\n}\n\nexport { GPT_5_1, GPT_5_1Literal, GPT_5_1Options, GPT_5_1Schema, type GPT_5_1OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_2Literal = \"gpt-5.2\";\nconst GPT_5_2Description =\n  \"Flagship GPT-5.2 model with enhanced reasoning controls and extended knowledge coverage. \\\n  Training data up to January 2025.\";\n\nconst GPT_5_2Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_2Literal,\n  description: GPT_5_2Description,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_2Literal],\n});\n\nconst GPT_5_2Options = BaseChatModelOptions;\ntype GPT_5_2OptionsType = z.infer<typeof GPT_5_2Options>;\n\nclass GPT_5_2 extends BaseChatModel {\n  constructor(options: GPT_5_2OptionsType) {\n    super(GPT_5_2Schema, options);\n  }\n}\n\nexport { GPT_5_2, GPT_5_2Literal, GPT_5_2Options, GPT_5_2Schema, type GPT_5_2OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_2_ChatLatestLiteral = \"gpt-5.2-chat-latest\";\nconst GPT_5_2_ChatLatestDescription =\n  \"Latest GPT-5.2 chat-optimized model for conversational workloads with tool/function calling support. \\\n  Training data up to January 2025.\";\n\nconst GPT_5_2_ChatLatestSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_2_ChatLatestLiteral,\n  description: GPT_5_2_ChatLatestDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_2_ChatLatestLiteral],\n});\n\nconst GPT_5_2_ChatLatestOptions = BaseChatModelOptions;\ntype GPT_5_2_ChatLatestOptionsType = z.infer<typeof GPT_5_2_ChatLatestOptions>;\n\nclass GPT_5_2_ChatLatest extends BaseChatModel {\n  constructor(options: GPT_5_2_ChatLatestOptionsType) {\n    super(GPT_5_2_ChatLatestSchema, options);\n  }\n}\n\nexport {\n  GPT_5_2_ChatLatest,\n  GPT_5_2_ChatLatestLiteral,\n  GPT_5_2_ChatLatestOptions,\n  GPT_5_2_ChatLatestSchema,\n  type GPT_5_2_ChatLatestOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\n// Specs reference: https://platform.openai.com/docs/models/gpt-5.2-codex (retrieved 2026-02-25)\nconst GPT_5_2_CodexLiteral = \"gpt-5.2-codex\";\nconst GPT_5_2_CodexDescription =\n  \"Coding-optimized GPT-5.2 Codex model for software engineering, debugging, and autonomous coding workflows.\";\n\nconst GPT_5_2_CodexSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n  name: GPT_5_2_CodexLiteral,\n  description: GPT_5_2_CodexDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5Codex(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5Codex(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_2_CodexLiteral],\n});\n\nconst GPT_5_2_CodexOptions = BaseChatModelOptions;\ntype GPT_5_2_CodexOptionsType = z.infer<typeof GPT_5_2_CodexOptions>;\n\nclass GPT_5_2_Codex extends BaseChatModel {\n  constructor(options: GPT_5_2_CodexOptionsType) {\n    super(GPT_5_2_CodexSchema, options);\n  }\n}\n\nexport { GPT_5_2_Codex, GPT_5_2_CodexLiteral, GPT_5_2_CodexOptions, GPT_5_2_CodexSchema, type GPT_5_2_CodexOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelProWithWebSearchModalities,\n  OpenAIChatModelProWithWebSearchModalitiesEnum,\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n} from \"./types\";\n\nconst GPT_5_2_ProLiteral = \"gpt-5.2-pro\";\nconst GPT_5_2_ProDescription =\n  \"GPT-5.2 Pro available via the OpenAI Responses API for advanced reasoning and agentic workflows. \\\n  Training data up to January 2025.\";\n\nconst GPT_5_2_ProSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelProWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_2_ProLiteral,\n  description: GPT_5_2_ProDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelProWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5ProWithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5ProWithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_2_ProLiteral],\n});\n\nconst GPT_5_2_ProOptions = BaseChatModelOptions;\ntype GPT_5_2_ProOptionsType = z.infer<typeof GPT_5_2_ProOptions>;\n\n/**\n * GPT-5.2 Pro Model\n *\n * This model uses the OpenAI Responses API (/v1/responses)\n */\nclass GPT_5_2_Pro extends BaseChatModel {\n  constructor(options: GPT_5_2_ProOptionsType) {\n    super(GPT_5_2_ProSchema, { ...options, forceResponsesApi: true });\n  }\n}\n\nexport { GPT_5_2_Pro, GPT_5_2_ProLiteral, GPT_5_2_ProOptions, GPT_5_2_ProSchema, type GPT_5_2_ProOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\n// Specs reference: https://platform.openai.com/docs/models/gpt-5.3-codex (retrieved 2026-02-25)\nconst GPT_5_3_CodexLiteral = \"gpt-5.3-codex\";\nconst GPT_5_3_CodexDescription =\n  \"Latest coding-optimized GPT-5.3 Codex model for high-reliability code generation, edits, and agentic software tasks.\";\n\nconst GPT_5_3_CodexSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n  name: GPT_5_3_CodexLiteral,\n  description: GPT_5_3_CodexDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5Codex(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5Codex(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_3_CodexLiteral],\n});\n\nconst GPT_5_3_CodexOptions = BaseChatModelOptions;\ntype GPT_5_3_CodexOptionsType = z.infer<typeof GPT_5_3_CodexOptions>;\n\nclass GPT_5_3_Codex extends BaseChatModel {\n  constructor(options: GPT_5_3_CodexOptionsType) {\n    super(GPT_5_3_CodexSchema, options);\n  }\n}\n\nexport { GPT_5_3_Codex, GPT_5_3_CodexLiteral, GPT_5_3_CodexOptions, GPT_5_3_CodexSchema, type GPT_5_3_CodexOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.4 (retrieved 2026-04-13)\nconst GPT_5_4Literal = \"gpt-5.4\";\nconst GPT_5_4Description =\n  \"Frontier GPT-5.4 model for complex professional work with native computer-use, agentic, coding, and reasoning capabilities. \\\n  Training data up to August 2025.\";\n\nconst GPT_5_4Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_4Literal,\n  description: GPT_5_4Description,\n  maxInputTokens: 1050000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_4Literal],\n});\n\nconst GPT_5_4Options = BaseChatModelOptions;\ntype GPT_5_4OptionsType = z.infer<typeof GPT_5_4Options>;\n\nclass GPT_5_4 extends BaseChatModel {\n  constructor(options: GPT_5_4OptionsType) {\n    super(GPT_5_4Schema, options);\n  }\n}\n\nexport { GPT_5_4, GPT_5_4Literal, GPT_5_4Options, GPT_5_4Schema, type GPT_5_4OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.4-mini (retrieved 2026-04-13)\nconst GPT_5_4_MiniLiteral = \"gpt-5.4-mini\";\nconst GPT_5_4_MiniDescription =\n  \"Faster, more efficient GPT-5.4 mini model for coding, computer use, and subagents in high-volume workloads. \\\n  Training data up to August 2025.\";\n\nconst GPT_5_4_MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_4_MiniLiteral,\n  description: GPT_5_4_MiniDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_4_MiniLiteral],\n});\n\nconst GPT_5_4_MiniOptions = BaseChatModelOptions;\ntype GPT_5_4_MiniOptionsType = z.infer<typeof GPT_5_4_MiniOptions>;\n\nclass GPT_5_4_Mini extends BaseChatModel {\n  constructor(options: GPT_5_4_MiniOptionsType) {\n    super(GPT_5_4_MiniSchema, options);\n  }\n}\n\nexport { GPT_5_4_Mini, GPT_5_4_MiniLiteral, GPT_5_4_MiniOptions, GPT_5_4_MiniSchema, type GPT_5_4_MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.4-nano (retrieved 2026-06-09)\nconst GPT_5_4_NanoLiteral = \"gpt-5.4-nano\";\nconst GPT_5_4_NanoDescription =\n  \"Cheapest, fastest GPT-5.4-class model for simple, high-volume tasks like classification, extraction, and ranking. \\\n  Training data up to August 2025.\";\n\nconst GPT_5_4_NanoSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_4_NanoLiteral,\n  description: GPT_5_4_NanoDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_4_NanoLiteral],\n});\n\nconst GPT_5_4_NanoOptions = BaseChatModelOptions;\ntype GPT_5_4_NanoOptionsType = z.infer<typeof GPT_5_4_NanoOptions>;\n\nclass GPT_5_4_Nano extends BaseChatModel {\n  constructor(options: GPT_5_4_NanoOptionsType) {\n    super(GPT_5_4_NanoSchema, options);\n  }\n}\n\nexport { GPT_5_4_Nano, GPT_5_4_NanoLiteral, GPT_5_4_NanoOptions, GPT_5_4_NanoSchema, type GPT_5_4_NanoOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelProWithWebSearchModalities,\n  OpenAIChatModelProWithWebSearchModalitiesEnum,\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.4-pro (retrieved 2026-04-15)\nconst GPT_5_4_ProLiteral = \"gpt-5.4-pro\";\nconst GPT_5_4_ProDescription =\n  \"Default version of GPT-5.4 that produces smarter and more precise responses by allocating additional compute for complex reasoning. \\\n  Training data up to August 2025. Available via the OpenAI Responses API only for multi-turn reasoning support.\";\n\nconst GPT_5_4_ProSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelProWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_4_ProLiteral,\n  description: GPT_5_4_ProDescription,\n  maxInputTokens: 1050000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelProWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5ProWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5ProWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_4_ProLiteral],\n});\n\nconst GPT_5_4_ProOptions = BaseChatModelOptions;\ntype GPT_5_4_ProOptionsType = z.infer<typeof GPT_5_4_ProOptions>;\n\n/**\n * GPT-5.4 Pro Model\n *\n * This model uses the OpenAI Responses API (/v1/responses)\n */\nclass GPT_5_4_Pro extends BaseChatModel {\n  constructor(options: GPT_5_4_ProOptionsType) {\n    super(GPT_5_4_ProSchema, { ...options, forceResponsesApi: true });\n  }\n}\n\nexport { GPT_5_4_Pro, GPT_5_4_ProLiteral, GPT_5_4_ProOptions, GPT_5_4_ProSchema, type GPT_5_4_ProOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.5 (retrieved 2026-04-25)\n// First fully retrained base model since GPT-4.5; 5.1–5.4 were post-training iterations on the same base.\nconst GPT_5_5Literal = \"gpt-5.5\";\nconst GPT_5_5Description =\n  \"Frontier GPT-5.5 model — first fully retrained base since GPT-4.5 — for complex professional work with native \\\n  computer-use, agentic, coding, and reasoning capabilities. Training data up to December 2025.\";\n\nconst GPT_5_5Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_5Literal,\n  description: GPT_5_5Description,\n  maxInputTokens: 1050000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5_2PlusWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_5Literal],\n});\n\nconst GPT_5_5Options = BaseChatModelOptions;\ntype GPT_5_5OptionsType = z.infer<typeof GPT_5_5Options>;\n\nclass GPT_5_5 extends BaseChatModel {\n  constructor(options: GPT_5_5OptionsType) {\n    super(GPT_5_5Schema, options);\n  }\n}\n\nexport { GPT_5_5, GPT_5_5Literal, GPT_5_5Options, GPT_5_5Schema, type GPT_5_5OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelProWithWebSearchModalities,\n  OpenAIChatModelProWithWebSearchModalitiesEnum,\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5.5-pro (retrieved 2026-06-09)\nconst GPT_5_5_ProLiteral = \"gpt-5.5-pro\";\nconst GPT_5_5_ProDescription =\n  \"Highest-stakes reasoning variant of GPT-5.5 that allocates additional compute for the most complex professional work. \\\n  Training data up to December 2025. Available via the OpenAI Responses API only.\";\n\nconst GPT_5_5_ProSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelProWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_5_ProLiteral,\n  description: GPT_5_5_ProDescription,\n  maxInputTokens: 1050000,\n  maxOutputTokens: 128000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelProWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5ProWithWebSearch(128000, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5ProWithWebSearch(128000, 4).schema,\n  },\n  price: pricingData[GPT_5_5_ProLiteral],\n});\n\nconst GPT_5_5_ProOptions = BaseChatModelOptions;\ntype GPT_5_5_ProOptionsType = z.infer<typeof GPT_5_5_ProOptions>;\n\n/**\n * GPT-5.5 Pro Model\n *\n * This model uses the OpenAI Responses API (/v1/responses)\n */\nclass GPT_5_5_Pro extends BaseChatModel {\n  constructor(options: GPT_5_5_ProOptionsType) {\n    super(GPT_5_5_ProSchema, { ...options, forceResponsesApi: true });\n  }\n}\n\nexport { GPT_5_5_Pro, GPT_5_5_ProLiteral, GPT_5_5_ProOptions, GPT_5_5_ProSchema, type GPT_5_5_ProOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5Literal = \"gpt-5\";\nconst GPT_5Description =\n  \"Most advanced GPT-5 model for complex reasoning and problem-solving tasks. \\\n  Training data up to October 2024.\";\n\nconst GPT_5Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5Literal,\n  description: GPT_5Description,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5Literal],\n});\n\nconst GPT_5Options = BaseChatModelOptions;\ntype GPT_5OptionsType = z.infer<typeof GPT_5Options>;\n\nclass GPT_5 extends BaseChatModel {\n  constructor(options: GPT_5OptionsType) {\n    super(GPT_5Schema, options);\n  }\n}\n\nexport { GPT_5, GPT_5Literal, GPT_5Options, GPT_5Schema, type GPT_5OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelProWithWebSearchModalities,\n  OpenAIChatModelProWithWebSearchModalitiesEnum,\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/gpt-5-pro (retrieved 2026-06-09)\nconst GPT_5_ProLiteral = \"gpt-5-pro\";\nconst GPT_5_ProDescription =\n  \"GPT-5 Pro reasoning variant that allocates additional compute for the most reliable, in-depth answers on complex tasks. \\\n  Training data up to September 2024. Available via the OpenAI Responses API only.\";\n\nconst GPT_5_ProSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelProWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_ProLiteral,\n  description: GPT_5_ProDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelProWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5ProWithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5ProWithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_ProLiteral],\n});\n\nconst GPT_5_ProOptions = BaseChatModelOptions;\ntype GPT_5_ProOptionsType = z.infer<typeof GPT_5_ProOptions>;\n\n/**\n * GPT-5 Pro Model\n *\n * This model uses the OpenAI Responses API (/v1/responses)\n */\nclass GPT_5_Pro extends BaseChatModel {\n  constructor(options: GPT_5_ProOptionsType) {\n    super(GPT_5_ProSchema, { ...options, forceResponsesApi: true });\n  }\n}\n\nexport { GPT_5_Pro, GPT_5_ProLiteral, GPT_5_ProOptions, GPT_5_ProSchema, type GPT_5_ProOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_MiniLiteral = \"gpt-5-mini\";\nconst GPT_5_MiniDescription =\n  \"Faster, more cost-effective GPT-5 model that balances intelligence and efficiency. \\\n  Training data up to October 2024.\";\n\nconst GPT_5_MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_MiniLiteral,\n  description: GPT_5_MiniDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_MiniLiteral],\n});\n\nconst GPT_5_MiniOptions = BaseChatModelOptions;\ntype GPT_5_MiniOptionsType = z.infer<typeof GPT_5_MiniOptions>;\n\nclass GPT_5_Mini extends BaseChatModel {\n  constructor(options: GPT_5_MiniOptionsType) {\n    super(GPT_5_MiniSchema, options);\n  }\n}\n\nexport { GPT_5_Mini, GPT_5_MiniLiteral, GPT_5_MiniOptions, GPT_5_MiniSchema, type GPT_5_MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_NanoLiteral = \"gpt-5-nano\";\nconst GPT_5_NanoDescription =\n  \"Most cost-effective GPT-5 model optimized for speed and efficiency. \\\n  Training data up to October 2024.\";\n\nconst GPT_5_NanoSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_NanoLiteral,\n  description: GPT_5_NanoDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_NanoLiteral],\n});\n\nconst GPT_5_NanoOptions = BaseChatModelOptions;\ntype GPT_5_NanoOptionsType = z.infer<typeof GPT_5_NanoOptions>;\n\nclass GPT_5_Nano extends BaseChatModel {\n  constructor(options: GPT_5_NanoOptionsType) {\n    super(GPT_5_NanoSchema, options);\n  }\n}\n\nexport { GPT_5_Nano, GPT_5_NanoLiteral, GPT_5_NanoOptions, GPT_5_NanoSchema, type GPT_5_NanoOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_ChatLatestLiteral = \"gpt-5-chat-latest\";\nconst GPT_5_ChatLatestDescription =\n  \"Latest GPT-5 model optimized for conversational use. Does not support function calling or structured outputs. \\\n  Training data up to October 2024.\";\n\nconst GPT_5_ChatLatestSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_5_ChatLatestLiteral,\n  description: GPT_5_ChatLatestDescription,\n  maxInputTokens: 400000,\n  maxOutputTokens: 131072,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).def,\n    schema: OpenAIChatModelConfigs.gpt5WithWebSearch(131072, 4).schema,\n  },\n  price: pricingData[GPT_5_ChatLatestLiteral],\n});\n\nconst GPT_5_ChatLatestOptions = BaseChatModelOptions;\ntype GPT_5_ChatLatestOptionsType = z.infer<typeof GPT_5_ChatLatestOptions>;\n\nclass GPT_5_ChatLatest extends BaseChatModel {\n  constructor(options: GPT_5_ChatLatestOptionsType) {\n    super(GPT_5_ChatLatestSchema, options);\n  }\n}\n\nexport { GPT_5_ChatLatest, GPT_5_ChatLatestLiteral, GPT_5_ChatLatestOptions, GPT_5_ChatLatestSchema, type GPT_5_ChatLatestOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst GPT_4_Turbo_2024_04_09Literal = \"gpt-4-turbo-2024-04-09\";\nconst GPT_4_Turbo_2024_04_09Description =\n  \"GPT-4 Turbo with Vision model. Vision requests can now use JSON mode and function calling. gpt-4-turbo currently points to this version. \\\n  Training data up to Dec 2023.\";\n\nconst GPT_4_Turbo_2024_04_09Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n  name: GPT_4_Turbo_2024_04_09Literal,\n  description: GPT_4_Turbo_2024_04_09Description,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4096,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(4096, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(4096, 4).schema,\n  },\n  price: pricingData[GPT_4_Turbo_2024_04_09Literal],\n});\n\nconst GPT_4_Turbo_2024_04_09Options = BaseChatModelOptions;\ntype GPT_4_Turbo_2024_04_09OptionsType = z.infer<typeof GPT_4_Turbo_2024_04_09Options>;\n\nclass GPT_4_Turbo_2024_04_09 extends BaseChatModel {\n  constructor(options: GPT_4_Turbo_2024_04_09OptionsType) {\n    super(GPT_4_Turbo_2024_04_09Schema, options);\n  }\n}\n\nexport {\n  GPT_4_Turbo_2024_04_09,\n  GPT_4_Turbo_2024_04_09Literal,\n  GPT_4_Turbo_2024_04_09Options,\n  GPT_4_Turbo_2024_04_09Schema,\n  type GPT_4_Turbo_2024_04_09OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4_Turbo_PreviewLiteral = \"gpt-4-turbo-preview\";\nconst GPT_4_Turbo_PreviewDescription = \"Currently points to gpt-4-0125-preview. Training data up to Apr 2023.\";\n\nconst GPT_4_Turbo_PreviewSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_4_Turbo_PreviewLiteral,\n  description: GPT_4_Turbo_PreviewDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(4092, 4).schema,\n  },\n  price: pricingData[GPT_4_Turbo_PreviewLiteral],\n});\n\nconst GPT_4_Turbo_PreviewOptions = BaseChatModelOptions;\ntype GPT_4_Turbo_PreviewOptionsType = z.infer<typeof GPT_4_Turbo_PreviewOptions>;\n\nclass GPT_4_Turbo_Preview extends BaseChatModel {\n  constructor(options: GPT_4_Turbo_PreviewOptionsType) {\n    super(GPT_4_Turbo_PreviewSchema, options);\n  }\n}\n\nexport {\n  GPT_4_Turbo_Preview,\n  GPT_4_Turbo_PreviewLiteral,\n  GPT_4_Turbo_PreviewOptions,\n  GPT_4_Turbo_PreviewSchema,\n  type GPT_4_Turbo_PreviewOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst GPT_4_TurboLiteral = \"gpt-4-turbo\";\nconst GPT_4_TurboDescription =\n  \"The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling. \\\n  Currently points to gpt-4-turbo-2024-04-09. Training data up to Dec 2023.\";\n\nconst GPT_4_TurboSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n  name: GPT_4_TurboLiteral,\n  description: GPT_4_TurboDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(4092, 4).schema,\n  },\n  price: pricingData[GPT_4_TurboLiteral],\n});\n\nconst GPT_4_TurboOptions = BaseChatModelOptions;\ntype GPT_4_TurboOptionsType = z.infer<typeof GPT_4_TurboOptions>;\n\nclass GPT_4_Turbo extends BaseChatModel {\n  constructor(options: GPT_4_TurboOptionsType) {\n    super(GPT_4_TurboSchema, options);\n  }\n}\n\nexport { GPT_4_Turbo, GPT_4_TurboLiteral, GPT_4_TurboOptions, GPT_4_TurboSchema, type GPT_4_TurboOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\"; // Added import\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelTextToolModalities,\n  OpenAIChatModelTextToolModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4Literal = \"gpt-4\";\nconst GPT_4Description = \"Currently points to gpt-4-0613. Training data up to Sept 2021.\";\n\nconst GPT_4Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelTextToolModalitiesEnum).parse({\n  name: GPT_4Literal,\n  description: GPT_4Description,\n  maxInputTokens: 8192,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelTextToolModalities,\n  config: {\n    def: OpenAIChatModelConfigs.base(4092, 4).def,\n    schema: OpenAIChatModelConfigs.base(4092, 4).schema,\n  },\n  price: pricingData[GPT_4Literal],\n});\n\nconst GPT_4Options = BaseChatModelOptions;\ntype GPT_4OptionsType = z.infer<typeof GPT_4Options>;\n\nclass GPT_4 extends BaseChatModel {\n  constructor(options: GPT_4OptionsType) {\n    super(GPT_4Schema, options);\n  }\n}\n\nexport { GPT_4, GPT_4Literal, GPT_4Options, GPT_4Schema, type GPT_4OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_2024_05_13Literal = \"gpt-4o-2024-05-13\";\nconst GPT_4o_2024_05_13Description = \"Latest snapshot of gpt-4o that supports Structured Outputs. Training data up to Oct 2023.\";\n\nconst GPT_4o_2024_05_13Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4o_2024_05_13Literal,\n  description: GPT_4o_2024_05_13Description,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).schema,\n  },\n  price: pricingData[GPT_4o_2024_05_13Literal],\n});\n\nconst GPT_4o_2024_05_13Options = BaseChatModelOptions;\ntype GPT_4o_2024_05_13OptionsType = z.infer<typeof GPT_4o_2024_05_13Options>;\n\nclass GPT_4o_2024_05_13 extends BaseChatModel {\n  constructor(options: GPT_4o_2024_05_13OptionsType) {\n    super(GPT_4o_2024_05_13Schema, options);\n  }\n}\n\nexport {\n  GPT_4o_2024_05_13,\n  GPT_4o_2024_05_13Literal,\n  GPT_4o_2024_05_13Options,\n  GPT_4o_2024_05_13Schema,\n  type GPT_4o_2024_05_13OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_2024_08_06Literal = \"gpt-4o-2024-08-06\";\nconst GPT_4o_2024_08_06Description = \"Latest snapshot of gpt-4o that supports Structured Outputs. Training data up to Oct 2023.\";\n\nconst GPT_4o_2024_08_06Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4o_2024_08_06Literal,\n  description: GPT_4o_2024_08_06Description,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).schema,\n  },\n  price: pricingData[GPT_4o_2024_08_06Literal],\n});\n\nconst GPT_4o_2024_08_06Options = BaseChatModelOptions;\ntype GPT_4o_2024_08_06OptionsType = z.infer<typeof GPT_4o_2024_08_06Options>;\n\nclass GPT_4o_2024_08_06 extends BaseChatModel {\n  constructor(options: GPT_4o_2024_08_06OptionsType) {\n    super(GPT_4o_2024_08_06Schema, options);\n  }\n}\n\nexport {\n  GPT_4o_2024_08_06,\n  GPT_4o_2024_08_06Literal,\n  GPT_4o_2024_08_06Options,\n  GPT_4o_2024_08_06Schema,\n  type GPT_4o_2024_08_06OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_Mini_2024_07_18Literal = \"gpt-4o-mini-2024-07-18\";\nconst GPT_4o_MiniDescription =\n  \"Most advanced, multimodal flagship model that is cheaper and faster than GPT-4 Turbo. Currently points to gpt-4o-2024-05-13. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_Mini_2024_07_18Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4o_Mini_2024_07_18Literal,\n  description: GPT_4o_MiniDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).schema,\n  },\n  price: pricingData[GPT_4o_Mini_2024_07_18Literal],\n});\n\nconst GPT_4o_Mini_2024_07_18Options = BaseChatModelOptions;\ntype GPT_4o_Mini_2024_07_18OptionsType = z.infer<typeof GPT_4o_Mini_2024_07_18Options>;\n\nclass GPT_4o_Mini_2024_07_18 extends BaseChatModel {\n  constructor(options: GPT_4o_Mini_2024_07_18OptionsType) {\n    super(GPT_4o_Mini_2024_07_18Schema, options);\n  }\n}\n\nexport {\n  GPT_4o_Mini_2024_07_18,\n  GPT_4o_Mini_2024_07_18Literal,\n  GPT_4o_Mini_2024_07_18Options,\n  GPT_4o_Mini_2024_07_18Schema,\n  type GPT_4o_Mini_2024_07_18OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_MiniLiteral = \"gpt-4o-mini\";\nconst GPT_4o_MiniDescription =\n  \"Most advanced, multimodal flagship model that is cheaper and faster than GPT-4 Turbo. Currently points to gpt-4o-2024-05-13. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4o_MiniLiteral,\n  description: GPT_4o_MiniDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).schema,\n  },\n  price: pricingData[GPT_4o_MiniLiteral],\n});\n\nconst GPT_4o_MiniOptions = BaseChatModelOptions;\ntype GPT_4o_MiniOptionsType = z.infer<typeof GPT_4o_MiniOptions>;\n\nclass GPT_4o_Mini extends BaseChatModel {\n  constructor(options: GPT_4o_MiniOptionsType) {\n    super(GPT_4o_MiniSchema, options);\n  }\n}\n\nexport { GPT_4o_Mini, GPT_4o_MiniLiteral, GPT_4o_MiniOptions, GPT_4o_MiniSchema, type GPT_4o_MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4oLiteral = \"gpt-4o\";\nconst GPT_4oDescription =\n  \"Most advanced, multimodal flagship model that is cheaper and faster than GPT-4 Turbo. Currently points to gpt-4o-2024-05-13. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4oSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: GPT_4oLiteral,\n  description: GPT_4oDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 4092,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchemaWithWebSearch(4092, 4).schema,\n  },\n  price: pricingData[GPT_4oLiteral],\n});\n\nconst GPT_4oOptions = BaseChatModelOptions;\ntype GPT_4oOptionsType = z.infer<typeof GPT_4oOptions>;\n\nclass GPT_4o extends BaseChatModel {\n  constructor(options: GPT_4oOptionsType) {\n    super(GPT_4oSchema, options);\n  }\n}\n\nexport { GPT_4o, GPT_4oLiteral, GPT_4oOptions, GPT_4oSchema, type GPT_4oOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_Search_PreviewLiteral = \"gpt-4o-search-preview\";\nconst GPT_4o_Search_PreviewDescription =\n  \"GPT-4o model optimized for web search. Retrieves information from the web before responding to queries. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_Search_PreviewSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWebSearchModalitiesEnum).parse({\n  name: GPT_4o_Search_PreviewLiteral,\n  description: GPT_4o_Search_PreviewDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(16384, 4).schema,\n  },\n  price: pricingData[GPT_4o_Search_PreviewLiteral],\n});\n\nconst GPT_4o_Search_PreviewOptions = BaseChatModelOptions;\ntype GPT_4o_Search_PreviewOptionsType = z.infer<typeof GPT_4o_Search_PreviewOptions>;\n\nclass GPT_4o_Search_Preview extends BaseChatModel {\n  constructor(options: GPT_4o_Search_PreviewOptionsType) {\n    super(GPT_4o_Search_PreviewSchema, options);\n  }\n}\n\nexport {\n  GPT_4o_Search_Preview,\n  GPT_4o_Search_PreviewLiteral,\n  GPT_4o_Search_PreviewOptions,\n  GPT_4o_Search_PreviewSchema,\n  type GPT_4o_Search_PreviewOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_Search_Preview_2025_03_11Literal = \"gpt-4o-search-preview-2025-03-11\";\nconst GPT_4o_Search_Preview_2025_03_11Description =\n  \"GPT-4o model optimized for web search (March 2025 snapshot). Retrieves information from the web before responding to queries. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_Search_Preview_2025_03_11Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWebSearchModalitiesEnum).parse({\n  name: GPT_4o_Search_Preview_2025_03_11Literal,\n  description: GPT_4o_Search_Preview_2025_03_11Description,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(16384, 4).schema,\n  },\n  price: pricingData[GPT_4o_Search_Preview_2025_03_11Literal],\n});\n\nconst GPT_4o_Search_Preview_2025_03_11Options = BaseChatModelOptions;\ntype GPT_4o_Search_Preview_2025_03_11OptionsType = z.infer<typeof GPT_4o_Search_Preview_2025_03_11Options>;\n\nclass GPT_4o_Search_Preview_2025_03_11 extends BaseChatModel {\n  constructor(options: GPT_4o_Search_Preview_2025_03_11OptionsType) {\n    super(GPT_4o_Search_Preview_2025_03_11Schema, options);\n  }\n}\n\nexport {\n  GPT_4o_Search_Preview_2025_03_11,\n  GPT_4o_Search_Preview_2025_03_11Literal,\n  GPT_4o_Search_Preview_2025_03_11Options,\n  GPT_4o_Search_Preview_2025_03_11Schema,\n  type GPT_4o_Search_Preview_2025_03_11OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_Mini_Search_PreviewLiteral = \"gpt-4o-mini-search-preview\";\nconst GPT_4o_Mini_Search_PreviewDescription =\n  \"GPT-4o Mini model optimized for web search. A smaller, faster model that retrieves information from the web before responding. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_Mini_Search_PreviewSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWebSearchModalitiesEnum).parse({\n  name: GPT_4o_Mini_Search_PreviewLiteral,\n  description: GPT_4o_Mini_Search_PreviewDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(16384, 4).schema,\n  },\n  price: pricingData[GPT_4o_Mini_Search_PreviewLiteral],\n});\n\nconst GPT_4o_Mini_Search_PreviewOptions = BaseChatModelOptions;\ntype GPT_4o_Mini_Search_PreviewOptionsType = z.infer<typeof GPT_4o_Mini_Search_PreviewOptions>;\n\nclass GPT_4o_Mini_Search_Preview extends BaseChatModel {\n  constructor(options: GPT_4o_Mini_Search_PreviewOptionsType) {\n    super(GPT_4o_Mini_Search_PreviewSchema, options);\n  }\n}\n\nexport {\n  GPT_4o_Mini_Search_Preview,\n  GPT_4o_Mini_Search_PreviewLiteral,\n  GPT_4o_Mini_Search_PreviewOptions,\n  GPT_4o_Mini_Search_PreviewSchema,\n  type GPT_4o_Mini_Search_PreviewOptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_4o_Mini_Search_Preview_2025_03_11Literal = \"gpt-4o-mini-search-preview-2025-03-11\";\nconst GPT_4o_Mini_Search_Preview_2025_03_11Description =\n  \"GPT-4o Mini model optimized for web search (March 2025 snapshot). A smaller, faster model that retrieves information from the web before responding. \\\n  Training data up to Oct 2023.\";\n\nconst GPT_4o_Mini_Search_Preview_2025_03_11Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWebSearchModalitiesEnum).parse({\n  name: GPT_4o_Mini_Search_Preview_2025_03_11Literal,\n  description: GPT_4o_Mini_Search_Preview_2025_03_11Description,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(16384, 4).schema,\n  },\n  price: pricingData[GPT_4o_Mini_Search_Preview_2025_03_11Literal],\n});\n\nconst GPT_4o_Mini_Search_Preview_2025_03_11Options = BaseChatModelOptions;\ntype GPT_4o_Mini_Search_Preview_2025_03_11OptionsType = z.infer<typeof GPT_4o_Mini_Search_Preview_2025_03_11Options>;\n\nclass GPT_4o_Mini_Search_Preview_2025_03_11 extends BaseChatModel {\n  constructor(options: GPT_4o_Mini_Search_Preview_2025_03_11OptionsType) {\n    super(GPT_4o_Mini_Search_Preview_2025_03_11Schema, options);\n  }\n}\n\nexport {\n  GPT_4o_Mini_Search_Preview_2025_03_11,\n  GPT_4o_Mini_Search_Preview_2025_03_11Literal,\n  GPT_4o_Mini_Search_Preview_2025_03_11Options,\n  GPT_4o_Mini_Search_Preview_2025_03_11Schema,\n  type GPT_4o_Mini_Search_Preview_2025_03_11OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWebSearchModalities,\n  OpenAIChatModelWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst GPT_5_Search_ApiLiteral = \"gpt-5-search-api\";\nconst GPT_5_Search_ApiDescription =\n  \"GPT-5 model optimized for web search. Retrieves information from the web before responding to queries.\";\n\nconst GPT_5_Search_ApiSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWebSearchModalitiesEnum).parse({\n  name: GPT_5_Search_ApiLiteral,\n  description: GPT_5_Search_ApiDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseSchema(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseSchema(16384, 4).schema,\n  },\n  price: pricingData[GPT_5_Search_ApiLiteral],\n});\n\nconst GPT_5_Search_ApiOptions = BaseChatModelOptions;\ntype GPT_5_Search_ApiOptionsType = z.infer<typeof GPT_5_Search_ApiOptions>;\n\nclass GPT_5_Search_Api extends BaseChatModel {\n  constructor(options: GPT_5_Search_ApiOptionsType) {\n    super(GPT_5_Search_ApiSchema, options);\n  }\n}\n\nexport { GPT_5_Search_Api, GPT_5_Search_ApiLiteral, GPT_5_Search_ApiOptions, GPT_5_Search_ApiSchema, type GPT_5_Search_ApiOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral } from \"@adaline/types\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\n// Specs reference: https://platform.openai.com/docs/models/chatgpt-4o-latest (retrieved 2026-02-25)\nconst ChatGPT_4o_LatestLiteral = \"chatgpt-4o-latest\";\nconst ChatGPT_4o_LatestDescription =\n  \"Latest ChatGPT-4o chat model optimized for conversational quality. Does not support function calling or structured outputs.\";\n\nconst ChatGPT_4o_LatestModalities = [TextModalityLiteral, ImageModalityLiteral];\nconst ChatGPT_4o_LatestModalitiesEnum = z.enum([TextModalityLiteral, ImageModalityLiteral]);\n\nconst ChatGPT_4o_LatestSchema = ChatModelSchema(OpenAIChatModelRoles, ChatGPT_4o_LatestModalitiesEnum).parse({\n  name: ChatGPT_4o_LatestLiteral,\n  description: ChatGPT_4o_LatestDescription,\n  maxInputTokens: 128000,\n  maxOutputTokens: 16384,\n  roles: OpenAIChatModelRolesMap,\n  modalities: ChatGPT_4o_LatestModalities,\n  config: {\n    def: OpenAIChatModelConfigs.responseFormat(16384, 4).def,\n    schema: OpenAIChatModelConfigs.responseFormat(16384, 4).schema,\n  },\n  price: pricingData[ChatGPT_4o_LatestLiteral],\n});\n\nconst ChatGPT_4o_LatestOptions = BaseChatModelOptions;\ntype ChatGPT_4o_LatestOptionsType = z.infer<typeof ChatGPT_4o_LatestOptions>;\n\nclass ChatGPT_4o_Latest extends BaseChatModel {\n  constructor(options: ChatGPT_4o_LatestOptionsType) {\n    super(ChatGPT_4o_LatestSchema, options);\n  }\n}\n\nexport {\n  ChatGPT_4o_Latest,\n  ChatGPT_4o_LatestLiteral,\n  ChatGPT_4o_LatestOptions,\n  ChatGPT_4o_LatestSchema,\n  type ChatGPT_4o_LatestOptionsType,\n};\n\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O1_2024_12_17Literal = \"o1-2024-12-17\";\nconst O1_2024_12_17Description =\n  \"A stable release model for production use, offering robust performance and advanced features. Training data up to December 2024.\";\n\nconst O1_2024_12_17Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O1_2024_12_17Literal,\n  description: O1_2024_12_17Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.o1SeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.o1SeriesWithWebSearch(100000, 4).schema,\n  },\n  price: pricingData[O1_2024_12_17Literal],\n});\n\nconst O1_2024_12_17Options = BaseChatModelOptions;\ntype O1_2024_12_17OptionsType = z.infer<typeof O1_2024_12_17Options>;\n\nclass O1_2024_12_17 extends BaseChatModel {\n  constructor(options: O1_2024_12_17OptionsType) {\n    super(O1_2024_12_17Schema, options);\n  }\n}\n\nexport { O1_2024_12_17, O1_2024_12_17Literal, O1_2024_12_17Options, O1_2024_12_17Schema, type O1_2024_12_17OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O1Literal = \"o1\";\nconst O1Description =\n  \"Highly capable general-purpose reasoning model with advanced capabilities in language, coding, and reasoning. Training data up to Oct 2023.\";\n\nconst O1Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O1Literal,\n  description: O1Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.o1SeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.o1SeriesWithWebSearch(100000, 4).schema,\n  },\n  price: pricingData[O1Literal],\n});\n\nconst O1Options = BaseChatModelOptions;\ntype O1OptionsType = z.infer<typeof O1Options>;\n\nclass O1 extends BaseChatModel {\n  constructor(options: O1OptionsType) {\n    super(O1Schema, options);\n  }\n}\n\nexport { O1, O1Literal, O1Options, O1Schema, type O1OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O3_2025_04_16Literal = \"o3-2025-04-16\";\nconst O3_2025_04_16Description = \"A new standard for math, science, coding, and visual reasoning tasks. Training data up to Jun 2024.\";\n\nconst O3_2025_04_16Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O3_2025_04_16Literal,\n  description: O3_2025_04_16Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O3_2025_04_16Options = BaseChatModelOptions;\ntype O3_2025_04_16OptionsType = z.infer<typeof O3_2025_04_16Options>;\n\nclass O3_2025_04_16 extends BaseChatModel {\n  constructor(options: O3_2025_04_16OptionsType) {\n    super(O3_2025_04_16Schema, options);\n  }\n}\n\nexport { O3_2025_04_16, O3_2025_04_16Literal, O3_2025_04_16Options, O3_2025_04_16Schema, type O3_2025_04_16OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O3Literal = \"o3\";\nconst O3Description = \"A new standard for math, science, coding, and visual reasoning tasks. Training data up to Jun 2024.\";\n\nconst O3Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O3Literal,\n  description: O3Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O3Options = BaseChatModelOptions;\ntype O3OptionsType = z.infer<typeof O3Options>;\n\nclass O3 extends BaseChatModel {\n  constructor(options: O3OptionsType) {\n    super(O3Schema, options);\n  }\n}\n\nexport { O3, O3Literal, O3Options, O3Schema, type O3OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport pricingData from \"../pricing.json\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\n// Specs reference: https://developers.openai.com/api/docs/models/o3-pro (retrieved 2026-06-09)\nconst O3ProLiteral = \"o3-pro\";\nconst O3ProDescription =\n  \"Version of o3 that uses more compute for the most reliable responses on math, science, coding, and visual reasoning tasks. \\\n  Training data up to Jun 2024. Available via the OpenAI Responses API only.\";\n\nconst O3ProSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O3ProLiteral,\n  description: O3ProDescription,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n  price: pricingData[O3ProLiteral],\n});\n\nconst O3ProOptions = BaseChatModelOptions;\ntype O3ProOptionsType = z.infer<typeof O3ProOptions>;\n\n/**\n * o3-pro Model\n *\n * This model uses the OpenAI Responses API (/v1/responses)\n */\nclass O3Pro extends BaseChatModel {\n  constructor(options: O3ProOptionsType) {\n    super(O3ProSchema, { ...options, forceResponsesApi: true });\n  }\n}\n\nexport { O3Pro, O3ProLiteral, O3ProOptions, O3ProSchema, type O3ProOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O3MiniLiteral = \"o3-mini\";\nconst O3MiniDescription =\n  \"o3-mini is the newest small reasoning model, providing high intelligence at the same cost and latency targets of o1-mini. Training data up to Sep 2023.\";\n\nconst O3MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O3MiniLiteral,\n  description: O3MiniDescription,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O3MiniOptions = BaseChatModelOptions;\ntype O3MiniOptionsType = z.infer<typeof O3MiniOptions>;\n\nclass O3Mini extends BaseChatModel {\n  constructor(options: O3MiniOptionsType) {\n    super(O3MiniSchema, options);\n  }\n}\n\nexport { O3Mini, O3MiniLiteral, O3MiniOptions, O3MiniSchema, type O3MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O3Mini2025_01_31Literal = \"o3-mini-2025-01-31\";\nconst O3Mini2025_01_31Description =\n  \"o3-mini is the newest small reasoning model, providing high intelligence at the same cost and latency targets of o1-mini. Training data up to Sep 2023.\";\n\nconst O3Mini2025_01_31Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O3Mini2025_01_31Literal,\n  description: O3Mini2025_01_31Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O3Mini2025_01_31Options = BaseChatModelOptions;\ntype O3Mini2025_01_31OptionsType = z.infer<typeof O3Mini2025_01_31Options>;\n\nclass O3Mini2025_01_31 extends BaseChatModel {\n  constructor(options: O3Mini2025_01_31OptionsType) {\n    super(O3Mini2025_01_31Schema, options);\n  }\n}\n\nexport { O3Mini2025_01_31, O3Mini2025_01_31Literal, O3Mini2025_01_31Options, O3Mini2025_01_31Schema, type O3Mini2025_01_31OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O4_Mini_2025_04_16Literal = \"o4-mini-2025-04-16\";\nconst O4_Mini_2025_04_16Description =\n  \"Optimized for fast, effective reasoning with exceptionally efficient performance in coding and visual tasks. Training data up to Jun 2024.\";\n\nconst O4_Mini_2025_04_16Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O4_Mini_2025_04_16Literal,\n  description: O4_Mini_2025_04_16Description,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O4_Mini_2025_04_16Options = BaseChatModelOptions;\ntype O4_Mini_2025_04_16OptionsType = z.infer<typeof O4_Mini_2025_04_16Options>;\n\nclass O4_Mini_2025_04_16 extends BaseChatModel {\n  constructor(options: O4_Mini_2025_04_16OptionsType) {\n    super(O4_Mini_2025_04_16Schema, options);\n  }\n}\n\nexport {\n  O4_Mini_2025_04_16,\n  O4_Mini_2025_04_16Literal,\n  O4_Mini_2025_04_16Options,\n  O4_Mini_2025_04_16Schema,\n  type O4_Mini_2025_04_16OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-chat-model.openai\";\nimport {\n  OpenAIChatModelRoles,\n  OpenAIChatModelRolesMap,\n  OpenAIChatModelWithWebSearchModalities,\n  OpenAIChatModelWithWebSearchModalitiesEnum,\n} from \"./types\";\n\nconst O4_MiniLiteral = \"o4-mini\";\nconst O4_MiniDescription =\n  \"Optimized for fast, effective reasoning with exceptionally efficient performance in coding and visual tasks. Training data up to Jun 2024.\";\n\nconst O4_MiniSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelWithWebSearchModalitiesEnum).parse({\n  name: O4_MiniLiteral,\n  description: O4_MiniDescription,\n  maxInputTokens: 200000,\n  maxOutputTokens: 100000,\n  roles: OpenAIChatModelRolesMap,\n  modalities: OpenAIChatModelWithWebSearchModalities,\n  config: {\n    def: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).def,\n    schema: OpenAIChatModelConfigs.oSeriesWithWebSearch(100000, 4).schema,\n  },\n});\n\nconst O4_MiniOptions = BaseChatModelOptions;\ntype O4_MiniOptionsType = z.infer<typeof O4_MiniOptions>;\n\nclass O4_Mini extends BaseChatModel {\n  constructor(options: O4_MiniOptionsType) {\n    super(O4_MiniSchema, options);\n  }\n}\n\nexport { O4_Mini, O4_MiniLiteral, O4_MiniOptions, O4_MiniSchema, type O4_MiniOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n  EmbeddingTextModalityLiteral,\n  EmbeddingTokenModalityLiteral,\n];\n\nconst OpenAIEmbeddingModelModalitiesEnum = z.enum([EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral]);\n\nexport { OpenAIEmbeddingModelModalitiesEnum, OpenAIEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIGetEmbeddingsResponse = z.object({\n  object: z.literal(\"list\"),\n  model: z.string(),\n  data: z.array(\n    z.object({\n      index: z.number(),\n      object: z.literal(\"embedding\"),\n      embedding: z.array(z.number()).or(z.string().base64()),\n    })\n  ),\n  usage: z.object({\n    prompt_tokens: z.number().nonnegative(),\n    total_tokens: z.number().nonnegative(),\n  }),\n});\n\nexport { OpenAIGetEmbeddingsResponse };\n","import { z } from \"zod\";\n\nconst OpenAIEmbeddingRequestInput = z\n  .string()\n  .min(1)\n  .or(z.array(z.string().min(1)).min(1))\n  .or(z.array(z.number().int().nonnegative()).min(1))\n  .or(z.array(z.array(z.number().int().nonnegative()).min(1)).min(1));\ntype OpenAIEmbeddingRequestInputType = z.infer<typeof OpenAIEmbeddingRequestInput>;\n\nconst OpenAIEmbeddingRequest = z.object({\n  model: z.string().min(1).optional(),\n  input: OpenAIEmbeddingRequestInput,\n  encoding_format: z.enum([\"float\", \"base64\"]).optional(),\n  dimensions: z.number().int().min(1).optional(),\n});\ntype OpenAIEmbeddingRequestType = z.infer<typeof OpenAIEmbeddingRequest>;\n\nexport { OpenAIEmbeddingRequest, OpenAIEmbeddingRequestInput, type OpenAIEmbeddingRequestType, type OpenAIEmbeddingRequestInputType };\n","{\n  \"text-embedding-3-small\": {\n    \"modelName\": \"text-embedding-3-small\",\n    \"currency\": \"USD\",\n    \"inputPricePerMillion\": 0.02\n  },\n  \"text-embedding-3-large\": {\n    \"modelName\": \"text-embedding-3-large\",\n    \"currency\": \"USD\",\n    \"inputPricePerMillion\": 0.13\n  },\n  \"text-embedding-ada-002\": {\n    \"modelName\": \"text-embedding-ada-002\",\n    \"currency\": \"USD\",\n    \"inputPricePerMillion\": 0.1\n  }\n}\n","import { z } from \"zod\";\n\nimport {\n  EmbeddingModelSchemaType,\n  EmbeddingModelV1,\n  HeadersType,\n  InvalidConfigError,\n  InvalidEmbeddingRequestsError,\n  InvalidModelRequestError,\n  ModelResponseError,\n  ParamsType,\n  removeUndefinedEntries,\n  UrlType,\n  urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\n\nimport {\n  Base64EmbeddingLiteral,\n  Base64EmbeddingType,\n  Config,\n  ConfigType,\n  EmbeddingModelPrice,\n  EmbeddingModelPriceType,\n  EmbeddingRequests,\n  EmbeddingRequestsType,\n  EmbeddingResponseType,\n  EmbeddingTextModalityLiteral,\n  EmbeddingTokenModalityLiteral,\n  FloatEmbeddingLiteral,\n  FloatEmbeddingType,\n} from \"@adaline/types\";\n\nimport embeddingPricingData from \"../embedding-pricing.json\";\nimport { OpenAIEmbeddingRequest, OpenAIGetEmbeddingsResponse } from \"./types\";\n\nimport { OpenAI } from \"./../../provider/provider.openai\";\n\nconst BaseEmbeddingModelOptions = z.object({\n  modelName: z.string(),\n  apiKey: z.string(),\n  baseUrl: z.string().url().optional(),\n  getEmbeddingsUrl: z.string().url().optional(),\n});\ntype BaseEmbeddingModelOptionsType = z.infer<typeof BaseEmbeddingModelOptions>;\n\nclass BaseEmbeddingModel implements EmbeddingModelV1<EmbeddingModelSchemaType> {\n  readonly version = \"v1\" as const;\n  modelSchema: EmbeddingModelSchemaType;\n  modelName: string;\n\n  private readonly apiKey: string;\n  private readonly baseUrl: string;\n  private readonly getEmbeddingsUrl: string;\n\n  constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n    const parsedOptions = BaseEmbeddingModelOptions.parse(options);\n    this.modelSchema = modelSchema;\n    this.modelName = parsedOptions.modelName;\n    this.apiKey = parsedOptions.apiKey;\n    this.baseUrl = urlWithoutTrailingSlash(parsedOptions.baseUrl || OpenAI.baseUrl);\n    this.getEmbeddingsUrl = urlWithoutTrailingSlash(parsedOptions.getEmbeddingsUrl || `${this.baseUrl}/embeddings`);\n  }\n\n  getDefaultBaseUrl(): UrlType {\n    return this.baseUrl;\n  }\n\n  getDefaultHeaders(): HeadersType {\n    return {\n      Authorization: `Bearer ${this.apiKey}`,\n      \"Content-Type\": \"application/json\",\n    };\n  }\n\n  getDefaultParams(): ParamsType {\n    return {\n      model: this.modelSchema.name,\n    };\n  }\n\n  // x-ratelimit-limit-requests\tThe maximum number of requests that are permitted before exhausting the rate limit.\n  // x-ratelimit-limit-tokens\tThe maximum number of tokens that are permitted before exhausting the rate limit.\n  // x-ratelimit-remaining-requests The remaining number of requests that are permitted before exhausting the rate limit.\n  // x-ratelimit-remaining-tokens\tThe remaining number of tokens that are permitted before exhausting the rate limit.\n  // x-ratelimit-reset-requests\tThe time until the rate limit (based on requests) resets to its initial state.\n  // x-ratelimit-reset-tokens\tThe time until the rate limit (based on tokens) resets to its initial state.\n  getRetryDelay(responseHeaders: HeadersType, _responseData: unknown): { shouldRetry: boolean; delayMs: number } {\n    // parse duration from header value of format \"6m0s\" or \"21s\" or \"41ms\" or \"2s81ms\" or \"5h50m30ms\" and such\n    const parseDuration = (duration: string): number => {\n      const regex = /(\\d+)(h|m|s|ms)/g;\n      const timeUnits: { [unit: string]: number } = {\n        h: 3600000, // 1 hour = 60 * 60 * 1000 ms\n        m: 60000, // 1 minute = 60 * 1000 ms\n        s: 1000, // 1 second = 1000 ms\n        ms: 1, // milliseconds\n      };\n\n      let match;\n      let totalMs = 0;\n      while ((match = regex.exec(duration)) !== null) {\n        const value = parseInt(match[1]);\n        const unit = match[2];\n        totalMs += value * timeUnits[unit];\n      }\n\n      return totalMs;\n    };\n\n    let resetRequestsDelayMs = 0;\n    let resetTokensDelayMs = 0;\n    const shouldRetry = true;\n    if (responseHeaders[\"x-ratelimit-reset-requests\"]) {\n      resetRequestsDelayMs = parseDuration(responseHeaders[\"x-ratelimit-reset-requests\"]);\n    }\n    if (responseHeaders[\"x-ratelimit-reset-tokens\"]) {\n      resetTokensDelayMs = parseDuration(responseHeaders[\"x-ratelimit-reset-tokens\"]);\n    }\n\n    // if rate limited by requests, then it's reset must be the higher of two and visa versa\n    const delayMs = Math.max(resetRequestsDelayMs, resetTokensDelayMs);\n    return { shouldRetry, delayMs };\n  }\n\n  getTokenCount(requests: EmbeddingRequestsType): number {\n    return requests.requests.reduce((acc, request) => acc + request.length, 0);\n  }\n\n  transformModelRequest(request: any): {\n    modelName: string | undefined;\n    config: ConfigType;\n    embeddingRequests: EmbeddingRequestsType;\n  } {\n    const safeRequest = OpenAIEmbeddingRequest.safeParse(request);\n    if (!safeRequest.success) {\n      throw new InvalidModelRequestError({ info: \"Invalid model request\", cause: safeRequest.error });\n    }\n\n    const parsedRequest = safeRequest.data;\n\n    const modelName = parsedRequest.model;\n\n    const _config = {\n      encodingFormat: parsedRequest.encoding_format,\n      dimensions: parsedRequest.dimensions,\n    };\n    const config = Config().parse(removeUndefinedEntries(_config));\n\n    let embeddingRequests: EmbeddingRequestsType;\n    let embeddingFormat: typeof EmbeddingTextModalityLiteral | typeof EmbeddingTokenModalityLiteral;\n    if (typeof parsedRequest.input === \"string\") {\n      embeddingFormat = EmbeddingTextModalityLiteral;\n    } else {\n      if (typeof parsedRequest.input[0] === \"string\") {\n        embeddingFormat = EmbeddingTextModalityLiteral;\n      } else {\n        embeddingFormat = EmbeddingTokenModalityLiteral;\n      }\n    }\n\n    if (embeddingFormat === EmbeddingTextModalityLiteral) {\n      if (typeof parsedRequest.input === \"string\") {\n        embeddingRequests = {\n          modality: embeddingFormat,\n          requests: [parsedRequest.input],\n        };\n      } else {\n        embeddingRequests = {\n          modality: embeddingFormat,\n          requests: parsedRequest.input as string[],\n        };\n      }\n    } else {\n      if (typeof parsedRequest.input[0] === \"number\") {\n        embeddingRequests = {\n          modality: embeddingFormat,\n          requests: [parsedRequest.input as number[]],\n        };\n      } else {\n        embeddingRequests = {\n          modality: embeddingFormat,\n          requests: parsedRequest.input as number[][],\n        };\n      }\n    }\n\n    return {\n      modelName,\n      config,\n      embeddingRequests,\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  transformConfig(config: ConfigType, requests?: EmbeddingRequestsType): ParamsType {\n    const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n    if (!_parsedConfig.success) {\n      throw new InvalidConfigError({\n        info: `Invalid config for model : '${this.modelSchema.name}'`,\n        cause: _parsedConfig.error,\n      });\n    }\n\n    const parsedConfig = _parsedConfig.data as ConfigType;\n    Object.keys(parsedConfig as ConfigType).forEach((key) => {\n      if (!this.modelSchema.config.def[key]) {\n        throw new InvalidConfigError({\n          info: `Invalid config for model : '${this.modelSchema.name}'`,\n          cause: new Error(`Invalid config key : '${key}', \n            available keys : [${Object.keys(this.modelSchema.config.def).join(\", \")}]`),\n        });\n      }\n    });\n\n    const transformedConfig = Object.keys(parsedConfig).reduce((acc, key) => {\n      const def = this.modelSchema.config.def[key];\n      const paramKey = def.param;\n      const paramValue = parsedConfig[key];\n      acc[paramKey] = paramValue;\n      return acc;\n    }, {} as ParamsType);\n\n    return transformedConfig;\n  }\n\n  transformEmbeddingRequests(requests: EmbeddingRequestsType): ParamsType {\n    const _parsedRequests = EmbeddingRequests().safeParse(requests);\n    if (!_parsedRequests.success) {\n      throw new InvalidEmbeddingRequestsError({ info: \"Invalid embedding requests\", cause: _parsedRequests.error });\n    }\n\n    // Note from OpenAI API Reference:\n    // The input must not exceed the max input tokens for the model (8192 tokens for text-embedding-ada-002),\n    // cannot be an empty string, and any array must be 2048 dimensions or less.\n    // TODO: add max tokens check in requests based on model schema when token calculation is accurate\n\n    const parsedRequests = _parsedRequests.data as EmbeddingRequestsType;\n    return {\n      input: parsedRequests.requests,\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getGetEmbeddingsUrl(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<UrlType> {\n    return new Promise((resolve) => {\n      resolve(this.getEmbeddingsUrl);\n    });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async getGetEmbeddingsHeaders(config?: ConfigType, requests?: EmbeddingRequestsType): Promise<HeadersType> {\n    return new Promise((resolve) => {\n      resolve(this.getDefaultHeaders());\n    });\n  }\n\n  async getGetEmbeddingsData(config: ConfigType, requests: EmbeddingRequestsType): Promise<ParamsType> {\n    return new Promise((resolve) => {\n      resolve({\n        ...this.getDefaultParams(),\n        ...this.transformConfig(config, requests),\n        ...this.transformEmbeddingRequests(requests),\n      });\n    });\n  }\n\n  transformGetEmbeddingsResponse(response: any): EmbeddingResponseType {\n    let encodingFormat: typeof Base64EmbeddingLiteral | typeof FloatEmbeddingLiteral;\n    const safe = OpenAIGetEmbeddingsResponse.safeParse(response);\n    if (safe.success) {\n      const parsedResponse = safe.data;\n      encodingFormat = typeof parsedResponse.data[0].embedding === \"string\" ? Base64EmbeddingLiteral : FloatEmbeddingLiteral;\n      const embeddings = parsedResponse.data.map((item) => {\n        if (typeof item.embedding === \"string\") {\n          return {\n            index: item.index,\n            embedding: item.embedding,\n          } as Base64EmbeddingType;\n        } else {\n          return {\n            index: item.index,\n            embedding: item.embedding,\n          } as FloatEmbeddingType;\n        }\n      });\n\n      return {\n        encodingFormat: encodingFormat,\n        embeddings: embeddings,\n        usage: {\n          totalTokens: parsedResponse.usage.total_tokens,\n        },\n      } as EmbeddingResponseType;\n    }\n\n    throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n  }\n\n  getModelPricing(): EmbeddingModelPriceType {\n    if (!(this.modelName in embeddingPricingData)) {\n      throw new ModelResponseError({\n        info: `Invalid model pricing for model : '${this.modelName}'`,\n        cause: new Error(`No pricing configuration found for model \"${this.modelName}\"`),\n      });\n    }\n    const entry = embeddingPricingData[this.modelName as keyof typeof embeddingPricingData];\n    // Parse (rather than cast) so the JSON is validated against the schema and\n    // the `currency` default is applied.\n    return EmbeddingModelPrice.parse(entry);\n  }\n}\n\nexport { BaseEmbeddingModel, BaseEmbeddingModelOptions, type BaseEmbeddingModelOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIEmbeddingModelConfigs } from \"../../configs\";\nimport embeddingPricingData from \"../embedding-pricing.json\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_Ada002Literal = \"text-embedding-ada-002\";\nconst Text_Embedding_Ada002Description = \"Most capable 2nd generation embedding model, replacing 16 first generation models\";\n\nconst Text_Embedding_Ada002Schema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n  name: Text_Embedding_Ada002Literal,\n  description: Text_Embedding_Ada002Description,\n  modalities: OpenAIEmbeddingModelModalities,\n  maxInputTokens: 8192,\n  maxOutputTokens: 1536,\n  config: {\n    def: OpenAIEmbeddingModelConfigs.base().def,\n    schema: OpenAIEmbeddingModelConfigs.base().schema,\n  },\n  price: embeddingPricingData[Text_Embedding_Ada002Literal],\n});\n\nconst Text_Embedding_Ada002_Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_Ada002_OptionsType = z.infer<typeof Text_Embedding_Ada002_Options>;\n\nclass Text_Embedding_Ada002 extends BaseEmbeddingModel {\n  constructor(options: Text_Embedding_Ada002_OptionsType) {\n    super(Text_Embedding_Ada002Schema, options);\n  }\n}\n\nexport {\n  Text_Embedding_Ada002,\n  Text_Embedding_Ada002_Options,\n  Text_Embedding_Ada002Schema,\n  Text_Embedding_Ada002Literal,\n  type Text_Embedding_Ada002_OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIEmbeddingModelConfigs } from \"../../configs\";\nimport embeddingPricingData from \"../embedding-pricing.json\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_3_SmallLiteral = \"text-embedding-3-small\";\nconst Text_Embedding_3_SmallDescription = \"Increased performance over 2nd generation ada embedding model\";\n\nconst Text_Embedding_3_SmallSchema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n  name: Text_Embedding_3_SmallLiteral,\n  description: Text_Embedding_3_SmallDescription,\n  modalities: OpenAIEmbeddingModelModalities,\n  maxInputTokens: 8192,\n  maxOutputTokens: 1536,\n  config: {\n    def: OpenAIEmbeddingModelConfigs.dimensions(1536).def,\n    schema: OpenAIEmbeddingModelConfigs.dimensions(1536).schema,\n  },\n  price: embeddingPricingData[Text_Embedding_3_SmallLiteral],\n});\n\nconst Text_Embedding_3_Small_Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_3_Small_OptionsType = z.infer<typeof Text_Embedding_3_Small_Options>;\n\nclass Text_Embedding_3_Small extends BaseEmbeddingModel {\n  constructor(options: Text_Embedding_3_Small_OptionsType) {\n    super(Text_Embedding_3_SmallSchema, options);\n  }\n}\n\nexport {\n  Text_Embedding_3_Small,\n  Text_Embedding_3_Small_Options,\n  Text_Embedding_3_SmallSchema,\n  Text_Embedding_3_SmallLiteral,\n  type Text_Embedding_3_Small_OptionsType,\n};\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIEmbeddingModelConfigs } from \"../../configs\";\nimport embeddingPricingData from \"../embedding-pricing.json\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst Text_Embedding_3_LargeLiteral = \"text-embedding-3-large\";\nconst Text_Embedding_3_LargeDescription = \"Most capable embedding model for both english and non-english tasks\";\n\nconst Text_Embedding_3_LargeSchema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n  name: Text_Embedding_3_LargeLiteral,\n  description: Text_Embedding_3_LargeDescription,\n  modalities: OpenAIEmbeddingModelModalities,\n  maxInputTokens: 8192,\n  maxOutputTokens: 3072,\n  config: {\n    def: OpenAIEmbeddingModelConfigs.dimensions(3072).def,\n    schema: OpenAIEmbeddingModelConfigs.dimensions(3072).schema,\n  },\n  price: embeddingPricingData[Text_Embedding_3_LargeLiteral],\n});\n\nconst Text_Embedding_3_Large_Options = BaseEmbeddingModelOptions;\ntype Text_Embedding_3_Large_OptionsType = z.infer<typeof Text_Embedding_3_Large_Options>;\n\nclass Text_Embedding_3_Large extends BaseEmbeddingModel {\n  constructor(options: Text_Embedding_3_Large_OptionsType) {\n    super(Text_Embedding_3_LargeSchema, options);\n  }\n}\n\nexport {\n  Text_Embedding_3_Large,\n  Text_Embedding_3_Large_Options,\n  Text_Embedding_3_LargeSchema,\n  Text_Embedding_3_LargeLiteral,\n  type Text_Embedding_3_Large_OptionsType,\n};\n"]}