@adaline/open-router 1.11.0 → 1.11.2
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 +5 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/error.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/pdf-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/search-result.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/mcp.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/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/paired-select-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/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/base64.ts","../../../../packages/provider/src/utils/url.ts","../src/configs/chat-model/common.config.chat-model.open-router.ts","../src/configs/chat-model/base.config.chat-model.open-router.ts","../src/configs/configs.openai-router.ts","../src/provider/provider.open-router.ts","../src/models/pricing.json","../src/models/chat-models/types/roles.chat-model.open-router.ts","../src/models/chat-models/types/modalities.chat-model.open-router.ts","../src/models/chat-models/types/response.chat-model.open-router.ts","../src/models/chat-models/types/request.chat-model.open-router.ts","../src/models/chat-models/base-chat-model.open-router.ts","../src/models/chat-models/base-chat-model-schema.open-router.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ErrorModalityLiteral","SafetyErrorTypeLiteral","SafetyErrorContentValue","ErrorContent","Metadata","PartialErrorModalityLiteral","PartialSafetyErrorContentValue","PartialErrorContent","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","PdfModalityLiteral","Base64PdfContentTypeLiteral","Base64PdfContentValue","UrlPdfContentTypeLiteral","UrlPdfContentValue","PdfContentValue","PdfContent","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","SearchResultModalityLiteral","SearchResultGoogleTypeLiteral","SearchResultGoogleContentValue","SearchResultContent","PartialSearchResultModalityLiteral","PartialSearchResultGoogleContentValue","PartialSearchResultContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","PartialToolResponseModalityLiteral","PartialToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","PdfContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","ErrorContentMetadata","SearchResultContentMetadata","PartialModalityLiterals","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialToolResponseContentMetadata","PartialReasoningContentMetadata","PartialErrorContentMetadata","PartialSearchResultContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","Config","McpServerToolConfiguration","url","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","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","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","serverName","thoughtSignature","createPartialTextMessage","role","createPartialToolCallMessage","createReasoningContent","thinking","signature","createRedactedReasoningContent","createPartialReasoningMessage","createPartialRedactedReasoningMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","PairedSelectConfigItemTypeLiteral","PairedSelectChoice","PairedSelectFieldDef","PairedSelectConfigItemDef","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","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","MCP_SERVERS","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","temperature","Tt","an","maxTokens","maxOutputTokens","stop","maxSequences","ct","topA","topK","topP","minP","frequencyPenalty","presencePenalty","repetitionPenalty","seed","logProbs","wt","topLogProbs","toolChoice","Pt","responseFormat","responseFormatWithSchema","responseSchema","ft","ho","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","OpenRouterChatModelConfigs","ProviderLiteral","OpenRouter","BaseChatModelSchema","options","model","BaseChatModel","parsedOptions","BaseChatModelOptions","acc","D","pricing_default","OpenRouterChatModelRoles","Un","kn","le","Sn","OpenRouterChatModelRolesMap","OpenRouterChatModelModalities","Q","pe","K","X","OpenRouterChatModelModalitiesEnum","OpenRouterBaseLogProb","OpenRouterLogProb","OpenRouterReasoningDetail","OpenRouterToolCallsCompleteChatResponse","OpenRouterCompleteChatResponse","OpenRouterToolCallsStreamChatResponse","OpenRouterStreamChatResponse","OpenRouterChatRequestTool","OpenRouterChatRequestToolChoiceEnum","OpenRouterChatRequestToolChoiceFunction","OpenRouterChatRequestResponseFormat","OpenRouterChatRequestTextContent","OpenRouterChatRequestImageContent","OpenRouterChatRequestToolCallContent","OpenRouterChatRequestSystemMessage","OpenRouterChatRequestUserMessage","OpenRouterChatRequestAssistantMessage","OpenRouterChatRequestToolMessage","OpenRouterChatRequestMessage","OpenRouterChatRequest","modelSchema","Cn","responseHeaders","_responseData","delayMs","retryAfter","seconds","messages","message","request","safeRequest","q","parsedRequest","modelName","_config","Co","dn","toolCallMap","_content","c","Se","Tn","Le","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","G","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","B","Z","textContent","toolCalls","imageContent","combinedContent","H","parsedTool","Oo","__async","resolve","transformedMessages","transformedTools","response","safe","N","parsedResponse","detail","ua","Ta","na","ta","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","_c","_d","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","ga","fa","da","pa","headers","query","__yieldStar","sanitizedHeaders","Zt"],"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 ErrorModalityLiteral = \"error\" as const;\n\nconst SafetyErrorTypeLiteral = \"safety\" as const;\n\nconst SafetyErrorContentValue = z.object({\n type: z.literal(SafetyErrorTypeLiteral),\n value: z.object({ \n category: z.string(),\n probability: z.string(),\n blocked: z.boolean(),\n message: z.string(),\n }),\n });\ntype SafetyErrorContentType = z.infer<typeof SafetyErrorContentValue>;\n\nconst ErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ErrorModalityLiteral),\n value: z.discriminatedUnion(\"type\", [SafetyErrorContentValue]),\n metadata: Metadata,\n });\ntype ErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ErrorContent<M>>>;\n\nconst PartialErrorModalityLiteral = \"partial-error\" as const;\n\nconst PartialSafetyErrorContentValue = z.object({\n type: z.literal(SafetyErrorTypeLiteral),\n category: z.string().optional(),\n probability: z.string().optional(),\n blocked: z.boolean().optional(),\n message: z.string().optional(),\n });\ntype PartialSafetyErrorContentType = z.infer<typeof PartialSafetyErrorContentValue>;\n\nconst PartialErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialErrorModalityLiteral),\n value: z.discriminatedUnion(\"type\", [PartialSafetyErrorContentValue]),\n metadata: Metadata,\n });\ntype PartialErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialErrorContent<M>>>;\n\nexport {\n ErrorContent,\n PartialErrorContent,\n ErrorModalityLiteral,\n PartialErrorModalityLiteral,\n SafetyErrorTypeLiteral,\n SafetyErrorContentValue,\n type SafetyErrorContentType,\n type PartialSafetyErrorContentType,\n type ErrorContentType,\n type PartialErrorContentType,\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 PdfModalityLiteral = \"pdf\" as const;\n\nconst Base64PdfContentTypeLiteral = \"base64\" as const;\nconst Base64PdfContentValue = z.object({\n type: z.literal(Base64PdfContentTypeLiteral),\n base64: z.string(),\n});\ntype Base64PdfContentValueType = z.infer<typeof Base64PdfContentValue>;\n\nconst UrlPdfContentTypeLiteral = \"url\" as const;\nconst UrlPdfContentValue = z.object({\n type: z.literal(UrlPdfContentTypeLiteral),\n url: z.string(),\n});\ntype UrlPdfContentValueType = z.infer<typeof UrlPdfContentValue>;\n\nconst PdfContentValue = z.discriminatedUnion(\"type\", [Base64PdfContentValue, UrlPdfContentValue]);\ntype PdfContentValueType = z.infer<typeof PdfContentValue>;\n\nconst PdfContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PdfModalityLiteral),\n value: PdfContentValue,\n file: z.object({\n name: z.string(),\n id: z.string(),\n size: z.number().optional(),\n }),\n metadata: Metadata,\n });\ntype PdfContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PdfContent<M>>>;\n\nexport {\n Base64PdfContentValue,\n PdfContent,\n PdfModalityLiteral,\n UrlPdfContentValue,\n UrlPdfContentTypeLiteral,\n Base64PdfContentTypeLiteral,\n type Base64PdfContentValueType,\n type PdfContentType,\n type PdfContentValueType,\n type UrlPdfContentValueType,\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 SearchResultModalityLiteral = \"search-result\" as const;\n\nconst SearchResultGoogleTypeLiteral = \"google\" as const;\n\nconst SearchResultGoogleContentValue = z.object({\n type: z.literal(SearchResultGoogleTypeLiteral),\n query: z.string(),\n responses: z.array(\n z.object({\n source: z.string(),\n url: z.string(),\n title: z.string(),\n snippet: z.string().optional(),\n })\n ),\n references: z.array(\n z.object({\n text: z.string(),\n responseIndices: z.array(z.number()),\n startIndex: z.number().optional(),\n endIndex: z.number().optional(),\n confidenceScores: z.array(z.number()).optional(),\n })\n ),\n})\ntype SearchResultGoogleContentValueType = z.infer<typeof SearchResultGoogleContentValue>;\n\nconst SearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(SearchResultModalityLiteral),\n value: z.discriminatedUnion(\"type\", [SearchResultGoogleContentValue]),\n metadata: Metadata,\n });\ntype SearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof SearchResultContent<M>>>;\n\nconst PartialSearchResultModalityLiteral = \"partial-search-result\" as const;\n\nconst PartialSearchResultGoogleContentValue = z.object({\n type: z.literal(SearchResultGoogleTypeLiteral),\n query: z.string().optional(),\n responses: z.array(\n z.object({\n source: z.string().optional(),\n url: z.string().optional(),\n title: z.string().optional(),\n snippet: z.string().optional(),\n })\n ).optional(),\n references: z.array(\n z.object({\n text: z.string().optional(),\n responseIndices: z.array(z.number()).optional(),\n startIndex: z.number().optional(),\n endIndex: z.number().optional(),\n confidenceScores: z.array(z.number()).optional(),\n })\n ).optional(),\n})\ntype PartialSearchResultGoogleContentValueType = z.infer<typeof PartialSearchResultGoogleContentValue>;\n\nconst PartialSearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialSearchResultModalityLiteral),\n value: z.discriminatedUnion(\"type\", [PartialSearchResultGoogleContentValue]),\n metadata: Metadata,\n });\ntype PartialSearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialSearchResultContent<M>>>;\n\nexport {\n PartialSearchResultModalityLiteral,\n PartialSearchResultContent,\n SearchResultModalityLiteral,\n SearchResultGoogleTypeLiteral,\n SearchResultGoogleContentValue,\n SearchResultContent,\n type SearchResultContentType,\n type SearchResultGoogleContentValueType,\n type PartialSearchResultContentType,\n type PartialSearchResultGoogleContentValueType,\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 serverName: z.string().optional(),\n thoughtSignature: z.string().optional(),\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 serverName: z.string().optional(),\n thoughtSignature: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n type PartialToolCallContentType,\n type ToolCallContentType,\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\n .object({\n statusCode: z.number().int().nonnegative(),\n })\n .optional(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nconst PartialToolResponseModalityLiteral = \"partial-tool-response\" as const;\n\nconst PartialToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n data: z.string().optional(),\n apiResponse: z\n .object({\n statusCode: z.number().int().nonnegative(),\n })\n .optional(),\n metadata: Metadata,\n });\ntype PartialToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolResponseContent<M>>>;\n\nexport {\n PartialToolResponseContent,\n PartialToolResponseModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n type PartialToolResponseContentType,\n type ToolResponseContentType,\n};\n","import { z } from \"zod\";\n\nimport { ErrorContent, ErrorModalityLiteral, PartialErrorContent, PartialErrorModalityLiteral } from \"./error\";\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PdfContent, PdfModalityLiteral } from \"./pdf-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialSearchResultContent, PartialSearchResultModalityLiteral, SearchResultContent, SearchResultModalityLiteral } from \"./search-result\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { PartialToolResponseContent, ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n PdfModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n ErrorModalityLiteral,\n SearchResultModalityLiteral,\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 PCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n PdfContentMetadata: PCM = z.undefined() as PCM,\n ToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n ToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n ReasoningContentMetadata: RCM = z.undefined() as RCM,\n ErrorContentMetadata: ECM = z.undefined() as ECM,\n SearchResultContentMetadata: SRCM = z.undefined() as SRCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n PdfContent(PdfContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ErrorContent(ErrorContentMetadata),\n SearchResultContent(SearchResultContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n PCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, PCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral, PartialErrorModalityLiteral, PartialSearchResultModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n PartialToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n PartialReasoningContentMetadata: RCM = z.undefined() as RCM,\n PartialErrorContentMetadata: ECM = z.undefined() as ECM,\n PartialSearchResultContentMetadata: SRCM = z.undefined() as SRCM,\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n PartialToolResponseContent(PartialToolResponseContentMetadata),\n PartialErrorContent(PartialErrorContentMetadata),\n PartialSearchResultContent(PartialSearchResultContentMetadata),\n ]);\ntype PartialContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialContent<TCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n PCCM extends z.ZodTypeAny = z.ZodUndefined,\n MM 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 PdfContentMetadata: PCCM = z.undefined() as PCCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(\n TextContentMetadata,\n ImageContentMetadata,\n ToolCallContentMetadata,\n ToolResponseContentMetadata,\n ReasoningContentMetadata,\n PdfContentMetadata\n )\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n PCCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, PCCM, RTCM, MM>>>;\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 TPCM 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 ToolResponseContentMetadata: TPCM = z.undefined() as TPCM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata, ToolResponseContentMetadata),\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n TPCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM, RTCM, TPCM>>>;\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\nconst McpServerToolConfiguration = z.object({\n enabled: z.boolean().default(true),\n allowedTools: z.array(z.string().min(1)),\n});\ntype McpServerToolConfigurationType = z.infer<typeof McpServerToolConfiguration>;\n\nconst McpServer = z.object({\n type: z.literal(\"url\"),\n url: z\n .string()\n .url()\n .refine((url) => url.startsWith(\"https://\"), {\n message: \"MCP server URL must start with https://\",\n }),\n name: z.string().min(1),\n toolConfiguration: McpServerToolConfiguration.optional(),\n authorizationToken: z.string().min(1).optional(),\n});\ntype McpServerType = z.infer<typeof McpServer>;\n\nexport { McpServer, McpServerToolConfiguration, type McpServerToolConfigurationType, type McpServerType };\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 ErrorContent,\n ErrorModalityLiteral,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialContentType,\n PartialErrorContent,\n PartialErrorModalityLiteral,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialSearchResultContent,\n PartialSearchResultModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n PartialToolResponseContent,\n PartialToolResponseModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n SafetyErrorTypeLiteral,\n SearchResultContent,\n SearchResultGoogleContentValueType,\n SearchResultGoogleTypeLiteral,\n SearchResultModalityLiteral,\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, serverName?: string, thoughtSignature?: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n serverName: serverName,\n thoughtSignature: thoughtSignature,\n });\n};\n\nconst createToolResponseContent = (\n index: number,\n id: string,\n name: string,\n data: string,\n apiResponse?: { statusCode: number },\n metadata?: any\n): ContentType => {\n return ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n apiResponse: apiResponse,\n metadata: metadata,\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, thoughtSignature?: 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 thoughtSignature: thoughtSignature,\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 = (\n role: RoleEnumType,\n index: number,\n id?: string,\n name?: string,\n args?: string,\n serverName?: string,\n thoughtSignature?: string\n): 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 serverName: serverName,\n thoughtSignature: thoughtSignature,\n }),\n });\n};\n\nconst createPartialToolResponseMessage = (\n role: RoleEnumType,\n index: number,\n id: string,\n name: string,\n data: string\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolResponseContent().parse({\n modality: PartialToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\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\nconst createSafetyErrorContent = (category: string, probability: string, blocked: boolean, message: string): ContentType => {\n return ErrorContent().parse({\n modality: ErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n value: {\n category,\n probability,\n blocked,\n message,\n },\n },\n });\n};\n\nconst createPartialSafetyErrorContent = (category?: string, probability?: string, blocked?: boolean, message?: string): PartialContentType => {\n return PartialErrorContent().parse({\n modality: PartialErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n category: category,\n probability: probability,\n blocked: blocked,\n message: message,\n },\n });\n};\n\nconst createPartialSafetyErrorMessage = (\n role: RoleEnumType,\n category?: string,\n probability?: string,\n blocked?: boolean,\n message?: string\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialErrorContent().parse({\n modality: PartialErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n category: category,\n probability: probability,\n blocked: blocked,\n message: message,\n },\n }),\n });\n};\n\nconst createSearchResultGoogleContent = (query: string, responses: SearchResultGoogleContentValueType[\"responses\"], references: SearchResultGoogleContentValueType[\"references\"]): ContentType => {\n return SearchResultContent().parse({\n modality: SearchResultModalityLiteral,\n value: {\n type: SearchResultGoogleTypeLiteral,\n query,\n responses,\n references,\n },\n });\n};\n\nconst createPartialSearchResultGoogleContent = (query?: string, responses?: SearchResultGoogleContentValueType[\"responses\"], references?: SearchResultGoogleContentValueType[\"references\"]): PartialContentType => {\n return PartialSearchResultContent().parse({\n modality: PartialSearchResultModalityLiteral,\n value: {\n type: SearchResultGoogleTypeLiteral,\n query: query,\n responses: responses,\n references: references,\n },\n });\n};\n\nconst createPartialSearchResultGoogleMessage = (\n role: RoleEnumType,\n query?: string,\n responses?: SearchResultGoogleContentValueType[\"responses\"],\n references?: SearchResultGoogleContentValueType[\"references\"]\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialSearchResultContent().parse({\n modality: PartialSearchResultModalityLiteral,\n value: {\n type: SearchResultGoogleTypeLiteral,\n query: query,\n responses: responses,\n references: references,\n },\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialSafetyErrorContent,\n createPartialSafetyErrorMessage,\n createPartialSearchResultGoogleContent,\n createPartialSearchResultGoogleMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createPartialToolResponseMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createSafetyErrorContent,\n createSearchResultGoogleContent,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseContent,\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 { 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 PairedSelectConfigItemTypeLiteral = \"paired-select\" as const;\n\nconst PairedSelectChoice = z.object({\n value: z.string().min(1),\n label: z.string().min(1),\n});\ntype PairedSelectChoiceType = z.infer<typeof PairedSelectChoice>;\n\nconst PairedSelectFieldDef = z.object({\n key: z.string().min(1),\n label: z.string().min(1),\n description: z.string().min(1).max(500).optional(),\n choices: z.array(PairedSelectChoice).min(1),\n});\ntype PairedSelectFieldDefType = z.infer<typeof PairedSelectFieldDef>;\n\nconst PairedSelectConfigItemDef = z.object({\n type: z.literal(PairedSelectConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n fields: z.tuple([PairedSelectFieldDef, PairedSelectFieldDef]),\n uniqueByField: z.string().min(1).optional(),\n});\ntype PairedSelectConfigItemType = z.infer<typeof PairedSelectConfigItemDef>;\n\nconst createFieldEnum = (choices: PairedSelectChoiceType[]) => {\n const values = choices.map((choice) => choice.value);\n if (values.length === 0) {\n throw new Error(\"PairedSelectConfigItem fields must define at least one choice\");\n }\n const [first, ...rest] = values as [string, ...string[]];\n return z.enum([first, ...rest]);\n};\n\nconst PairedSelectConfigItemSchema = (fields: readonly [PairedSelectFieldDefType, PairedSelectFieldDefType]) => {\n const shape = fields.reduce<z.ZodRawShape>((acc, field) => {\n acc[field.key] = createFieldEnum(field.choices);\n return acc;\n }, {});\n return z.array(z.object(shape)).optional();\n};\ntype PairedSelectConfigItemSchemaType = z.infer<ReturnType<typeof PairedSelectConfigItemSchema>>;\n\nconst PairedSelectConfigItem = (data: Omit<PairedSelectConfigItemType, \"type\">) => {\n const parsed = PairedSelectConfigItemDef.parse({\n type: PairedSelectConfigItemTypeLiteral,\n ...data,\n });\n\n const fieldKeys = new Set(parsed.fields.map((field) => field.key));\n if (fieldKeys.size !== parsed.fields.length) {\n throw new Error(\"PairedSelectConfigItem fields must have unique keys\");\n }\n\n if (parsed.uniqueByField && !fieldKeys.has(parsed.uniqueByField)) {\n throw new Error(\"uniqueByField must reference one of the defined field keys\");\n }\n\n return {\n def: parsed,\n schema: PairedSelectConfigItemSchema(parsed.fields),\n };\n};\n\nexport {\n PairedSelectChoice,\n PairedSelectConfigItem,\n PairedSelectConfigItemDef,\n PairedSelectConfigItemSchema,\n PairedSelectConfigItemTypeLiteral,\n PairedSelectFieldDef,\n type PairedSelectChoiceType,\n type PairedSelectConfigItemSchemaType,\n type PairedSelectConfigItemType,\n type PairedSelectFieldDefType,\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 { PairedSelectConfigItemDef, PairedSelectConfigItemTypeLiteral } from \"./paired-select-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 PairedSelectConfigItemTypeLiteral,\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 PairedSelectConfigItemDef,\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\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: \"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 MCP_SERVERS = {\n type: \"object\",\n title: \"MCP servers\",\n description: \"MCP servers to use for the model.\",\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 MCP_SERVERS,\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","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, ObjectSchemaConfigItem, RangeConfigItem, SelectBooleanConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\nimport { ResponseSchema } from \"@adaline/types\";\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_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 topA = RangeConfigItem({\n param: \"top_a\",\n title: CHAT_CONFIG.TOP_A.title,\n description: CHAT_CONFIG.TOP_A.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 0,\n});\n\nconst topK = RangeConfigItem({\n param: \"top_k\",\n title: CHAT_CONFIG.TOP_K.title,\n description: CHAT_CONFIG.TOP_K.description,\n min: 0,\n max: 100,\n step: 1,\n default: 0,\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 minP = RangeConfigItem({\n param: \"min_p\",\n title: CHAT_CONFIG.MIN_P.title,\n description: CHAT_CONFIG.MIN_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 0,\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 repetitionPenalty = RangeConfigItem({\n param: \"repetition_penalty\",\n title: CHAT_CONFIG.REPETITION_PENALTY.title,\n description: CHAT_CONFIG.REPETITION_PENALTY.description,\n min: 0,\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. \\\n 'none' means the model will not call a function. \\\n 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nconst 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 responseFormatWithSchema = 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 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\nexport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n repetitionPenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n topA,\n topK,\n minP,\n responseFormat,\n responseFormatWithSchema,\n responseSchema,\n};\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n responseFormatWithSchema,\n responseSchema,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n} from \"./common.config.chat-model.open-router\";\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 responseFormat: responseFormatWithSchema.schema,\n responseSchema: responseSchema.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 responseFormat: responseFormatWithSchema.def,\n responseSchema: responseSchema.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./chat-model\";\n\nconst OpenRouterChatModelConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n schema: ChatModelBaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nexport { OpenRouterChatModelConfigs };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport { BaseChatModel, BaseChatModelOptions, BaseChatModelSchema, type BaseChatModelOptionsType } from \"../models/chat-models\";\n\nconst ProviderLiteral = \"open-router\";\nclass OpenRouter<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 baseUrl = \"https://openrouter.ai/api/v1\";\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 = BaseChatModel;\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: \"Open Router does not support embedding models yet\",\n cause: new Error(\"Open Router does not support embedding models yet\"),\n });\n }\n}\n\nexport { OpenRouter };\n","{\n \"microsoft/mai-ds-r1:free\": {\n \"modelName\": \"microsoft/mai-ds-r1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-pro-preview-03-25\": {\n \"modelName\": \"google/gemini-2.5-pro-preview-03-25\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.25,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"thudm/glm-z1-32b:free\": {\n \"modelName\": \"thudm/glm-z1-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"thudm/glm-4-32b:free\": {\n \"modelName\": \"thudm/glm-4-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-flash-preview\": {\n \"modelName\": \"google/gemini-2.5-flash-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-flash-preview:thinking\": {\n \"modelName\": \"google/gemini-2.5-flash-preview:thinking\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 3.5\n }\n }\n }\n ]\n },\n \"openai/o4-mini-high\": {\n \"modelName\": \"openai/o4-mini-high\",\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 \"openai/o3\": {\n \"modelName\": \"openai/o3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 10,\n \"outputPricePerMillion\": 40\n }\n }\n }\n ]\n },\n \"openai/o4-mini\": {\n \"modelName\": \"openai/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 \"shisa-ai/shisa-v2-llama3.3-70b:free\": {\n \"modelName\": \"shisa-ai/shisa-v2-llama3.3-70b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-coder-7b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-coder-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1\": {\n \"modelName\": \"openai/gpt-4.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1-mini\": {\n \"modelName\": \"openai/gpt-4.1-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.39999999999999997,\n \"outputPricePerMillion\": 1.5999999999999999\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1-nano\": {\n \"modelName\": \"openai/gpt-4.1-nano\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"eleutherai/llemma_7b\": {\n \"modelName\": \"eleutherai/llemma_7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"alfredpros/codellama-7b-instruct-solidity\": {\n \"modelName\": \"alfredpros/codellama-7b-instruct-solidity\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"arliai/qwq-32b-arliai-rpr-v1:free\": {\n \"modelName\": \"arliai/qwq-32b-arliai-rpr-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"agentica-org/deepcoder-14b-preview:free\": {\n \"modelName\": \"agentica-org/deepcoder-14b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"moonshotai/kimi-vl-a3b-thinking:free\": {\n \"modelName\": \"moonshotai/kimi-vl-a3b-thinking:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"x-ai/grok-3-mini-beta\": {\n \"modelName\": \"x-ai/grok-3-mini-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"x-ai/grok-3-beta\": {\n \"modelName\": \"x-ai/grok-3-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-nano-8b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-nano-8b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.3-nemotron-super-49b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.3-nemotron-super-49b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-ultra-253b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-ultra-253b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-maverick:free\": {\n \"modelName\": \"meta-llama/llama-4-maverick:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-maverick\": {\n \"modelName\": \"meta-llama/llama-4-maverick\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.16999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-scout:free\": {\n \"modelName\": \"meta-llama/llama-4-scout:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-scout\": {\n \"modelName\": \"meta-llama/llama-4-scout\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.08,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"all-hands/openhands-lm-32b-v0.1\": {\n \"modelName\": \"all-hands/openhands-lm-32b-v0.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.6,\n \"outputPricePerMillion\": 3.4\n }\n }\n }\n ]\n },\n \"mistral/ministral-8b\": {\n \"modelName\": \"mistral/ministral-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-v3-base:free\": {\n \"modelName\": \"deepseek/deepseek-v3-base:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"scb10x/llama3.1-typhoon2-8b-instruct\": {\n \"modelName\": \"scb10x/llama3.1-typhoon2-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"scb10x/llama3.1-typhoon2-70b-instruct\": {\n \"modelName\": \"scb10x/llama3.1-typhoon2-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.88,\n \"outputPricePerMillion\": 0.88\n }\n }\n }\n ]\n },\n \"allenai/molmo-7b-d:free\": {\n \"modelName\": \"allenai/molmo-7b-d:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"bytedance-research/ui-tars-72b:free\": {\n \"modelName\": \"bytedance-research/ui-tars-72b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-3b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-pro-exp-03-25:free\": {\n \"modelName\": \"google/gemini-2.5-pro-exp-03-25:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-32b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-32b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-32b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-vl-32b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat-v3-0324:free\": {\n \"modelName\": \"deepseek/deepseek-chat-v3-0324:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat-v3-0324\": {\n \"modelName\": \"deepseek/deepseek-chat-v3-0324\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.27,\n \"outputPricePerMillion\": 1.1\n }\n }\n }\n ]\n },\n \"featherless/qwerky-72b:free\": {\n \"modelName\": \"featherless/qwerky-72b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"openai/o1-pro\": {\n \"modelName\": \"openai/o1-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 150,\n \"outputPricePerMillion\": 600\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-3.1-24b-instruct:free\": {\n \"modelName\": \"mistralai/mistral-small-3.1-24b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-3.1-24b-instruct\": {\n \"modelName\": \"mistralai/mistral-small-3.1-24b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"open-r1/olympiccoder-32b:free\": {\n \"modelName\": \"open-r1/olympiccoder-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"steelskull/l3.3-electra-r1-70b\": {\n \"modelName\": \"steelskull/l3.3-electra-r1-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.95\n }\n }\n }\n ]\n },\n \"google/gemma-3-1b-it:free\": {\n \"modelName\": \"google/gemma-3-1b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-4b-it:free\": {\n \"modelName\": \"google/gemma-3-4b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-4b-it\": {\n \"modelName\": \"google/gemma-3-4b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"ai21/jamba-1.6-large\": {\n \"modelName\": \"ai21/jamba-1.6-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"ai21/jamba-1.6-mini\": {\n \"modelName\": \"ai21/jamba-1.6-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"google/gemma-3-12b-it:free\": {\n \"modelName\": \"google/gemma-3-12b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-12b-it\": {\n \"modelName\": \"google/gemma-3-12b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command-a\": {\n \"modelName\": \"cohere/command-a\",\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 \"openai/gpt-4o-mini-search-preview\": {\n \"modelName\": \"openai/gpt-4o-mini-search-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-search-preview\": {\n \"modelName\": \"openai/gpt-4o-search-preview\",\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 \"rekaai/reka-flash-3:free\": {\n \"modelName\": \"rekaai/reka-flash-3:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-27b-it:free\": {\n \"modelName\": \"google/gemma-3-27b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-27b-it\": {\n \"modelName\": \"google/gemma-3-27b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"thedrummer/anubis-pro-105b-v1\": {\n \"modelName\": \"thedrummer/anubis-pro-105b-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"latitudegames/wayfarer-large-70b-llama-3.3\": {\n \"modelName\": \"latitudegames/wayfarer-large-70b-llama-3.3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"thedrummer/skyfall-36b-v2\": {\n \"modelName\": \"thedrummer/skyfall-36b-v2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-4-multimodal-instruct\": {\n \"modelName\": \"microsoft/phi-4-multimodal-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"perplexity/sonar-reasoning-pro\": {\n \"modelName\": \"perplexity/sonar-reasoning-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"perplexity/sonar-pro\": {\n \"modelName\": \"perplexity/sonar-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"perplexity/sonar-deep-research\": {\n \"modelName\": \"perplexity/sonar-deep-research\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-zero:free\": {\n \"modelName\": \"deepseek/deepseek-r1-zero:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b:free\": {\n \"modelName\": \"qwen/qwq-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b\": {\n \"modelName\": \"qwen/qwq-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"moonshotai/moonlight-16b-a3b-instruct:free\": {\n \"modelName\": \"moonshotai/moonlight-16b-a3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nousresearch/deephermes-3-llama-3-8b-preview:free\": {\n \"modelName\": \"nousresearch/deephermes-3-llama-3-8b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"openai/gpt-4.5-preview\": {\n \"modelName\": \"openai/gpt-4.5-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 75,\n \"outputPricePerMillion\": 150\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-lite-001\": {\n \"modelName\": \"google/gemini-2.0-flash-lite-001\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.075,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet:thinking\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet:thinking\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"perplexity/r1-1776\": {\n \"modelName\": \"perplexity/r1-1776\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"mistralai/mistral-saba\": {\n \"modelName\": \"mistralai/mistral-saba\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin3.0-r1-mistral-24b:free\": {\n \"modelName\": \"cognitivecomputations/dolphin3.0-r1-mistral-24b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin3.0-mistral-24b:free\": {\n \"modelName\": \"cognitivecomputations/dolphin3.0-mistral-24b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-guard-3-8b\": {\n \"modelName\": \"meta-llama/llama-guard-3-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.055,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"openai/o3-mini-high\": {\n \"modelName\": \"openai/o3-mini-high\",\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 \"deepseek/deepseek-r1-distill-llama-8b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.04,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-001\": {\n \"modelName\": \"google/gemini-2.0-flash-001\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwen-vl-plus\": {\n \"modelName\": \"qwen/qwen-vl-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.21,\n \"outputPricePerMillion\": 0.63\n }\n }\n }\n ]\n },\n \"aion-labs/aion-1.0\": {\n \"modelName\": \"aion-labs/aion-1.0\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"aion-labs/aion-1.0-mini\": {\n \"modelName\": \"aion-labs/aion-1.0-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 1.4\n }\n }\n }\n ]\n },\n \"aion-labs/aion-rp-llama-3.1-8b\": {\n \"modelName\": \"aion-labs/aion-rp-llama-3.1-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"qwen/qwen-vl-max\": {\n \"modelName\": \"qwen/qwen-vl-max\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 3.1999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwen-turbo\": {\n \"modelName\": \"qwen/qwen-turbo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-72b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-72b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-72b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-vl-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7\n }\n }\n }\n ]\n },\n \"qwen/qwen-plus\": {\n \"modelName\": \"qwen/qwen-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.39999999999999997,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"qwen/qwen-max\": {\n \"modelName\": \"qwen/qwen-max\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5999999999999999,\n \"outputPricePerMillion\": 6.3999999999999995\n }\n }\n }\n ]\n },\n \"openai/o3-mini\": {\n \"modelName\": \"openai/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 \"deepseek/deepseek-r1-distill-qwen-1.5b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-1.5b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-24b-instruct-2501:free\": {\n \"modelName\": \"mistralai/mistral-small-24b-instruct-2501:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-24b-instruct-2501\": {\n \"modelName\": \"mistralai/mistral-small-24b-instruct-2501\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-32b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-32b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-14b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-14b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-14b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-14b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"perplexity/sonar-reasoning\": {\n \"modelName\": \"perplexity/sonar-reasoning\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 5\n }\n }\n }\n ]\n },\n \"perplexity/sonar\": {\n \"modelName\": \"perplexity/sonar\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"liquid/lfm-7b\": {\n \"modelName\": \"liquid/lfm-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.01,\n \"outputPricePerMillion\": 0.01\n }\n }\n }\n ]\n },\n \"liquid/lfm-3b\": {\n \"modelName\": \"liquid/lfm-3b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.02\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-llama-70b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-70b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-llama-70b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1:free\": {\n \"modelName\": \"deepseek/deepseek-r1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1\": {\n \"modelName\": \"deepseek/deepseek-r1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 2.1799999999999997\n }\n }\n }\n ]\n },\n \"sophosympatheia/rogue-rose-103b-v0.2:free\": {\n \"modelName\": \"sophosympatheia/rogue-rose-103b-v0.2:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"minimax/minimax-01\": {\n \"modelName\": \"minimax/minimax-01\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 1.1\n }\n }\n }\n ]\n },\n \"mistralai/codestral-2501\": {\n \"modelName\": \"mistralai/codestral-2501\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-4\": {\n \"modelName\": \"microsoft/phi-4\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat:free\": {\n \"modelName\": \"deepseek/deepseek-chat:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat\": {\n \"modelName\": \"deepseek/deepseek-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.38,\n \"outputPricePerMillion\": 0.8899999999999999\n }\n }\n }\n ]\n },\n \"sao10k/l3.3-euryale-70b\": {\n \"modelName\": \"sao10k/l3.3-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"openai/o1\": {\n \"modelName\": \"openai/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 \"eva-unit-01/eva-llama-3.33-70b\": {\n \"modelName\": \"eva-unit-01/eva-llama-3.33-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"x-ai/grok-2-vision-1212\": {\n \"modelName\": \"x-ai/grok-2-vision-1212\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"x-ai/grok-2-1212\": {\n \"modelName\": \"x-ai/grok-2-1212\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"cohere/command-r7b-12-2024\": {\n \"modelName\": \"cohere/command-r7b-12-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.0375,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-exp:free\": {\n \"modelName\": \"google/gemini-2.0-flash-exp:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.3-70b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.3-70b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.3-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.3-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"amazon/nova-lite-v1\": {\n \"modelName\": \"amazon/nova-lite-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.06,\n \"outputPricePerMillion\": 0.24\n }\n }\n }\n ]\n },\n \"amazon/nova-micro-v1\": {\n \"modelName\": \"amazon/nova-micro-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.035,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"amazon/nova-pro-v1\": {\n \"modelName\": \"amazon/nova-pro-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 3.1999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b-preview:free\": {\n \"modelName\": \"qwen/qwq-32b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b-preview\": {\n \"modelName\": \"qwen/qwq-32b-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"google/learnlm-1.5-pro-experimental:free\": {\n \"modelName\": \"google/learnlm-1.5-pro-experimental:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"eva-unit-01/eva-qwen-2.5-72b\": {\n \"modelName\": \"eva-unit-01/eva-qwen-2.5-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-11-20\": {\n \"modelName\": \"openai/gpt-4o-2024-11-20\",\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 \"mistralai/mistral-large-2411\": {\n \"modelName\": \"mistralai/mistral-large-2411\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-large-2407\": {\n \"modelName\": \"mistralai/mistral-large-2407\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"mistralai/pixtral-large-2411\": {\n \"modelName\": \"mistralai/pixtral-large-2411\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"x-ai/grok-vision-beta\": {\n \"modelName\": \"x-ai/grok-vision-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"infermatic/mn-inferor-12b\": {\n \"modelName\": \"infermatic/mn-inferor-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-coder-32b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-coder-32b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-coder-32b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-coder-32b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"raifle/sorcererlm-8x22b\": {\n \"modelName\": \"raifle/sorcererlm-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4.5,\n \"outputPricePerMillion\": 4.5\n }\n }\n }\n ]\n },\n \"eva-unit-01/eva-qwen-2.5-32b\": {\n \"modelName\": \"eva-unit-01/eva-qwen-2.5-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.6,\n \"outputPricePerMillion\": 3.4\n }\n }\n }\n ]\n },\n \"thedrummer/unslopnemo-12b\": {\n \"modelName\": \"thedrummer/unslopnemo-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku:beta\": {\n \"modelName\": \"anthropic/claude-3.5-haiku:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku\": {\n \"modelName\": \"anthropic/claude-3.5-haiku\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku-20241022:beta\": {\n \"modelName\": \"anthropic/claude-3.5-haiku-20241022:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku-20241022\": {\n \"modelName\": \"anthropic/claude-3.5-haiku-20241022\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"neversleep/llama-3.1-lumimaid-70b\": {\n \"modelName\": \"neversleep/llama-3.1-lumimaid-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2.25\n }\n }\n }\n ]\n },\n \"anthracite-org/magnum-v4-72b\": {\n \"modelName\": \"anthracite-org/magnum-v4-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"x-ai/grok-beta\": {\n \"modelName\": \"x-ai/grok-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"mistralai/ministral-8b\": {\n \"modelName\": \"mistralai/ministral-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"mistralai/ministral-3b\": {\n \"modelName\": \"mistralai/ministral-3b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.04,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-7b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-7b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-70b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"inflection/inflection-3-productivity\": {\n \"modelName\": \"inflection/inflection-3-productivity\",\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 \"inflection/inflection-3-pi\": {\n \"modelName\": \"inflection/inflection-3-pi\",\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 \"google/gemini-flash-1.5-8b\": {\n \"modelName\": \"google/gemini-flash-1.5-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.0375,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"thedrummer/rocinante-12b\": {\n \"modelName\": \"thedrummer/rocinante-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"anthracite-org/magnum-v2-72b\": {\n \"modelName\": \"anthracite-org/magnum-v2-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 3\n }\n }\n }\n ]\n },\n \"liquid/lfm-40b\": {\n \"modelName\": \"liquid/lfm-40b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-3b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-3b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-3b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.015,\n \"outputPricePerMillion\": 0.024999999999999998\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-1b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-1b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-1b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-1b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.01,\n \"outputPricePerMillion\": 0.01\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-90b-vision-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-90b-vision-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-11b-vision-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-11b-vision-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-11b-vision-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-11b-vision-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049,\n \"outputPricePerMillion\": 0.049\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-72b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-72b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.39\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-vl-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.6,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"neversleep/llama-3.1-lumimaid-8b\": {\n \"modelName\": \"neversleep/llama-3.1-lumimaid-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"openai/o1-preview\": {\n \"modelName\": \"openai/o1-preview\",\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 \"openai/o1-preview-2024-09-12\": {\n \"modelName\": \"openai/o1-preview-2024-09-12\",\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 \"openai/o1-mini\": {\n \"modelName\": \"openai/o1-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 \"openai/o1-mini-2024-09-12\": {\n \"modelName\": \"openai/o1-mini-2024-09-12\",\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 \"mistralai/pixtral-12b\": {\n \"modelName\": \"mistralai/pixtral-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command-r-plus-08-2024\": {\n \"modelName\": \"cohere/command-r-plus-08-2024\",\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 \"cohere/command-r-08-2024\": {\n \"modelName\": \"cohere/command-r-08-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-7b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-vl-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-7b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-vl-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"sao10k/l3.1-euryale-70b\": {\n \"modelName\": \"sao10k/l3.1-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"google/gemini-flash-1.5-8b-exp\": {\n \"modelName\": \"google/gemini-flash-1.5-8b-exp\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"ai21/jamba-1-5-mini\": {\n \"modelName\": \"ai21/jamba-1-5-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"ai21/jamba-1-5-large\": {\n \"modelName\": \"ai21/jamba-1-5-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"microsoft/phi-3.5-mini-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3.5-mini-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-3-llama-3.1-70b\": {\n \"modelName\": \"nousresearch/hermes-3-llama-3.1-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-3-llama-3.1-405b\": {\n \"modelName\": \"nousresearch/hermes-3-llama-3.1-405b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"openai/chatgpt-4o-latest\": {\n \"modelName\": \"openai/chatgpt-4o-latest\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sao10k/l3-lunaris-8b\": {\n \"modelName\": \"sao10k/l3-lunaris-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.049999999999999996\n }\n }\n }\n ]\n },\n \"aetherwiing/mn-starcannon-12b\": {\n \"modelName\": \"aetherwiing/mn-starcannon-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-08-06\": {\n \"modelName\": \"openai/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 \"meta-llama/llama-3.1-405b:free\": {\n \"modelName\": \"meta-llama/llama-3.1-405b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-405b\": {\n \"modelName\": \"meta-llama/llama-3.1-405b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"nothingiisreal/mn-celeste-12b\": {\n \"modelName\": \"nothingiisreal/mn-celeste-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"perplexity/llama-3.1-sonar-small-128k-online\": {\n \"modelName\": \"perplexity/llama-3.1-sonar-small-128k-online\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"perplexity/llama-3.1-sonar-large-128k-online\": {\n \"modelName\": \"perplexity/llama-3.1-sonar-large-128k-online\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-8b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.1-8b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-8b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.03\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-405b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-405b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.28\n }\n }\n }\n ]\n },\n \"mistralai/codestral-mamba\": {\n \"modelName\": \"mistralai/codestral-mamba\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"mistralai/mistral-nemo:free\": {\n \"modelName\": \"mistralai/mistral-nemo:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-nemo\": {\n \"modelName\": \"mistralai/mistral-nemo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.03,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-mini\": {\n \"modelName\": \"openai/gpt-4o-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-mini-2024-07-18\": {\n \"modelName\": \"openai/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.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"google/gemma-2-27b-it\": {\n \"modelName\": \"google/gemma-2-27b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"alpindale/magnum-72b\": {\n \"modelName\": \"alpindale/magnum-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"google/gemma-2-9b-it:free\": {\n \"modelName\": \"google/gemma-2-9b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-2-9b-it\": {\n \"modelName\": \"google/gemma-2-9b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"01-ai/yi-large\": {\n \"modelName\": \"01-ai/yi-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 3\n }\n }\n }\n ]\n },\n \"ai21/jamba-instruct\": {\n \"modelName\": \"ai21/jamba-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.7\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet-20240620:beta\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet-20240620:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet-20240620\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet-20240620\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sao10k/l3-euryale-70b\": {\n \"modelName\": \"sao10k/l3-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.48,\n \"outputPricePerMillion\": 1.48\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin-mixtral-8x22b\": {\n \"modelName\": \"cognitivecomputations/dolphin-mixtral-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"qwen/qwen-2-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct:free\": {\n \"modelName\": \"mistralai/mistral-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct\": {\n \"modelName\": \"mistralai/mistral-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.029,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.3\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.029,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-2-pro-llama-3-8b\": {\n \"modelName\": \"nousresearch/hermes-2-pro-llama-3-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.024999999999999998,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"microsoft/phi-3-mini-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3-mini-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-3-medium-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3-medium-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-70b\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"google/gemini-flash-1.5\": {\n \"modelName\": \"google/gemini-flash-1.5\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.075,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"openai/gpt-4o\": {\n \"modelName\": \"openai/gpt-4o\",\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 \"openai/gpt-4o:extended\": {\n \"modelName\": \"openai/gpt-4o:extended\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 6,\n \"outputPricePerMillion\": 18\n }\n }\n }\n ]\n },\n \"meta-llama/llama-guard-2-8b\": {\n \"modelName\": \"meta-llama/llama-guard-2-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-05-13\": {\n \"modelName\": \"openai/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\": 15\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-8b:extended\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-8b:extended\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-8b\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"sao10k/fimbulvetr-11b-v2\": {\n \"modelName\": \"sao10k/fimbulvetr-11b-v2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3-8b-instruct\": {\n \"modelName\": \"meta-llama/llama-3-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.03,\n \"outputPricePerMillion\": 0.06\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"mistralai/mixtral-8x22b-instruct\": {\n \"modelName\": \"mistralai/mixtral-8x22b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/wizardlm-2-8x22b\": {\n \"modelName\": \"microsoft/wizardlm-2-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"microsoft/wizardlm-2-7b\": {\n \"modelName\": \"microsoft/wizardlm-2-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"google/gemini-pro-1.5\": {\n \"modelName\": \"google/gemini-pro-1.5\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.25,\n \"outputPricePerMillion\": 5\n }\n }\n }\n ]\n },\n \"openai/gpt-4-turbo\": {\n \"modelName\": \"openai/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 \"cohere/command-r-plus\": {\n \"modelName\": \"cohere/command-r-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"cohere/command-r-plus-04-2024\": {\n \"modelName\": \"cohere/command-r-plus-04-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sophosympatheia/midnight-rose-70b\": {\n \"modelName\": \"sophosympatheia/midnight-rose-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command\": {\n \"modelName\": \"cohere/command\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"cohere/command-r\": {\n \"modelName\": \"cohere/command-r\",\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 \"anthropic/claude-3-haiku:beta\": {\n \"modelName\": \"anthropic/claude-3-haiku:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 1.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-haiku\": {\n \"modelName\": \"anthropic/claude-3-haiku\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 1.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-opus:beta\": {\n \"modelName\": \"anthropic/claude-3-opus:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 15,\n \"outputPricePerMillion\": 75\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-opus\": {\n \"modelName\": \"anthropic/claude-3-opus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 15,\n \"outputPricePerMillion\": 75\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-sonnet\": {\n \"modelName\": \"anthropic/claude-3-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"cohere/command-r-03-2024\": {\n \"modelName\": \"cohere/command-r-03-2024\",\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 \"mistralai/mistral-large\": {\n \"modelName\": \"mistralai/mistral-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-0613\": {\n \"modelName\": \"openai/gpt-3.5-turbo-0613\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"openai/gpt-4-turbo-preview\": {\n \"modelName\": \"openai/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 \"nousresearch/nous-hermes-2-mixtral-8x7b-dpo\": {\n \"modelName\": \"nousresearch/nous-hermes-2-mixtral-8x7b-dpo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.6,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-medium\": {\n \"modelName\": \"mistralai/mistral-medium\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.75,\n \"outputPricePerMillion\": 8.1\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small\": {\n \"modelName\": \"mistralai/mistral-small\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-tiny\": {\n \"modelName\": \"mistralai/mistral-tiny\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.2\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin-mixtral-8x7b\": {\n \"modelName\": \"cognitivecomputations/dolphin-mixtral-8x7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"google/gemini-pro-vision\": {\n \"modelName\": \"google/gemini-pro-vision\",\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 \"mistralai/mixtral-8x7b-instruct\": {\n \"modelName\": \"mistralai/mixtral-8x7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.24,\n \"outputPricePerMillion\": 0.24\n }\n }\n }\n ]\n },\n \"openchat/openchat-7b\": {\n \"modelName\": \"openchat/openchat-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"neversleep/noromaid-20b\": {\n \"modelName\": \"neversleep/noromaid-20b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.75,\n \"outputPricePerMillion\": 1.5\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.1:beta\": {\n \"modelName\": \"anthropic/claude-2.1:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.1\": {\n \"modelName\": \"anthropic/claude-2.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2:beta\": {\n \"modelName\": \"anthropic/claude-2:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2\": {\n \"modelName\": \"anthropic/claude-2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"undi95/toppy-m-7b\": {\n \"modelName\": \"undi95/toppy-m-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"alpindale/goliath-120b\": {\n \"modelName\": \"alpindale/goliath-120b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 6.5625,\n \"outputPricePerMillion\": 9.375\n }\n }\n }\n ]\n },\n \"openrouter/auto\": {\n \"modelName\": \"openrouter/auto\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": -1000000,\n \"outputPricePerMillion\": -1000000\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-1106\": {\n \"modelName\": \"openai/gpt-3.5-turbo-1106\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"openai/gpt-4-1106-preview\": {\n \"modelName\": \"openai/gpt-4-1106-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 \"google/palm-2-chat-bison-32k\": {\n \"modelName\": \"google/palm-2-chat-bison-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"google/palm-2-codechat-bison-32k\": {\n \"modelName\": \"google/palm-2-codechat-bison-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"jondurbin/airoboros-l2-70b\": {\n \"modelName\": \"jondurbin/airoboros-l2-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-instruct\": {\n \"modelName\": \"openai/gpt-3.5-turbo-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.1\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"pygmalionai/mythalion-13b\": {\n \"modelName\": \"pygmalionai/mythalion-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5625,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-16k\": {\n \"modelName\": \"openai/gpt-3.5-turbo-16k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"openai/gpt-4-32k\": {\n \"modelName\": \"openai/gpt-4-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 60,\n \"outputPricePerMillion\": 120\n }\n }\n }\n ]\n },\n \"openai/gpt-4-32k-0314\": {\n \"modelName\": \"openai/gpt-4-32k-0314\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 60,\n \"outputPricePerMillion\": 120\n }\n }\n }\n ]\n },\n \"nousresearch/nous-hermes-llama2-13b\": {\n \"modelName\": \"nousresearch/nous-hermes-llama2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"mancer/weaver\": {\n \"modelName\": \"mancer/weaver\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.125,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"huggingfaceh4/zephyr-7b-beta:free\": {\n \"modelName\": \"huggingfaceh4/zephyr-7b-beta:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.0:beta\": {\n \"modelName\": \"anthropic/claude-2.0:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.0\": {\n \"modelName\": \"anthropic/claude-2.0\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"undi95/remm-slerp-l2-13b\": {\n \"modelName\": \"undi95/remm-slerp-l2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5625,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"google/palm-2-chat-bison\": {\n \"modelName\": \"google/palm-2-chat-bison\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"google/palm-2-codechat-bison\": {\n \"modelName\": \"google/palm-2-codechat-bison\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"gryphe/mythomax-l2-13b\": {\n \"modelName\": \"gryphe/mythomax-l2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.065,\n \"outputPricePerMillion\": 0.065\n }\n }\n }\n ]\n },\n \"meta-llama/llama-2-13b-chat\": {\n \"modelName\": \"meta-llama/llama-2-13b-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.22,\n \"outputPricePerMillion\": 0.22\n }\n }\n }\n ]\n },\n \"meta-llama/llama-2-70b-chat\": {\n \"modelName\": \"meta-llama/llama-2-70b-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo\": {\n \"modelName\": \"openai/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 \"openai/gpt-3.5-turbo-0125\": {\n \"modelName\": \"openai/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 \"openai/gpt-4\": {\n \"modelName\": \"openai/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 \"openai/gpt-4-0314\": {\n \"modelName\": \"openai/gpt-4-0314\",\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}\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenRouterChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenRouterChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenRouterChatModelRoles, OpenRouterChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst OpenRouterChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst OpenRouterChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport { OpenRouterChatModelModalitiesEnum, OpenRouterChatModelModalities };\n","import { z } from \"zod\";\n\nconst OpenRouterBaseLogProb = z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n});\n\nconst OpenRouterLogProb = z\n .object({\n content: z\n .array(\n OpenRouterBaseLogProb.extend({\n top_logprobs: z.array(OpenRouterBaseLogProb),\n })\n )\n .nullable(),\n refusal: z\n .array(\n OpenRouterBaseLogProb.extend({\n top_logprobs: z.array(OpenRouterBaseLogProb),\n })\n )\n .nullable(),\n })\n .nullable();\n\nconst OpenRouterReasoningDetail = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"reasoning.summary\"),\n summary: z.string(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n z.object({\n type: z.literal(\"reasoning.encrypted\"),\n data: z.string(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n z.object({\n type: z.literal(\"reasoning.text\"),\n text: z.string().nullable().optional(),\n signature: z.string().nullable().optional(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n]);\n\nconst OpenRouterToolCallsCompleteChatResponse = 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 OpenRouterCompleteChatResponse = 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 message: z.object({\n role: z.string(),\n content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsCompleteChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n reasoning: z.string().nullable().optional(),\n reasoning_details: z.array(OpenRouterReasoningDetail).optional(),\n }),\n logprobs: OpenRouterLogProb.optional(),\n finish_reason: z.string().nullable().optional(),\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 OpenRouterCompleteChatResponseType = z.infer<typeof OpenRouterCompleteChatResponse>;\n\nconst OpenRouterToolCallsStreamChatResponse = 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 OpenRouterStreamChatResponse = 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 role: z.string().optional(),\n content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n reasoning: z.string().nullable().optional(),\n reasoning_details: z.array(OpenRouterReasoningDetail).optional(),\n })\n .or(z.object({})),\n logprobs: OpenRouterLogProb.optional(),\n finish_reason: z.string().nullable().optional(),\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 OpenRouterStreamChatResponseType = z.infer<typeof OpenRouterStreamChatResponse>;\n\nexport {\n OpenRouterStreamChatResponse,\n OpenRouterCompleteChatResponse,\n OpenRouterToolCallsStreamChatResponse,\n OpenRouterToolCallsCompleteChatResponse,\n type OpenRouterStreamChatResponseType,\n type OpenRouterCompleteChatResponseType,\n};\n","import { z } from \"zod\";\n\nconst OpenRouterChatRequestTool = 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 OpenRouterChatRequestToolType = z.infer<typeof OpenRouterChatRequestTool>;\n\nconst OpenRouterChatRequestToolChoiceEnum = z.enum([\"none\", \"auto\", \"required\"]);\ntype OpenRouterChatRequestToolChoiceEnumType = z.infer<typeof OpenRouterChatRequestToolChoiceEnum>;\n\nconst OpenRouterChatRequestToolChoiceFunction = z.object({\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string().min(1),\n }),\n});\ntype OpenRouterChatRequestToolChoiceFunctionType = z.infer<typeof OpenRouterChatRequestToolChoiceFunction>;\n\nconst OpenRouterChatRequestResponseFormat = 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 OpenRouterChatRequestResponseFormatType = z.infer<typeof OpenRouterChatRequestResponseFormat>;\n\nconst OpenRouterChatRequestTextContent = z.object({\n text: z.string().min(1),\n type: z.literal(\"text\"),\n});\ntype OpenRouterChatRequestTextContentType = z.infer<typeof OpenRouterChatRequestTextContent>;\n\nconst OpenRouterChatRequestImageContent = 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 OpenRouterChatRequestImageContentType = z.infer<typeof OpenRouterChatRequestImageContent>;\n\nconst OpenRouterChatRequestToolCallContent = 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 OpenRouterChatRequestToolCallContentType = z.infer<typeof OpenRouterChatRequestToolCallContent>;\n\nconst OpenRouterChatRequestSystemMessage = z.object({\n role: z.literal(\"system\"),\n content: z.string().min(1).or(z.array(OpenRouterChatRequestTextContent).min(1)),\n});\ntype OpenRouterChatRequestSystemMessageType = z.infer<typeof OpenRouterChatRequestSystemMessage>;\n\nconst OpenRouterChatRequestUserMessage = z.object({\n role: z.literal(\"user\"),\n content: z\n .string()\n .min(1)\n .or(z.array(z.union([OpenRouterChatRequestTextContent, OpenRouterChatRequestImageContent])).min(1)),\n});\ntype OpenRouterChatRequestUserMessageType = z.infer<typeof OpenRouterChatRequestUserMessage>;\n\nconst OpenRouterChatRequestAssistantMessage = z.object({\n role: z.literal(\"assistant\"),\n content: z.string().min(1).or(z.array(OpenRouterChatRequestTextContent).min(1)).optional(),\n tool_calls: z.array(OpenRouterChatRequestToolCallContent).min(1).optional(),\n});\ntype OpenRouterChatRequestAssistantMessageType = z.infer<typeof OpenRouterChatRequestAssistantMessage>;\n\nconst OpenRouterChatRequestToolMessage = z.object({\n role: z.literal(\"tool\"),\n tool_call_id: z.string().min(1),\n content: z.string().min(1),\n});\ntype OpenRouterChatRequestToolMessageType = z.infer<typeof OpenRouterChatRequestToolMessage>;\n\nconst OpenRouterChatRequestMessage = z.union([\n OpenRouterChatRequestSystemMessage,\n OpenRouterChatRequestUserMessage,\n OpenRouterChatRequestAssistantMessage,\n OpenRouterChatRequestToolMessage,\n]);\ntype OpenRouterChatRequestMessageType = z.infer<typeof OpenRouterChatRequestMessage>;\n\nconst OpenRouterChatRequest = z.object({\n model: z.string().min(1).optional(),\n messages: z.array(OpenRouterChatRequestMessage).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_tokens: z.number().min(0).nullable().optional(),\n presence_penalty: z.number().min(-2).max(2).nullable().optional(),\n repetition_penalty: z.number().min(0).max(2).nullable().optional(),\n response_format: OpenRouterChatRequestResponseFormat.optional(),\n seed: z.number().nullable().optional(),\n stop: z.string().or(z.array(z.string()).max(4)).nullable().optional(),\n top_a: z.number().min(0).max(1).nullable().optional(),\n temperature: z.number().min(0).max(2).nullable().optional(),\n top_p: z.number().min(0).max(1).nullable().optional(),\n top_k: z.number().min(0).max(100).nullable().optional(),\n min_p: z.number().min(0).max(1).nullable().optional(),\n tools: z.array(OpenRouterChatRequestTool).optional(),\n tool_choice: OpenRouterChatRequestToolChoiceEnum.or(OpenRouterChatRequestToolChoiceFunction).optional(),\n});\ntype OpenRouterChatRequestType = z.infer<typeof OpenRouterChatRequest>;\n\nexport {\n OpenRouterChatRequest,\n OpenRouterChatRequestMessage,\n OpenRouterChatRequestSystemMessage,\n OpenRouterChatRequestUserMessage,\n OpenRouterChatRequestAssistantMessage,\n OpenRouterChatRequestToolMessage,\n OpenRouterChatRequestTextContent,\n OpenRouterChatRequestImageContent,\n OpenRouterChatRequestToolCallContent,\n OpenRouterChatRequestTool,\n OpenRouterChatRequestToolChoiceEnum,\n OpenRouterChatRequestToolChoiceFunction,\n OpenRouterChatRequestResponseFormat,\n type OpenRouterChatRequestType,\n type OpenRouterChatRequestMessageType,\n type OpenRouterChatRequestSystemMessageType,\n type OpenRouterChatRequestUserMessageType,\n type OpenRouterChatRequestAssistantMessageType,\n type OpenRouterChatRequestToolMessageType,\n type OpenRouterChatRequestTextContentType,\n type OpenRouterChatRequestImageContentType,\n type OpenRouterChatRequestToolCallContentType,\n type OpenRouterChatRequestToolType,\n type OpenRouterChatRequestToolChoiceEnumType,\n type OpenRouterChatRequestToolChoiceFunctionType,\n type OpenRouterChatRequestResponseFormatType,\n};\n","import { z } from \"zod\";\n\nimport {\n ChatModelSchemaType,\n ChatModelV1,\n getMimeTypeFromBase64,\n HeadersType,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidModelRequestError,\n InvalidToolsError,\n ModelResponseError,\n ParamsType,\n removeUndefinedEntries,\n SelectStringConfigItemDefType,\n UrlType,\n urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\nimport {\n AssistantRoleLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentValueType,\n ChatLogProbsType,\n ChatModelPriceType,\n ChatResponseType,\n ChatUsageType,\n Config,\n ConfigType,\n ContentType,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createRedactedReasoningContent,\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 { OpenRouter } from \"../../provider/provider.open-router\";\nimport pricingData from \"../pricing.json\";\nimport {\n OpenRouterChatRequest,\n OpenRouterChatRequestImageContentType,\n OpenRouterChatRequestTextContentType,\n OpenRouterChatRequestToolType,\n OpenRouterChatRequestType,\n OpenRouterCompleteChatResponse,\n OpenRouterCompleteChatResponseType,\n OpenRouterStreamChatResponse,\n OpenRouterStreamChatResponseType,\n} from \"./types\";\n\nconst BaseChatModelOptions = z.object({\n modelName: z.string(),\n apiKey: z.string(),\n openRouterReferer: z.string().optional(),\n openRouterTitle: 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\n private readonly modelName: string;\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly streamChatUrl: string;\n private readonly completeChatUrl: string;\n private readonly openRouterReferer: string | undefined;\n private readonly openRouterTitle: 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(OpenRouter.baseUrl);\n this.streamChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n this.completeChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n this.openRouterReferer = parsedOptions.openRouterReferer;\n this.openRouterTitle = parsedOptions.openRouterTitle;\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.openRouterReferer ? { \"HTTP-Referer\": this.openRouterReferer } : {}),\n ...(this.openRouterTitle ? { \"X-Title\": this.openRouterTitle } : {}),\n };\n }\n\n getDefaultParams(): ParamsType {\n return {\n model: this.modelName,\n };\n }\n\n // Open Router 429: use Retry-After header (seconds). https://openrouter.ai/docs/errors\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType, _responseData: unknown): { shouldRetry: boolean; delayMs: number } {\n const shouldRetry = true;\n let delayMs = 0;\n const retryAfter = responseHeaders[\"retry-after\"];\n if (retryAfter) {\n const seconds = parseInt(retryAfter, 10);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n delayMs = seconds * 1000;\n }\n }\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: OpenRouterChatRequestType): {\n modelName: string | undefined;\n config: ConfigType;\n messages: MessageType[];\n tools: ToolType[] | undefined;\n } {\n const safeRequest = OpenRouterChatRequest.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_tokens;\n _config.temperature = parsedRequest.temperature;\n _config.topA = parsedRequest.top_a;\n _config.topP = parsedRequest.top_p;\n _config.minP = parsedRequest.min_p;\n _config.topK = parsedRequest.top_k;\n _config.repetitionPenalty = parsedRequest.repetition_penalty;\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 | OpenRouterChatRequestTextContentType[];\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 | (OpenRouterChatRequestTextContentType | OpenRouterChatRequestImageContentType)[];\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 | OpenRouterChatRequestTextContentType[];\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: OpenRouterChatRequestToolType) => {\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_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 // Filter out error and search-result modalities from all messages (these are output-only modalities)\n parsedMessages.forEach((message) => {\n message.content = message.content.filter(\n (content) => content.modality !== \"error\" && content.modality !== \"search-result\"\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 ...(textContent.length > 0 ? { 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 = OpenRouterCompleteChatResponse.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: OpenRouterCompleteChatResponseType = safe.data;\n const messages: MessageType[] = [\n {\n role: AssistantRoleLiteral,\n content: [],\n },\n ];\n const message = parsedResponse.choices[0].message;\n\n if (message.reasoning_details && message.reasoning_details.length > 0) {\n for (const detail of message.reasoning_details) {\n if (detail.type === \"reasoning.summary\") {\n messages[0].content.push(createReasoningContent(detail.summary, \"\"));\n } else if (detail.type === \"reasoning.encrypted\") {\n messages[0].content.push(createRedactedReasoningContent(detail.data));\n } else if (detail.type === \"reasoning.text\") {\n messages[0].content.push(createReasoningContent(detail.text ?? \"\", detail.signature ?? \"\"));\n }\n }\n } else if (message.reasoning) {\n messages[0].content.push(createReasoningContent(message.reasoning, \"\"));\n }\n\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 let usage: ChatUsageType | undefined;\n if (parsedResponse.usage) {\n usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\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 = OpenRouterStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n const partialResponse: PartialChatResponseType = { partialMessages: [] };\n const parsedResponse: OpenRouterStreamChatResponseType = 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 (\"reasoning_details\" in message && message.reasoning_details !== undefined && message.reasoning_details.length > 0) {\n for (const detail of message.reasoning_details) {\n if (detail.type === \"reasoning.summary\") {\n partialResponse.partialMessages.push(createPartialReasoningMessage(AssistantRoleLiteral, detail.summary));\n } else if (detail.type === \"reasoning.encrypted\") {\n partialResponse.partialMessages.push(createPartialRedactedReasoningMessage(AssistantRoleLiteral, detail.data));\n } else if (detail.type === \"reasoning.text\") {\n partialResponse.partialMessages.push(\n createPartialReasoningMessage(AssistantRoleLiteral, detail.text ?? undefined, detail.signature ?? undefined)\n );\n }\n }\n } else if (\"reasoning\" in message && message.reasoning) {\n partialResponse.partialMessages.push(createPartialReasoningMessage(AssistantRoleLiteral, message.reasoning));\n }\n if (\"content\" in message && message.content !== null && message.content !== undefined && message.content !== \"\") {\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 { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenRouterChatModelConfigs } from \"../../configs\";\nimport {\n OpenRouterChatModelModalities,\n OpenRouterChatModelModalitiesEnum,\n OpenRouterChatModelRoles,\n OpenRouterChatModelRolesMap,\n} from \"./types\";\n\nconst BaseChatModelSchema = ChatModelSchema(OpenRouterChatModelRoles, OpenRouterChatModelModalitiesEnum).parse({\n name: \"__base__\",\n description: \"Base chat model for Open Router\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenRouterChatModelRolesMap,\n modalities: OpenRouterChatModelModalities,\n config: {\n def: OpenRouterChatModelConfigs.base(128000, 4).def,\n schema: OpenRouterChatModelConfigs.base(128000, 4).schema,\n },\n});\n\nexport { BaseChatModelSchema };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/error.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/pdf-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/search-result.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/mcp.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/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/paired-select-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/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/base64.ts","../../../../packages/provider/src/utils/url.ts","../src/configs/chat-model/common.config.chat-model.open-router.ts","../src/configs/chat-model/base.config.chat-model.open-router.ts","../src/configs/configs.openai-router.ts","../src/provider/provider.open-router.ts","../src/models/pricing.json","../src/models/chat-models/types/roles.chat-model.open-router.ts","../src/models/chat-models/types/modalities.chat-model.open-router.ts","../src/models/chat-models/types/response.chat-model.open-router.ts","../src/models/chat-models/types/request.chat-model.open-router.ts","../src/models/chat-models/base-chat-model.open-router.ts","../src/models/chat-models/base-chat-model-schema.open-router.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ErrorModalityLiteral","SafetyErrorTypeLiteral","SafetyErrorContentValue","ErrorContent","Metadata","PartialErrorModalityLiteral","PartialSafetyErrorContentValue","PartialErrorContent","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","PdfModalityLiteral","Base64PdfContentTypeLiteral","Base64PdfContentValue","UrlPdfContentTypeLiteral","UrlPdfContentValue","PdfContentValue","PdfContent","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","SearchResultModalityLiteral","SearchResultContentValue","SearchResultContent","PartialSearchResultModalityLiteral","PartialSearchResultContentValue","PartialSearchResultContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","PartialToolResponseModalityLiteral","PartialToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","PdfContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","ErrorContentMetadata","SearchResultContentMetadata","PartialModalityLiterals","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialToolResponseContentMetadata","PartialReasoningContentMetadata","PartialErrorContentMetadata","PartialSearchResultContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","Config","McpServerToolConfiguration","url","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","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","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","serverName","thoughtSignature","createPartialTextMessage","role","createPartialToolCallMessage","createReasoningContent","thinking","signature","createRedactedReasoningContent","createPartialReasoningMessage","createPartialRedactedReasoningMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","ObjectSchemaConfigItemSchema","schema","ObjectSchemaConfigItem","PairedSelectConfigItemTypeLiteral","PairedSelectChoice","PairedSelectFieldDef","PairedSelectConfigItemDef","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","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","MCP_SERVERS","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","temperature","Tt","an","maxTokens","maxOutputTokens","stop","maxSequences","ct","topA","topK","topP","minP","frequencyPenalty","presencePenalty","repetitionPenalty","seed","logProbs","wt","topLogProbs","toolChoice","Pt","responseFormat","responseFormatWithSchema","responseSchema","ft","Po","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","OpenRouterChatModelConfigs","ProviderLiteral","OpenRouter","BaseChatModelSchema","options","model","BaseChatModel","parsedOptions","BaseChatModelOptions","acc","D","pricing_default","OpenRouterChatModelRoles","En","Un","le","kn","OpenRouterChatModelRolesMap","OpenRouterChatModelModalities","Q","pe","K","X","OpenRouterChatModelModalitiesEnum","OpenRouterBaseLogProb","OpenRouterLogProb","OpenRouterReasoningDetail","OpenRouterToolCallsCompleteChatResponse","OpenRouterCompleteChatResponse","OpenRouterToolCallsStreamChatResponse","OpenRouterStreamChatResponse","OpenRouterChatRequestTool","OpenRouterChatRequestToolChoiceEnum","OpenRouterChatRequestToolChoiceFunction","OpenRouterChatRequestResponseFormat","OpenRouterChatRequestTextContent","OpenRouterChatRequestImageContent","OpenRouterChatRequestToolCallContent","OpenRouterChatRequestSystemMessage","OpenRouterChatRequestUserMessage","OpenRouterChatRequestAssistantMessage","OpenRouterChatRequestToolMessage","OpenRouterChatRequestMessage","OpenRouterChatRequest","modelSchema","Cn","responseHeaders","_responseData","delayMs","retryAfter","seconds","messages","message","request","safeRequest","q","parsedRequest","modelName","_config","fo","dn","toolCallMap","_content","c","ke","Tn","Se","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","G","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","B","Z","textContent","toolCalls","imageContent","combinedContent","H","parsedTool","Oo","__async","resolve","transformedMessages","transformedTools","response","safe","N","parsedResponse","detail","ya","ca","ea","na","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","_c","_d","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","ma","ga","la","da","headers","query","__yieldStar","sanitizedHeaders","Zt"],"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 ErrorModalityLiteral = \"error\" as const;\n\nconst SafetyErrorTypeLiteral = \"safety\" as const;\n\nconst SafetyErrorContentValue = z.object({\n type: z.literal(SafetyErrorTypeLiteral),\n value: z.object({ \n category: z.string(),\n probability: z.string(),\n blocked: z.boolean(),\n message: z.string(),\n }),\n });\ntype SafetyErrorContentType = z.infer<typeof SafetyErrorContentValue>;\n\nconst ErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ErrorModalityLiteral),\n value: z.discriminatedUnion(\"type\", [SafetyErrorContentValue]),\n metadata: Metadata,\n });\ntype ErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ErrorContent<M>>>;\n\nconst PartialErrorModalityLiteral = \"partial-error\" as const;\n\nconst PartialSafetyErrorContentValue = z.object({\n type: z.literal(SafetyErrorTypeLiteral),\n category: z.string().optional(),\n probability: z.string().optional(),\n blocked: z.boolean().optional(),\n message: z.string().optional(),\n });\ntype PartialSafetyErrorContentType = z.infer<typeof PartialSafetyErrorContentValue>;\n\nconst PartialErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialErrorModalityLiteral),\n value: z.discriminatedUnion(\"type\", [PartialSafetyErrorContentValue]),\n metadata: Metadata,\n });\ntype PartialErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialErrorContent<M>>>;\n\nexport {\n ErrorContent,\n PartialErrorContent,\n ErrorModalityLiteral,\n PartialErrorModalityLiteral,\n SafetyErrorTypeLiteral,\n SafetyErrorContentValue,\n type SafetyErrorContentType,\n type PartialSafetyErrorContentType,\n type ErrorContentType,\n type PartialErrorContentType,\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 PdfModalityLiteral = \"pdf\" as const;\n\nconst Base64PdfContentTypeLiteral = \"base64\" as const;\nconst Base64PdfContentValue = z.object({\n type: z.literal(Base64PdfContentTypeLiteral),\n base64: z.string(),\n});\ntype Base64PdfContentValueType = z.infer<typeof Base64PdfContentValue>;\n\nconst UrlPdfContentTypeLiteral = \"url\" as const;\nconst UrlPdfContentValue = z.object({\n type: z.literal(UrlPdfContentTypeLiteral),\n url: z.string(),\n});\ntype UrlPdfContentValueType = z.infer<typeof UrlPdfContentValue>;\n\nconst PdfContentValue = z.discriminatedUnion(\"type\", [Base64PdfContentValue, UrlPdfContentValue]);\ntype PdfContentValueType = z.infer<typeof PdfContentValue>;\n\nconst PdfContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PdfModalityLiteral),\n value: PdfContentValue,\n file: z.object({\n name: z.string(),\n id: z.string(),\n size: z.number().optional(),\n }),\n metadata: Metadata,\n });\ntype PdfContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PdfContent<M>>>;\n\nexport {\n Base64PdfContentValue,\n PdfContent,\n PdfModalityLiteral,\n UrlPdfContentValue,\n UrlPdfContentTypeLiteral,\n Base64PdfContentTypeLiteral,\n type Base64PdfContentValueType,\n type PdfContentType,\n type PdfContentValueType,\n type UrlPdfContentValueType,\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 SearchResultModalityLiteral = \"search-result\" as const;\n\nconst SearchResultContentValue = z.object({\n type: z.string().optional(),\n query: z.string(),\n responses: z.array(\n z.object({\n source: z.string(),\n url: z.string(),\n title: z.string(),\n snippet: z.string().optional(),\n })\n ),\n references: z.array(\n z.object({\n text: z.string(),\n responseIndices: z.array(z.number()),\n startIndex: z.number().optional(),\n endIndex: z.number().optional(),\n confidenceScores: z.array(z.number()).optional(),\n })\n ),\n});\ntype SearchResultContentValueType = z.infer<typeof SearchResultContentValue>;\n\nconst SearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(SearchResultModalityLiteral),\n value: SearchResultContentValue,\n metadata: Metadata,\n });\ntype SearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof SearchResultContent<M>>>;\n\nconst PartialSearchResultModalityLiteral = \"partial-search-result\" as const;\n\nconst PartialSearchResultContentValue = z.object({\n type: z.string().optional(),\n query: z.string().optional(),\n responses: z\n .array(\n z.object({\n source: z.string().optional(),\n url: z.string().optional(),\n title: z.string().optional(),\n snippet: z.string().optional(),\n })\n )\n .optional(),\n references: z\n .array(\n z.object({\n text: z.string().optional(),\n responseIndices: z.array(z.number()).optional(),\n startIndex: z.number().optional(),\n endIndex: z.number().optional(),\n confidenceScores: z.array(z.number()).optional(),\n })\n )\n .optional(),\n});\ntype PartialSearchResultContentValueType = z.infer<typeof PartialSearchResultContentValue>;\n\nconst PartialSearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialSearchResultModalityLiteral),\n value: PartialSearchResultContentValue,\n metadata: Metadata,\n });\ntype PartialSearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialSearchResultContent<M>>>;\n\nexport {\n PartialSearchResultModalityLiteral,\n PartialSearchResultContent,\n PartialSearchResultContentValue,\n SearchResultModalityLiteral,\n SearchResultContent,\n SearchResultContentValue,\n type SearchResultContentType,\n type SearchResultContentValueType,\n type PartialSearchResultContentType,\n type PartialSearchResultContentValueType,\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 serverName: z.string().optional(),\n thoughtSignature: z.string().optional(),\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 serverName: z.string().optional(),\n thoughtSignature: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n type PartialToolCallContentType,\n type ToolCallContentType,\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\n .object({\n statusCode: z.number().int().nonnegative(),\n })\n .optional(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nconst PartialToolResponseModalityLiteral = \"partial-tool-response\" as const;\n\nconst PartialToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n data: z.string().optional(),\n apiResponse: z\n .object({\n statusCode: z.number().int().nonnegative(),\n })\n .optional(),\n metadata: Metadata,\n });\ntype PartialToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolResponseContent<M>>>;\n\nexport {\n PartialToolResponseContent,\n PartialToolResponseModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n type PartialToolResponseContentType,\n type ToolResponseContentType,\n};\n","import { z } from \"zod\";\n\nimport { ErrorContent, ErrorModalityLiteral, PartialErrorContent, PartialErrorModalityLiteral } from \"./error\";\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PdfContent, PdfModalityLiteral } from \"./pdf-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialSearchResultContent, PartialSearchResultModalityLiteral, SearchResultContent, SearchResultModalityLiteral } from \"./search-result\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { PartialToolResponseContent, ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n PdfModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n ErrorModalityLiteral,\n SearchResultModalityLiteral,\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 PCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n PdfContentMetadata: PCM = z.undefined() as PCM,\n ToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n ToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n ReasoningContentMetadata: RCM = z.undefined() as RCM,\n ErrorContentMetadata: ECM = z.undefined() as ECM,\n SearchResultContentMetadata: SRCM = z.undefined() as SRCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n PdfContent(PdfContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ErrorContent(ErrorContentMetadata),\n SearchResultContent(SearchResultContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n PCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, PCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral, PartialErrorModalityLiteral, PartialSearchResultModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n PartialToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n PartialReasoningContentMetadata: RCM = z.undefined() as RCM,\n PartialErrorContentMetadata: ECM = z.undefined() as ECM,\n PartialSearchResultContentMetadata: SRCM = z.undefined() as SRCM,\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n PartialToolResponseContent(PartialToolResponseContentMetadata),\n PartialErrorContent(PartialErrorContentMetadata),\n PartialSearchResultContent(PartialSearchResultContentMetadata),\n ]);\ntype PartialContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n TRCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n ECM extends z.ZodTypeAny = z.ZodUndefined,\n SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialContent<TCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n PCCM extends z.ZodTypeAny = z.ZodUndefined,\n MM 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 PdfContentMetadata: PCCM = z.undefined() as PCCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(\n TextContentMetadata,\n ImageContentMetadata,\n ToolCallContentMetadata,\n ToolResponseContentMetadata,\n ReasoningContentMetadata,\n PdfContentMetadata\n )\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n PCCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, PCCM, RTCM, MM>>>;\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 TPCM 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 ToolResponseContentMetadata: TPCM = z.undefined() as TPCM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata, ToolResponseContentMetadata),\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 RTCM extends z.ZodTypeAny = z.ZodUndefined,\n TPCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM, RTCM, TPCM>>>;\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\nconst McpServerToolConfiguration = z.object({\n enabled: z.boolean().default(true),\n allowedTools: z.array(z.string().min(1)),\n});\ntype McpServerToolConfigurationType = z.infer<typeof McpServerToolConfiguration>;\n\nconst McpServer = z.object({\n type: z.literal(\"url\"),\n url: z\n .string()\n .url()\n .refine((url) => url.startsWith(\"https://\"), {\n message: \"MCP server URL must start with https://\",\n }),\n name: z.string().min(1),\n toolConfiguration: McpServerToolConfiguration.optional(),\n authorizationToken: z.string().min(1).optional(),\n});\ntype McpServerType = z.infer<typeof McpServer>;\n\nexport { McpServer, McpServerToolConfiguration, type McpServerToolConfigurationType, type McpServerType };\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 ErrorContent,\n ErrorModalityLiteral,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialContentType,\n PartialErrorContent,\n PartialErrorModalityLiteral,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialSearchResultContent,\n PartialSearchResultModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n PartialToolResponseContent,\n PartialToolResponseModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n SafetyErrorTypeLiteral,\n SearchResultContent,\n SearchResultContentValueType,\n SearchResultModalityLiteral,\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 = (\n index: number,\n id: string,\n name: string,\n args: string,\n serverName?: string,\n thoughtSignature?: string\n): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n serverName: serverName,\n thoughtSignature: thoughtSignature,\n });\n};\n\nconst createToolResponseContent = (\n index: number,\n id: string,\n name: string,\n data: string,\n apiResponse?: { statusCode: number },\n metadata?: any\n): ContentType => {\n return ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n apiResponse: apiResponse,\n metadata: metadata,\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 = (\n role: RoleEnumType,\n index: number,\n id: string,\n name: string,\n args: string,\n thoughtSignature?: string\n): 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 thoughtSignature: thoughtSignature,\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 = (\n role: RoleEnumType,\n index: number,\n id?: string,\n name?: string,\n args?: string,\n serverName?: string,\n thoughtSignature?: string\n): 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 serverName: serverName,\n thoughtSignature: thoughtSignature,\n }),\n });\n};\n\nconst createPartialToolResponseMessage = (\n role: RoleEnumType,\n index: number,\n id: string,\n name: string,\n data: string\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolResponseContent().parse({\n modality: PartialToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\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\nconst createSafetyErrorContent = (category: string, probability: string, blocked: boolean, message: string): ContentType => {\n return ErrorContent().parse({\n modality: ErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n value: {\n category,\n probability,\n blocked,\n message,\n },\n },\n });\n};\n\nconst createPartialSafetyErrorContent = (\n category?: string,\n probability?: string,\n blocked?: boolean,\n message?: string\n): PartialContentType => {\n return PartialErrorContent().parse({\n modality: PartialErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n category: category,\n probability: probability,\n blocked: blocked,\n message: message,\n },\n });\n};\n\nconst createPartialSafetyErrorMessage = (\n role: RoleEnumType,\n category?: string,\n probability?: string,\n blocked?: boolean,\n message?: string\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialErrorContent().parse({\n modality: PartialErrorModalityLiteral,\n value: {\n type: SafetyErrorTypeLiteral,\n category: category,\n probability: probability,\n blocked: blocked,\n message: message,\n },\n }),\n });\n};\n\nconst createSearchResultContent = (\n type: string,\n query: string,\n responses: SearchResultContentValueType[\"responses\"],\n references: SearchResultContentValueType[\"references\"]\n): ContentType => {\n return SearchResultContent().parse({\n modality: SearchResultModalityLiteral,\n value: { type, query, responses, references },\n });\n};\n\nconst createPartialSearchResultContent = (\n type: string,\n query?: string,\n responses?: SearchResultContentValueType[\"responses\"],\n references?: SearchResultContentValueType[\"references\"]\n): PartialContentType => {\n return PartialSearchResultContent().parse({\n modality: PartialSearchResultModalityLiteral,\n value: { type, query, responses, references },\n });\n};\n\nconst createPartialSearchResultMessage = (\n role: RoleEnumType,\n type: string,\n query?: string,\n responses?: SearchResultContentValueType[\"responses\"],\n references?: SearchResultContentValueType[\"references\"]\n): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialSearchResultContent().parse({\n modality: PartialSearchResultModalityLiteral,\n value: { type, query, responses, references },\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialSafetyErrorContent,\n createPartialSafetyErrorMessage,\n createPartialSearchResultContent,\n createPartialSearchResultMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createPartialToolResponseMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createSafetyErrorContent,\n createSearchResultContent,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseContent,\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 { 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 PairedSelectConfigItemTypeLiteral = \"paired-select\" as const;\n\nconst PairedSelectChoice = z.object({\n value: z.string().min(1),\n label: z.string().min(1),\n});\ntype PairedSelectChoiceType = z.infer<typeof PairedSelectChoice>;\n\nconst PairedSelectFieldDef = z.object({\n key: z.string().min(1),\n label: z.string().min(1),\n description: z.string().min(1).max(500).optional(),\n choices: z.array(PairedSelectChoice).min(1),\n});\ntype PairedSelectFieldDefType = z.infer<typeof PairedSelectFieldDef>;\n\nconst PairedSelectConfigItemDef = z.object({\n type: z.literal(PairedSelectConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n fields: z.tuple([PairedSelectFieldDef, PairedSelectFieldDef]),\n uniqueByField: z.string().min(1).optional(),\n});\ntype PairedSelectConfigItemType = z.infer<typeof PairedSelectConfigItemDef>;\n\nconst createFieldEnum = (choices: PairedSelectChoiceType[]) => {\n const values = choices.map((choice) => choice.value);\n if (values.length === 0) {\n throw new Error(\"PairedSelectConfigItem fields must define at least one choice\");\n }\n const [first, ...rest] = values as [string, ...string[]];\n return z.enum([first, ...rest]);\n};\n\nconst PairedSelectConfigItemSchema = (fields: readonly [PairedSelectFieldDefType, PairedSelectFieldDefType]) => {\n const shape = fields.reduce<z.ZodRawShape>((acc, field) => {\n acc[field.key] = createFieldEnum(field.choices);\n return acc;\n }, {});\n return z.array(z.object(shape)).optional();\n};\ntype PairedSelectConfigItemSchemaType = z.infer<ReturnType<typeof PairedSelectConfigItemSchema>>;\n\nconst PairedSelectConfigItem = (data: Omit<PairedSelectConfigItemType, \"type\">) => {\n const parsed = PairedSelectConfigItemDef.parse({\n type: PairedSelectConfigItemTypeLiteral,\n ...data,\n });\n\n const fieldKeys = new Set(parsed.fields.map((field) => field.key));\n if (fieldKeys.size !== parsed.fields.length) {\n throw new Error(\"PairedSelectConfigItem fields must have unique keys\");\n }\n\n if (parsed.uniqueByField && !fieldKeys.has(parsed.uniqueByField)) {\n throw new Error(\"uniqueByField must reference one of the defined field keys\");\n }\n\n return {\n def: parsed,\n schema: PairedSelectConfigItemSchema(parsed.fields),\n };\n};\n\nexport {\n PairedSelectChoice,\n PairedSelectConfigItem,\n PairedSelectConfigItemDef,\n PairedSelectConfigItemSchema,\n PairedSelectConfigItemTypeLiteral,\n PairedSelectFieldDef,\n type PairedSelectChoiceType,\n type PairedSelectConfigItemSchemaType,\n type PairedSelectConfigItemType,\n type PairedSelectFieldDefType,\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 { PairedSelectConfigItemDef, PairedSelectConfigItemTypeLiteral } from \"./paired-select-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 PairedSelectConfigItemTypeLiteral,\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 PairedSelectConfigItemDef,\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\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: \"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 MCP_SERVERS = {\n type: \"object\",\n title: \"MCP servers\",\n description: \"MCP servers to use for the model.\",\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 MCP_SERVERS,\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","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, ObjectSchemaConfigItem, RangeConfigItem, SelectBooleanConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\nimport { ResponseSchema } from \"@adaline/types\";\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_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 topA = RangeConfigItem({\n param: \"top_a\",\n title: CHAT_CONFIG.TOP_A.title,\n description: CHAT_CONFIG.TOP_A.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 0,\n});\n\nconst topK = RangeConfigItem({\n param: \"top_k\",\n title: CHAT_CONFIG.TOP_K.title,\n description: CHAT_CONFIG.TOP_K.description,\n min: 0,\n max: 100,\n step: 1,\n default: 0,\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 minP = RangeConfigItem({\n param: \"min_p\",\n title: CHAT_CONFIG.MIN_P.title,\n description: CHAT_CONFIG.MIN_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 0,\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 repetitionPenalty = RangeConfigItem({\n param: \"repetition_penalty\",\n title: CHAT_CONFIG.REPETITION_PENALTY.title,\n description: CHAT_CONFIG.REPETITION_PENALTY.description,\n min: 0,\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. \\\n 'none' means the model will not call a function. \\\n 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nconst 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 responseFormatWithSchema = 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 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\nexport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n repetitionPenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n topA,\n topK,\n minP,\n responseFormat,\n responseFormatWithSchema,\n responseSchema,\n};\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n responseFormatWithSchema,\n responseSchema,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n} from \"./common.config.chat-model.open-router\";\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 responseFormat: responseFormatWithSchema.schema,\n responseSchema: responseSchema.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 responseFormat: responseFormatWithSchema.def,\n responseSchema: responseSchema.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { ChatModelBaseConfigDef, ChatModelBaseConfigSchema } from \"./chat-model\";\n\nconst OpenRouterChatModelConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: ChatModelBaseConfigDef(maxOutputTokens, maxSequences),\n schema: ChatModelBaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nexport { OpenRouterChatModelConfigs };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType, ChatModelV1, EmbeddingModelSchemaType, EmbeddingModelV1, ProviderError, ProviderV1 } from \"@adaline/provider\";\n\nimport { BaseChatModel, BaseChatModelOptions, BaseChatModelSchema, type BaseChatModelOptionsType } from \"../models/chat-models\";\n\nconst ProviderLiteral = \"open-router\";\nclass OpenRouter<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 baseUrl = \"https://openrouter.ai/api/v1\";\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 = BaseChatModel;\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: \"Open Router does not support embedding models yet\",\n cause: new Error(\"Open Router does not support embedding models yet\"),\n });\n }\n}\n\nexport { OpenRouter };\n","{\n \"microsoft/mai-ds-r1:free\": {\n \"modelName\": \"microsoft/mai-ds-r1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-pro-preview-03-25\": {\n \"modelName\": \"google/gemini-2.5-pro-preview-03-25\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.25,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"thudm/glm-z1-32b:free\": {\n \"modelName\": \"thudm/glm-z1-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"thudm/glm-4-32b:free\": {\n \"modelName\": \"thudm/glm-4-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-flash-preview\": {\n \"modelName\": \"google/gemini-2.5-flash-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-flash-preview:thinking\": {\n \"modelName\": \"google/gemini-2.5-flash-preview:thinking\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 3.5\n }\n }\n }\n ]\n },\n \"openai/o4-mini-high\": {\n \"modelName\": \"openai/o4-mini-high\",\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 \"openai/o3\": {\n \"modelName\": \"openai/o3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 10,\n \"outputPricePerMillion\": 40\n }\n }\n }\n ]\n },\n \"openai/o4-mini\": {\n \"modelName\": \"openai/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 \"shisa-ai/shisa-v2-llama3.3-70b:free\": {\n \"modelName\": \"shisa-ai/shisa-v2-llama3.3-70b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-coder-7b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-coder-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1\": {\n \"modelName\": \"openai/gpt-4.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1-mini\": {\n \"modelName\": \"openai/gpt-4.1-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.39999999999999997,\n \"outputPricePerMillion\": 1.5999999999999999\n }\n }\n }\n ]\n },\n \"openai/gpt-4.1-nano\": {\n \"modelName\": \"openai/gpt-4.1-nano\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"eleutherai/llemma_7b\": {\n \"modelName\": \"eleutherai/llemma_7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"alfredpros/codellama-7b-instruct-solidity\": {\n \"modelName\": \"alfredpros/codellama-7b-instruct-solidity\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"arliai/qwq-32b-arliai-rpr-v1:free\": {\n \"modelName\": \"arliai/qwq-32b-arliai-rpr-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"agentica-org/deepcoder-14b-preview:free\": {\n \"modelName\": \"agentica-org/deepcoder-14b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"moonshotai/kimi-vl-a3b-thinking:free\": {\n \"modelName\": \"moonshotai/kimi-vl-a3b-thinking:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"x-ai/grok-3-mini-beta\": {\n \"modelName\": \"x-ai/grok-3-mini-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"x-ai/grok-3-beta\": {\n \"modelName\": \"x-ai/grok-3-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-nano-8b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-nano-8b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.3-nemotron-super-49b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.3-nemotron-super-49b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-ultra-253b-v1:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-ultra-253b-v1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-maverick:free\": {\n \"modelName\": \"meta-llama/llama-4-maverick:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-maverick\": {\n \"modelName\": \"meta-llama/llama-4-maverick\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.16999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-scout:free\": {\n \"modelName\": \"meta-llama/llama-4-scout:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-4-scout\": {\n \"modelName\": \"meta-llama/llama-4-scout\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.08,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"all-hands/openhands-lm-32b-v0.1\": {\n \"modelName\": \"all-hands/openhands-lm-32b-v0.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.6,\n \"outputPricePerMillion\": 3.4\n }\n }\n }\n ]\n },\n \"mistral/ministral-8b\": {\n \"modelName\": \"mistral/ministral-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-v3-base:free\": {\n \"modelName\": \"deepseek/deepseek-v3-base:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"scb10x/llama3.1-typhoon2-8b-instruct\": {\n \"modelName\": \"scb10x/llama3.1-typhoon2-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"scb10x/llama3.1-typhoon2-70b-instruct\": {\n \"modelName\": \"scb10x/llama3.1-typhoon2-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.88,\n \"outputPricePerMillion\": 0.88\n }\n }\n }\n ]\n },\n \"allenai/molmo-7b-d:free\": {\n \"modelName\": \"allenai/molmo-7b-d:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"bytedance-research/ui-tars-72b:free\": {\n \"modelName\": \"bytedance-research/ui-tars-72b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-3b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemini-2.5-pro-exp-03-25:free\": {\n \"modelName\": \"google/gemini-2.5-pro-exp-03-25:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-32b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-32b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-32b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-vl-32b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat-v3-0324:free\": {\n \"modelName\": \"deepseek/deepseek-chat-v3-0324:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat-v3-0324\": {\n \"modelName\": \"deepseek/deepseek-chat-v3-0324\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.27,\n \"outputPricePerMillion\": 1.1\n }\n }\n }\n ]\n },\n \"featherless/qwerky-72b:free\": {\n \"modelName\": \"featherless/qwerky-72b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"openai/o1-pro\": {\n \"modelName\": \"openai/o1-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 150,\n \"outputPricePerMillion\": 600\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-3.1-24b-instruct:free\": {\n \"modelName\": \"mistralai/mistral-small-3.1-24b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-3.1-24b-instruct\": {\n \"modelName\": \"mistralai/mistral-small-3.1-24b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"open-r1/olympiccoder-32b:free\": {\n \"modelName\": \"open-r1/olympiccoder-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"steelskull/l3.3-electra-r1-70b\": {\n \"modelName\": \"steelskull/l3.3-electra-r1-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.95\n }\n }\n }\n ]\n },\n \"google/gemma-3-1b-it:free\": {\n \"modelName\": \"google/gemma-3-1b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-4b-it:free\": {\n \"modelName\": \"google/gemma-3-4b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-4b-it\": {\n \"modelName\": \"google/gemma-3-4b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"ai21/jamba-1.6-large\": {\n \"modelName\": \"ai21/jamba-1.6-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"ai21/jamba-1.6-mini\": {\n \"modelName\": \"ai21/jamba-1.6-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"google/gemma-3-12b-it:free\": {\n \"modelName\": \"google/gemma-3-12b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-12b-it\": {\n \"modelName\": \"google/gemma-3-12b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command-a\": {\n \"modelName\": \"cohere/command-a\",\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 \"openai/gpt-4o-mini-search-preview\": {\n \"modelName\": \"openai/gpt-4o-mini-search-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-search-preview\": {\n \"modelName\": \"openai/gpt-4o-search-preview\",\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 \"rekaai/reka-flash-3:free\": {\n \"modelName\": \"rekaai/reka-flash-3:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-27b-it:free\": {\n \"modelName\": \"google/gemma-3-27b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-3-27b-it\": {\n \"modelName\": \"google/gemma-3-27b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"thedrummer/anubis-pro-105b-v1\": {\n \"modelName\": \"thedrummer/anubis-pro-105b-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"latitudegames/wayfarer-large-70b-llama-3.3\": {\n \"modelName\": \"latitudegames/wayfarer-large-70b-llama-3.3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"thedrummer/skyfall-36b-v2\": {\n \"modelName\": \"thedrummer/skyfall-36b-v2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-4-multimodal-instruct\": {\n \"modelName\": \"microsoft/phi-4-multimodal-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"perplexity/sonar-reasoning-pro\": {\n \"modelName\": \"perplexity/sonar-reasoning-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"perplexity/sonar-pro\": {\n \"modelName\": \"perplexity/sonar-pro\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"perplexity/sonar-deep-research\": {\n \"modelName\": \"perplexity/sonar-deep-research\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-zero:free\": {\n \"modelName\": \"deepseek/deepseek-r1-zero:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b:free\": {\n \"modelName\": \"qwen/qwq-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b\": {\n \"modelName\": \"qwen/qwq-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"moonshotai/moonlight-16b-a3b-instruct:free\": {\n \"modelName\": \"moonshotai/moonlight-16b-a3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nousresearch/deephermes-3-llama-3-8b-preview:free\": {\n \"modelName\": \"nousresearch/deephermes-3-llama-3-8b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"openai/gpt-4.5-preview\": {\n \"modelName\": \"openai/gpt-4.5-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 75,\n \"outputPricePerMillion\": 150\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-lite-001\": {\n \"modelName\": \"google/gemini-2.0-flash-lite-001\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.075,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet:thinking\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet:thinking\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.7-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3.7-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"perplexity/r1-1776\": {\n \"modelName\": \"perplexity/r1-1776\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"mistralai/mistral-saba\": {\n \"modelName\": \"mistralai/mistral-saba\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin3.0-r1-mistral-24b:free\": {\n \"modelName\": \"cognitivecomputations/dolphin3.0-r1-mistral-24b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin3.0-mistral-24b:free\": {\n \"modelName\": \"cognitivecomputations/dolphin3.0-mistral-24b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-guard-3-8b\": {\n \"modelName\": \"meta-llama/llama-guard-3-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.055,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"openai/o3-mini-high\": {\n \"modelName\": \"openai/o3-mini-high\",\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 \"deepseek/deepseek-r1-distill-llama-8b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.04,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-001\": {\n \"modelName\": \"google/gemini-2.0-flash-001\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwen-vl-plus\": {\n \"modelName\": \"qwen/qwen-vl-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.21,\n \"outputPricePerMillion\": 0.63\n }\n }\n }\n ]\n },\n \"aion-labs/aion-1.0\": {\n \"modelName\": \"aion-labs/aion-1.0\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"aion-labs/aion-1.0-mini\": {\n \"modelName\": \"aion-labs/aion-1.0-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 1.4\n }\n }\n }\n ]\n },\n \"aion-labs/aion-rp-llama-3.1-8b\": {\n \"modelName\": \"aion-labs/aion-rp-llama-3.1-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"qwen/qwen-vl-max\": {\n \"modelName\": \"qwen/qwen-vl-max\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 3.1999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwen-turbo\": {\n \"modelName\": \"qwen/qwen-turbo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-72b-instruct:free\": {\n \"modelName\": \"qwen/qwen2.5-vl-72b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen2.5-vl-72b-instruct\": {\n \"modelName\": \"qwen/qwen2.5-vl-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7\n }\n }\n }\n ]\n },\n \"qwen/qwen-plus\": {\n \"modelName\": \"qwen/qwen-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.39999999999999997,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"qwen/qwen-max\": {\n \"modelName\": \"qwen/qwen-max\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5999999999999999,\n \"outputPricePerMillion\": 6.3999999999999995\n }\n }\n }\n ]\n },\n \"openai/o3-mini\": {\n \"modelName\": \"openai/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 \"deepseek/deepseek-r1-distill-qwen-1.5b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-1.5b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-24b-instruct-2501:free\": {\n \"modelName\": \"mistralai/mistral-small-24b-instruct-2501:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small-24b-instruct-2501\": {\n \"modelName\": \"mistralai/mistral-small-24b-instruct-2501\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-32b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-32b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-32b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-14b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-14b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-qwen-14b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-qwen-14b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"perplexity/sonar-reasoning\": {\n \"modelName\": \"perplexity/sonar-reasoning\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 5\n }\n }\n }\n ]\n },\n \"perplexity/sonar\": {\n \"modelName\": \"perplexity/sonar\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"liquid/lfm-7b\": {\n \"modelName\": \"liquid/lfm-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.01,\n \"outputPricePerMillion\": 0.01\n }\n }\n }\n ]\n },\n \"liquid/lfm-3b\": {\n \"modelName\": \"liquid/lfm-3b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.02\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-llama-70b:free\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-70b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1-distill-llama-70b\": {\n \"modelName\": \"deepseek/deepseek-r1-distill-llama-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1:free\": {\n \"modelName\": \"deepseek/deepseek-r1:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-r1\": {\n \"modelName\": \"deepseek/deepseek-r1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 2.1799999999999997\n }\n }\n }\n ]\n },\n \"sophosympatheia/rogue-rose-103b-v0.2:free\": {\n \"modelName\": \"sophosympatheia/rogue-rose-103b-v0.2:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"minimax/minimax-01\": {\n \"modelName\": \"minimax/minimax-01\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 1.1\n }\n }\n }\n ]\n },\n \"mistralai/codestral-2501\": {\n \"modelName\": \"mistralai/codestral-2501\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-4\": {\n \"modelName\": \"microsoft/phi-4\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat:free\": {\n \"modelName\": \"deepseek/deepseek-chat:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"deepseek/deepseek-chat\": {\n \"modelName\": \"deepseek/deepseek-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.38,\n \"outputPricePerMillion\": 0.8899999999999999\n }\n }\n }\n ]\n },\n \"sao10k/l3.3-euryale-70b\": {\n \"modelName\": \"sao10k/l3.3-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"openai/o1\": {\n \"modelName\": \"openai/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 \"eva-unit-01/eva-llama-3.33-70b\": {\n \"modelName\": \"eva-unit-01/eva-llama-3.33-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"x-ai/grok-2-vision-1212\": {\n \"modelName\": \"x-ai/grok-2-vision-1212\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"x-ai/grok-2-1212\": {\n \"modelName\": \"x-ai/grok-2-1212\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 10\n }\n }\n }\n ]\n },\n \"cohere/command-r7b-12-2024\": {\n \"modelName\": \"cohere/command-r7b-12-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.0375,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"google/gemini-2.0-flash-exp:free\": {\n \"modelName\": \"google/gemini-2.0-flash-exp:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.3-70b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.3-70b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.3-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.3-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"amazon/nova-lite-v1\": {\n \"modelName\": \"amazon/nova-lite-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.06,\n \"outputPricePerMillion\": 0.24\n }\n }\n }\n ]\n },\n \"amazon/nova-micro-v1\": {\n \"modelName\": \"amazon/nova-micro-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.035,\n \"outputPricePerMillion\": 0.14\n }\n }\n }\n ]\n },\n \"amazon/nova-pro-v1\": {\n \"modelName\": \"amazon/nova-pro-v1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 3.1999999999999997\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b-preview:free\": {\n \"modelName\": \"qwen/qwq-32b-preview:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwq-32b-preview\": {\n \"modelName\": \"qwen/qwq-32b-preview\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"google/learnlm-1.5-pro-experimental:free\": {\n \"modelName\": \"google/learnlm-1.5-pro-experimental:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"eva-unit-01/eva-qwen-2.5-72b\": {\n \"modelName\": \"eva-unit-01/eva-qwen-2.5-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-11-20\": {\n \"modelName\": \"openai/gpt-4o-2024-11-20\",\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 \"mistralai/mistral-large-2411\": {\n \"modelName\": \"mistralai/mistral-large-2411\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-large-2407\": {\n \"modelName\": \"mistralai/mistral-large-2407\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"mistralai/pixtral-large-2411\": {\n \"modelName\": \"mistralai/pixtral-large-2411\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"x-ai/grok-vision-beta\": {\n \"modelName\": \"x-ai/grok-vision-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"infermatic/mn-inferor-12b\": {\n \"modelName\": \"infermatic/mn-inferor-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-coder-32b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-coder-32b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-coder-32b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-coder-32b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"raifle/sorcererlm-8x22b\": {\n \"modelName\": \"raifle/sorcererlm-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4.5,\n \"outputPricePerMillion\": 4.5\n }\n }\n }\n ]\n },\n \"eva-unit-01/eva-qwen-2.5-32b\": {\n \"modelName\": \"eva-unit-01/eva-qwen-2.5-32b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.6,\n \"outputPricePerMillion\": 3.4\n }\n }\n }\n ]\n },\n \"thedrummer/unslopnemo-12b\": {\n \"modelName\": \"thedrummer/unslopnemo-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku:beta\": {\n \"modelName\": \"anthropic/claude-3.5-haiku:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku\": {\n \"modelName\": \"anthropic/claude-3.5-haiku\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku-20241022:beta\": {\n \"modelName\": \"anthropic/claude-3.5-haiku-20241022:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-haiku-20241022\": {\n \"modelName\": \"anthropic/claude-3.5-haiku-20241022\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"neversleep/llama-3.1-lumimaid-70b\": {\n \"modelName\": \"neversleep/llama-3.1-lumimaid-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2.25\n }\n }\n }\n ]\n },\n \"anthracite-org/magnum-v4-72b\": {\n \"modelName\": \"anthracite-org/magnum-v4-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"x-ai/grok-beta\": {\n \"modelName\": \"x-ai/grok-beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"mistralai/ministral-8b\": {\n \"modelName\": \"mistralai/ministral-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"mistralai/ministral-3b\": {\n \"modelName\": \"mistralai/ministral-3b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.04,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-7b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-7b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049999999999999996,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct:free\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-70b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct\": {\n \"modelName\": \"nvidia/llama-3.1-nemotron-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"inflection/inflection-3-productivity\": {\n \"modelName\": \"inflection/inflection-3-productivity\",\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 \"inflection/inflection-3-pi\": {\n \"modelName\": \"inflection/inflection-3-pi\",\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 \"google/gemini-flash-1.5-8b\": {\n \"modelName\": \"google/gemini-flash-1.5-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.0375,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"thedrummer/rocinante-12b\": {\n \"modelName\": \"thedrummer/rocinante-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"anthracite-org/magnum-v2-72b\": {\n \"modelName\": \"anthracite-org/magnum-v2-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 3\n }\n }\n }\n ]\n },\n \"liquid/lfm-40b\": {\n \"modelName\": \"liquid/lfm-40b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.15\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-3b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-3b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-3b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-3b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.015,\n \"outputPricePerMillion\": 0.024999999999999998\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-1b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-1b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-1b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-1b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.01,\n \"outputPricePerMillion\": 0.01\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-90b-vision-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-90b-vision-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-11b-vision-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.2-11b-vision-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.2-11b-vision-instruct\": {\n \"modelName\": \"meta-llama/llama-3.2-11b-vision-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.049,\n \"outputPricePerMillion\": 0.049\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-72b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-72b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.39\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-vl-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.6,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"neversleep/llama-3.1-lumimaid-8b\": {\n \"modelName\": \"neversleep/llama-3.1-lumimaid-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"openai/o1-preview\": {\n \"modelName\": \"openai/o1-preview\",\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 \"openai/o1-preview-2024-09-12\": {\n \"modelName\": \"openai/o1-preview-2024-09-12\",\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 \"openai/o1-mini\": {\n \"modelName\": \"openai/o1-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 \"openai/o1-mini-2024-09-12\": {\n \"modelName\": \"openai/o1-mini-2024-09-12\",\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 \"mistralai/pixtral-12b\": {\n \"modelName\": \"mistralai/pixtral-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command-r-plus-08-2024\": {\n \"modelName\": \"cohere/command-r-plus-08-2024\",\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 \"cohere/command-r-08-2024\": {\n \"modelName\": \"cohere/command-r-08-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-7b-instruct:free\": {\n \"modelName\": \"qwen/qwen-2.5-vl-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"qwen/qwen-2.5-vl-7b-instruct\": {\n \"modelName\": \"qwen/qwen-2.5-vl-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"sao10k/l3.1-euryale-70b\": {\n \"modelName\": \"sao10k/l3.1-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"google/gemini-flash-1.5-8b-exp\": {\n \"modelName\": \"google/gemini-flash-1.5-8b-exp\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"ai21/jamba-1-5-mini\": {\n \"modelName\": \"ai21/jamba-1-5-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"ai21/jamba-1-5-large\": {\n \"modelName\": \"ai21/jamba-1-5-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 8\n }\n }\n }\n ]\n },\n \"microsoft/phi-3.5-mini-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3.5-mini-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-3-llama-3.1-70b\": {\n \"modelName\": \"nousresearch/hermes-3-llama-3.1-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.12,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-3-llama-3.1-405b\": {\n \"modelName\": \"nousresearch/hermes-3-llama-3.1-405b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"openai/chatgpt-4o-latest\": {\n \"modelName\": \"openai/chatgpt-4o-latest\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 5,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sao10k/l3-lunaris-8b\": {\n \"modelName\": \"sao10k/l3-lunaris-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.049999999999999996\n }\n }\n }\n ]\n },\n \"aetherwiing/mn-starcannon-12b\": {\n \"modelName\": \"aetherwiing/mn-starcannon-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-08-06\": {\n \"modelName\": \"openai/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 \"meta-llama/llama-3.1-405b:free\": {\n \"modelName\": \"meta-llama/llama-3.1-405b:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-405b\": {\n \"modelName\": \"meta-llama/llama-3.1-405b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"nothingiisreal/mn-celeste-12b\": {\n \"modelName\": \"nothingiisreal/mn-celeste-12b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"perplexity/llama-3.1-sonar-small-128k-online\": {\n \"modelName\": \"perplexity/llama-3.1-sonar-small-128k-online\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"perplexity/llama-3.1-sonar-large-128k-online\": {\n \"modelName\": \"perplexity/llama-3.1-sonar-large-128k-online\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-8b-instruct:free\": {\n \"modelName\": \"meta-llama/llama-3.1-8b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-8b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.02,\n \"outputPricePerMillion\": 0.03\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-405b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-405b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3.1-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3.1-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.28\n }\n }\n }\n ]\n },\n \"mistralai/codestral-mamba\": {\n \"modelName\": \"mistralai/codestral-mamba\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"mistralai/mistral-nemo:free\": {\n \"modelName\": \"mistralai/mistral-nemo:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-nemo\": {\n \"modelName\": \"mistralai/mistral-nemo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.03,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-mini\": {\n \"modelName\": \"openai/gpt-4o-mini\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-mini-2024-07-18\": {\n \"modelName\": \"openai/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.15,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"google/gemma-2-27b-it\": {\n \"modelName\": \"google/gemma-2-27b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"alpindale/magnum-72b\": {\n \"modelName\": \"alpindale/magnum-72b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"google/gemma-2-9b-it:free\": {\n \"modelName\": \"google/gemma-2-9b-it:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"google/gemma-2-9b-it\": {\n \"modelName\": \"google/gemma-2-9b-it\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"01-ai/yi-large\": {\n \"modelName\": \"01-ai/yi-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 3\n }\n }\n }\n ]\n },\n \"ai21/jamba-instruct\": {\n \"modelName\": \"ai21/jamba-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.7\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet-20240620:beta\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet-20240620:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3.5-sonnet-20240620\": {\n \"modelName\": \"anthropic/claude-3.5-sonnet-20240620\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sao10k/l3-euryale-70b\": {\n \"modelName\": \"sao10k/l3-euryale-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.48,\n \"outputPricePerMillion\": 1.48\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin-mixtral-8x22b\": {\n \"modelName\": \"cognitivecomputations/dolphin-mixtral-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"qwen/qwen-2-72b-instruct\": {\n \"modelName\": \"qwen/qwen-2-72b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct:free\": {\n \"modelName\": \"mistralai/mistral-7b-instruct:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct\": {\n \"modelName\": \"mistralai/mistral-7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.029,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.3\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.3\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.029,\n \"outputPricePerMillion\": 0.055\n }\n }\n }\n ]\n },\n \"nousresearch/hermes-2-pro-llama-3-8b\": {\n \"modelName\": \"nousresearch/hermes-2-pro-llama-3-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.024999999999999998,\n \"outputPricePerMillion\": 0.04\n }\n }\n }\n ]\n },\n \"microsoft/phi-3-mini-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3-mini-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09999999999999999,\n \"outputPricePerMillion\": 0.09999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/phi-3-medium-128k-instruct\": {\n \"modelName\": \"microsoft/phi-3-medium-128k-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 1\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-70b\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 4,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"google/gemini-flash-1.5\": {\n \"modelName\": \"google/gemini-flash-1.5\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.075,\n \"outputPricePerMillion\": 0.3\n }\n }\n }\n ]\n },\n \"openai/gpt-4o\": {\n \"modelName\": \"openai/gpt-4o\",\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 \"openai/gpt-4o:extended\": {\n \"modelName\": \"openai/gpt-4o:extended\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 6,\n \"outputPricePerMillion\": 18\n }\n }\n }\n ]\n },\n \"meta-llama/llama-guard-2-8b\": {\n \"modelName\": \"meta-llama/llama-guard-2-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"openai/gpt-4o-2024-05-13\": {\n \"modelName\": \"openai/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\": 15\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-8b:extended\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-8b:extended\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"neversleep/llama-3-lumimaid-8b\": {\n \"modelName\": \"neversleep/llama-3-lumimaid-8b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.09375,\n \"outputPricePerMillion\": 0.75\n }\n }\n }\n ]\n },\n \"sao10k/fimbulvetr-11b-v2\": {\n \"modelName\": \"sao10k/fimbulvetr-11b-v2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 1.2\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3-8b-instruct\": {\n \"modelName\": \"meta-llama/llama-3-8b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.03,\n \"outputPricePerMillion\": 0.06\n }\n }\n }\n ]\n },\n \"meta-llama/llama-3-70b-instruct\": {\n \"modelName\": \"meta-llama/llama-3-70b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.3,\n \"outputPricePerMillion\": 0.39999999999999997\n }\n }\n }\n ]\n },\n \"mistralai/mixtral-8x22b-instruct\": {\n \"modelName\": \"mistralai/mixtral-8x22b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"microsoft/wizardlm-2-8x22b\": {\n \"modelName\": \"microsoft/wizardlm-2-8x22b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"microsoft/wizardlm-2-7b\": {\n \"modelName\": \"microsoft/wizardlm-2-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"google/gemini-pro-1.5\": {\n \"modelName\": \"google/gemini-pro-1.5\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.25,\n \"outputPricePerMillion\": 5\n }\n }\n }\n ]\n },\n \"openai/gpt-4-turbo\": {\n \"modelName\": \"openai/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 \"cohere/command-r-plus\": {\n \"modelName\": \"cohere/command-r-plus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"cohere/command-r-plus-04-2024\": {\n \"modelName\": \"cohere/command-r-plus-04-2024\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"sophosympatheia/midnight-rose-70b\": {\n \"modelName\": \"sophosympatheia/midnight-rose-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.7999999999999999,\n \"outputPricePerMillion\": 0.7999999999999999\n }\n }\n }\n ]\n },\n \"cohere/command\": {\n \"modelName\": \"cohere/command\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"cohere/command-r\": {\n \"modelName\": \"cohere/command-r\",\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 \"anthropic/claude-3-haiku:beta\": {\n \"modelName\": \"anthropic/claude-3-haiku:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 1.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-haiku\": {\n \"modelName\": \"anthropic/claude-3-haiku\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 1.25\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-opus:beta\": {\n \"modelName\": \"anthropic/claude-3-opus:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 15,\n \"outputPricePerMillion\": 75\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-opus\": {\n \"modelName\": \"anthropic/claude-3-opus\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 15,\n \"outputPricePerMillion\": 75\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-sonnet:beta\": {\n \"modelName\": \"anthropic/claude-3-sonnet:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"anthropic/claude-3-sonnet\": {\n \"modelName\": \"anthropic/claude-3-sonnet\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 15\n }\n }\n }\n ]\n },\n \"cohere/command-r-03-2024\": {\n \"modelName\": \"cohere/command-r-03-2024\",\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 \"mistralai/mistral-large\": {\n \"modelName\": \"mistralai/mistral-large\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2,\n \"outputPricePerMillion\": 6\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-0613\": {\n \"modelName\": \"openai/gpt-3.5-turbo-0613\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"openai/gpt-4-turbo-preview\": {\n \"modelName\": \"openai/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 \"nousresearch/nous-hermes-2-mixtral-8x7b-dpo\": {\n \"modelName\": \"nousresearch/nous-hermes-2-mixtral-8x7b-dpo\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.6,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-medium\": {\n \"modelName\": \"mistralai/mistral-medium\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 2.75,\n \"outputPricePerMillion\": 8.1\n }\n }\n }\n ]\n },\n \"mistralai/mistral-small\": {\n \"modelName\": \"mistralai/mistral-small\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.6\n }\n }\n }\n ]\n },\n \"mistralai/mistral-tiny\": {\n \"modelName\": \"mistralai/mistral-tiny\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.25,\n \"outputPricePerMillion\": 0.25\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.2\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"cognitivecomputations/dolphin-mixtral-8x7b\": {\n \"modelName\": \"cognitivecomputations/dolphin-mixtral-8x7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"google/gemini-pro-vision\": {\n \"modelName\": \"google/gemini-pro-vision\",\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 \"mistralai/mixtral-8x7b-instruct\": {\n \"modelName\": \"mistralai/mixtral-8x7b-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.24,\n \"outputPricePerMillion\": 0.24\n }\n }\n }\n ]\n },\n \"openchat/openchat-7b\": {\n \"modelName\": \"openchat/openchat-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"neversleep/noromaid-20b\": {\n \"modelName\": \"neversleep/noromaid-20b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.75,\n \"outputPricePerMillion\": 1.5\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.1:beta\": {\n \"modelName\": \"anthropic/claude-2.1:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.1\": {\n \"modelName\": \"anthropic/claude-2.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2:beta\": {\n \"modelName\": \"anthropic/claude-2:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2\": {\n \"modelName\": \"anthropic/claude-2\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"undi95/toppy-m-7b\": {\n \"modelName\": \"undi95/toppy-m-7b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.07,\n \"outputPricePerMillion\": 0.07\n }\n }\n }\n ]\n },\n \"alpindale/goliath-120b\": {\n \"modelName\": \"alpindale/goliath-120b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 6.5625,\n \"outputPricePerMillion\": 9.375\n }\n }\n }\n ]\n },\n \"openrouter/auto\": {\n \"modelName\": \"openrouter/auto\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": -1000000,\n \"outputPricePerMillion\": -1000000\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-1106\": {\n \"modelName\": \"openai/gpt-3.5-turbo-1106\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"openai/gpt-4-1106-preview\": {\n \"modelName\": \"openai/gpt-4-1106-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 \"google/palm-2-chat-bison-32k\": {\n \"modelName\": \"google/palm-2-chat-bison-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"google/palm-2-codechat-bison-32k\": {\n \"modelName\": \"google/palm-2-codechat-bison-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"jondurbin/airoboros-l2-70b\": {\n \"modelName\": \"jondurbin/airoboros-l2-70b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5,\n \"outputPricePerMillion\": 0.5\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-instruct\": {\n \"modelName\": \"openai/gpt-3.5-turbo-instruct\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.5,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"mistralai/mistral-7b-instruct-v0.1\": {\n \"modelName\": \"mistralai/mistral-7b-instruct-v0.1\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.19999999999999998,\n \"outputPricePerMillion\": 0.19999999999999998\n }\n }\n }\n ]\n },\n \"pygmalionai/mythalion-13b\": {\n \"modelName\": \"pygmalionai/mythalion-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5625,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo-16k\": {\n \"modelName\": \"openai/gpt-3.5-turbo-16k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 3,\n \"outputPricePerMillion\": 4\n }\n }\n }\n ]\n },\n \"openai/gpt-4-32k\": {\n \"modelName\": \"openai/gpt-4-32k\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 60,\n \"outputPricePerMillion\": 120\n }\n }\n }\n ]\n },\n \"openai/gpt-4-32k-0314\": {\n \"modelName\": \"openai/gpt-4-32k-0314\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 60,\n \"outputPricePerMillion\": 120\n }\n }\n }\n ]\n },\n \"nousresearch/nous-hermes-llama2-13b\": {\n \"modelName\": \"nousresearch/nous-hermes-llama2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.18,\n \"outputPricePerMillion\": 0.18\n }\n }\n }\n ]\n },\n \"mancer/weaver\": {\n \"modelName\": \"mancer/weaver\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1.125,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"huggingfaceh4/zephyr-7b-beta:free\": {\n \"modelName\": \"huggingfaceh4/zephyr-7b-beta:free\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0,\n \"outputPricePerMillion\": 0\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.0:beta\": {\n \"modelName\": \"anthropic/claude-2.0:beta\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"anthropic/claude-2.0\": {\n \"modelName\": \"anthropic/claude-2.0\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 8,\n \"outputPricePerMillion\": 24\n }\n }\n }\n ]\n },\n \"undi95/remm-slerp-l2-13b\": {\n \"modelName\": \"undi95/remm-slerp-l2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.5625,\n \"outputPricePerMillion\": 1.125\n }\n }\n }\n ]\n },\n \"google/palm-2-chat-bison\": {\n \"modelName\": \"google/palm-2-chat-bison\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"google/palm-2-codechat-bison\": {\n \"modelName\": \"google/palm-2-codechat-bison\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 1,\n \"outputPricePerMillion\": 2\n }\n }\n }\n ]\n },\n \"gryphe/mythomax-l2-13b\": {\n \"modelName\": \"gryphe/mythomax-l2-13b\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.065,\n \"outputPricePerMillion\": 0.065\n }\n }\n }\n ]\n },\n \"meta-llama/llama-2-13b-chat\": {\n \"modelName\": \"meta-llama/llama-2-13b-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.22,\n \"outputPricePerMillion\": 0.22\n }\n }\n }\n ]\n },\n \"meta-llama/llama-2-70b-chat\": {\n \"modelName\": \"meta-llama/llama-2-70b-chat\",\n \"currency\": \"USD\",\n \"tokenRanges\": [\n {\n \"minTokens\": 0,\n \"maxTokens\": null,\n \"prices\": {\n \"base\": {\n \"inputPricePerMillion\": 0.8999999999999999,\n \"outputPricePerMillion\": 0.8999999999999999\n }\n }\n }\n ]\n },\n \"openai/gpt-3.5-turbo\": {\n \"modelName\": \"openai/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 \"openai/gpt-3.5-turbo-0125\": {\n \"modelName\": \"openai/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 \"openai/gpt-4\": {\n \"modelName\": \"openai/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 \"openai/gpt-4-0314\": {\n \"modelName\": \"openai/gpt-4-0314\",\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}\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenRouterChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenRouterChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenRouterChatModelRoles, OpenRouterChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst OpenRouterChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst OpenRouterChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport { OpenRouterChatModelModalitiesEnum, OpenRouterChatModelModalities };\n","import { z } from \"zod\";\n\nconst OpenRouterBaseLogProb = z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n});\n\nconst OpenRouterLogProb = z\n .object({\n content: z\n .array(\n OpenRouterBaseLogProb.extend({\n top_logprobs: z.array(OpenRouterBaseLogProb),\n })\n )\n .nullable(),\n refusal: z\n .array(\n OpenRouterBaseLogProb.extend({\n top_logprobs: z.array(OpenRouterBaseLogProb),\n })\n )\n .nullable(),\n })\n .nullable();\n\nconst OpenRouterReasoningDetail = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"reasoning.summary\"),\n summary: z.string(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n z.object({\n type: z.literal(\"reasoning.encrypted\"),\n data: z.string(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n z.object({\n type: z.literal(\"reasoning.text\"),\n text: z.string().nullable().optional(),\n signature: z.string().nullable().optional(),\n id: z.string().nullable().optional(),\n format: z.string().nullable().optional(),\n index: z.number().optional(),\n }),\n]);\n\nconst OpenRouterToolCallsCompleteChatResponse = 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 OpenRouterCompleteChatResponse = 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 message: z.object({\n role: z.string(),\n content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsCompleteChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n reasoning: z.string().nullable().optional(),\n reasoning_details: z.array(OpenRouterReasoningDetail).optional(),\n }),\n logprobs: OpenRouterLogProb.optional(),\n finish_reason: z.string().nullable().optional(),\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 OpenRouterCompleteChatResponseType = z.infer<typeof OpenRouterCompleteChatResponse>;\n\nconst OpenRouterToolCallsStreamChatResponse = 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 OpenRouterStreamChatResponse = 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 role: z.string().optional(),\n content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n reasoning: z.string().nullable().optional(),\n reasoning_details: z.array(OpenRouterReasoningDetail).optional(),\n })\n .or(z.object({})),\n logprobs: OpenRouterLogProb.optional(),\n finish_reason: z.string().nullable().optional(),\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 OpenRouterStreamChatResponseType = z.infer<typeof OpenRouterStreamChatResponse>;\n\nexport {\n OpenRouterStreamChatResponse,\n OpenRouterCompleteChatResponse,\n OpenRouterToolCallsStreamChatResponse,\n OpenRouterToolCallsCompleteChatResponse,\n type OpenRouterStreamChatResponseType,\n type OpenRouterCompleteChatResponseType,\n};\n","import { z } from \"zod\";\n\nconst OpenRouterChatRequestTool = 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 OpenRouterChatRequestToolType = z.infer<typeof OpenRouterChatRequestTool>;\n\nconst OpenRouterChatRequestToolChoiceEnum = z.enum([\"none\", \"auto\", \"required\"]);\ntype OpenRouterChatRequestToolChoiceEnumType = z.infer<typeof OpenRouterChatRequestToolChoiceEnum>;\n\nconst OpenRouterChatRequestToolChoiceFunction = z.object({\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string().min(1),\n }),\n});\ntype OpenRouterChatRequestToolChoiceFunctionType = z.infer<typeof OpenRouterChatRequestToolChoiceFunction>;\n\nconst OpenRouterChatRequestResponseFormat = 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 OpenRouterChatRequestResponseFormatType = z.infer<typeof OpenRouterChatRequestResponseFormat>;\n\nconst OpenRouterChatRequestTextContent = z.object({\n text: z.string().min(1),\n type: z.literal(\"text\"),\n});\ntype OpenRouterChatRequestTextContentType = z.infer<typeof OpenRouterChatRequestTextContent>;\n\nconst OpenRouterChatRequestImageContent = 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 OpenRouterChatRequestImageContentType = z.infer<typeof OpenRouterChatRequestImageContent>;\n\nconst OpenRouterChatRequestToolCallContent = 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 OpenRouterChatRequestToolCallContentType = z.infer<typeof OpenRouterChatRequestToolCallContent>;\n\nconst OpenRouterChatRequestSystemMessage = z.object({\n role: z.literal(\"system\"),\n content: z.string().min(1).or(z.array(OpenRouterChatRequestTextContent).min(1)),\n});\ntype OpenRouterChatRequestSystemMessageType = z.infer<typeof OpenRouterChatRequestSystemMessage>;\n\nconst OpenRouterChatRequestUserMessage = z.object({\n role: z.literal(\"user\"),\n content: z\n .string()\n .min(1)\n .or(z.array(z.union([OpenRouterChatRequestTextContent, OpenRouterChatRequestImageContent])).min(1)),\n});\ntype OpenRouterChatRequestUserMessageType = z.infer<typeof OpenRouterChatRequestUserMessage>;\n\nconst OpenRouterChatRequestAssistantMessage = z.object({\n role: z.literal(\"assistant\"),\n content: z.string().min(1).or(z.array(OpenRouterChatRequestTextContent).min(1)).optional(),\n tool_calls: z.array(OpenRouterChatRequestToolCallContent).min(1).optional(),\n});\ntype OpenRouterChatRequestAssistantMessageType = z.infer<typeof OpenRouterChatRequestAssistantMessage>;\n\nconst OpenRouterChatRequestToolMessage = z.object({\n role: z.literal(\"tool\"),\n tool_call_id: z.string().min(1),\n content: z.string().min(1),\n});\ntype OpenRouterChatRequestToolMessageType = z.infer<typeof OpenRouterChatRequestToolMessage>;\n\nconst OpenRouterChatRequestMessage = z.union([\n OpenRouterChatRequestSystemMessage,\n OpenRouterChatRequestUserMessage,\n OpenRouterChatRequestAssistantMessage,\n OpenRouterChatRequestToolMessage,\n]);\ntype OpenRouterChatRequestMessageType = z.infer<typeof OpenRouterChatRequestMessage>;\n\nconst OpenRouterChatRequest = z.object({\n model: z.string().min(1).optional(),\n messages: z.array(OpenRouterChatRequestMessage).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_tokens: z.number().min(0).nullable().optional(),\n presence_penalty: z.number().min(-2).max(2).nullable().optional(),\n repetition_penalty: z.number().min(0).max(2).nullable().optional(),\n response_format: OpenRouterChatRequestResponseFormat.optional(),\n seed: z.number().nullable().optional(),\n stop: z.string().or(z.array(z.string()).max(4)).nullable().optional(),\n top_a: z.number().min(0).max(1).nullable().optional(),\n temperature: z.number().min(0).max(2).nullable().optional(),\n top_p: z.number().min(0).max(1).nullable().optional(),\n top_k: z.number().min(0).max(100).nullable().optional(),\n min_p: z.number().min(0).max(1).nullable().optional(),\n tools: z.array(OpenRouterChatRequestTool).optional(),\n tool_choice: OpenRouterChatRequestToolChoiceEnum.or(OpenRouterChatRequestToolChoiceFunction).optional(),\n});\ntype OpenRouterChatRequestType = z.infer<typeof OpenRouterChatRequest>;\n\nexport {\n OpenRouterChatRequest,\n OpenRouterChatRequestMessage,\n OpenRouterChatRequestSystemMessage,\n OpenRouterChatRequestUserMessage,\n OpenRouterChatRequestAssistantMessage,\n OpenRouterChatRequestToolMessage,\n OpenRouterChatRequestTextContent,\n OpenRouterChatRequestImageContent,\n OpenRouterChatRequestToolCallContent,\n OpenRouterChatRequestTool,\n OpenRouterChatRequestToolChoiceEnum,\n OpenRouterChatRequestToolChoiceFunction,\n OpenRouterChatRequestResponseFormat,\n type OpenRouterChatRequestType,\n type OpenRouterChatRequestMessageType,\n type OpenRouterChatRequestSystemMessageType,\n type OpenRouterChatRequestUserMessageType,\n type OpenRouterChatRequestAssistantMessageType,\n type OpenRouterChatRequestToolMessageType,\n type OpenRouterChatRequestTextContentType,\n type OpenRouterChatRequestImageContentType,\n type OpenRouterChatRequestToolCallContentType,\n type OpenRouterChatRequestToolType,\n type OpenRouterChatRequestToolChoiceEnumType,\n type OpenRouterChatRequestToolChoiceFunctionType,\n type OpenRouterChatRequestResponseFormatType,\n};\n","import { z } from \"zod\";\n\nimport {\n ChatModelSchemaType,\n ChatModelV1,\n getMimeTypeFromBase64,\n HeadersType,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidModelRequestError,\n InvalidToolsError,\n ModelResponseError,\n ParamsType,\n removeUndefinedEntries,\n SelectStringConfigItemDefType,\n UrlType,\n urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\nimport {\n AssistantRoleLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentValueType,\n ChatLogProbsType,\n ChatModelPriceType,\n ChatResponseType,\n ChatUsageType,\n Config,\n ConfigType,\n ContentType,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createRedactedReasoningContent,\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 { OpenRouter } from \"../../provider/provider.open-router\";\nimport pricingData from \"../pricing.json\";\nimport {\n OpenRouterChatRequest,\n OpenRouterChatRequestImageContentType,\n OpenRouterChatRequestTextContentType,\n OpenRouterChatRequestToolType,\n OpenRouterChatRequestType,\n OpenRouterCompleteChatResponse,\n OpenRouterCompleteChatResponseType,\n OpenRouterStreamChatResponse,\n OpenRouterStreamChatResponseType,\n} from \"./types\";\n\nconst BaseChatModelOptions = z.object({\n modelName: z.string(),\n apiKey: z.string(),\n openRouterReferer: z.string().optional(),\n openRouterTitle: 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\n private readonly modelName: string;\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly streamChatUrl: string;\n private readonly completeChatUrl: string;\n private readonly openRouterReferer: string | undefined;\n private readonly openRouterTitle: 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(OpenRouter.baseUrl);\n this.streamChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n this.completeChatUrl = urlWithoutTrailingSlash(`${this.baseUrl}/chat/completions`);\n this.openRouterReferer = parsedOptions.openRouterReferer;\n this.openRouterTitle = parsedOptions.openRouterTitle;\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.openRouterReferer ? { \"HTTP-Referer\": this.openRouterReferer } : {}),\n ...(this.openRouterTitle ? { \"X-Title\": this.openRouterTitle } : {}),\n };\n }\n\n getDefaultParams(): ParamsType {\n return {\n model: this.modelName,\n };\n }\n\n // Open Router 429: use Retry-After header (seconds). https://openrouter.ai/docs/errors\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType, _responseData: unknown): { shouldRetry: boolean; delayMs: number } {\n const shouldRetry = true;\n let delayMs = 0;\n const retryAfter = responseHeaders[\"retry-after\"];\n if (retryAfter) {\n const seconds = parseInt(retryAfter, 10);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n delayMs = seconds * 1000;\n }\n }\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: OpenRouterChatRequestType): {\n modelName: string | undefined;\n config: ConfigType;\n messages: MessageType[];\n tools: ToolType[] | undefined;\n } {\n const safeRequest = OpenRouterChatRequest.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_tokens;\n _config.temperature = parsedRequest.temperature;\n _config.topA = parsedRequest.top_a;\n _config.topP = parsedRequest.top_p;\n _config.minP = parsedRequest.min_p;\n _config.topK = parsedRequest.top_k;\n _config.repetitionPenalty = parsedRequest.repetition_penalty;\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 | OpenRouterChatRequestTextContentType[];\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 | (OpenRouterChatRequestTextContentType | OpenRouterChatRequestImageContentType)[];\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 | OpenRouterChatRequestTextContentType[];\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: OpenRouterChatRequestToolType) => {\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_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 // Filter out error and search-result modalities from all messages (these are output-only modalities)\n parsedMessages.forEach((message) => {\n message.content = message.content.filter(\n (content) => content.modality !== \"error\" && content.modality !== \"search-result\"\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 ...(textContent.length > 0 ? { 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 = OpenRouterCompleteChatResponse.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: OpenRouterCompleteChatResponseType = safe.data;\n const messages: MessageType[] = [\n {\n role: AssistantRoleLiteral,\n content: [],\n },\n ];\n const message = parsedResponse.choices[0].message;\n\n if (message.reasoning_details && message.reasoning_details.length > 0) {\n for (const detail of message.reasoning_details) {\n if (detail.type === \"reasoning.summary\") {\n messages[0].content.push(createReasoningContent(detail.summary, \"\"));\n } else if (detail.type === \"reasoning.encrypted\") {\n messages[0].content.push(createRedactedReasoningContent(detail.data));\n } else if (detail.type === \"reasoning.text\") {\n messages[0].content.push(createReasoningContent(detail.text ?? \"\", detail.signature ?? \"\"));\n }\n }\n } else if (message.reasoning) {\n messages[0].content.push(createReasoningContent(message.reasoning, \"\"));\n }\n\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 let usage: ChatUsageType | undefined;\n if (parsedResponse.usage) {\n usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\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 = OpenRouterStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n const partialResponse: PartialChatResponseType = { partialMessages: [] };\n const parsedResponse: OpenRouterStreamChatResponseType = 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 (\"reasoning_details\" in message && message.reasoning_details !== undefined && message.reasoning_details.length > 0) {\n for (const detail of message.reasoning_details) {\n if (detail.type === \"reasoning.summary\") {\n partialResponse.partialMessages.push(createPartialReasoningMessage(AssistantRoleLiteral, detail.summary));\n } else if (detail.type === \"reasoning.encrypted\") {\n partialResponse.partialMessages.push(createPartialRedactedReasoningMessage(AssistantRoleLiteral, detail.data));\n } else if (detail.type === \"reasoning.text\") {\n partialResponse.partialMessages.push(\n createPartialReasoningMessage(AssistantRoleLiteral, detail.text ?? undefined, detail.signature ?? undefined)\n );\n }\n }\n } else if (\"reasoning\" in message && message.reasoning) {\n partialResponse.partialMessages.push(createPartialReasoningMessage(AssistantRoleLiteral, message.reasoning));\n }\n if (\"content\" in message && message.content !== null && message.content !== undefined && message.content !== \"\") {\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 { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenRouterChatModelConfigs } from \"../../configs\";\nimport {\n OpenRouterChatModelModalities,\n OpenRouterChatModelModalitiesEnum,\n OpenRouterChatModelRoles,\n OpenRouterChatModelRolesMap,\n} from \"./types\";\n\nconst BaseChatModelSchema = ChatModelSchema(OpenRouterChatModelRoles, OpenRouterChatModelModalitiesEnum).parse({\n name: \"__base__\",\n description: \"Base chat model for Open Router\",\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenRouterChatModelRolesMap,\n modalities: OpenRouterChatModelModalities,\n config: {\n def: OpenRouterChatModelConfigs.base(128000, 4).def,\n schema: OpenRouterChatModelConfigs.base(128000, 4).schema,\n },\n});\n\nexport { BaseChatModelSchema };\n"]}
|