@adaline/custom 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/pricing/pricing-tiers.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/errors/invalid-embedding-requests.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/model/embedding-model/embedding-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/is-running-in-browser.ts","../../../../packages/provider/src/utils/base64.ts","../../../../packages/provider/src/utils/url.ts","../../openai/src/configs/chat-model/common.config.chat-model.openai.ts","../../openai/src/configs/chat-model/base.config.chat-model.openai.ts","../../openai/src/configs/chat-model/response-schema.config.chat-model.openai.ts","../../openai/src/configs/chat-model/o-series.config.chat-model.openai.ts","../../openai/src/configs/chat-model/response-format.config.chat-model.openai.ts","../../openai/src/configs/embedding-model/common.config.embedding-model.openai.ts","../../openai/src/configs/embedding-model/base.config.embedding-model.openai.ts","../../openai/src/configs/embedding-model/dimensions.config.embedding-model.openai.ts","../../openai/src/configs/configs.openai.ts","../../openai/src/models/pricing.json","../../openai/src/provider/provider.openai.ts","../../openai/src/models/chat-models/types/roles.chat-model.openai.ts","../../openai/src/models/chat-models/types/modalities.chat-model.openai.ts","../../openai/src/models/chat-models/types/response.chat-model.openai.ts","../../openai/src/models/chat-models/types/request.chat-model.openai.ts","../../openai/src/models/chat-models/base-chat-model.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo-0125.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo-1106.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo.openai.ts","../../openai/src/models/chat-models/gpt-4-0125-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-0613.openai.ts","../../openai/src/models/chat-models/gpt-4-1106-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-1.openai.ts","../../openai/src/models/chat-models/gpt-4-1-mini.openai.ts","../../openai/src/models/chat-models/gpt-4-1-nano.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo-2024-04-09.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo.openai.ts","../../openai/src/models/chat-models/gpt-4.openai.ts","../../openai/src/models/chat-models/gpt-4o-2024-05-13.openai.ts","../../openai/src/models/chat-models/gpt-4o-2024-08-06.openai.ts","../../openai/src/models/chat-models/gpt-4o-mini-2024-07-18.openai.ts","../../openai/src/models/chat-models/gpt-4o-mini.openai.ts","../../openai/src/models/chat-models/gpt-4o.openai.ts","../../openai/src/models/chat-models/o1-2024-12-17.openai.ts","../../openai/src/models/chat-models/o1.openai.ts","../../openai/src/models/chat-models/o3-2025-04-16.openai.ts","../../openai/src/models/chat-models/o3.openai.ts","../../openai/src/models/chat-models/o3-mini.openai.ts","../../openai/src/models/chat-models/o3-mini-2025-01-31.openai.ts","../../openai/src/models/chat-models/o4-mini-2025-04-16.openai.ts","../../openai/src/models/chat-models/o4-mini.openai.ts","../../openai/src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../../openai/src/models/embedding-models/types/response.embedding-model.openai.ts","../../openai/src/models/embedding-models/types/request.embedding-model.openai.ts","../../openai/src/models/embedding-models/base-embedding-model.openai.ts","../../openai/src/models/embedding-models/text-embedding-ada-002.openai.ts","../../openai/src/models/embedding-models/text-embedding-3-small.openai.ts","../../openai/src/models/embedding-models/text-embedding-3-large.openai.ts","../src/models/chat-models/base-chat-model-schema.openai.custom.ts","../src/models/chat-models/chat-model-options.custom.ts","../src/models/chat-models/base-chat-model.openai.custom.ts","../src/provider/provider.custom.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","PartialModalityLiterals","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialReasoningContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","ChatModelTokenPairPrice","ChatModelTokenTypePrice","ChatModelTokenRangePrice","t","ChatModelPrice","data","ctx","tokenRanges","i","prev","curr","last","FunctionToolLiteral","FunctionParameterTypesLiteral","FunctionParameter","FunctionParameters","Function","ToolTypesLiteral","ApiRetrySettings","HttpRequestSettings","ApiSettings","FunctionTool","ToolLiterals","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","createPartialTextMessage","role","createPartialToolCallMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","InvalidEmbeddingRequestsErrorLiteral","InvalidEmbeddingRequestsError","_InvalidEmbeddingRequestsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","RangeConfigItemTypeLiteral","RangeConfigItemDef","RangeConfigItemSchema","min","step","defaultValue","RangeConfigItem","SelectBooleanConfigItemTypeLiteral","SelectBooleanConfigItemDef","SelectBooleanConfigItemSchema","SelectBooleanConfigItem","SelectStringConfigItemTypeLiteral","SelectStringConfigItemDef","SelectStringConfigItemSchema","choices","SelectStringConfigItem","ConfigItemLiterals","ConfigItemEnum","ConfigItemDef","ChatModelSchema","Roles","Modalities","config","_a","_b","defKeys","schemaKeys","EmbeddingModelSchema","Params","Url","TEMPERATURE","MAX_TOKENS","MAX_REASONING_TOKENS","STOP","TOP_A","TOP_P","TOP_K","MIN_P","FREQUENCY_PENALTY","PRESENCE_PENALTY","SEED","REPETITION_PENALTY","LOG_PROBS","TOP_LOG_PROBS","ECHO","RESPONSE_FORMAT","RESPONSE_FORMAT_WITH_SCHEMA","RESPONSE_SCHEMA","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","url","temperature","maxTokens","maxOutputTokens","stop","maxSequences","topP","frequencyPenalty","presencePenalty","seed","logProbs","topLogProbs","toolChoice","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","responseSchema","responseFormat","ChatModelResponseSchemaConfigDef","__spreadProps","ChatModelResponseSchemaConfigSchema","reasoningEffort","ChatModelOSeriesConfigDef","ChatModelOSeriesConfigSchema","ChatModelResponseFormatConfigDef","ChatModelResponseFormatConfigSchema","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_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","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","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","options","modelName","model","parsedOptions","OpenAIChatModelRoles","OpenAIChatModelRolesMap","OpenAIChatModelModalities","OpenAIChatModelModalitiesEnum","OpenAIChatModelTextToolModalities","OpenAIChatModelTextToolModalitiesEnum","OpenAIBaseLogProb","OpenAILogProb","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","OpenAIChatRequestTool","OpenAIChatRequestToolChoiceEnum","OpenAIChatRequestToolChoiceFunction","OpenAIChatRequestResponseFormat","OpenAIChatRequestTextContent","OpenAIChatRequestImageContent","OpenAIChatRequestToolCallContent","OpenAIChatRequestSystemMessage","OpenAIChatRequestUserMessage","OpenAIChatRequestAssistantMessage","OpenAIChatRequestToolMessage","OpenAIChatRequestMessage","OpenAIChatRequest","BaseChatModelOptions","BaseChatModel","modelSchema","responseHeaders","parseDuration","duration","regex","timeUnits","match","totalMs","unit","resetRequestsDelayMs","resetTokensDelayMs","shouldRetry","delayMs","messages","message","request","safeRequest","parsedRequest","_config","toolCallMap","_content","c","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","textContent","toolCalls","imageContent","combinedContent","parsedTool","__async","resolve","transformedMessages","transformedTools","response","safe","parsedResponse","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","headers","query","__yieldStar","sanitizedHeaders","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_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","O1_2024_12_17Description","O1Description","O3_2025_04_16Description","O3Description","O3MiniDescription","O3Mini2025_01_31Description","O4_Mini_2025_04_16Description","O4_MiniDescription","OpenAIEmbeddingModelModalities","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","OpenAIEmbeddingRequestInput","OpenAIEmbeddingRequest","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","embeddingRequests","embeddingFormat","_parsedRequests","embeddings","item","Text_Embedding_Ada002Description","Text_Embedding_3_SmallDescription","Text_Embedding_3_LargeDescription","BaseChatModelSchema","jt","h","y","f","M","a","BaseChatModelOpenAI","B","Custom","j","baseURL"],"mappings":";;;;AAEA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,MAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,OAAA,CAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,IAAA,EAAA,CAAA,IAAA,OAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,MAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,OAAA,GAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,GAAA,CAAA,EAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAMA,EAAoB,QACpBC,CAAAA,CAAAA,CAAkB,MAClBC,CAAAA,CAAAA,CAAuB,YACvBC,CAAkB,CAAA,MAAA,CAElBC,EAAe,CAAA,CAACJ,EAAmBC,CAAiBC,CAAAA,CAAAA,CAAsBC,CAAe,CAAA,CACzFE,GAAWC,KAAE,CAAA,IAAA,CAAKF,EAAY,CAAA,CAG9BG,GAAsB,CAACL,CAAoB,CAC3CM,CAAAA,EAAAA,CAAkBF,MAAE,IAAKC,CAAAA,EAAmB,CCV5CE,CAAAA,CAAAA,CAAuB,QAEvBC,EAAgC,CAAA,QAAA,CAChCC,EAAsC,CAAA,CAAC,MAAO,MAAQ,CAAA,MAAA,CAAQ,KAAK,CAAA,CACnEC,GAA0BN,KAAE,CAAA,MAAA,CAAO,CACvC,IAAA,CAAMA,MAAE,OAAQI,CAAAA,EAA6B,CAC7C,CAAA,MAAA,CAAQJ,MAAE,MAAO,EAAA,CACjB,SAAWA,CAAAA,KAAAA,CAAE,KAAKK,EAAmC,CACvD,CAAC,CAAA,CAGKE,GAA6B,KAC7BC,CAAAA,EAAAA,CAAuBR,KAAE,CAAA,MAAA,CAAO,CACpC,IAAMA,CAAAA,KAAAA,CAAE,OAAQO,CAAAA,EAA0B,EAC1C,GAAKP,CAAAA,KAAAA,CAAE,MAAA,EACT,CAAC,CAGKS,CAAAA,EAAAA,CAAoBT,KAAE,CAAA,kBAAA,CAAmB,OAAQ,CAACM,EAAAA,CAAyBE,EAAoB,CAAC,EAGhGE,EAAsB,CAAA,CAAC,KAAO,CAAA,QAAA,CAAU,OAAQ,MAAM,CAAA,CACtDC,EAA6BX,CAAAA,KAAAA,CAAE,KAAKU,EAAmB,CAAA,CAEvDE,EAAe,CAAA,CAA0CC,EAAcb,KAAE,CAAA,SAAA,EAC7EA,GAAAA,KAAAA,CAAE,OAAO,CACP,QAAA,CAAUA,KAAE,CAAA,OAAA,CAAQG,CAAoB,CACxC,CAAA,MAAA,CAAQQ,EACR,CAAA,KAAA,CAAOF,GACP,QAAUI,CAAAA,CACZ,CAAC,CAAA,CC9BGC,GAA2B,WAC3BC,CAAAA,EAAAA,CAAkC,mBAElCC,CAAAA,EAAAA,CAA8B,WAC9BC,EAAsC,CAAA,UAAA,CAEtCC,EAAwBlB,CAAAA,KAAAA,CAAE,OAAO,CACrC,IAAA,CAAMA,KAAE,CAAA,OAAA,CAAQgB,EAA2B,CAC3C,CAAA,QAAA,CAAUhB,KAAE,CAAA,MAAA,GACZ,SAAWA,CAAAA,KAAAA,CAAE,MAAA,EACf,CAAC,CAGKmB,CAAAA,EAAAA,CAAgCnB,KAAE,CAAA,MAAA,CAAO,CAC7C,IAAMA,CAAAA,KAAAA,CAAE,QAAQiB,EAAmC,CAAA,CACnD,KAAMjB,KAAE,CAAA,MAAA,EACV,CAAC,EAGKoB,EAA6BpB,CAAAA,KAAAA,CAAE,kBAAmB,CAAA,MAAA,CAAQ,CAAEkB,EAAuBC,CAAAA,EAA8B,CAAC,CAAA,CAGlHE,GAAmB,CAA0CR,CAAAA,CAAcb,KAAE,CAAA,SAAA,KACjFA,KAAE,CAAA,MAAA,CAAO,CACP,QAAA,CAAUA,MAAE,OAAQc,CAAAA,EAAwB,CAC5C,CAAA,KAAA,CAAOM,GACP,QAAUP,CAAAA,CACZ,CAAC,CAAA,CAIGS,GAA+BtB,KAAE,CAAA,MAAA,CAAO,CAC5C,IAAA,CAAMA,MAAE,OAAQgB,CAAAA,EAA2B,CAC3C,CAAA,QAAA,CAAUE,GAAsB,KAAM,CAAA,QAAA,CAAS,QAAA,EAAA,CAC/C,UAAWA,EAAsB,CAAA,KAAA,CAAM,SAAU,CAAA,QAAA,EACnD,CAAC,CAAA,CACKK,EAAoCvB,CAAAA,KAAAA,CAAE,mBAAmB,MAAQ,CAAA,CACrEsB,EACAH,CAAAA,EACF,CAAC,CAEKK,CAAAA,EAAAA,CAA0B,CAA0CX,CAAAA,CAAcb,MAAE,SAAU,EAAA,GAClGA,KAAE,CAAA,MAAA,CAAO,CACP,QAAUA,CAAAA,KAAAA,CAAE,OAAQe,CAAAA,EAA+B,EACnD,KAAOQ,CAAAA,EAAAA,CACP,QAAUV,CAAAA,CACZ,CAAC,CC9CGY,CAAAA,CAAAA,CAAsB,MAEtBC,CAAAA,EAAAA,CAAc,CAA0Cb,CAAcb,CAAAA,KAAAA,CAAE,SAAA,EAAA,GAC5EA,MAAE,MAAO,CAAA,CACP,QAAUA,CAAAA,KAAAA,CAAE,QAAQyB,CAAmB,CAAA,CACvC,KAAOzB,CAAAA,KAAAA,CAAE,QACT,CAAA,QAAA,CAAUa,CACZ,CAAC,EAEGc,EAA6B,CAAA,cAAA,CAE7BC,EAAqB,CAAA,CAA0Cf,EAAcb,KAAE,CAAA,SAAA,EACnFA,GAAAA,KAAAA,CAAE,OAAO,CACP,QAAA,CAAUA,KAAE,CAAA,OAAA,CAAQ2B,EAA0B,CAC9C,CAAA,KAAA,CAAO3B,KAAE,CAAA,MAAA,GACT,QAAUa,CAAAA,CACZ,CAAC,CAAA,CChBGgB,EAA0B,WAE1BC,CAAAA,EAAAA,CAAkB,CAA0CjB,CAAAA,CAAcb,MAAE,SAAA,EAAA,GAChFA,KAAE,CAAA,MAAA,CAAO,CACP,QAAUA,CAAAA,KAAAA,CAAE,OAAQ6B,CAAAA,CAAuB,EAC3C,KAAO7B,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,KAAM,CAAA,WAAA,GACxB,EAAIA,CAAAA,KAAAA,CAAE,QAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACpB,KAAMA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CACtB,CAAA,SAAA,CAAWA,KAAE,CAAA,MAAA,GACb,QAAUa,CAAAA,CACZ,CAAC,CAAA,CAEGkB,GAAiC,mBAEjCC,CAAAA,EAAAA,CAAyB,CAA0CnB,CAAAA,CAAcb,MAAE,SAAA,EAAA,GACvFA,KAAE,CAAA,MAAA,CAAO,CACP,QAAUA,CAAAA,KAAAA,CAAE,OAAQ+B,CAAAA,EAA8B,EAClD,KAAO/B,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,KAAM,CAAA,WAAA,EACxB,CAAA,EAAA,CAAIA,MAAE,MAAA,EAAA,CAAS,QAAS,EAAA,CACxB,KAAMA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,GACjB,SAAWA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,UACtB,CAAA,QAAA,CAAUa,CACZ,CAAC,ECtBGoB,CAA8B,CAAA,eAAA,CAE9BC,EAAsB,CAAA,CAA0CrB,EAAcb,KAAE,CAAA,SAAA,EACpFA,GAAAA,KAAAA,CAAE,OAAO,CACP,QAAA,CAAUA,KAAE,CAAA,OAAA,CAAQiC,CAA2B,CAC/C,CAAA,KAAA,CAAOjC,KAAE,CAAA,MAAA,GAAS,GAAI,EAAA,CAAE,WAAA,EAAA,CACxB,GAAIA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CACpB,CAAA,IAAA,CAAMA,KAAE,CAAA,MAAA,GAAS,GAAI,CAAA,CAAC,CACtB,CAAA,IAAA,CAAMA,MAAE,MAAA,EAAA,CACR,WAAaA,CAAAA,KAAAA,CAAE,OAAO,CACpB,UAAA,CAAYA,KAAE,CAAA,MAAA,GAAS,GAAI,EAAA,CAAE,WAAA,EAC/B,CAAC,CAAE,CAAA,QAAA,EACH,CAAA,QAAA,CAAUa,CACZ,CAAC,CAAA,CCPGsB,EAAmB,CAAA,CACvBV,EACAtB,CACA0B,CAAAA,CAAAA,CACAI,CACAnB,CAAAA,EACF,EACMsB,EAAepC,CAAAA,KAAAA,CAAE,IAAKmC,CAAAA,EAAgB,EAGtCE,EAAU,CAAA,CAOdC,CAA2BtC,CAAAA,KAAAA,CAAE,WAC7BuC,CAAAA,CAAAA,CAA4BvC,KAAE,CAAA,SAAA,GAC9BwC,CAA+BxC,CAAAA,KAAAA,CAAE,SAAA,EAAA,CACjCyC,EAAmCzC,KAAE,CAAA,SAAA,GACrC0C,CAAiC1C,CAAAA,KAAAA,CAAE,WAEnCA,GAAAA,KAAAA,CAAE,kBAAmB,CAAA,UAAA,CAAY,CAC/B0B,EAAYY,CAAAA,CAAmB,CAC/B1B,CAAAA,EAAAA,CAAa2B,CAAoB,CACjCT,CAAAA,EAAAA,CAAgBU,CAAuB,CAAA,CACvCN,GAAoBO,CAA2B,CAAA,CAC/CpB,EAAiBqB,CAAAA,CAAwB,CAC3C,CAAC,CAAA,CAQGC,EAA0B,CAAA,CAAChB,GAA4BI,EAAgChB,CAAAA,EAA+B,CACtH6B,CAAsB5C,MAAE,IAAK2C,CAAAA,EAAuB,CAGpDE,KAAAA,EAAAA,CAAiB,CAKrBC,CAAkC9C,CAAAA,KAAAA,CAAE,SAAA,EAAA,CACpC+C,EAAsC/C,KAAE,CAAA,SAAA,EACxCgD,CAAAA,CAAAA,CAAgDhD,MAAE,SAAA,EAAA,GAElDA,KAAE,CAAA,kBAAA,CAAmB,WAAY,CAC/B4B,EAAAA,CAAmBkB,CAA0B,CAAA,CAC7Cd,GAAuBe,CAA8B,CAAA,CACrDvB,EAAwBwB,CAAAA,CAA+B,CACzD,CAAC,ECzDGC,IAAAA,EAAAA,CAAU,CASdC,CAAUnD,CAAAA,EAAAA,CACVuC,CAA2BtC,CAAAA,KAAAA,CAAE,WAC7BuC,CAAAA,CAAAA,CAA4BvC,KAAE,CAAA,SAAA,GAC9BwC,CAA+BxC,CAAAA,KAAAA,CAAE,SAAA,EAAA,CACjCyC,EAAmCzC,KAAE,CAAA,SAAA,EACrCmD,CAAAA,CAAAA,CAAsBnD,MAAE,SAAA,EAAA,CACxB0C,CAAyC1C,CAAAA,KAAAA,CAAE,WAE3CA,GAAAA,KAAAA,CAAE,MAAO,CAAA,CACP,KAAMkD,CACN,CAAA,OAAA,CAASlD,KAAE,CAAA,KAAA,CACTqC,GAAQC,CAAqBC,CAAAA,CAAAA,CAAsBC,CAAyBC,CAAAA,CAAAA,CAA6BC,CAAwB,CACnI,CAAA,CACA,QAAUS,CAAAA,CACZ,CAAC,CAWGC,CAAAA,EAAAA,CAAiB,CAOrBF,CAAAA,CAAUhD,GACVoC,CAA2BtC,CAAAA,KAAAA,CAAE,SAAA,EAAA,CAC7BwC,EAA+BxC,KAAE,CAAA,SAAA,EACjC0C,CAAAA,CAAAA,CAAyC1C,MAAE,SAAA,EAAA,CAC3CmD,CAAsBnD,CAAAA,KAAAA,CAAE,WAExBA,GAAAA,KAAAA,CAAE,MAAO,CAAA,CACP,KAAMkD,CACN,CAAA,cAAA,CAAgBL,EAAeP,CAAAA,CAAAA,CAAqBE,EAAyBE,CAAwB,CAAA,CACrG,QAAUS,CAAAA,CACZ,CAAC,CCpDGE,CAAAA,EAAAA,CAAYrD,KAAE,CAAA,MAAA,CAAO,CACzB,YAAcA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,aACzB,CAAA,gBAAA,CAAkBA,MAAE,MAAO,EAAA,CAAE,aAC7B,CAAA,WAAA,CAAaA,KAAE,CAAA,MAAA,GAAS,WAAY,EACtC,CAAC,CAAA,CAGKsD,GAAkBtD,KAAE,CAAA,MAAA,CAAO,CAC/B,KAAA,CAAOA,MAAE,MAAA,EAAA,CACT,OAASA,CAAAA,KAAAA,CAAE,QACX,CAAA,KAAA,CAAOA,KAAE,CAAA,KAAA,CAAMA,MAAE,MAAA,EAAA,CAAS,GAAA,EAAK,EAAE,QAAA,EACnC,CAAC,CAAA,CAGKuD,GAAcD,EAAgB,CAAA,MAAA,CAAO,CACzC,WAAA,CAAatD,MAAE,KAAMsD,CAAAA,EAAe,CACtC,CAAC,EAGKE,EAAexD,CAAAA,KAAAA,CAAE,KAAMuD,CAAAA,EAAW,EAGnBvD,KAAAA,CAAE,MAAO,CAAA,CAC5B,SAAUA,KAAE,CAAA,KAAA,CAAMiD,EAAQ,EAAC,EAC3B,KAAOI,CAAAA,EAAAA,CAAU,QAAS,EAAA,CAC1B,SAAUG,EAAa,CAAA,QAAA,EACzB,CAAC,MAGKC,EAAmBzD,CAAAA,KAAAA,CAAE,MAAO,CAAA,CAChC,aAAcA,KAAE,CAAA,MAAA,EAAS,CAAA,WAAA,GAAc,QAAS,EAAA,CAChD,gBAAkBA,CAAAA,KAAAA,CAAE,QAAS,CAAA,WAAA,EAAc,CAAA,QAAA,GAC3C,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,aAAc,CAAA,QAAA,EACxC,CAAC,EAI2BA,KAAAA,CAAE,MAAO,CAAA,CACnC,gBAAiBA,KAAE,CAAA,KAAA,CAAMoD,EAAAA,EAAgB,EACzC,KAAOK,CAAAA,EAAAA,CAAiB,QAAA,EAAA,CACxB,SAAUD,EAAa,CAAA,QAAA,EACzB,CAAC,MC3CKE,EAAS,CAAA,CACbA,CAAY1D,CAAAA,KAAAA,CAAE,OAAOA,KAAE,CAAA,MAAA,EAAUA,CAAAA,KAAAA,CAAE,KAAK,CAAA,CAAE,QAAA,EAAA,GACvC0D,ECDCC,EAAsB,CAAA,CAAC,QAAU,CAAA,OAAA,CAAS,SAAU,QAAU,CAAA,SAAA,CAAW,MAAM,CAAA,CAC/EC,GAA6B5D,KAAE,CAAA,IAAA,CAAK2D,EAAmB,CAAA,CAGvDE,GAAyB7D,KAAE,CAAA,MAAA,CAAO,CACtC,KAAA,CAAOA,MAAE,KAAMA,CAAAA,KAAAA,CAAE,KAAK,CAAA,CAAE,UACxB,CAAA,IAAA,CAAMA,KAAE,CAAA,KAAA,CAAM,CAAC4D,EAA4B5D,CAAAA,KAAAA,CAAE,KAAMA,CAAAA,KAAAA,CAAE,MAAM,CAAC4D,EAAAA,CAA4B5D,KAAE,CAAA,OAAA,CAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA,QAAA,EAC/G,CAAA,OAAA,CAASA,MAAE,GAAA,EAAA,CAAM,QAAS,EAAA,CAC1B,MAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,GAClB,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,IAAI,IAAI,CAAA,CAAE,QAAA,EAAA,CAClC,WAAYA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAE,CAAA,QAAA,EAC9B,CAAA,QAAA,CAAUA,MAAE,KAAMA,CAAAA,KAAAA,CAAE,MAAO,EAAC,EAAE,QAAS,EAAA,CACvC,QAAUA,CAAAA,KAAAA,CAAE,QAAS,CAAA,GAAA,EAAM,CAAA,GAAA,CAAI,CAAC,CAAE,CAAA,QAAA,EAClC,CAAA,QAAA,CAAUA,MAAE,MAAO,EAAA,CAAE,GAAA,EAAA,CAAM,UAC3B,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,CAAOA,MAAE,GAAA,EAAK,CAAE,CAAA,QAAA,GACzB,IAAMA,CAAAA,KAAAA,CAAE,KAAMA,CAAAA,KAAAA,CAAE,MAAM,CAACA,KAAAA,CAAE,MAAO,EAAA,CAAGA,MAAE,MAAO,EAAA,CAAGA,KAAE,CAAA,OAAA,GAAWA,KAAE,CAAA,IAAA,EAAM,CAAC,CAAC,CAAE,CAAA,QAAA,EACxE,CAAA,OAAA,CAASA,MAAE,MAAA,EAAA,CAAS,QAAA,EAAA,CACpB,QAASA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,GACpB,SAAWA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,CAAE,UACnC,CAAA,SAAA,CAAWA,KAAE,CAAA,MAAA,GAAS,GAAA,EAAA,CAAM,QAAA,EAAA,CAC5B,KAAMA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,EACnB,CAAC,CAAA,CAGK8D,EAA0B9D,CAAAA,KAAAA,CAAE,OAAO,CACvC,IAAA,CAAMA,MAAE,IAAK,CAAA,CAAC,QAAQ,CAAC,CAAA,CACvB,QAAUA,CAAAA,KAAAA,CAAE,MAAMA,KAAE,CAAA,MAAA,EAAQ,CAAA,CAC5B,MAAOA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAE,CAAA,QAAA,EACzB,CAAA,UAAA,CAAYA,MAAE,MAAO6D,CAAAA,EAAsB,CAC3C,CAAA,oBAAA,CAAsB7D,MAAE,OAAQ,CAAA,CAAA,CAAK,CACvC,CAAC,EAGK+D,EAAiB/D,CAAAA,KAAAA,CACpB,MAAO,CAAA,CACN,KAAMA,KACH,CAAA,MAAA,EACA,CAAA,KAAA,CAAM,sBAAsB,CAC5B,CAAA,GAAA,CAAI,EAAE,CAAA,CACT,YAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,IAAI,CAChC,CAAA,MAAA,CAAQA,KAAE,CAAA,OAAA,GAAU,QAAS,EAAA,CAC7B,MAAQ8D,CAAAA,EACV,CAAC,CACA,CAAA,QAAA,EC5CGE,CAAAA,CAAAA,CAA+B,OAC/BC,CAAgC,CAAA,OAAA,CAEhCC,EAA4B,CAAA,CAACF,EAA8BC,CAA6B,CAAA,CACxFE,EAAwBnE,CAAAA,KAAAA,CAAE,KAAKkE,EAAyB,CAAA,CAGxDE,EAAwBpE,CAAAA,KAAAA,CAAE,MAAMA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAGjDqE,EAAyBrE,CAAAA,KAAAA,CAAE,MAAMA,KAAE,CAAA,KAAA,CAAMA,KAAE,CAAA,MAAA,GAAS,GAAA,EAAA,CAAM,WAAA,EAAa,CAAC,CAGxEsE,CAAAA,EAAAA,CAAoB,CAA0CzD,CAAAA,CAAcb,MAAE,SAAA,EAAA,GAClFA,KAAE,CAAA,kBAAA,CAAmB,WAAY,CAC/BA,KAAAA,CAAE,MAAO,CAAA,CACP,SAAUA,KAAE,CAAA,OAAA,CAAQgE,CAA4B,CAAA,CAChD,SAAUnD,CACV,CAAA,QAAA,CAAUuD,EACZ,CAAC,EACDpE,KAAE,CAAA,MAAA,CAAO,CACP,QAAA,CAAUA,MAAE,OAAQiE,CAAAA,CAA6B,CACjD,CAAA,QAAA,CAAUpD,EACV,QAAUwD,CAAAA,EACZ,CAAC,CACH,CAAC,CCzBGE,CAAAA,EAAAA,CAAwB,OACxBC,CAAAA,EAAAA,CAAiBxE,MAAE,MAAO,CAAA,CAC9B,KAAOA,CAAAA,KAAAA,CAAE,QAAS,CAAA,GAAA,EAAM,CAAA,WAAA,GACxB,SAAWA,CAAAA,KAAAA,CAAE,MAAMA,KAAE,CAAA,MAAA,EAAQ,CAC/B,CAAC,CAGKyE,CAAAA,EAAAA,CAAyB,SACzBC,EAAkB1E,CAAAA,KAAAA,CAAE,MAAO,CAAA,CAC/B,MAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,GAAM,WAAA,EAAA,CACxB,SAAWA,CAAAA,KAAAA,CAAE,QAAS,CAAA,MAAA,EACxB,CAAC,EAGK2E,EAAkB3E,CAAAA,KAAAA,CAAE,MAAO,CAAA,CAC/B,YAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,GAAM,WAAA,EAChC,CAAC,CAAA,CAGyBA,KAAE,CAAA,kBAAA,CAAmB,gBAAkB,CAAA,CAC/DA,MAAE,MAAO,CAAA,CACP,cAAgBA,CAAAA,KAAAA,CAAE,QAAQuE,EAAqB,CAAA,CAC/C,UAAYvE,CAAAA,KAAAA,CAAE,MAAMwE,EAAc,CAAA,CAClC,KAAOG,CAAAA,EAAAA,CAAgB,UACzB,CAAC,CACD3E,CAAAA,KAAAA,CAAE,OAAO,CACP,cAAA,CAAgBA,KAAE,CAAA,OAAA,CAAQyE,EAAsB,CAChD,CAAA,UAAA,CAAYzE,KAAE,CAAA,KAAA,CAAM0E,EAAe,CACnC,CAAA,KAAA,CAAOC,EAAgB,CAAA,QAAA,EACzB,CAAC,CACH,CAAC,CAAA,KChCKC,GAAiBC,CAAiB,EAAA,CACtC,IAAMC,CAAAA,CAAO,IAAI,OACjB,CAAA,OAAO,IAAK,CAAA,SAAA,CAAUD,EAAK,CAACE,CAAAA,CAAKC,CAAU,GAAA,CACzC,GAAI,OAAOA,CAAAA,EAAU,QAAYA,EAAAA,CAAAA,GAAU,KAAM,CAC/C,GAAIF,CAAK,CAAA,GAAA,CAAIE,CAAK,CAChB,CAAA,OAEFF,CAAK,CAAA,GAAA,CAAIE,CAAK,EAChB,CACA,OAAOA,CACT,CAAC,CACH,CAAA,CAEMC,EAAmBC,CAAAA,CAAAA,EACnBA,GAAS,IAAa,CAAA,eAAA,CACtB,OAAOA,CAAAA,EAAU,SAAiBA,CAClCA,CAAAA,CAAAA,YAAiB,KAAcA,CAAAA,CAAAA,CAAM,QAClCN,EAAcM,CAAAA,CAAK,CAGtBC,CAAAA,EAAAA,CAA0B,mBAC1BC,CAAN,CAAA,MAAMC,EAAyB,SAAA,KAAM,CAKnC,WAAY,CAAA,CAAE,IAAAC,CAAAA,CAAAA,CAAM,MAAAC,CAAM,CAAA,CAAqCC,CAAe,CAAA,CAC5E,MAAM,CAAIA,CAAAA,EAAAA,CAAAA,EAAA,KAAAA,CAAQL,CAAAA,EAAuB,MAAMG,CAAI,CAAA;WAAcL,EAAgBM,CAAAA,CAAK,CAAC,CAAA,CAAE,CAL3F,CAAA,IAAA,CAAS,IAAeJ,CAAAA,EAAAA,CAMtB,IAAK,CAAA,IAAA,CAAOG,CACZ,CAAA,IAAA,CAAK,KAAQC,CAAAA,CAAAA,CACb,IAAK,CAAA,IAAA,CAAOC,CAAA,EAAA,IAAA,CAAAA,CAAQL,CAAAA,EAAAA,CACpB,MAAO,CAAA,cAAA,CAAe,IAAM,CAAA,GAAA,CAAA,MAAA,CAAW,SAAS,EAClD,CAEA,OAAO,kBAAmBD,CAAAA,CAAAA,CAA2C,CACnE,OAAOA,CAAAA,YAAiBG,EAC1B,CAEA,MAAiB,EAAA,CACf,OAAO,CACL,IAAM,CAAA,IAAA,CAAK,IACX,CAAA,IAAA,CAAM,IAAK,CAAA,IAAA,CACX,KAAO,CAAA,IAAA,CAAK,KACZ,CAAA,OAAA,CAAS,IAAK,CAAA,OAAA,CACd,KAAO,CAAA,IAAA,CAAK,KACd,CACF,CACF,CAAA,CCzCMI,EAA0BzF,CAAAA,KAAAA,CAC7B,MAAO,CAAA,CACN,qBAAsBA,KAAE,CAAA,MAAA,EAAS,CAAA,WAAA,EAAc,CAAA,QAAA,CAAS,2BAA2B,CAAA,CACnF,qBAAuBA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,WAAA,EAAA,CAAc,QAAS,CAAA,4BAA4B,CACvF,CAAC,CACA,CAAA,QAAA,CAAS,kGAAkG,CAAA,CAQxG0F,EAA0B1F,CAAAA,KAAAA,CAC7B,MAAO,CAAA,CACN,IAAMyF,CAAAA,EAAAA,CAAwB,QAAS,CAAA,2CAAsC,CAE/E,CAAC,CAAA,CACA,QAAS,CAAA,yGAAyG,CAU/GE,CAAAA,EAAAA,CAA2B3F,KAC9B,CAAA,MAAA,CAAO,CACN,SAAA,CAAWA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,EAAM,CAAA,WAAA,EAAc,CAAA,QAAA,CAAS,4CAA4C,CAAA,CAC/F,SAAWA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,EAAA,CAAE,QAAA,EAAA,CAAW,QAAA,EAAA,CAAW,SAAS,mDAA8C,CAAA,CACzG,MAAQ0F,CAAAA,EAAAA,CAAwB,QAAS,CAAA,2DAA2D,CACtG,CAAC,CACA,CAAA,MAAA,CAAQE,CAAMA,EAAAA,CAAAA,CAAE,SAAc,GAAA,IAAA,EAAS,OAAOA,CAAAA,CAAE,SAAc,EAAA,QAAA,EAAYA,CAAE,CAAA,SAAA,CAAYA,CAAE,CAAA,SAAA,CAAY,CACrG,OAAA,CAAS,uDACT,CAAA,IAAA,CAAM,CAAC,WAAW,CACpB,CAAC,EACA,QAAS,CAAA,uEAAuE,CAW7EC,CAAiB7F,KACpB,CAAA,MAAA,CAAO,CACN,SAAA,CAAWA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,CAAS,sCAAsC,CAAA,CACrE,QAAUA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,OAAQ,CAAA,KAAK,CAAE,CAAA,QAAA,CAAS,4BAA4B,CAAA,CACzE,WAAaA,CAAAA,KAAAA,CACV,KAAM2F,CAAAA,EAAwB,CAC9B,CAAA,GAAA,CAAI,CAAC,CACL,CAAA,QAAA,CAAS,2EAA2E,CACzF,CAAC,CAAA,CACA,WAAY,CAAA,CAACG,CAAMC,CAAAA,CAAAA,GAAQ,CAC1B,GAAM,CAAE,WAAA,CAAAC,CAAY,CAAA,CAAIF,CAGpBE,CAAAA,CAAAA,CAAY,CAAC,CAAA,CAAE,SAAc,GAAA,CAAA,EAC/BD,CAAI,CAAA,QAAA,CAAS,CACX,IAAA,CAAM/F,KAAE,CAAA,YAAA,CAAa,MACrB,CAAA,IAAA,CAAM,CAAC,aAAA,CAAe,CAAG,CAAA,WAAW,CACpC,CAAA,OAAA,CAAS,yCACX,CAAC,CAIH,CAAA,IAAA,IAASiG,CAAI,CAAA,CAAA,CAAGA,CAAID,CAAAA,CAAAA,CAAY,MAAQC,CAAAA,CAAAA,EAAAA,CAAK,CAC3C,IAAMC,CAAOF,CAAAA,CAAAA,CAAYC,CAAI,CAAA,CAAC,CACxBE,CAAAA,CAAAA,CAAOH,CAAYC,CAAAA,CAAC,CAE1B,CAAA,GAAIC,CAAK,CAAA,SAAA,GAAc,IAAM,CAAA,CAC3BH,EAAI,QAAS,CAAA,CACX,IAAM/F,CAAAA,KAAAA,CAAE,YAAa,CAAA,MAAA,CACrB,IAAM,CAAA,CAAC,aAAeiG,CAAAA,CAAAA,CAAI,CAAG,CAAA,WAAW,CACxC,CAAA,OAAA,CAAS,0EACX,CAAC,CACD,CAAA,KACF,CAEIE,CAAAA,CAAK,SAAcD,GAAAA,CAAAA,CAAK,SAC1BH,EAAAA,CAAAA,CAAI,QAAS,CAAA,CACX,IAAM/F,CAAAA,KAAAA,CAAE,YAAa,CAAA,MAAA,CACrB,KAAM,CAAC,aAAA,CAAeiG,CAAG,CAAA,WAAW,CACpC,CAAA,OAAA,CAAS,CAAQA,KAAAA,EAAAA,CAAC,CAAeE,YAAAA,EAAAA,CAAAA,CAAK,SAAS,CAAA,wCAAA,EAA2CD,CAAK,CAAA,SAAS,CAC1G,iBAAA,CAAA,CAAC,CAICC,CAAAA,CAAAA,CAAK,SAAYD,CAAAA,CAAAA,CAAK,SACxBH,EAAAA,CAAAA,CAAI,QAAS,CAAA,CACX,IAAM/F,CAAAA,KAAAA,CAAE,YAAa,CAAA,MAAA,CACrB,IAAM,CAAA,CAAC,cAAeiG,CAAG,CAAA,WAAW,CACpC,CAAA,OAAA,CAAS,CAA2DA,wDAAAA,EAAAA,CAAC,CAAKE,EAAAA,EAAAA,CAAAA,CAAK,SAAS,CAAA,qBAAA,EAAwBF,CAAI,CAAA,CAAC,CAAKC,EAAAA,EAAAA,CAAAA,CAAK,SAAS,CAAA,EAAA,CAC1I,CAAC,EAEL,CAGA,IAAME,CAAOJ,CAAAA,CAAAA,CAAYA,CAAY,CAAA,MAAA,CAAS,CAAC,CAAA,CAE3CA,CAAY,CAAA,KAAA,CAAOJ,CAAMA,EAAAA,CAAAA,CAAE,SAAc,GAAA,IAAA,EAAQA,CAAMQ,GAAAA,CAAI,CAAKA,EAAAA,CAAAA,CAAK,SAAc,GAAA,IAAA,EACrFL,CAAI,CAAA,QAAA,CAAS,CACX,IAAA,CAAM/F,KAAE,CAAA,YAAA,CAAa,MACrB,CAAA,IAAA,CAAM,CAAC,aAAA,CAAegG,CAAY,CAAA,MAAA,CAAS,CAAG,CAAA,WAAW,CACzD,CAAA,OAAA,CAAS,oEACX,CAAC,EAEL,CAAC,CACA,CAAA,QAAA,CAAS,yFAAyF,CAAA,KCrH/FK,GAAsB,WAAtBA,IAGAC,EAAgCtG,CAAAA,KAAAA,CAAE,IAAK,CAAA,CAAC,QAAU,CAAA,OAAA,CAAS,QAAU,CAAA,QAAA,CAAU,SAAW,CAAA,MAAM,CAAC,CAAA,CAGjGuG,EAAoBvG,CAAAA,KAAAA,CAAE,MAAO,CAAA,CACjC,KAAOA,CAAAA,KAAAA,CAAE,KAAMA,CAAAA,KAAAA,CAAE,GAAA,EAAK,CAAE,CAAA,QAAA,EACxB,CAAA,IAAA,CAAMsG,EAA8B,CAAA,QAAA,GACpC,OAAStG,CAAAA,KAAAA,CAAE,GAAA,EAAA,CAAM,QAAS,EAAA,CAC1B,KAAOA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,QAAA,EAAA,CAClB,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,IAAI,CAAE,CAAA,QAAA,EAClC,CAAA,UAAA,CAAYA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAA,CAAE,QAAS,EAAA,CACvC,SAAUA,KAAE,CAAA,KAAA,CAAMA,KAAE,CAAA,MAAA,EAAQ,CAAA,CAAE,QAAS,EAAA,CACvC,QAAUA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAA,EAAA,CAAM,GAAI,CAAA,CAAC,CAAE,CAAA,QAAA,EAClC,CAAA,QAAA,CAAUA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,EAAM,CAAA,QAAA,EAC3B,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAA,CAAE,QAAS,EAAA,CAClC,IAAMA,CAAAA,KAAAA,CAAE,KAAMA,CAAAA,KAAAA,CAAE,KAAM,CAAA,CAACA,KAAE,CAAA,MAAA,EAAUA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAGA,KAAE,CAAA,OAAA,EAAWA,CAAAA,KAAAA,CAAE,IAAA,EAAM,CAAC,CAAC,CAAE,CAAA,QAAA,EACxE,CAAA,OAAA,CAASA,KAAE,CAAA,MAAA,GAAS,QAAA,EAAA,CACpB,OAASA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA,CAC7B,SAAWA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAA,EAAA,CAAM,GAAI,CAAA,CAAC,CAAE,CAAA,QAAA,EACnC,CAAA,SAAA,CAAWA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,EAAM,CAAA,QAAA,EAC9B,CAAC,CAGKwG,CAAqBxG,MAAE,MAAO,CAAA,CAClC,IAAMA,CAAAA,KAAAA,CAAE,IAAK,CAAA,CAAC,QAAQ,CAAC,CACvB,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,QAAA,EAClB,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAA,CAAE,QAAS,EAAA,CAClC,UAAYA,CAAAA,KAAAA,CAAE,MAAOuG,CAAAA,EAAiB,CAAE,CAAA,QAAA,GACxC,QAAUvG,CAAAA,KAAAA,CAAE,KAAMA,CAAAA,KAAAA,CAAE,MAAA,EAAQ,CAAE,CAAA,QAAA,EAChC,CAAC,CAGKyG,KAAAA,EAAAA,CAAWzG,KAAE,CAAA,MAAA,CAAO,CACxB,IAAA,CAAMA,KACH,CAAA,MAAA,EACA,CAAA,KAAA,CAAM,sBAAsB,CAAA,CAC5B,GAAI,CAAA,EAAE,CACT,CAAA,WAAA,CAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,IAAI,CAChC,CAAA,UAAA,CAAYA,KAAE,CAAA,GAAA,EACd,CAAA,MAAA,CAAQA,KAAE,CAAA,OAAA,EAAU,CAAA,QAAA,EACtB,CAAC,EA1CKqG,IA8CAK,EAAmB1G,CAAAA,KAAAA,CAAE,IAAK,CAAA,CAAC,UAAU,CAAC,CAGtC2G,CAAAA,EAAAA,CAAmB3G,KAAE,CAAA,MAAA,CAAO,CAChC,WAAA,CAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,GAAM,QAAA,EAAA,CAC9B,YAAcA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAA,EAAA,CAAM,QAAS,EAAA,CACxC,iBAAmBA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAA,EAAA,CAAM,QAAA,EACtC,CAAC,CAAA,CAEK4G,EAAsB5G,CAAAA,KAAAA,CAAE,MAAO,CAAA,CACnC,IAAMA,CAAAA,KAAAA,CAAE,OAAQ,CAAA,MAAM,CACtB,CAAA,MAAA,CAAQA,MAAE,IAAK,CAAA,CAAC,KAAO,CAAA,MAAM,CAAC,CAAA,CAC9B,GAAKA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,EAAA,CACpB,QAAUA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAA,EAAA,CAAM,QAAA,EAAA,CAC3B,OAASA,CAAAA,KAAAA,CAAE,MAAOA,CAAAA,KAAAA,CAAE,MAAO,EAAC,CAAE,CAAA,QAAA,EAC9B,CAAA,KAAA,CAAOA,MAAE,MAAOA,CAAAA,KAAAA,CAAE,MAAA,EAAQ,CAAE,CAAA,QAAA,EAC5B,CAAA,IAAA,CAAMA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,GAAA,EAAK,CAAA,CAAE,QAAS,EAAA,CACjC,KAAO2G,CAAAA,EAAAA,CAAiB,QAAA,EAC1B,CAAC,CAAA,CAEKE,EAAc7G,CAAAA,KAAAA,CAAE,kBAAmB,CAAA,MAAA,CAAQ,CAAC4G,EAAmB,CAAC,CAAA,CAEhEE,EAAe9G,CAAAA,KAAAA,CAAE,MAAO,CAAA,CAC5B,IAAM0G,CAAAA,EAAAA,CACN,UAAY1G,CAAAA,KAAAA,CAAE,MAAO,CAAA,CACnB,MAAQyG,CAAAA,EACV,CAAC,CAAA,CACD,WAAaI,CAAAA,EAAAA,CAAY,QAAA,EAC3B,CAAC,CAAA,CCxEKE,EAAe,CAAA,CAACV,EAAmB,CAAA,CACxBrG,KAAAA,CAAE,IAAK+G,CAAAA,EAAY,CAG9BC,KAAAA,EAAAA,CAAO,CAA2BC,CAAAA,CAA4BjH,MAAE,SAAU,EAAA,GAC9EA,KAAE,CAAA,kBAAA,CAAmB,MAAQ,CAAA,CAAC8G,EAAa,CAAA,MAAA,CAAO,CAAE,QAAA,CAAUG,CAAqB,CAAC,CAAC,CAAC,CCqBlFC,CAAAA,EAAAA,CAAqBC,CAClBzF,EAAAA,EAAAA,EAAc,CAAA,KAAA,CAAM,CACzB,QAAA,CAAUD,CACV,CAAA,KAAA,CAAO0F,CACT,CAAC,CAGGC,CAAAA,EAAAA,CAAwB,CAACC,CAAAA,CAAeC,EAAY9B,CAAc+B,CAAAA,CAAAA,GAC/DzF,EAAgB,EAAA,CAAE,KAAM,CAAA,CAC7B,QAAUD,CAAAA,CAAAA,CACV,KAAOwF,CAAAA,CAAAA,CACP,EAAIC,CAAAA,CAAAA,CACJ,IAAM9B,CAAAA,CAAAA,CACN,SAAW+B,CAAAA,CACb,CAAC,EAdGL,IA2FAM,EAAAA,CAA2B,CAACC,CAAAA,CAAoBN,CAC7C/D,GAAAA,EAAAA,EAAiB,CAAA,KAAA,CAAM,CAC5B,IAAA,CAAMqE,CACN,CAAA,cAAA,CAAgB7F,IAAqB,CAAA,KAAA,CAAM,CACzC,QAAA,CAAUD,EACV,CAAA,KAAA,CAAOwF,CACT,CAAC,CACH,CAAC,CAGGO,CAAAA,EAAAA,CAA+B,CAACD,CAAAA,CAAoBJ,CAAeC,CAAAA,CAAAA,CAAa9B,CAAe+B,CAAAA,CAAAA,GAC5FnE,EAAAA,EAAAA,CAAiB,KAAM,CAAA,CAC5B,IAAMqE,CAAAA,CAAAA,CACN,cAAgBzF,CAAAA,EAAAA,EAAyB,CAAA,KAAA,CAAM,CAC7C,QAAA,CAAUD,EACV,CAAA,KAAA,CAAOsF,CACP,CAAA,EAAA,CAAIC,CACJ,CAAA,IAAA,CAAM9B,CACN,CAAA,SAAA,CAAW+B,CACb,CAAC,CACH,CAAC,CC3IGI,CAAAA,IAAAA,EAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,qBAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,cAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,oBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,IAAAA,CAAAA,IAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,IAAAA,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAuB,eAChBC,CAAAA,CAAAA,CAAN,MAAMC,EAAAA,SAAsBzC,CAAiB,CAKlD,WAAY,CAAA,CAAE,IAAAE,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAqC,CAAA,CAC7D,KAAM,CAAA,CAAE,IAAAD,CAAAA,CAAAA,CAAM,MAAAC,CAAM,CAAA,CAAGoC,EAAoB,CAAA,CAL7C,IAAS,CAAA,IAAA,CAAOA,EAMd,CAAA,IAAA,CAAK,IAAOrC,CAAAA,CAAAA,CACZ,IAAK,CAAA,KAAA,CAAQC,EACf,CAEA,OAAO,eAAA,CAAgBL,CAAwC,CAAA,CAC7D,OAAOA,CAAAA,YAAiB2C,EAC1B,CACF,CCfMC,CAAAA,IAAAA,EAA4B,CAAA,oBAAA,CACrBC,CAAN,CAAA,MAAMC,EAA2B5C,SAAAA,CAAiB,CAKvD,WAAY,CAAA,CAAE,IAAAE,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAqC,CAAA,CAC7D,KAAM,CAAA,CAAE,IAAAD,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAGuC,CAAAA,EAAyB,CALlD,CAAA,IAAA,CAAS,IAAOA,CAAAA,EAAAA,CAMd,IAAK,CAAA,KAAA,CAAQvC,CACb,CAAA,IAAA,CAAK,IAAOD,CAAAA,EACd,CAEA,OAAO,oBAAqBJ,CAAAA,CAAAA,CAA6C,CACvE,OAAOA,CAAAA,YAAiB8C,EAC1B,CACF,CCfMC,CAAAA,EAAAA,CAAkC,0BAC3BC,CAAAA,CAAAA,CAAN,MAAMC,EAAAA,SAAiC/C,CAAiB,CAK7D,WAAY,CAAA,CAAE,IAAAE,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAqC,CAAA,CAC7D,KAAM,CAAA,CAAE,IAAAD,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAG0C,CAAAA,EAA+B,CALxD,CAAA,IAAA,CAAS,IAAOA,CAAAA,EAAAA,CAMd,IAAK,CAAA,KAAA,CAAQ1C,CACb,CAAA,IAAA,CAAK,IAAOD,CAAAA,CAAAA,CACZ,MAAO,CAAA,cAAA,CAAe,IAAM,CAAA,GAAA,CAAA,MAAA,CAAW,SAAS,EAClD,CAEA,OAAO,0BAA2BJ,CAAAA,CAAAA,CAAmD,CACnF,OAAOA,CAAiBiD,YAAAA,EAC1B,CACF,CAAA,CChBMC,EAA4B,CAAA,oBAAA,CACrBC,CAAN,CAAA,MAAMC,EAA2BlD,SAAAA,CAAiB,CAKvD,WAAA,CAAY,CAAE,IAAAE,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAqC,CAAA,CAC7D,KAAM,CAAA,CAAE,IAAAD,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAG6C,CAAAA,EAAyB,CALlD,CAAA,IAAA,CAAS,IAAOA,CAAAA,EAAAA,CAMd,IAAK,CAAA,KAAA,CAAQ7C,CACb,CAAA,IAAA,CAAK,IAAOD,CAAAA,CAAAA,CACZ,MAAO,CAAA,cAAA,CAAe,IAAM,CAAA,GAAA,CAAA,MAAA,CAAW,SAAS,EAClD,CAEA,OAAO,oBAAA,CAAqBJ,CAA6C,CAAA,CACvE,OAAOA,CAAAA,YAAiBoD,EAC1B,CACF,CChBMC,CAAAA,EAAAA,CAA8B,sBACvBC,CAAAA,CAAAA,CAAN,MAAMC,EAAAA,SAA6BrD,CAAiB,CAKzD,WAAY,CAAA,CAAE,IAAAE,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAqC,CAAA,CAC7D,KAAM,CAAA,CAAE,IAAAD,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,EAAGgD,EAA2B,CAAA,CALpD,IAAS,CAAA,IAAA,CAAOA,EAMd,CAAA,IAAA,CAAK,KAAQhD,CAAAA,CAAAA,CACb,IAAK,CAAA,IAAA,CAAOD,CACZ,CAAA,MAAA,CAAO,cAAe,CAAA,IAAA,CAAM,GAAW,CAAA,MAAA,CAAA,SAAS,EAClD,CAEA,OAAO,sBAAA,CAAuBJ,CAA+C,CAAA,CAC3E,OAAOA,CAAAA,YAAiBuD,EAC1B,CACF,CChBMC,CAAAA,EAAAA,CAA2B,mBACpBC,CAAAA,EAAAA,CAAN,MAAMC,EAA0BxD,SAAAA,CAAiB,CAKtD,WAAA,CAAY,CAAE,IAAA,CAAAE,CAAM,CAAA,KAAA,CAAAC,CAAM,CAAA,CAAqC,CAC7D,KAAA,CAAM,CAAE,IAAA,CAAAD,CAAM,CAAA,KAAA,CAAAC,CAAM,CAAA,CAAGmD,EAAwB,CAAA,CALjD,IAAS,CAAA,IAAA,CAAOA,EAMd,CAAA,IAAA,CAAK,KAAQnD,CAAAA,CAAAA,CACb,IAAK,CAAA,IAAA,CAAOD,CACZ,CAAA,MAAA,CAAO,eAAe,IAAM,CAAA,GAAA,CAAA,MAAA,CAAW,SAAS,EAClD,CAEA,OAAO,mBAAoBJ,CAAAA,CAAAA,CAA4C,CACrE,OAAOA,CAAiB0D,YAAAA,EAC1B,CACF,CAAA,CChBMC,EAAuC,CAAA,+BAAA,CAChCC,EAAN,CAAA,MAAMC,EAAsC3D,SAAAA,CAAiB,CAKlE,WAAA,CAAY,CAAE,IAAA,CAAAE,CAAM,CAAA,KAAA,CAAAC,CAAM,CAAA,CAAqC,CAC7D,KAAA,CAAM,CAAE,IAAAD,CAAAA,CAAAA,CAAM,KAAAC,CAAAA,CAAM,CAAGsD,CAAAA,EAAoC,CAL7D,CAAA,IAAA,CAAS,IAAOA,CAAAA,EAAAA,CAMd,IAAK,CAAA,IAAA,CAAOvD,CACZ,CAAA,IAAA,CAAK,KAAQC,CAAAA,CAAAA,CACb,MAAO,CAAA,cAAA,CAAe,IAAM,CAAA,GAAA,CAAA,MAAA,CAAW,SAAS,EAClD,CAEA,OAAO,+BAAgCL,CAAAA,CAAAA,CAAwD,CAC7F,OAAOA,CAAiB6D,YAAAA,EAC1B,CACF,CChBMC,CAAAA,EAAAA,CAAmC,cAEnCC,CAAAA,EAAAA,CAA2BjJ,KAAE,CAAA,MAAA,CAAO,CACxC,IAAA,CAAMA,KAAE,CAAA,OAAA,CAAQgJ,EAAgC,CAAA,CAChD,KAAOhJ,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CACvB,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACvB,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,GAAG,CAAA,CACtC,GAAKA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,EAAA,CAAE,QAAS,EACjC,CAAC,CAAA,CAGKkJ,EAA+BC,CAAAA,CAAAA,EAAgBnJ,KAAE,CAAA,KAAA,CAAMA,KAAE,CAAA,MAAA,EAAQ,CAAA,CAAE,GAAImJ,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,EAAE,CAAE,CAAA,QAAA,GAGxFC,EAAyBtD,CAAAA,CAAAA,GACtB,CACL,GAAA,CAAKmD,EAAyB,CAAA,KAAA,CAAMI,CAAA,CAAA,CAClC,IAAML,CAAAA,EAAAA,CACHlD,CAAAA,CAAAA,CACJ,CAAA,CACD,MAAQoD,CAAAA,EAAAA,CAA4BpD,CAAK,CAAA,GAAG,CAC9C,CAAA,CAAA,CCrBIwD,EAAoC,CAAA,eAAA,CAEpCC,EAA4BvJ,CAAAA,KAAAA,CAAE,MAAO,CAAA,CACzC,IAAMA,CAAAA,KAAAA,CAAE,OAAQsJ,CAAAA,EAAiC,EACjD,KAAOtJ,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,CAAC,CACvB,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACvB,WAAaA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,GAAG,CAAA,CACtC,YAAcA,CAAAA,KAAAA,CAAE,GAAI,EACtB,CAAC,CAAA,CAGKwJ,GAAyDC,CAA2BA,EAAAA,CAAAA,CAAO,QAAA,EAAA,CAK3FC,EAA0B5D,CAAAA,CAAAA,GACvB,CACL,GAAA,CAAKyD,EAA0B,CAAA,KAAA,CAAMF,CAAA,CAAA,CACnC,IAAMC,CAAAA,EAAAA,CACHxD,CAAAA,CACJ,CAAA,CAAA,CACD,MAAQ0D,CAAAA,EAAAA,CAA6B1D,CAAK,CAAA,YAAY,CACxD,CAAA,CAAA,CCvBI6D,EAA6B,CAAA,OAAA,CAE7BC,EAAqB5J,CAAAA,KAAAA,CAAE,MAAO,CAAA,CAClC,IAAMA,CAAAA,KAAAA,CAAE,OAAQ2J,CAAAA,EAA0B,CAC1C,CAAA,KAAA,CAAO3J,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACvB,KAAOA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CACvB,CAAA,WAAA,CAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CAAE,GAAI,CAAA,GAAG,CACtC,CAAA,GAAA,CAAKA,KAAE,CAAA,MAAA,GAAS,GAAI,EAAA,CACpB,GAAKA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,EAAA,CACpB,IAAMA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,QAAS,EAAA,CAC1B,OAASA,CAAAA,KAAAA,CAAE,MAAO,EACpB,CAAC,CAAA,CAGK6J,EAAwB,CAAA,CAACC,CAAaX,CAAAA,CAAAA,CAAaY,CAAcC,CAAAA,CAAAA,GACrEhK,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI8J,CAAG,CAAE,CAAA,GAAA,CAAIX,CAAG,CAAA,CAAE,IAAKY,CAAAA,CAAI,CAAE,CAAA,OAAA,CAAQC,CAAY,CAAA,CAAE,QAAA,EAAA,CAG1DC,CAAmBnE,CAAAA,CAAAA,GAChB,CACL,GAAA,CAAK8D,EAAmB,CAAA,KAAA,CAAMP,CAAA,CAAA,CAC5B,IAAMM,CAAAA,EAAAA,CACH7D,CAAAA,CACJ,CAAA,CAAA,CACD,MAAQ+D,CAAAA,EAAAA,CAAsB/D,CAAK,CAAA,GAAA,CAAKA,EAAK,GAAKA,CAAAA,CAAAA,CAAK,IAAMA,CAAAA,CAAAA,CAAK,OAAO,CAC3E,CCzBIoE,CAAAA,CAAAA,EAAAA,CAAqC,gBAErCC,CAAAA,EAAAA,CAA6BnK,KAAE,CAAA,MAAA,CAAO,CAC1C,IAAA,CAAMA,KAAE,CAAA,OAAA,CAAQkK,EAAkC,CAAA,CAClD,KAAOlK,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,CAAC,CACvB,CAAA,KAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACvB,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,GAAG,CAAA,CACtC,OAASA,CAAAA,KAAAA,CAAE,OAAA,EAAA,CAAU,QAAA,EACvB,CAAC,CAAA,CAGKoK,EAAiCJ,CAAAA,CAAAA,EAAiChK,KAAE,CAAA,OAAA,EAAU,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQgK,CAAY,CAAA,CAAE,QAAA,EAAA,CAG/GK,GAA2BvE,CACxB,GAAA,CACL,GAAKqE,CAAAA,EAAAA,CAA2B,KAAMd,CAAAA,CAAAA,CAAA,CACpC,IAAA,CAAMa,EACHpE,CAAAA,CAAAA,CAAAA,CACJ,CACD,CAAA,MAAA,CAAQsE,EAA8BtE,CAAAA,CAAAA,CAAK,OAAO,CACpD,CCrBIwE,CAAAA,CAAAA,EAAAA,CAAoC,eAEpCC,CAAAA,EAAAA,CAA4BvK,KAAE,CAAA,MAAA,CAAO,CACzC,IAAA,CAAMA,KAAE,CAAA,OAAA,CAAQsK,EAAiC,CAAA,CACjD,MAAOtK,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACvB,KAAOA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CACvB,CAAA,WAAA,CAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CAAE,GAAI,CAAA,GAAG,CACtC,CAAA,OAAA,CAASA,KAAE,CAAA,MAAA,EACX,CAAA,OAAA,CAASA,KAAE,CAAA,KAAA,CAAMA,MAAE,MAAA,EAAQ,CAC7B,CAAC,CAGKwK,CAAAA,EAAAA,CAA+B,CAACR,CAAAA,CAA6BS,CACjEzK,GAAAA,KAAAA,CACG,IAAKyK,CAAAA,CAAgC,CACrC,CAAA,QAAA,EACA,CAAA,OAAA,CAAQT,CAAY,CAAA,CACpB,QAAA,EAAA,CAGCU,CAA0B5E,CAAAA,CAAAA,GACvB,CACL,GAAA,CAAKyE,EAA0B,CAAA,KAAA,CAAMlB,CAAA,CAAA,CACnC,IAAMiB,CAAAA,EAAAA,EACHxE,CACJ,CAAA,CACD,CAAA,MAAA,CAAQ0E,EAA6B1E,CAAAA,CAAAA,CAAK,OAASA,CAAAA,CAAAA,CAAK,OAAO,CACjE,CCrBI6E,CAAAA,CAAAA,EAAAA,CAAqB,CACzBhB,EAAAA,CACAX,EACAsB,CAAAA,EAAAA,CACAhB,EACAY,CAAAA,EACF,CACMU,CAAiB5K,KAAE,CAAA,IAAA,CAAK2K,EAAkB,CAAA,KAG1CE,EAAgB7K,CAAAA,KAAAA,CAAE,kBAAmB,CAAA,MAAA,CAAQ,CACjD4J,EAAAA,CACAX,GACAsB,EACAJ,CAAAA,EAAAA,CACAZ,EACF,CAAC,CClBKuB,CAAAA,CAAAA,CAAkB,CAItBC,CAAAA,CAAWhL,EACXiL,CAAAA,CAAAA,CAAgB5I,EAEhBpC,GAAAA,KAAAA,CAAE,MAAO,CAAA,CACP,IAAMA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CACtB,CAAA,WAAA,CAAaA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CAC7B,KAAOA,CAAAA,KAAAA,CAAE,OAAO+K,CAAO/K,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAI,CAAA,CAAC,CAAE,CAAA,QAAA,EAAU,CAAA,CACnD,UAAYA,CAAAA,KAAAA,CAAE,KAAMgL,CAAAA,CAAU,CAAE,CAAA,QAAA,EAChC,CAAA,cAAA,CAAgBhL,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,EAAM,CAAA,QAAA,EAAW,CAAA,GAAA,CAAI,CAAC,CAAA,CACjD,eAAiBA,CAAAA,KAAAA,CAAE,QAAS,CAAA,GAAA,EAAM,CAAA,QAAA,EAAW,CAAA,GAAA,CAAI,CAAC,CAAA,CAClD,kBAAoBA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,EAAA,CAAE,QAAA,EAAA,CAAW,GAAI,CAAA,CAAC,CAAE,CAAA,QAAA,EACvD,CAAA,MAAA,CAAQA,KACL,CAAA,MAAA,CAAO,CACN,GAAA,CAAKA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CAAG6K,EAAa,CAAA,CAC9C,MAAQ7K,CAAAA,KAAAA,CAAE,UAAWA,CAAAA,KAAAA,CAAE,SAAS,CAClC,CAAC,CAAA,CACA,MACEiL,CAAAA,CAAAA,EAAW,CA3BpB,IAAAC,CAAAC,CAAAA,CAAAA,CA4BU,IAAMC,CAAAA,CAAU,MAAO,CAAA,IAAA,CAAKH,CAAO,CAAA,GAAG,CAChCI,CAAAA,CAAAA,CAAa,MAAO,CAAA,IAAA,CAAA,CAAKF,CAAAD,CAAAA,CAAAA,CAAAA,CAAAD,EAAO,MAAP,GAAA,IAAA,CAAAC,KAAAA,CAAAA,CAAAA,CAAAA,CAAe,KAAf,GAAA,IAAA,CAAAC,CAAwB,CAAA,EAAE,CAAA,CACzD,OAAOC,CAAAA,CAAQ,KAAOrG,CAAAA,CAAAA,EAAQsG,CAAW,CAAA,QAAA,CAAStG,CAAG,CAAC,CAAKsG,EAAAA,CAAAA,CAAW,KAAOtG,CAAAA,CAAAA,EAAQqG,CAAQ,CAAA,QAAA,CAASrG,CAAG,CAAC,CAC5G,CAAA,CACA,CACE,OAAA,CAAS,iEACX,CACF,CAAA,CACF,KAAO/E,CAAAA,KAAAA,CAAE,MAAA,EACX,CAAC,CAAA,CC9BGsL,EAAuB,CAAA,CAC3BN,CAAgB7G,CAAAA,EAAAA,GAEhBnE,KAAE,CAAA,MAAA,CAAO,CACP,IAAA,CAAMA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CACtB,WAAaA,CAAAA,KAAAA,CAAE,MAAA,EAAA,CAAS,GAAI,CAAA,CAAC,CAC7B,CAAA,UAAA,CAAYA,MAAE,KAAMgL,CAAAA,CAAU,CAAE,CAAA,QAAA,EAChC,CAAA,cAAA,CAAgBhL,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,EAAM,CAAA,QAAA,EAAW,CAAA,GAAA,CAAI,CAAC,CAAA,CACjD,eAAiBA,CAAAA,KAAAA,CAAE,MAAO,EAAA,CAAE,GAAA,EAAA,CAAM,QAAA,EAAA,CAAW,GAAI,CAAA,CAAC,CAClD,CAAA,MAAA,CAAQA,KACL,CAAA,MAAA,CAAO,CACN,GAAA,CAAKA,KAAE,CAAA,MAAA,CAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,CAAC,CAAA,CAAG6K,EAAa,CAAA,CAC9C,MAAQ7K,CAAAA,KAAAA,CAAE,UAAWA,CAAAA,KAAAA,CAAE,SAAS,CAClC,CAAC,CAAA,CACA,MACEiL,CAAAA,CAAAA,EAAW,CAtBpB,IAAAC,CAAAC,CAAAA,CAAAA,CAuBU,IAAMC,CAAAA,CAAU,MAAO,CAAA,IAAA,CAAKH,CAAO,CAAA,GAAG,EAChCI,CAAa,CAAA,MAAA,CAAO,IAAKF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,CAAAD,CAAAA,CAAAA,CAAO,MAAP,GAAA,IAAA,CAAAC,KAAAA,CAAAA,CAAAA,CAAAA,CAAe,KAAf,GAAA,IAAA,CAAAC,CAAwB,CAAA,EAAE,CAAA,CACzD,OAAOC,CAAAA,CAAQ,KAAOrG,CAAAA,CAAAA,EAAQsG,CAAW,CAAA,QAAA,CAAStG,CAAG,CAAC,CAAKsG,EAAAA,CAAAA,CAAW,KAAOtG,CAAAA,CAAAA,EAAQqG,CAAQ,CAAA,QAAA,CAASrG,CAAG,CAAC,CAC5G,CACA,CAAA,CACE,OAAS,CAAA,iEACX,CACF,CACJ,CAAC,CAAA,CC7Ba/E,KAAAA,CAAE,MAAOA,CAAAA,KAAAA,CAAE,MAAO,EAAC,CCA7BuL,CAASvL,KAAE,CAAA,MAAA,CACfA,KAAE,CAAA,KAAA,CAAM,CACNA,KAAAA,CAAE,OAAA,EAAA,CACFA,KAAE,CAAA,MAAA,EACFA,CAAAA,KAAAA,CAAE,QACFA,CAAAA,KAAAA,CAAE,MAAO,CAAA,EAAE,CAAA,CACXA,KAAE,CAAA,KAAA,CAAMA,KAAE,CAAA,GAAA,EAAK,CAAA,CACfA,KAAE,CAAA,IAAA,EACFA,CAAAA,KAAAA,CAAE,SAAA,EACJ,CAAC,CACH,CCVMwL,CAAMxL,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,ECFjByL,KAAAA,EAAAA,CAAc,CAClB,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,aACP,CAAA,WAAA,CACE,0RAGJ,CAAA,CAEMC,EAAa,CAAA,CACjB,IAAM,CAAA,OAAA,CACN,KAAO,CAAA,YAAA,CACP,WACE,CAAA,gKAEJ,CAEMC,CAAAA,EAAAA,CAAuB,CAC3B,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,sBACP,CAAA,WAAA,CACE,+FACJ,CAAA,CAEMC,EAAQzC,CAAAA,CAAAA,GACX,CACC,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,eACP,CAAA,WAAA,CAAa,eAAeA,CAAG,CAAA,wGAAA,CAEjC,CAEI0C,CAAAA,CAAAA,EAAAA,CAAQ,CACZ,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,OACP,CAAA,WAAA,CACE,oWAIJ,CAAA,CAEMC,EAAQ,CAAA,CACZ,IAAM,CAAA,OAAA,CACN,KAAO,CAAA,OAAA,CACP,WACE,CAAA,8XAIJ,CAEMC,CAAAA,EAAAA,CAAQ,CACZ,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,OACP,CAAA,WAAA,CACE,oIACJ,CAAA,CAEMC,GAAQ,CACZ,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,OACP,CAAA,WAAA,CACE,kVAGJ,CAAA,CAEMC,EAAoB,CAAA,CACxB,IAAM,CAAA,OAAA,CACN,KAAO,CAAA,mBAAA,CACP,WACE,CAAA,uMAGJ,CAEMC,CAAAA,EAAAA,CAAmB,CACvB,IAAA,CAAM,OACN,CAAA,KAAA,CAAO,kBACP,CAAA,WAAA,CACE,8NAGJ,CAAA,CAEMC,EAAO,CAAA,CACX,IAAM,CAAA,OAAA,CACN,MAAO,MACP,CAAA,WAAA,CACE,gXAKJ,CAAA,CAEMC,EAAqB,CAAA,CACzB,IAAM,CAAA,OAAA,CACN,KAAO,CAAA,oBAAA,CACP,WACE,CAAA,wUAIJ,CAEMC,CAAAA,EAAAA,CAAY,CAChB,IAAA,CAAM,SACN,CAAA,KAAA,CAAO,WACP,CAAA,WAAA,CACE,wIACJ,CAAA,CAEMC,EAAgB,CAAA,CACpB,IAAM,CAAA,OAAA,CACN,KAAO,CAAA,eAAA,CACP,WACE,CAAA,2KAEJ,EAEMC,EAAO,CAAA,CACX,IAAM,CAAA,SAAA,CACN,KAAO,CAAA,MAAA,CACP,WAAa,CAAA,gDACf,CAEMC,CAAAA,EAAAA,CAAkB,CACtB,IAAA,CAAM,QACN,CAAA,KAAA,CAAO,iBACP,CAAA,WAAA,CACE,uIACJ,CAAA,CAEMC,EAA8B,CAAA,CAClC,IAAM,CAAA,QAAA,CACN,KAAO,CAAA,iBAAA,CACP,WACE,CAAA,+TAGJ,CAEMC,CAAAA,EAAAA,CAAkB,CACtB,IAAA,CAAM,SACN,KAAO,CAAA,iBAAA,CACP,WAAa,CAAA,4GACf,CAEMC,CAAAA,CAAAA,CAAc,CAClB,WAAA,CAAAlB,EACA,CAAA,UAAA,CAAAC,EACA,CAAA,IAAA,CAAAE,EACA,CAAA,KAAA,CAAAC,EACA,CAAA,KAAA,CAAAC,EACA,CAAA,KAAA,CAAAC,EACA,CAAA,KAAA,CAAAC,EACA,CAAA,iBAAA,CAAAC,EACA,CAAA,gBAAA,CAAAC,EACA,CAAA,kBAAA,CAAAE,EACA,CAAA,IAAA,CAAAD,EACA,CAAA,SAAA,CAAAE,GACA,aAAAC,CAAAA,EAAAA,CACA,IAAAC,CAAAA,EAAAA,CACA,eAAAC,CAAAA,EAAAA,CACA,2BAAAC,CAAAA,EAAAA,CACA,eAAAC,CAAAA,EAAAA,CACA,oBAAAf,CAAAA,EACF,ECzKMiB,IAAAA,EAAuCC,CAAAA,CAAAA,EAEpC,MAAO,CAAA,WAAA,CAAY,MAAO,CAAA,OAAA,CAAQA,CAAM,CAAA,CAAE,MAAO,CAAA,CAAC,CAACC,CAAAA,CAAG9H,CAAK,CAAA,GAAMA,CAAS,EAAA,IAAI,CAAC,CCCiB,CAAA,IC+BnG+H,EAAyBC,CAAAA,CAAAA,EACNA,CAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CACV,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CCpCxCC,CAAAA,CAAAA,CAA2BC,CACxBA,EAAAA,CAAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAK,CAAA,OAAA,CAAQ,KAAO,CAAA,EAAA,CCCvBC,CAAAA,IAAAA,EAAAA,CAAAA,MAAAA,CAAAA,cAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,gBAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,yBAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,qBAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,cAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,oBAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,GAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,MAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,IAAAA,CAAAA,IAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,IAAAA,CAAAA,IAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,IAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,IAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAA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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport {\n UserRoleLiteral,\n ToolRoleLiteral,\n SystemRoleLiteral,\n AssistantRoleLiteral,\n RoleEnum,\n RoleLiterals,\n PartialRoleEnum,\n PartialRoleLiterals,\n type RoleEnumType,\n type PartialRoleEnumType,\n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n mediaType: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst ReasoningModalityLiteral = \"reasoning\" as const;\nconst PartialReasoningModalityLiteral = \"partial-reasoning\" as const;\n\nconst ReasoningContentTypeLiteral = \"thinking\" as const;\nconst RedactedReasoningContentTypeLiteral = \"redacted\" as const;\n\nconst ReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: z.string(),\n signature: z.string(),\n});\ntype ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;\n\nconst RedactedReasoningContentValue = z.object({\n type: z.literal(RedactedReasoningContentTypeLiteral),\n data: z.string()\n});\ntype RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;\n\nconst ReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ ReasoningContentValue, RedactedReasoningContentValue ]);\ntype ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;\n\nconst ReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ReasoningModalityLiteral),\n value: ReasoningContentValueUnion,\n metadata: Metadata,\n });\n\ntype ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;\n\nconst PartialReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: ReasoningContentValue.shape.thinking.optional(),\n signature: ReasoningContentValue.shape.signature.optional(),\n});\nconst PartialReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ \n PartialReasoningContentValue, \n RedactedReasoningContentValue \n]);\n\nconst PartialReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialReasoningModalityLiteral),\n value: PartialReasoningContentValueUnion,\n metadata: Metadata,\n });\ntype PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;\n\nexport {\n ReasoningContent,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n ReasoningContentTypeLiteral,\n ReasoningContentValue,\n PartialReasoningContentValue,\n ReasoningContentValueUnion,\n PartialReasoningContentValueUnion,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RedactedReasoningContentValue,\n type PartialReasoningContentType,\n type ReasoningContentType,\n type ReasoningContentValueType,\n type ReasoningContentValueUnionType,\n type RedactedReasoningContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport {\n TextContent,\n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n ToolCallContent,\n PartialToolCallContent,\n ToolCallModalityLiteral,\n PartialToolCallModalityLiteral,\n type ToolCallContentType,\n type PartialToolCallContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n apiResponse: z.object({\n statusCode: z.number().int().nonnegative(),\n }).optional(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n ReasoningContentMetadata: TCCM = z.undefined() as TCCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n PartialReasoningContentMetadata: z.ZodTypeAny = z.undefined() as z.ZodTypeAny as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n ]);\ntype PartialContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<\n ReturnType<typeof PartialContent<TCM, CCM>>\n>;\n\nexport {\n Content,\n ModalityEnum,\n ModalityLiterals,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type ContentType,\n type ModalityEnumType,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { PartialRoleEnum, RoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata, ReasoningContentMetadata)\n ),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM, RTCM>>>;\n\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata),\n metadata: MessageMetadata,\n });\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { Message, PartialMessage, type MessageType, type PartialMessageType };\n","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatUsage = z.object({\n promptTokens: z.number().nonnegative().optional(),\n completionTokens: z.number().nonnegative().optional(),\n totalTokens: z.number().nonnegative().optional(),\n});\n\ntype PartialChatUsageType = z.infer<typeof PartialChatUsage>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: PartialChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport {\n ChatBaseLogProb,\n ChatLogProb,\n ChatLogProbs,\n ChatResponse,\n ChatUsage,\n PartialChatResponse,\n PartialChatUsage,\n type ChatBaseLogProbType,\n type ChatLogProbsType,\n type ChatLogProbType,\n type ChatResponseType,\n type ChatUsageType,\n type PartialChatResponseType,\n type PartialChatUsageType,\n};\n","import { z } from \"zod\";\n\nconst Config = <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { Config, type ConfigType };\n","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport {\n ResponseSchema,\n ResponseSchemaProperty,\n ResponseSchemaStructure,\n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative()));\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n ]);\ntype EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};\n","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};\n","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n};\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };\n","import { z } from \"zod\";\n\n/**\n * A pair of per‑million‑token rates for a single price category (e.g., base input/output).\n * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.\n */\nconst ChatModelTokenPairPrice = z\n .object({\n inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens\"),\n outputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M output tokens\"),\n })\n .describe(\"Input/output price pair (per 1M tokens) for a specific category within a ChatModel pricing tier.\");\n\ntype ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;\n\n/**\n * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).\n * Each category holds a `ChatModelTokenPairPrice`.\n */\nconst ChatModelTokenTypePrice = z\n .object({\n base: ChatModelTokenPairPrice.describe(\"Base (uncached, non‑reasoning) rates\"),\n // Add optional 'cached' and 'reasoning' here if they become standard\n })\n .describe(\"Holds the `ChatModelTokenPairPrice` for different categories (e.g., base) within a single pricing tier.\");\n\ntype ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;\n\n/**\n * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.\n * - `minTokens`: inclusive lower bound (integer ≥ 0).\n * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.\n * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.\n */\nconst ChatModelTokenRangePrice = z\n .object({\n minTokens: z.number().int().nonnegative().describe(\"Inclusive lower token bound for this tier.\"),\n maxTokens: z.number().int().nullable().optional().describe(\"Exclusive upper token bound; `null` means ∞.\"),\n prices: ChatModelTokenTypePrice.describe(\"Price categories and rates for this specific token range.\"),\n })\n .refine((t) => t.maxTokens === null || (typeof t.maxTokens === \"number\" && t.maxTokens > t.minTokens), {\n message: \"maxTokens must be > minTokens (or null for infinite).\",\n path: [\"maxTokens\"],\n })\n .describe(\"A single pricing tier defined by a token range and associated prices.\");\n\ntype ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;\n\n/**\n * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.\n * Ensures tiers are contiguous and cover the full range from 0 to infinity.\n * - First tier must start at 0 tokens.\n * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.\n * - Last `tokenRange` must have maxTokens = null (infinite).\n */\nconst ChatModelPrice = z\n .object({\n modelName: z.string().describe(\"Model name this schedule applies to.\"),\n currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n tokenRanges: z\n .array(ChatModelTokenRangePrice)\n .min(1)\n .describe(\"Pricing tiers (`ChatModelTokenRangePrice`) schedule, sorted by minTokens.\"),\n })\n .superRefine((data, ctx) => {\n const { tokenRanges } = data;\n\n // 1) First tier starts at 0\n if (tokenRanges[0].minTokens !== 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", 0, \"minTokens\"],\n message: \"The first tier must have minTokens = 0.\",\n });\n }\n\n // 2) tokenRanges must be sorted and contiguous\n for (let i = 1; i < tokenRanges.length; i++) {\n const prev = tokenRanges[i - 1];\n const curr = tokenRanges[i];\n\n if (prev.maxTokens === null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i - 1, \"maxTokens\"],\n message: \"Cannot define any tokenRanges after an infinite tier (maxTokens = null).\",\n });\n break; // Stop further checks if structure is already invalid\n }\n\n if (curr.minTokens !== prev.maxTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `Tier ${i} minTokens (${curr.minTokens}) must equal previous tier's maxTokens (${prev.maxTokens}) for contiguity.`,\n });\n }\n\n // Ensure sorting (although contiguity check often implies this)\n if (curr.minTokens < prev.minTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `tokenRanges must be sorted by ascending minTokens. Tier ${i} (${curr.minTokens}) starts before Tier ${i - 1} (${prev.minTokens}).`,\n });\n }\n }\n\n // 3) Last tier must be infinite\n const last = tokenRanges[tokenRanges.length - 1];\n // Check last.maxTokens only if the loop didn't break early due to a previous infinite tier\n if (tokenRanges.every((t) => t.maxTokens !== null || t === last) && last.maxTokens !== null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", tokenRanges.length - 1, \"maxTokens\"],\n message: \"The final tier must have maxTokens = null (representing infinity).\",\n });\n }\n })\n .describe(\"Complete pricing schedule for a single chat model, including all its token-based tiers.\");\n\ntype ChatModelPriceType = z.infer<typeof ChatModelPrice>;\n\n// Export the schemas and types\nexport { ChatModelPrice, ChatModelTokenPairPrice, ChatModelTokenRangePrice, ChatModelTokenTypePrice };\nexport type { ChatModelPriceType, ChatModelTokenPairPriceType, ChatModelTokenRangePriceType, ChatModelTokenTypePriceType };\n","import { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\nconst FunctionParameter = z.object({\n anyOf: z.array(z.any()).optional(),\n type: FunctionParameterTypesLiteral.optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n type: z.enum([\"object\"]),\n title: z.string().optional(),\n $defs: z.record(z.any()).optional(),\n properties: z.record(FunctionParameter).optional(),\n required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n parameters: z.any(),\n strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst ApiRetrySettings = z.object({\n maxAttempts: z.number().int().positive(),\n initialDelay: z.number().int().positive(),\n exponentialFactor: z.number().int().positive(),\n});\n\nconst HttpRequestSettings = z.object({\n type: z.literal(\"http\"),\n method: z.enum([\"get\", \"post\"]),\n url: z.string().url(),\n proxyUrl: z.string().url().optional(),\n headers: z.record(z.string()).optional(),\n query: z.record(z.string()).optional(),\n body: z.record(z.any()).optional(),\n retry: ApiRetrySettings.optional(),\n});\n\nconst ApiSettings = z.discriminatedUnion(\"type\", [HttpRequestSettings]);\n\nconst FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function,\n }),\n apiSettings: ApiSettings.optional(),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n HttpRequestSettings,\n ApiSettings,\n ApiRetrySettings,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import {\n Base64ImageContentTypeLiteral,\n ContentType,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n UrlImageContentTypeLiteral,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n }),\n ],\n });\n};\n\nconst createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url,\n },\n }),\n ],\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64,\n },\n }),\n ],\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n ],\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n }),\n ],\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content,\n }),\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n });\n};\n\nconst createReasoningContent = (thinking: string, signature: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n });\n};\n\nconst createReasoningMessage = (role: RoleEnumType, thinking: string, signature: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n }),\n ],\n });\n};\n// Redacted Reasoning Content\nconst createRedactedReasoningContent = (data: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n });\n};\n\nconst createRedactedReasoningMessage = (role: RoleEnumType, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n }),\n ],\n });\n};\n\nconst createPartialReasoningMessage = (role: RoleEnumType, thinking?: string, signature?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\n// Create a partial redacted reasoning message\nconst createPartialRedactedReasoningMessage = (role: RoleEnumType, data: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createUrlImageMessage,\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidEmbeddingRequestsErrorLiteral = \"InvalidEmbeddingRequestsError\" as const;\nexport class InvalidEmbeddingRequestsError extends GatewayBaseError {\n readonly name = InvalidEmbeddingRequestsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidEmbeddingRequestsErrorLiteral);\n this.info = info;\n this.cause = cause;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidEmbeddingRequestsError(error: unknown): error is InvalidEmbeddingRequestsError {\n return error instanceof InvalidEmbeddingRequestsError;\n }\n}\n","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<\n ReturnType<typeof ObjectSchemaConfigItemSchema<S>>\n>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) => z.boolean().nullable().default(defaultValue).optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string(),\n choices: z.array(z.string()),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral,\n MultiStringConfigItemTypeLiteral,\n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef,\n MultiStringConfigItemDef,\n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ChatModelPriceType, ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n>(\n Roles: R = RoleEnum as unknown as R,\n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n maxReasoningTokens: z.number().int().positive().min(1).optional(),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n price: z.custom<ChatModelPriceType>(),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { ChatModelSchema, type ChatModelSchemaType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModalityEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\n// TODO: add embedding model properties (dimensions, etc)\nconst EmbeddingModelSchema = <M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum>(\n Modalities: M = EmbeddingModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n });\ntype EmbeddingModelSchemaType<M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum> = z.infer<\n ReturnType<typeof EmbeddingModelSchema<M>>\n>;\n\nexport { EmbeddingModelSchema, type EmbeddingModelSchemaType };\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(\n z.union([\n z.boolean(),\n z.string(),\n z.number(),\n z.object({}),\n z.array(z.any()),\n z.null(),\n z.undefined(),\n ])\n);\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst MAX_REASONING_TOKENS = {\n type: \"range\",\n title: \"Max reasoning tokens\",\n description:\n \"Specify the total tokens for reasoning, where one token approximates four English characters.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description: \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const;\n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n MAX_REASONING_TOKENS,\n};\n\nexport { CHAT_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const isRunningInBrowser = () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof navigator !== \"undefined\";\n};\n\nexport { isRunningInBrowser };\n","import { isRunningInBrowser } from \"./is-running-in-browser\";\n\nconst convertBase64ToUint8Array = (base64String: string): Uint8Array => {\n const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const latin1string = globalThis.atob(base64Url);\n return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0)!);\n};\n\nconst convertUint8ArrayToBase64 = (array: Uint8Array): string => {\n let latin1string = \"\";\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return globalThis.btoa(latin1string);\n};\n\nconst encodedBase64ToString = (base64: string): string => {\n if (isRunningInBrowser()) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n const decoder = new TextDecoder(\"utf-8\");\n return decoder.decode(bytes);\n } else {\n return Buffer.from(base64, \"base64\").toString(\"utf-8\");\n }\n};\n\nconst getMimeTypeFromBase64 = (base64: string): string => {\n const mimeTypePrefix = base64.split(\";\")[0];\n const mimeType = mimeTypePrefix.split(\"/\")[1];\n return mimeType;\n};\n\nexport { convertBase64ToUint8Array, convertUint8ArrayToBase64, encodedBase64ToString, getMimeTypeFromBase64 };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","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\nexport { frequencyPenalty, logProbs, maxTokens, presencePenalty, seed, stop, temperature, toolChoice, topLogProbs, topP };\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","import { CHAT_CONFIG, RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// o1 models only support temperature = 1.0\nconst temperature = 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: temperature.def,\n reasoningEffort: reasoningEffort.def,\n});\n\nconst ChatModelOSeriesConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).extend({\n temperature: temperature.schema,\n reasoningEffort: reasoningEffort.schema,\n });\n\nexport { ChatModelOSeriesConfigDef, ChatModelOSeriesConfigSchema };\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 { 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 ChatModelOSeriesConfigDef,\n ChatModelOSeriesConfigSchema,\n ChatModelResponseFormatConfigDef,\n ChatModelResponseFormatConfigSchema,\n ChatModelResponseSchemaConfigDef,\n ChatModelResponseSchemaConfigSchema,\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} 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 \"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}","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_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.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.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 { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } 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\nexport {\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelModalities,\n OpenAIChatModelTextModalitiesEnum,\n OpenAIChatModelTextModalities,\n OpenAIChatModelTextToolModalitiesEnum,\n OpenAIChatModelTextToolModalities,\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 }),\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\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: z.any(),\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: z.any(),\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});\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\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 createPartialTextMessage,\n createPartialToolCallMessage,\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 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});\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\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 }\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): { 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 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\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 const _toolChoice = config.toolChoice;\n delete config.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(config);\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 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 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 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 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: any): ChatResponseType {\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 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 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 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 async *transformStreamChatResponseChunk(\n chunk: string,\n buffer: string\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\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\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 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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4_1Literal,\n description: GPT_4_1Description,\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_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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4_1_MiniLiteral,\n description: GPT_4_1_MiniDescription,\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_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 { 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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4o_MiniLiteral,\n description: GPT_4o_MiniDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 4092,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4oLiteral,\n description: GPT_4oDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 4092,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: O1_2024_12_17Literal,\n description: O1_2024_12_17Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: O1Literal,\n description: O1Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst O3_2025_04_16Literal = \"o3-2025-04-16\";\nconst O3_2025_04_16Description =\n \"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, OpenAIChatModelModalitiesEnum).parse({\n name: O3_2025_04_16Literal,\n description: O3_2025_04_16Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst O3Literal = \"o3\";\nconst O3Description =\n \"A new standard for math, science, coding, and visual reasoning tasks. Training data up to Jun 2024.\";\n\nconst O3Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: O3Literal,\n description: O3Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelTextToolModalities, OpenAIChatModelTextToolModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelTextToolModalitiesEnum).parse({\n name: O3MiniLiteral,\n description: O3MiniDescription,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelTextToolModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelTextToolModalities, OpenAIChatModelTextToolModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelTextToolModalitiesEnum).parse({\n name: O3Mini2025_01_31Literal,\n description: O3Mini2025_01_31Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelTextToolModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport {\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { O4_Mini_2025_04_16, O4_Mini_2025_04_16Literal, O4_Mini_2025_04_16Options, O4_Mini_2025_04_16Schema, type O4_Mini_2025_04_16OptionsType };\n\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport {\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\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, OpenAIChatModelModalitiesEnum).parse({\n name: O4_MiniLiteral,\n description: O4_MiniDescription,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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\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","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 EmbeddingRequests,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n FloatEmbeddingLiteral,\n FloatEmbeddingType,\n} from \"@adaline/types\";\n\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): { 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\nexport { BaseEmbeddingModel, BaseEmbeddingModelOptions, type BaseEmbeddingModelOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIEmbeddingModelConfigs } from \"../../configs\";\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});\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 { 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});\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 { 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});\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","import {\n OpenAIChatModelConfigs,\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\n} from \"@adaline/openai\";\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nconst BaseChatModelSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: \"__base__\",\n description: \"Base chat model for Custom\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.base(128000, 4).def,\n schema: OpenAIChatModelConfigs.base(128000, 4).schema,\n },\n});\n\nexport { BaseChatModelSchema };\n","import { z } from \"zod\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string().min(1),\n modelName: z.string(),\n baseUrl: z.string().optional(),\n completeChatUrl: z.string().optional(),\n streamChatUrl: z.string().optional(),\n});\n\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nexport { BaseChatModelOptions, type BaseChatModelOptionsType };\n","import { BaseChatModel } from \"@adaline/openai\";\nimport { ChatModelSchemaType, ModelResponseError } from \"@adaline/provider\";\nimport { ChatModelPriceType } from \"@adaline/types\";\n\nimport { BaseChatModelOptions, BaseChatModelOptionsType } from \"./chat-model-options.custom\";\n\nclass BaseChatModelOpenAI extends BaseChatModel {\n readonly version = \"v1\" as const;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n const parsedOptions = BaseChatModelOptions.parse(options);\n\n super(modelSchema, {\n modelName: parsedOptions.modelName,\n apiKey: parsedOptions.apiKey,\n baseUrl: parsedOptions.baseUrl,\n completeChatUrl: parsedOptions.completeChatUrl,\n streamChatUrl: parsedOptions.streamChatUrl,\n });\n }\n getModelPricing(): ChatModelPriceType {\n throw new ModelResponseError({\n info: `Invalid model pricing for model : '${this.modelName}'`,\n cause: new Error(`No pricing configuration for custom provider`),\n });\n }\n}\n\nexport { BaseChatModelOpenAI };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport { BaseChatModelOpenAI, BaseChatModelOptions, BaseChatModelSchema, type BaseChatModelOptionsType } from \"../models\";\n\nconst ProviderLiteral = \"custom\";\nclass Custom<C extends BaseChatModelOptionsType, E extends Record<string, any> = Record<string, any>> implements ProviderV1<C, E> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n static readonly customUrl = (baseURL: string): string => `${baseURL}`;\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\n chatModelLiterals(): string[] {\n return [\"__base__\"];\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n return {\n __base__: BaseChatModelSchema,\n };\n }\n\n chatModel(options: C): ChatModelV1 {\n const model = BaseChatModelOpenAI;\n const parsedOptions = BaseChatModelOptions.parse(options);\n return new model(BaseChatModelSchema, 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n embeddingModel(options: E): EmbeddingModelV1 {\n throw new ProviderError({\n info: \"Custom embedding models not supported yet\",\n cause: new Error(\"Custom embedding models not supported yet\"),\n });\n }\n}\n\nexport { Custom };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/pricing/pricing-tiers.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/errors/invalid-embedding-requests.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/model/embedding-model/embedding-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/is-running-in-browser.ts","../../../../packages/provider/src/utils/base64.ts","../../../../packages/provider/src/utils/url.ts","../../openai/src/configs/chat-model/common.config.chat-model.openai.ts","../../openai/src/configs/chat-model/base.config.chat-model.openai.ts","../../openai/src/configs/chat-model/response-schema.config.chat-model.openai.ts","../../openai/src/configs/chat-model/o-series.config.chat-model.openai.ts","../../openai/src/configs/chat-model/response-format.config.chat-model.openai.ts","../../openai/src/configs/embedding-model/common.config.embedding-model.openai.ts","../../openai/src/configs/embedding-model/base.config.embedding-model.openai.ts","../../openai/src/configs/embedding-model/dimensions.config.embedding-model.openai.ts","../../openai/src/configs/configs.openai.ts","../../openai/src/models/pricing.json","../../openai/src/provider/provider.openai.ts","../../openai/src/models/chat-models/types/roles.chat-model.openai.ts","../../openai/src/models/chat-models/types/modalities.chat-model.openai.ts","../../openai/src/models/chat-models/types/response.chat-model.openai.ts","../../openai/src/models/chat-models/types/request.chat-model.openai.ts","../../openai/src/models/chat-models/base-chat-model.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo-0125.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo-1106.openai.ts","../../openai/src/models/chat-models/gpt-3-5-turbo.openai.ts","../../openai/src/models/chat-models/gpt-4-0125-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-0613.openai.ts","../../openai/src/models/chat-models/gpt-4-1106-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-1.openai.ts","../../openai/src/models/chat-models/gpt-4-1-mini.openai.ts","../../openai/src/models/chat-models/gpt-4-1-nano.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo-2024-04-09.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo-preview.openai.ts","../../openai/src/models/chat-models/gpt-4-turbo.openai.ts","../../openai/src/models/chat-models/gpt-4.openai.ts","../../openai/src/models/chat-models/gpt-4o-2024-05-13.openai.ts","../../openai/src/models/chat-models/gpt-4o-2024-08-06.openai.ts","../../openai/src/models/chat-models/gpt-4o-mini-2024-07-18.openai.ts","../../openai/src/models/chat-models/gpt-4o-mini.openai.ts","../../openai/src/models/chat-models/gpt-4o.openai.ts","../../openai/src/models/chat-models/o1-2024-12-17.openai.ts","../../openai/src/models/chat-models/o1.openai.ts","../../openai/src/models/chat-models/o3-2025-04-16.openai.ts","../../openai/src/models/chat-models/o3.openai.ts","../../openai/src/models/chat-models/o3-mini.openai.ts","../../openai/src/models/chat-models/o3-mini-2025-01-31.openai.ts","../../openai/src/models/chat-models/o4-mini-2025-04-16.openai.ts","../../openai/src/models/chat-models/o4-mini.openai.ts","../../openai/src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../../openai/src/models/embedding-models/types/response.embedding-model.openai.ts","../../openai/src/models/embedding-models/types/request.embedding-model.openai.ts","../../openai/src/models/embedding-models/base-embedding-model.openai.ts","../../openai/src/models/embedding-models/text-embedding-ada-002.openai.ts","../../openai/src/models/embedding-models/text-embedding-3-small.openai.ts","../../openai/src/models/embedding-models/text-embedding-3-large.openai.ts","../src/models/chat-models/base-chat-model-schema.openai.custom.ts","../src/models/chat-models/chat-model-options.custom.ts","../src/models/chat-models/base-chat-model.openai.custom.ts","../src/provider/provider.custom.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","PartialModalityLiterals","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialReasoningContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","ChatModelTokenPairPrice","ChatModelTokenTypePrice","ChatModelTokenRangePrice","t","data","ctx","tokenRanges","i","prev","curr","last","FunctionToolLiteral","FunctionParameterTypesLiteral","FunctionParameter","Function","ToolTypesLiteral","FunctionRequestRetry","FunctionRequestHttp","FunctionRequest","FunctionTool","ToolLiterals","ToolEnum","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","createPartialTextMessage","role","createPartialToolCallMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","InvalidEmbeddingRequestsErrorLiteral","InvalidEmbeddingRequestsError","_InvalidEmbeddingRequestsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","RangeConfigItemTypeLiteral","RangeConfigItemDef","RangeConfigItemSchema","min","step","defaultValue","RangeConfigItem","SelectBooleanConfigItemTypeLiteral","SelectBooleanConfigItemDef","SelectBooleanConfigItemSchema","SelectBooleanConfigItem","SelectStringConfigItemTypeLiteral","SelectStringConfigItemDef","SelectStringConfigItemSchema","choices","SelectStringConfigItem","ConfigItemLiterals","ConfigItemDef","ChatModelSchema","Roles","Modalities","config","_a","_b","defKeys","schemaKeys","EmbeddingModelSchema","Params","Url","TEMPERATURE","MAX_TOKENS","MAX_REASONING_TOKENS","STOP","TOP_A","TOP_P","TOP_K","MIN_P","FREQUENCY_PENALTY","PRESENCE_PENALTY","SEED","REPETITION_PENALTY","LOG_PROBS","TOP_LOG_PROBS","ECHO","RESPONSE_FORMAT","RESPONSE_FORMAT_WITH_SCHEMA","RESPONSE_SCHEMA","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","url","temperature","maxTokens","maxOutputTokens","stop","maxSequences","topP","frequencyPenalty","presencePenalty","seed","logProbs","topLogProbs","toolChoice","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","responseSchema","responseFormat","ChatModelResponseSchemaConfigDef","__spreadProps","ChatModelResponseSchemaConfigSchema","reasoningEffort","ChatModelOSeriesConfigDef","ChatModelOSeriesConfigSchema","ChatModelResponseFormatConfigDef","ChatModelResponseFormatConfigSchema","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_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","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","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","options","modelName","model","parsedOptions","OpenAIChatModelRoles","OpenAIChatModelRolesMap","OpenAIChatModelModalities","OpenAIChatModelModalitiesEnum","OpenAIChatModelTextToolModalities","OpenAIChatModelTextToolModalitiesEnum","OpenAIBaseLogProb","OpenAILogProb","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","OpenAIChatRequestTool","OpenAIChatRequestToolChoiceEnum","OpenAIChatRequestToolChoiceFunction","OpenAIChatRequestResponseFormat","OpenAIChatRequestTextContent","OpenAIChatRequestImageContent","OpenAIChatRequestToolCallContent","OpenAIChatRequestSystemMessage","OpenAIChatRequestUserMessage","OpenAIChatRequestAssistantMessage","OpenAIChatRequestToolMessage","OpenAIChatRequestMessage","OpenAIChatRequest","BaseChatModelOptions","BaseChatModel","modelSchema","responseHeaders","parseDuration","duration","regex","timeUnits","match","totalMs","unit","resetRequestsDelayMs","resetTokensDelayMs","shouldRetry","delayMs","messages","message","request","safeRequest","parsedRequest","_config","toolCallMap","_content","c","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","textContent","toolCalls","imageContent","combinedContent","parsedTool","__async","resolve","transformedMessages","transformedTools","response","safe","parsedResponse","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","headers","query","__yieldStar","sanitizedHeaders","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_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","O1_2024_12_17Description","O1Description","O3_2025_04_16Description","O3Description","O3MiniDescription","O3Mini2025_01_31Description","O4_Mini_2025_04_16Description","O4_MiniDescription","OpenAIEmbeddingModelModalities","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","OpenAIEmbeddingRequestInput","OpenAIEmbeddingRequest","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","embeddingRequests","embeddingFormat","_parsedRequests","embeddings","item","Text_Embedding_Ada002Description","Text_Embedding_3_SmallDescription","Text_Embedding_3_LargeDescription","BaseChatModelSchema","jt","h","y","f","M","a","BaseChatModelOpenAI","B","Custom","j","baseURL"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport {\n UserRoleLiteral,\n ToolRoleLiteral,\n SystemRoleLiteral,\n AssistantRoleLiteral,\n RoleEnum,\n RoleLiterals,\n PartialRoleEnum,\n PartialRoleLiterals,\n type RoleEnumType,\n type PartialRoleEnumType,\n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n mediaType: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst ReasoningModalityLiteral = \"reasoning\" as const;\nconst PartialReasoningModalityLiteral = \"partial-reasoning\" as const;\n\nconst ReasoningContentTypeLiteral = \"thinking\" as const;\nconst RedactedReasoningContentTypeLiteral = \"redacted\" as const;\n\nconst ReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: z.string(),\n signature: z.string(),\n});\ntype ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;\n\nconst RedactedReasoningContentValue = z.object({\n type: z.literal(RedactedReasoningContentTypeLiteral),\n data: z.string()\n});\ntype RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;\n\nconst ReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ ReasoningContentValue, RedactedReasoningContentValue ]);\ntype ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;\n\nconst ReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ReasoningModalityLiteral),\n value: ReasoningContentValueUnion,\n metadata: Metadata,\n });\n\ntype ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;\n\nconst PartialReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: ReasoningContentValue.shape.thinking.optional(),\n signature: ReasoningContentValue.shape.signature.optional(),\n});\nconst PartialReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ \n PartialReasoningContentValue, \n RedactedReasoningContentValue \n]);\n\nconst PartialReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialReasoningModalityLiteral),\n value: PartialReasoningContentValueUnion,\n metadata: Metadata,\n });\ntype PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;\n\nexport {\n ReasoningContent,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n ReasoningContentTypeLiteral,\n ReasoningContentValue,\n PartialReasoningContentValue,\n ReasoningContentValueUnion,\n PartialReasoningContentValueUnion,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RedactedReasoningContentValue,\n type PartialReasoningContentType,\n type ReasoningContentType,\n type ReasoningContentValueType,\n type ReasoningContentValueUnionType,\n type RedactedReasoningContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport {\n TextContent,\n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n ToolCallContent,\n PartialToolCallContent,\n ToolCallModalityLiteral,\n PartialToolCallModalityLiteral,\n type ToolCallContentType,\n type PartialToolCallContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n apiResponse: z.object({\n statusCode: z.number().int().nonnegative(),\n }).optional(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n ReasoningContentMetadata: TCCM = z.undefined() as TCCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n PartialReasoningContentMetadata: z.ZodTypeAny = z.undefined() as z.ZodTypeAny as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n ]);\ntype PartialContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<\n ReturnType<typeof PartialContent<TCM, CCM>>\n>;\n\nexport {\n Content,\n ModalityEnum,\n ModalityLiterals,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type ContentType,\n type ModalityEnumType,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { PartialRoleEnum, RoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata, ReasoningContentMetadata)\n ),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM, RTCM>>>;\n\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata),\n metadata: MessageMetadata,\n });\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { Message, PartialMessage, type MessageType, type PartialMessageType };\n","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatUsage = z.object({\n promptTokens: z.number().nonnegative().optional(),\n completionTokens: z.number().nonnegative().optional(),\n totalTokens: z.number().nonnegative().optional(),\n});\n\ntype PartialChatUsageType = z.infer<typeof PartialChatUsage>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: PartialChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport {\n ChatBaseLogProb,\n ChatLogProb,\n ChatLogProbs,\n ChatResponse,\n ChatUsage,\n PartialChatResponse,\n PartialChatUsage,\n type ChatBaseLogProbType,\n type ChatLogProbsType,\n type ChatLogProbType,\n type ChatResponseType,\n type ChatUsageType,\n type PartialChatResponseType,\n type PartialChatUsageType,\n};\n","import { z } from \"zod\";\n\nconst Config = <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { Config, type ConfigType };\n","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport {\n ResponseSchema,\n ResponseSchemaProperty,\n ResponseSchemaStructure,\n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative()));\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n ]);\ntype EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};\n","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};\n","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n};\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };\n","import { z } from \"zod\";\n\n/**\n * A pair of per‑million‑token rates for a single price category (e.g., base input/output).\n * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.\n */\nconst ChatModelTokenPairPrice = z\n .object({\n inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens\"),\n outputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M output tokens\"),\n })\n .describe(\"Input/output price pair (per 1M tokens) for a specific category within a ChatModel pricing tier.\");\n\ntype ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;\n\n/**\n * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).\n * Each category holds a `ChatModelTokenPairPrice`.\n */\nconst ChatModelTokenTypePrice = z\n .object({\n base: ChatModelTokenPairPrice.describe(\"Base (uncached, non‑reasoning) rates\"),\n // Add optional 'cached' and 'reasoning' here if they become standard\n })\n .describe(\"Holds the `ChatModelTokenPairPrice` for different categories (e.g., base) within a single pricing tier.\");\n\ntype ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;\n\n/**\n * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.\n * - `minTokens`: inclusive lower bound (integer ≥ 0).\n * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.\n * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.\n */\nconst ChatModelTokenRangePrice = z\n .object({\n minTokens: z.number().int().nonnegative().describe(\"Inclusive lower token bound for this tier.\"),\n maxTokens: z.number().int().nullable().optional().describe(\"Exclusive upper token bound; `null` means ∞.\"),\n prices: ChatModelTokenTypePrice.describe(\"Price categories and rates for this specific token range.\"),\n })\n .refine((t) => t.maxTokens === null || (typeof t.maxTokens === \"number\" && t.maxTokens > t.minTokens), {\n message: \"maxTokens must be > minTokens (or null for infinite).\",\n path: [\"maxTokens\"],\n })\n .describe(\"A single pricing tier defined by a token range and associated prices.\");\n\ntype ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;\n\n/**\n * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.\n * Ensures tiers are contiguous and cover the full range from 0 to infinity.\n * - First tier must start at 0 tokens.\n * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.\n * - Last `tokenRange` must have maxTokens = null (infinite).\n */\nconst ChatModelPrice = z\n .object({\n modelName: z.string().describe(\"Model name this schedule applies to.\"),\n currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n tokenRanges: z\n .array(ChatModelTokenRangePrice)\n .min(1)\n .describe(\"Pricing tiers (`ChatModelTokenRangePrice`) schedule, sorted by minTokens.\"),\n })\n .superRefine((data, ctx) => {\n const { tokenRanges } = data;\n\n // 1) First tier starts at 0\n if (tokenRanges[0].minTokens !== 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", 0, \"minTokens\"],\n message: \"The first tier must have minTokens = 0.\",\n });\n }\n\n // 2) tokenRanges must be sorted and contiguous\n for (let i = 1; i < tokenRanges.length; i++) {\n const prev = tokenRanges[i - 1];\n const curr = tokenRanges[i];\n\n if (prev.maxTokens === null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i - 1, \"maxTokens\"],\n message: \"Cannot define any tokenRanges after an infinite tier (maxTokens = null).\",\n });\n break; // Stop further checks if structure is already invalid\n }\n\n if (curr.minTokens !== prev.maxTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `Tier ${i} minTokens (${curr.minTokens}) must equal previous tier's maxTokens (${prev.maxTokens}) for contiguity.`,\n });\n }\n\n // Ensure sorting (although contiguity check often implies this)\n if (curr.minTokens < prev.minTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `tokenRanges must be sorted by ascending minTokens. Tier ${i} (${curr.minTokens}) starts before Tier ${i - 1} (${prev.minTokens}).`,\n });\n }\n }\n\n // 3) Last tier must be infinite\n const last = tokenRanges[tokenRanges.length - 1];\n // Check last.maxTokens only if the loop didn't break early due to a previous infinite tier\n if (tokenRanges.every((t) => t.maxTokens !== null || t === last) && last.maxTokens !== null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", tokenRanges.length - 1, \"maxTokens\"],\n message: \"The final tier must have maxTokens = null (representing infinity).\",\n });\n }\n })\n .describe(\"Complete pricing schedule for a single chat model, including all its token-based tiers.\");\n\ntype ChatModelPriceType = z.infer<typeof ChatModelPrice>;\n\n// Export the schemas and types\nexport { ChatModelPrice, ChatModelTokenPairPrice, ChatModelTokenRangePrice, ChatModelTokenTypePrice };\nexport type { ChatModelPriceType, ChatModelTokenPairPriceType, ChatModelTokenRangePriceType, ChatModelTokenTypePriceType };\n","import { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\nconst FunctionParameter = z.object({\n anyOf: z.array(z.any()).optional(),\n type: FunctionParameterTypesLiteral.optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n type: z.enum([\"object\"]),\n title: z.string().optional(),\n $defs: z.record(z.any()).optional(),\n properties: z.record(FunctionParameter).optional(),\n required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n parameters: z.any(),\n strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst FunctionRequestRetry = z.object({\n maxAttempts: z.number().int().positive(),\n initialDelay: z.number().int().positive(),\n exponentialFactor: z.number().int().positive(),\n});\n\nconst FunctionRequestHttp = z.object({\n type: z.literal(\"http\"),\n method: z.enum([\"get\", \"post\"]),\n url: z.string().url(),\n headers: z.record(z.string()).optional(),\n query: z.record(z.string()).optional(),\n body: z.record(z.any()).optional(),\n proxyUrl: z.string().url().optional(),\n proxyHeaders: z.record(z.string()).optional(),\n retry: FunctionRequestRetry.optional(),\n});\n\nconst FunctionRequest = z.discriminatedUnion(\"type\", [FunctionRequestHttp]);\n\nconst FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function,\n }),\n request: FunctionRequest.optional(),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n FunctionRequestHttp,\n FunctionRequest,\n FunctionRequestRetry,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import {\n Base64ImageContentTypeLiteral,\n ContentType,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n UrlImageContentTypeLiteral,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n }),\n ],\n });\n};\n\nconst createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url,\n },\n }),\n ],\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64,\n },\n }),\n ],\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n ],\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n }),\n ],\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content,\n }),\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n });\n};\n\nconst createReasoningContent = (thinking: string, signature: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n });\n};\n\nconst createReasoningMessage = (role: RoleEnumType, thinking: string, signature: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n }),\n ],\n });\n};\n// Redacted Reasoning Content\nconst createRedactedReasoningContent = (data: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n });\n};\n\nconst createRedactedReasoningMessage = (role: RoleEnumType, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n }),\n ],\n });\n};\n\nconst createPartialReasoningMessage = (role: RoleEnumType, thinking?: string, signature?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\n// Create a partial redacted reasoning message\nconst createPartialRedactedReasoningMessage = (role: RoleEnumType, data: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createUrlImageMessage,\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidEmbeddingRequestsErrorLiteral = \"InvalidEmbeddingRequestsError\" as const;\nexport class InvalidEmbeddingRequestsError extends GatewayBaseError {\n readonly name = InvalidEmbeddingRequestsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidEmbeddingRequestsErrorLiteral);\n this.info = info;\n this.cause = cause;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidEmbeddingRequestsError(error: unknown): error is InvalidEmbeddingRequestsError {\n return error instanceof InvalidEmbeddingRequestsError;\n }\n}\n","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<\n ReturnType<typeof ObjectSchemaConfigItemSchema<S>>\n>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) => z.boolean().nullable().default(defaultValue).optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string(),\n choices: z.array(z.string()),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral,\n MultiStringConfigItemTypeLiteral,\n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef,\n MultiStringConfigItemDef,\n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ChatModelPriceType, ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n>(\n Roles: R = RoleEnum as unknown as R,\n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n maxReasoningTokens: z.number().int().positive().min(1).optional(),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n price: z.custom<ChatModelPriceType>(),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { ChatModelSchema, type ChatModelSchemaType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModalityEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\n// TODO: add embedding model properties (dimensions, etc)\nconst EmbeddingModelSchema = <M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum>(\n Modalities: M = EmbeddingModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n });\ntype EmbeddingModelSchemaType<M extends z.ZodEnum<[string, ...string[]]> = typeof EmbeddingModalityEnum> = z.infer<\n ReturnType<typeof EmbeddingModelSchema<M>>\n>;\n\nexport { EmbeddingModelSchema, type EmbeddingModelSchemaType };\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(\n z.union([\n z.boolean(),\n z.string(),\n z.number(),\n z.object({}),\n z.array(z.any()),\n z.null(),\n z.undefined(),\n ])\n);\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst MAX_REASONING_TOKENS = {\n type: \"range\",\n title: \"Max reasoning tokens\",\n description:\n \"Specify the total tokens for reasoning, where one token approximates four English characters.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description: \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const;\n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n MAX_REASONING_TOKENS,\n};\n\nexport { CHAT_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const isRunningInBrowser = () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof navigator !== \"undefined\";\n};\n\nexport { isRunningInBrowser };\n","import { isRunningInBrowser } from \"./is-running-in-browser\";\n\nconst convertBase64ToUint8Array = (base64String: string): Uint8Array => {\n const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const latin1string = globalThis.atob(base64Url);\n return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0)!);\n};\n\nconst convertUint8ArrayToBase64 = (array: Uint8Array): string => {\n let latin1string = \"\";\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return globalThis.btoa(latin1string);\n};\n\nconst encodedBase64ToString = (base64: string): string => {\n if (isRunningInBrowser()) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n const decoder = new TextDecoder(\"utf-8\");\n return decoder.decode(bytes);\n } else {\n return Buffer.from(base64, \"base64\").toString(\"utf-8\");\n }\n};\n\nconst getMimeTypeFromBase64 = (base64: string): string => {\n const mimeTypePrefix = base64.split(\";\")[0];\n const mimeType = mimeTypePrefix.split(\"/\")[1];\n return mimeType;\n};\n\nexport { convertBase64ToUint8Array, convertUint8ArrayToBase64, encodedBase64ToString, getMimeTypeFromBase64 };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","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\nexport { frequencyPenalty, logProbs, maxTokens, presencePenalty, seed, stop, temperature, toolChoice, topLogProbs, topP };\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","import { CHAT_CONFIG, RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nimport { ChatModelResponseSchemaConfigDef, ChatModelResponseSchemaConfigSchema } from \"./response-schema.config.chat-model.openai\";\n\n// o1 models only support temperature = 1.0\nconst temperature = 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: temperature.def,\n reasoningEffort: reasoningEffort.def,\n});\n\nconst ChatModelOSeriesConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n ChatModelResponseSchemaConfigSchema(maxOutputTokens, maxSequences).extend({\n temperature: temperature.schema,\n reasoningEffort: reasoningEffort.schema,\n });\n\nexport { ChatModelOSeriesConfigDef, ChatModelOSeriesConfigSchema };\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 { 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 ChatModelOSeriesConfigDef,\n ChatModelOSeriesConfigSchema,\n ChatModelResponseFormatConfigDef,\n ChatModelResponseFormatConfigSchema,\n ChatModelResponseSchemaConfigDef,\n ChatModelResponseSchemaConfigSchema,\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} 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 \"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}","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_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.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.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 { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } 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\nexport {\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelModalities,\n OpenAIChatModelTextModalitiesEnum,\n OpenAIChatModelTextModalities,\n OpenAIChatModelTextToolModalitiesEnum,\n OpenAIChatModelTextToolModalities,\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 }),\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\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: z.any(),\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: z.any(),\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});\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\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 createPartialTextMessage,\n createPartialToolCallMessage,\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 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});\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\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 }\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): { 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 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\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 const _toolChoice = config.toolChoice;\n delete config.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(config);\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 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 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 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 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: any): ChatResponseType {\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 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 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 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 async *transformStreamChatResponseChunk(\n chunk: string,\n buffer: string\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\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\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 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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4_1Literal,\n description: GPT_4_1Description,\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_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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4_1_MiniLiteral,\n description: GPT_4_1_MiniDescription,\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_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 { 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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4o_MiniLiteral,\n description: GPT_4o_MiniDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 4092,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: GPT_4oLiteral,\n description: GPT_4oDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 4092,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.responseSchema(4092, 4).def,\n schema: OpenAIChatModelConfigs.responseSchema(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 { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: O1_2024_12_17Literal,\n description: O1_2024_12_17Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelModalitiesEnum).parse({\n name: O1Literal,\n description: O1Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst O3_2025_04_16Literal = \"o3-2025-04-16\";\nconst O3_2025_04_16Description =\n \"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, OpenAIChatModelModalitiesEnum).parse({\n name: O3_2025_04_16Literal,\n description: O3_2025_04_16Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } from \"./types\";\n\nconst O3Literal = \"o3\";\nconst O3Description =\n \"A new standard for math, science, coding, and visual reasoning tasks. Training data up to Jun 2024.\";\n\nconst O3Schema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: O3Literal,\n description: O3Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelTextToolModalities, OpenAIChatModelTextToolModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelTextToolModalitiesEnum).parse({\n name: O3MiniLiteral,\n description: O3MiniDescription,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelTextToolModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport { OpenAIChatModelTextToolModalities, OpenAIChatModelTextToolModalitiesEnum, OpenAIChatModelRoles, OpenAIChatModelRolesMap } 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, OpenAIChatModelTextToolModalitiesEnum).parse({\n name: O3Mini2025_01_31Literal,\n description: O3Mini2025_01_31Description,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelTextToolModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport {\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\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, OpenAIChatModelModalitiesEnum).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: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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 { O4_Mini_2025_04_16, O4_Mini_2025_04_16Literal, O4_Mini_2025_04_16Options, O4_Mini_2025_04_16Schema, type O4_Mini_2025_04_16OptionsType };\n\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIChatModelConfigs } from \"../../configs\";\nimport { BaseChatModelOptions, BaseChatModel } from \"./base-chat-model.openai\";\nimport {\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\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, OpenAIChatModelModalitiesEnum).parse({\n name: O4_MiniLiteral,\n description: O4_MiniDescription,\n maxInputTokens: 200000,\n maxOutputTokens: 100000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.oSeries(100000, 4).def,\n schema: OpenAIChatModelConfigs.oSeries(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\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","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 EmbeddingRequests,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n FloatEmbeddingLiteral,\n FloatEmbeddingType,\n} from \"@adaline/types\";\n\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): { 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\nexport { BaseEmbeddingModel, BaseEmbeddingModelOptions, type BaseEmbeddingModelOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIEmbeddingModelConfigs } from \"../../configs\";\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});\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 { 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});\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 { 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});\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","import {\n OpenAIChatModelConfigs,\n OpenAIChatModelModalities,\n OpenAIChatModelModalitiesEnum,\n OpenAIChatModelRoles,\n OpenAIChatModelRolesMap,\n} from \"@adaline/openai\";\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nconst BaseChatModelSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: \"__base__\",\n description: \"Base chat model for Custom\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIChatModelConfigs.base(128000, 4).def,\n schema: OpenAIChatModelConfigs.base(128000, 4).schema,\n },\n});\n\nexport { BaseChatModelSchema };\n","import { z } from \"zod\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string().min(1),\n modelName: z.string(),\n baseUrl: z.string().optional(),\n completeChatUrl: z.string().optional(),\n streamChatUrl: z.string().optional(),\n});\n\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nexport { BaseChatModelOptions, type BaseChatModelOptionsType };\n","import { BaseChatModel } from \"@adaline/openai\";\nimport { ChatModelSchemaType, ModelResponseError } from \"@adaline/provider\";\nimport { ChatModelPriceType } from \"@adaline/types\";\n\nimport { BaseChatModelOptions, BaseChatModelOptionsType } from \"./chat-model-options.custom\";\n\nclass BaseChatModelOpenAI extends BaseChatModel {\n readonly version = \"v1\" as const;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n const parsedOptions = BaseChatModelOptions.parse(options);\n\n super(modelSchema, {\n modelName: parsedOptions.modelName,\n apiKey: parsedOptions.apiKey,\n baseUrl: parsedOptions.baseUrl,\n completeChatUrl: parsedOptions.completeChatUrl,\n streamChatUrl: parsedOptions.streamChatUrl,\n });\n }\n getModelPricing(): ChatModelPriceType {\n throw new ModelResponseError({\n info: `Invalid model pricing for model : '${this.modelName}'`,\n cause: new Error(`No pricing configuration for custom provider`),\n });\n }\n}\n\nexport { BaseChatModelOpenAI };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport { BaseChatModelOpenAI, BaseChatModelOptions, BaseChatModelSchema, type BaseChatModelOptionsType } from \"../models\";\n\nconst ProviderLiteral = \"custom\";\nclass Custom<C extends BaseChatModelOptionsType, E extends Record<string, any> = Record<string, any>> implements ProviderV1<C, E> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n static readonly customUrl = (baseURL: string): string => `${baseURL}`;\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\n chatModelLiterals(): string[] {\n return [\"__base__\"];\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n return {\n __base__: BaseChatModelSchema,\n };\n }\n\n chatModel(options: C): ChatModelV1 {\n const model = BaseChatModelOpenAI;\n const parsedOptions = BaseChatModelOptions.parse(options);\n return new model(BaseChatModelSchema, 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n embeddingModel(options: E): EmbeddingModelV1 {\n throw new ProviderError({\n info: \"Custom embedding models not supported yet\",\n cause: new Error(\"Custom embedding models not supported yet\"),\n });\n }\n}\n\nexport { Custom };\n"]}
|