@adaline/open-router 1.1.0 → 1.2.1

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/chat-model/base.config.chat-model.open-router.ts","../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/pricing/pricing-tiers.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/is-running-in-browser.ts","../../../../packages/provider/src/utils/base64.ts","../../../../packages/provider/src/utils/url.ts","../src/configs/chat-model/common.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","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","PartialModalityLiterals","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialReasoningContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","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","FunctionTool","ToolLiterals","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","createPartialTextMessage","role","createPartialToolCallMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","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","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","url","temperature","ct","Jt","maxTokens","maxOutputTokens","stop","maxSequences","et","topA","topK","topP","minP","frequencyPenalty","presencePenalty","repetitionPenalty","seed","logProbs","ft","topLogProbs","toolChoice","yt","responseFormat","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","OpenRouterChatModelConfigs","ProviderLiteral","OpenRouter","BaseChatModelSchema","options","model","BaseChatModel","parsedOptions","BaseChatModelOptions","acc","j","pricing_default","OpenRouterChatModelRoles","qe","$e","$","De","OpenRouterChatModelRolesMap","OpenRouterChatModelModalities","D","F","H","OpenRouterChatModelModalitiesEnum","OpenRouterBaseLogProb","OpenRouterLogProb","OpenRouterToolCallsCompleteChatResponse","OpenRouterCompleteChatResponse","OpenRouterToolCallsStreamChatResponse","OpenRouterStreamChatResponse","OpenRouterChatRequestTool","OpenRouterChatRequestToolChoiceEnum","OpenRouterChatRequestToolChoiceFunction","OpenRouterChatRequestResponseFormat","OpenRouterChatRequestTextContent","OpenRouterChatRequestImageContent","OpenRouterChatRequestToolCallContent","OpenRouterChatRequestSystemMessage","OpenRouterChatRequestUserMessage","OpenRouterChatRequestAssistantMessage","OpenRouterChatRequestToolMessage","OpenRouterChatRequestMessage","OpenRouterChatRequest","modelSchema","mn","responseHeaders","messages","message","request","safeRequest","N","parsedRequest","modelName","_config","pt","Vt","toolCallMap","_content","c","ie","an","se","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","L","U","textContent","toolCalls","imageContent","combinedContent","Z","parsedTool","vt","__async","resolve","transformedMessages","transformedTools","response","safe","B","parsedResponse","Dt","Ot","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","_t","Kt","headers","query","__yieldStar","sanitizedHeaders","jt"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n} from \"./common.config.chat-model.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 });\n\nconst ChatModelBaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n logProbs: logProbs.def,\n topLogProbs: topLogProbs.def,\n toolChoice: toolChoice.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport {\n UserRoleLiteral,\n ToolRoleLiteral,\n SystemRoleLiteral,\n AssistantRoleLiteral,\n RoleEnum,\n RoleLiterals,\n PartialRoleEnum,\n PartialRoleLiterals,\n type RoleEnumType,\n type PartialRoleEnumType,\n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n mediaType: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst ReasoningModalityLiteral = \"reasoning\" as const;\nconst PartialReasoningModalityLiteral = \"partial-reasoning\" as const;\n\nconst ReasoningContentTypeLiteral = \"thinking\" as const;\nconst RedactedReasoningContentTypeLiteral = \"redacted\" as const;\n\nconst ReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: z.string(),\n signature: z.string(),\n});\ntype ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;\n\nconst RedactedReasoningContentValue = z.object({\n type: z.literal(RedactedReasoningContentTypeLiteral),\n data: z.string()\n});\ntype RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;\n\nconst ReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ ReasoningContentValue, RedactedReasoningContentValue ]);\ntype ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;\n\nconst ReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ReasoningModalityLiteral),\n value: ReasoningContentValueUnion,\n metadata: Metadata,\n });\n\ntype ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;\n\nconst PartialReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: ReasoningContentValue.shape.thinking.optional(),\n signature: ReasoningContentValue.shape.signature.optional(),\n});\nconst PartialReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ \n PartialReasoningContentValue, \n RedactedReasoningContentValue \n]);\n\nconst PartialReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialReasoningModalityLiteral),\n value: PartialReasoningContentValueUnion,\n metadata: Metadata,\n });\ntype PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;\n\nexport {\n ReasoningContent,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n ReasoningContentTypeLiteral,\n ReasoningContentValue,\n PartialReasoningContentValue,\n ReasoningContentValueUnion,\n PartialReasoningContentValueUnion,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RedactedReasoningContentValue,\n type PartialReasoningContentType,\n type ReasoningContentType,\n type ReasoningContentValueType,\n type ReasoningContentValueUnionType,\n type RedactedReasoningContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport {\n TextContent,\n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n ToolCallContent,\n PartialToolCallContent,\n ToolCallModalityLiteral,\n PartialToolCallModalityLiteral,\n type ToolCallContentType,\n type PartialToolCallContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n ReasoningContentMetadata: TCCM = z.undefined() as TCCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n PartialReasoningContentMetadata: z.ZodTypeAny = z.undefined() as z.ZodTypeAny as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n ]);\ntype PartialContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<\n ReturnType<typeof PartialContent<TCM, CCM>>\n>;\n\nexport {\n Content,\n ModalityEnum,\n ModalityLiterals,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type ContentType,\n type ModalityEnumType,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { PartialRoleEnum, RoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata, ReasoningContentMetadata)\n ),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM, RTCM>>>;\n\n// const 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// >(\n// Role: R = PartialRoleEnum as unknown as R,\n// TextContentMetadata: TCM = z.undefined() as TCM,\n// ToolCallContentMetadata: CCM = z.undefined() as CCM,\n// MessageMetadata: MM = z.undefined() as MM,\n// ) => Message(\n// Role,\n// TextContentMetadata,\n// undefined,\n// ToolCallContentMetadata,\n// undefined,\n// MessageMetadata\n// ).omit({ content: true }).merge(z.object({\n// partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata),\n// }));\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata),\n metadata: MessageMetadata,\n });\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { Message, PartialMessage, type MessageType, type PartialMessageType };\n","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatUsage = z.object({\n promptTokens: z.number().nonnegative().optional(),\n completionTokens: z.number().nonnegative().optional(),\n totalTokens: z.number().nonnegative().optional(),\n});\n\ntype PartialChatUsageType = z.infer<typeof PartialChatUsage>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: PartialChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport {\n ChatBaseLogProb,\n ChatLogProb,\n ChatLogProbs,\n ChatResponse,\n ChatUsage,\n PartialChatResponse,\n PartialChatUsage,\n type ChatBaseLogProbType,\n type ChatLogProbsType,\n type ChatLogProbType,\n type ChatResponseType,\n type ChatUsageType,\n type PartialChatResponseType,\n type PartialChatUsageType,\n};\n","import { z } from \"zod\";\n\nconst Config = <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { Config, type ConfigType };\n","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport {\n ResponseSchema,\n ResponseSchemaProperty,\n ResponseSchemaStructure,\n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative()));\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n ]);\ntype EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};\n","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};\n","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n};\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };\n","import { z } from \"zod\";\n\n/**\n * A pair of per‑million‑token rates for a single price category (e.g., base input/output).\n * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.\n */\nconst ChatModelTokenPairPrice = z\n .object({\n inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens\"),\n outputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M output tokens\"),\n })\n .describe(\"Input/output price pair (per 1M tokens) for a specific category within a ChatModel pricing tier.\");\n\ntype ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;\n\n/**\n * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).\n * Each category holds a `ChatModelTokenPairPrice`.\n */\nconst ChatModelTokenTypePrice = z\n .object({\n base: ChatModelTokenPairPrice.describe(\"Base (uncached, non‑reasoning) rates\"),\n // Add optional 'cached' and 'reasoning' here if they become standard\n })\n .describe(\"Holds the `ChatModelTokenPairPrice` for different categories (e.g., base) within a single pricing tier.\");\n\ntype ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;\n\n/**\n * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.\n * - `minTokens`: inclusive lower bound (integer ≥ 0).\n * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.\n * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.\n */\nconst ChatModelTokenRangePrice = z\n .object({\n minTokens: z.number().int().nonnegative().describe(\"Inclusive lower token bound for this tier.\"),\n maxTokens: z.number().int().nullable().optional().describe(\"Exclusive upper token bound; `null` means ∞.\"),\n prices: ChatModelTokenTypePrice.describe(\"Price categories and rates for this specific token range.\"),\n })\n .refine((t) => t.maxTokens === null || (typeof t.maxTokens === \"number\" && t.maxTokens > t.minTokens), {\n message: \"maxTokens must be > minTokens (or null for infinite).\",\n path: [\"maxTokens\"],\n })\n .describe(\"A single pricing tier defined by a token range and associated prices.\");\n\ntype ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;\n\n/**\n * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.\n * Ensures tiers are contiguous and cover the full range from 0 to infinity.\n * - First tier must start at 0 tokens.\n * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.\n * - Last `tokenRange` must have maxTokens = null (infinite).\n */\nconst ChatModelPrice = z\n .object({\n modelName: z.string().describe(\"Model name this schedule applies to.\"),\n currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n tokenRanges: z\n .array(ChatModelTokenRangePrice)\n .min(1)\n .describe(\"Pricing tiers (`ChatModelTokenRangePrice`) schedule, sorted by minTokens.\"),\n })\n .superRefine((data, ctx) => {\n const { tokenRanges } = data;\n\n // 1) First tier starts at 0\n if (tokenRanges[0].minTokens !== 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", 0, \"minTokens\"],\n message: \"The first tier must have minTokens = 0.\",\n });\n }\n\n // 2) tokenRanges must be sorted and contiguous\n for (let i = 1; i < tokenRanges.length; i++) {\n const prev = tokenRanges[i - 1];\n const curr = tokenRanges[i];\n\n if (prev.maxTokens === null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i - 1, \"maxTokens\"],\n message: \"Cannot define any tokenRanges after an infinite tier (maxTokens = null).\",\n });\n break; // Stop further checks if structure is already invalid\n }\n\n if (curr.minTokens !== prev.maxTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `Tier ${i} minTokens (${curr.minTokens}) must equal previous tier's maxTokens (${prev.maxTokens}) for contiguity.`,\n });\n }\n\n // Ensure sorting (although contiguity check often implies this)\n if (curr.minTokens < prev.minTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `tokenRanges must be sorted by ascending minTokens. Tier ${i} (${curr.minTokens}) starts before Tier ${i - 1} (${prev.minTokens}).`,\n });\n }\n }\n\n // 3) Last tier must be infinite\n const last = tokenRanges[tokenRanges.length - 1];\n // Check last.maxTokens only if the loop didn't break early due to a previous infinite tier\n if (tokenRanges.every((t) => t.maxTokens !== null || t === last) && last.maxTokens !== null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", tokenRanges.length - 1, \"maxTokens\"],\n message: \"The final tier must have maxTokens = null (representing infinity).\",\n });\n }\n })\n .describe(\"Complete pricing schedule for a single chat model, including all its token-based tiers.\");\n\ntype ChatModelPriceType = z.infer<typeof ChatModelPrice>;\n\n// Export the schemas and types\nexport { ChatModelPrice, ChatModelTokenPairPrice, ChatModelTokenRangePrice, ChatModelTokenTypePrice };\nexport type { ChatModelPriceType, ChatModelTokenPairPriceType, ChatModelTokenRangePriceType, ChatModelTokenTypePriceType };\n","// import { JSONSchema7 } from \"json-schema\";\n// import { Validator } from \"jsonschema\";\nimport { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\n// TODO: fix 'name' property not allowed in JSONSchema7\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}).refine((schema) => {\n// const validator = new Validator();\n// return validator.validate(schema, { type: \"object\" }).valid;\n// }),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n\n// const FunctionTool = z.object({\n// type: z.literal(FunctionToolLiteral),\n// definition: z.object({\n// schema: z.object({}),\n// }),\n// callback: z.function().args(z.string().min(0)).returns(z.promise(z.any())).optional(),\n// });\n// type FunctionToolType = z.infer<typeof FunctionTool>;\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\n// TODO: make a proper fix here\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 FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function, // TODO: convert to union with more tool types\n }),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\n// const Tools = z.array(Tool).nonempty().optional();\n// type ToolsType = z.infer<typeof Tools>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import {\n Base64ImageContentTypeLiteral,\n ContentType,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n UrlImageContentTypeLiteral,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n }),\n ],\n });\n};\n\nconst createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url,\n },\n }),\n ],\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64,\n },\n }),\n ],\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n ],\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n }),\n ],\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content,\n }),\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n });\n};\n\nconst createReasoningContent = (thinking: string, signature: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n });\n};\n\nconst createReasoningMessage = (role: RoleEnumType, thinking: string, signature: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n }),\n ],\n });\n};\n// Redacted Reasoning Content\nconst createRedactedReasoningContent = (data: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n });\n};\n\nconst createRedactedReasoningMessage = (role: RoleEnumType, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n }),\n ],\n });\n};\n\nconst createPartialReasoningMessage = (role: RoleEnumType, thinking?: string, signature?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\n// Create a partial redacted reasoning message\nconst createPartialRedactedReasoningMessage = (role: RoleEnumType, data: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createUrlImageMessage,\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<\n ReturnType<typeof ObjectSchemaConfigItemSchema<S>>\n>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) => z.boolean().nullable().default(defaultValue).optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string(),\n choices: z.array(z.string()),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral,\n MultiStringConfigItemTypeLiteral,\n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef,\n MultiStringConfigItemDef,\n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ChatModelPriceType, ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n>(\n Roles: R = RoleEnum as unknown as R,\n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n maxReasoningTokens: z.number().int().positive().min(1).optional(),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n price: z.custom<ChatModelPriceType>(),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { ChatModelSchema, type ChatModelSchemaType };\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(\n z.union([\n z.boolean(),\n z.string(),\n z.number(),\n z.object({}),\n z.array(z.any()),\n z.null(),\n z.undefined(),\n ])\n);\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst MAX_REASONING_TOKENS = {\n type: \"range\",\n title: \"Max reasoning tokens\",\n description:\n \"Specify the total tokens for reasoning, where one token approximates four English characters.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description: \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const;\n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n MAX_REASONING_TOKENS,\n};\n\nexport { CHAT_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const isRunningInBrowser = () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof navigator !== \"undefined\";\n};\n\nexport { isRunningInBrowser };\n","import { isRunningInBrowser } from \"./is-running-in-browser\";\n\nconst convertBase64ToUint8Array = (base64String: string): Uint8Array => {\n const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const latin1string = globalThis.atob(base64Url);\n return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0)!);\n};\n\nconst convertUint8ArrayToBase64 = (array: Uint8Array): string => {\n let latin1string = \"\";\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return globalThis.btoa(latin1string);\n};\n\nconst encodedBase64ToString = (base64: string): string => {\n if (isRunningInBrowser()) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n const decoder = new TextDecoder(\"utf-8\");\n return decoder.decode(bytes);\n } else {\n return Buffer.from(base64, \"base64\").toString(\"utf-8\");\n }\n};\n\nconst getMimeTypeFromBase64 = (base64: string): string => {\n const mimeTypePrefix = base64.split(\";\")[0];\n const mimeType = mimeTypePrefix.split(\"/\")[1];\n return mimeType;\n};\n\nexport { convertBase64ToUint8Array, convertUint8ArrayToBase64, encodedBase64ToString, getMimeTypeFromBase64 };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","import { CHAT_CONFIG, MultiStringConfigItem, RangeConfigItem, SelectBooleanConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CHAT_CONFIG.TEMPERATURE.title,\n description: CHAT_CONFIG.TEMPERATURE.description,\n min: 0,\n max: 2,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_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\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};\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 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 }),\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 content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n })\n .or(z.object({})),\n logprobs: OpenRouterLogProb,\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 createPartialTextMessage,\n createPartialToolCallMessage,\n createTextContent,\n createToolCallContent,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialChatResponseType,\n SystemRoleLiteral,\n TextModalityLiteral,\n Tool,\n ToolCallContentType,\n ToolCallModalityLiteral,\n ToolResponseContentType,\n ToolResponseModalityLiteral,\n ToolRoleLiteral,\n ToolType,\n UrlImageContentTypeLiteral,\n UserRoleLiteral,\n} from \"@adaline/types\";\n\nimport { 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean; delayMs: number } {\n return { shouldRetry: true, delayMs: 0 };\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 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 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 (\"content\" in message && message.content !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"refusal\" in message && message.refusal !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n const toolCall = message.tool_calls.at(0)!;\n partialResponse.partialMessages.push(\n createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n )\n );\n }\n }\n }\n\n if (parsedResponse.usage) {\n partialResponse.usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n }\n yield { partialResponse: partialResponse, buffer: newBuffer };\n } else {\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n } catch (error) {\n throw new ModelResponseError({\n info: `Malformed JSON received in stream: ${jsonStr}`,\n cause: error,\n });\n }\n }\n }\n\n // Yield the updated buffer after processing all lines\n yield { partialResponse: { partialMessages: [] }, buffer: newBuffer };\n }\n async *transformProxyStreamChatResponseChunk(\n chunk: string,\n buffer: string,\n data?: any,\n headers?: Record<string, string>,\n query?: Record<string, string>\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n // Directly delegate to transformStreamChatResponseChunk\n yield* this.transformStreamChatResponseChunk(chunk, buffer);\n }\n async getProxyStreamChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.streamChatUrl);\n });\n }\n async getProxyCompleteChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.completeChatUrl);\n });\n }\n\n async getProxyCompleteChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n if (!headers) {\n return {};\n }\n const sanitizedHeaders: Record<string, string> = { ...headers };\n\n delete sanitizedHeaders.host;\n delete sanitizedHeaders[\"content-length\"];\n return sanitizedHeaders;\n }\n async getProxyStreamChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n // Directly delegate to getProxyCompleteChatHeaders for now\n return await this.getProxyCompleteChatHeaders(data, headers, query);\n }\n\n getModelPricing(): ChatModelPriceType {\n // Check if the modelName exists in pricingData before accessing it\n if (!(this.modelName in pricingData)) {\n throw new ModelResponseError({\n info: `Invalid model pricing for model : '${this.modelName}'`,\n cause: new Error(`No pricing configuration found for model \"${this.modelName}\"`),\n });\n }\n\n const entry = pricingData[this.modelName as keyof typeof pricingData];\n return entry as ChatModelPriceType;\n }\n}\n\nexport { BaseChatModel, BaseChatModelOptions, type BaseChatModelOptionsType };\n","import { 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":["../src/configs/chat-model/base.config.chat-model.open-router.ts","../../../../packages/types/src/message/roles.ts","../../../../packages/types/src/message/content/image-content.ts","../../../../packages/types/src/message/content/reasoning-content.ts","../../../../packages/types/src/message/content/text-content.ts","../../../../packages/types/src/message/content/tool-call-content.ts","../../../../packages/types/src/message/content/tool-response-content.ts","../../../../packages/types/src/message/content/content.ts","../../../../packages/types/src/message/message.ts","../../../../packages/types/src/chat/chat-response.ts","../../../../packages/types/src/config/config.ts","../../../../packages/types/src/config/response-schema.config.ts","../../../../packages/types/src/embedding/embedding-requests.ts","../../../../packages/types/src/embedding/embedding-response.ts","../../../../packages/types/src/errors/gateway-base.error.ts","../../../../packages/types/src/pricing/pricing-tiers.ts","../../../../packages/types/src/tool/function-tool.ts","../../../../packages/types/src/tool/tool.ts","../../../../packages/types/src/utils/create-message.ts","../../../../packages/provider/src/errors/provider.error.ts","../../../../packages/provider/src/errors/model-response.error.ts","../../../../packages/provider/src/errors/invalid-model-request.error.ts","../../../../packages/provider/src/errors/invalid-config.error.ts","../../../../packages/provider/src/errors/invalid-messages.error.ts","../../../../packages/provider/src/errors/invalid-tools.error.ts","../../../../packages/provider/src/types/config/multi-string-config-item.ts","../../../../packages/provider/src/types/config/object-schema-config-item.ts","../../../../packages/provider/src/types/config/range-config-item.ts","../../../../packages/provider/src/types/config/select-boolean-config-item.ts","../../../../packages/provider/src/types/config/select-string-config-item.ts","../../../../packages/provider/src/types/config/config-item.ts","../../../../packages/provider/src/model/chat-model/chat-model.schema.v1.ts","../../../../packages/provider/src/types/headers.ts","../../../../packages/provider/src/types/params.ts","../../../../packages/provider/src/types/url.ts","../../../../packages/provider/src/utils/common-config.def.chat-model.ts","../../../../packages/provider/src/utils/remove-undefined-entries.ts","../../../../packages/provider/src/utils/is-running-in-browser.ts","../../../../packages/provider/src/utils/base64.ts","../../../../packages/provider/src/utils/url.ts","../src/configs/chat-model/common.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","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","Metadata","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","PartialModalityLiterals","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialReasoningContentMetadata","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","PartialChatUsage","PartialChatResponse","Config","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","EmbeddingResponse","safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","ChatModelTokenPairPrice","ChatModelTokenTypePrice","ChatModelTokenRangePrice","t","ChatModelPrice","data","ctx","tokenRanges","i","prev","curr","last","FunctionToolLiteral","FunctionParameterTypesLiteral","FunctionParameter","FunctionParameters","Function","ToolTypesLiteral","ApiRetrySettings","HttpRequestSettings","ApiSettings","FunctionTool","ToolLiterals","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","createPartialTextMessage","role","createPartialToolCallMessage","ProviderErrorLiteral","ProviderError","_ProviderError","ModelResponseErrorLiteral","ModelResponseError","_ModelResponseError","InvalidModelRequestErrorLiteral","InvalidModelRequestError","_InvalidModelRequestError","InvalidConfigErrorLiteral","InvalidConfigError","_InvalidConfigError","InvalidMessagesErrorLiteral","InvalidMessagesError","_InvalidMessagesError","InvalidToolsErrorLiteral","InvalidToolsError","_InvalidToolsError","MultiStringConfigItemTypeLiteral","MultiStringConfigItemDef","MultiStringConfigItemSchema","max","MultiStringConfigItem","__spreadValues","ObjectSchemaConfigItemTypeLiteral","ObjectSchemaConfigItemDef","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","CHAT_CONFIG","removeUndefinedEntries","record","_","getMimeTypeFromBase64","base64","urlWithoutTrailingSlash","url","temperature","ct","Jt","maxTokens","maxOutputTokens","stop","maxSequences","et","topA","topK","topP","minP","frequencyPenalty","presencePenalty","repetitionPenalty","seed","logProbs","ft","topLogProbs","toolChoice","yt","responseFormat","ChatModelBaseConfigSchema","ChatModelBaseConfigDef","OpenRouterChatModelConfigs","ProviderLiteral","OpenRouter","BaseChatModelSchema","options","model","BaseChatModel","parsedOptions","BaseChatModelOptions","acc","j","pricing_default","OpenRouterChatModelRoles","Be","$e","$","De","OpenRouterChatModelRolesMap","OpenRouterChatModelModalities","v","D","w","J","OpenRouterChatModelModalitiesEnum","OpenRouterBaseLogProb","OpenRouterLogProb","OpenRouterToolCallsCompleteChatResponse","OpenRouterCompleteChatResponse","OpenRouterToolCallsStreamChatResponse","OpenRouterStreamChatResponse","OpenRouterChatRequestTool","OpenRouterChatRequestToolChoiceEnum","OpenRouterChatRequestToolChoiceFunction","OpenRouterChatRequestResponseFormat","OpenRouterChatRequestTextContent","OpenRouterChatRequestImageContent","OpenRouterChatRequestToolCallContent","OpenRouterChatRequestSystemMessage","OpenRouterChatRequestUserMessage","OpenRouterChatRequestAssistantMessage","OpenRouterChatRequestToolMessage","OpenRouterChatRequestMessage","OpenRouterChatRequest","modelSchema","mn","responseHeaders","messages","message","request","safeRequest","N","parsedRequest","modelName","_config","ut","Vt","toolCallMap","_content","c","ie","an","se","assistantContent","toolCall","toolCallContent","toolResponse","tools","tool","_toolChoice","_parsedConfig","parsedConfig","transformedConfig","def","paramKey","paramValue","configToolChoice","parsedMessages","parsedMessage","L","U","textContent","toolCalls","imageContent","combinedContent","Z","parsedTool","St","__async","resolve","transformedMessages","transformedTools","response","safe","B","parsedResponse","Nt","Ht","usage","_logProbs","logProb","topLogProb","chunk","buffer","__asyncGenerator","lines","newBuffer","currentIndex","newlineIndex","line","jsonStr","structuredLine","partialResponse","Xt","Yt","headers","query","__yieldStar","sanitizedHeaders","jt"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n} from \"./common.config.chat-model.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 });\n\nconst ChatModelBaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n logProbs: logProbs.def,\n topLogProbs: topLogProbs.def,\n toolChoice: toolChoice.def,\n }) as const;\n\nexport { ChatModelBaseConfigDef, ChatModelBaseConfigSchema };\n","import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport {\n UserRoleLiteral,\n ToolRoleLiteral,\n SystemRoleLiteral,\n AssistantRoleLiteral,\n RoleEnum,\n RoleLiterals,\n PartialRoleEnum,\n PartialRoleLiterals,\n type RoleEnumType,\n type PartialRoleEnumType,\n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n type: z.literal(Base64ImageContentTypeLiteral),\n base64: z.string(),\n mediaType: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n type: z.literal(UrlImageContentTypeLiteral),\n url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ImageModalityLiteral),\n detail: ImageContentDetailsLiteral,\n value: ImageContentValue,\n metadata: Metadata,\n });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n Base64ImageContentValue,\n ImageContent,\n ImageContentDetails,\n ImageContentDetailsLiteral,\n ImageModalityLiteral,\n UrlImageContentValue,\n UrlImageContentTypeLiteral,\n Base64ImageContentTypeLiteral,\n Base64ImageContentMediaTypeLiterals,\n type Base64ImageContentValueType,\n type ImageContentDetailsLiteralType,\n type ImageContentType,\n type ImageContentValueType,\n type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst ReasoningModalityLiteral = \"reasoning\" as const;\nconst PartialReasoningModalityLiteral = \"partial-reasoning\" as const;\n\nconst ReasoningContentTypeLiteral = \"thinking\" as const;\nconst RedactedReasoningContentTypeLiteral = \"redacted\" as const;\n\nconst ReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: z.string(),\n signature: z.string(),\n});\ntype ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;\n\nconst RedactedReasoningContentValue = z.object({\n type: z.literal(RedactedReasoningContentTypeLiteral),\n data: z.string()\n});\ntype RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;\n\nconst ReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ ReasoningContentValue, RedactedReasoningContentValue ]);\ntype ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;\n\nconst ReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ReasoningModalityLiteral),\n value: ReasoningContentValueUnion,\n metadata: Metadata,\n });\n\ntype ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;\n\nconst PartialReasoningContentValue = z.object({\n type: z.literal(ReasoningContentTypeLiteral),\n thinking: ReasoningContentValue.shape.thinking.optional(),\n signature: ReasoningContentValue.shape.signature.optional(),\n});\nconst PartialReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ \n PartialReasoningContentValue, \n RedactedReasoningContentValue \n]);\n\nconst PartialReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialReasoningModalityLiteral),\n value: PartialReasoningContentValueUnion,\n metadata: Metadata,\n });\ntype PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;\n\nexport {\n ReasoningContent,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n ReasoningContentTypeLiteral,\n ReasoningContentValue,\n PartialReasoningContentValue,\n ReasoningContentValueUnion,\n PartialReasoningContentValueUnion,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RedactedReasoningContentValue,\n type PartialReasoningContentType,\n type ReasoningContentType,\n type ReasoningContentValueType,\n type ReasoningContentValueUnionType,\n type RedactedReasoningContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(TextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialTextModalityLiteral),\n value: z.string(),\n metadata: Metadata,\n });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport {\n TextContent,\n PartialTextContent,\n TextModalityLiteral,\n PartialTextModalityLiteral,\n type TextContentType,\n type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n arguments: z.string(),\n metadata: Metadata,\n });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(PartialToolCallModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().optional(),\n name: z.string().optional(),\n arguments: z.string().optional(),\n metadata: Metadata,\n });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n ToolCallContent,\n PartialToolCallContent,\n ToolCallModalityLiteral,\n PartialToolCallModalityLiteral,\n type ToolCallContentType,\n type PartialToolCallContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.object({\n modality: z.literal(ToolResponseModalityLiteral),\n index: z.number().int().nonnegative(),\n id: z.string().min(1),\n name: z.string().min(1),\n data: z.string(),\n apiResponse: z.object({\n statusCode: z.number().int().nonnegative(),\n }).optional(),\n metadata: Metadata,\n });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nexport { ToolResponseContent, ToolResponseModalityLiteral, type ToolResponseContentType };\n","import { z } from \"zod\";\n\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ReasoningModalityLiteral,\n] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n TCCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n ReasoningContentMetadata: TCCM = z.undefined() as TCCM\n) =>\n z.discriminatedUnion(\"modality\", [\n TextContent(TextContentMetadata),\n ImageContent(ImageContentMetadata),\n ToolCallContent(ToolCallContentMetadata),\n ToolResponseContent(ToolResponseContentMetadata),\n ReasoningContent(ReasoningContentMetadata),\n ]);\ntype ContentType<\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, CCM, RCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n PartialTextContentMetadata: TCM = z.undefined() as TCM,\n PartialToolCallContentMetadata: CCM = z.undefined() as CCM,\n PartialReasoningContentMetadata: z.ZodTypeAny = z.undefined() as z.ZodTypeAny as RCM\n) =>\n z.discriminatedUnion(\"modality\", [\n PartialTextContent(PartialTextContentMetadata),\n PartialToolCallContent(PartialToolCallContentMetadata),\n PartialReasoningContent(PartialReasoningContentMetadata),\n ]);\ntype PartialContentType<TCM extends z.ZodTypeAny = z.ZodUndefined, CCM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<\n ReturnType<typeof PartialContent<TCM, CCM>>\n>;\n\nexport {\n Content,\n ModalityEnum,\n ModalityLiterals,\n PartialContent,\n PartialModalityEnum,\n PartialModalityLiterals,\n type ContentType,\n type ModalityEnumType,\n type PartialContentType,\n type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { PartialRoleEnum, RoleEnum } from \"./roles\";\n\nconst Message = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = RoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ImageContentMetadata: ICM = z.undefined() as ICM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n MessageMetadata: MM = z.undefined() as MM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM\n) =>\n z.object({\n role: Role,\n content: z.array(\n Content(TextContentMetadata, ImageContentMetadata, ToolCallContentMetadata, ToolResponseContentMetadata, ReasoningContentMetadata)\n ),\n metadata: MessageMetadata,\n });\ntype MessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n ICM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n RCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, MM, RTCM>>>;\n\nconst PartialMessage = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n RTCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n Role: R = PartialRoleEnum as unknown as R,\n TextContentMetadata: TCM = z.undefined() as TCM,\n ToolCallContentMetadata: CCM = z.undefined() as CCM,\n ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n MessageMetadata: MM = z.undefined() as MM\n) =>\n z.object({\n role: Role,\n partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata),\n metadata: MessageMetadata,\n });\ntype PartialMessageType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n TCM extends z.ZodTypeAny = z.ZodUndefined,\n CCM extends z.ZodTypeAny = z.ZodUndefined,\n MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM>>>;\n\nexport { Message, PartialMessage, type MessageType, type PartialMessageType };\n","import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n promptTokens: z.number().nonnegative(),\n completionTokens: z.number().nonnegative(),\n totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n token: z.string(),\n logProb: z.number(),\n bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n messages: z.array(Message()),\n usage: ChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatUsage = z.object({\n promptTokens: z.number().nonnegative().optional(),\n completionTokens: z.number().nonnegative().optional(),\n totalTokens: z.number().nonnegative().optional(),\n});\n\ntype PartialChatUsageType = z.infer<typeof PartialChatUsage>;\n\nconst PartialChatResponse = z.object({\n partialMessages: z.array(PartialMessage()),\n usage: PartialChatUsage.optional(),\n logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport {\n ChatBaseLogProb,\n ChatLogProb,\n ChatLogProbs,\n ChatResponse,\n ChatUsage,\n PartialChatResponse,\n PartialChatUsage,\n type ChatBaseLogProbType,\n type ChatLogProbsType,\n type ChatLogProbType,\n type ChatResponseType,\n type ChatUsageType,\n type PartialChatResponseType,\n type PartialChatUsageType,\n};\n","import { z } from \"zod\";\n\nconst Config = <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(\n Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { Config, type ConfigType };\n","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n .object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n })\n .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport {\n ResponseSchema,\n ResponseSchemaProperty,\n ResponseSchemaStructure,\n ResponseSchemaTypes,\n ResponseSchemaTypesLiteral,\n type ResponseSchemaTypesType,\n type ResponseSchemaType,\n type ResponseSchemaPropertyType,\n type ResponseSchemaStructureType,\n};\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative()));\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n z.discriminatedUnion(\"modality\", [\n z.object({\n modality: z.literal(EmbeddingTextModalityLiteral),\n metadata: Metadata,\n requests: TextEmbeddingRequests,\n }),\n z.object({\n modality: z.literal(EmbeddingTokenModalityLiteral),\n metadata: Metadata,\n requests: TokenEmbeddingRequests,\n }),\n ]);\ntype EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n EmbeddingModalityLiterals,\n EmbeddingModalityEnum,\n TextEmbeddingRequests,\n TokenEmbeddingRequests,\n EmbeddingRequests,\n type EmbeddingRequestsType,\n type EmbeddingModalityEnumType,\n type TextEmbeddingRequestsType,\n type TokenEmbeddingRequestsType,\n};\n","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n index: z.number().int().nonnegative(),\n embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n z.object({\n encodingFormat: z.literal(FloatEmbeddingLiteral),\n embeddings: z.array(FloatEmbedding),\n usage: EmbeddingsUsage.optional(),\n }),\n z.object({\n encodingFormat: z.literal(Base64EmbeddingLiteral),\n embeddings: z.array(Base64Embedding),\n usage: EmbeddingsUsage.optional(),\n }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n FloatEmbedding,\n Base64Embedding,\n EmbeddingsUsage,\n EmbeddingResponse,\n type FloatEmbeddingType,\n type Base64EmbeddingType,\n type EmbeddingsUsageType,\n type EmbeddingResponseType,\n};\n","const safeStringify = (obj: unknown) => {\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return; // Skip circular reference\n }\n seen.add(value);\n }\n return value;\n });\n};\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n if (error == null) return \"unknown error\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n readonly name: string = GatewayBaseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n this.info = info;\n this.cause = cause;\n this.name = name ?? GatewayBaseErrorLiteral;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n return error instanceof GatewayBaseError;\n }\n\n toJSON(): object {\n return {\n name: this.name,\n info: this.info,\n cause: this.cause,\n message: this.message,\n stack: this.stack,\n };\n }\n}\n\nexport { GatewayBaseError };\n","import { z } from \"zod\";\n\n/**\n * A pair of per‑million‑token rates for a single price category (e.g., base input/output).\n * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.\n */\nconst ChatModelTokenPairPrice = z\n .object({\n inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens\"),\n outputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M output tokens\"),\n })\n .describe(\"Input/output price pair (per 1M tokens) for a specific category within a ChatModel pricing tier.\");\n\ntype ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;\n\n/**\n * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).\n * Each category holds a `ChatModelTokenPairPrice`.\n */\nconst ChatModelTokenTypePrice = z\n .object({\n base: ChatModelTokenPairPrice.describe(\"Base (uncached, non‑reasoning) rates\"),\n // Add optional 'cached' and 'reasoning' here if they become standard\n })\n .describe(\"Holds the `ChatModelTokenPairPrice` for different categories (e.g., base) within a single pricing tier.\");\n\ntype ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;\n\n/**\n * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.\n * - `minTokens`: inclusive lower bound (integer ≥ 0).\n * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.\n * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.\n */\nconst ChatModelTokenRangePrice = z\n .object({\n minTokens: z.number().int().nonnegative().describe(\"Inclusive lower token bound for this tier.\"),\n maxTokens: z.number().int().nullable().optional().describe(\"Exclusive upper token bound; `null` means ∞.\"),\n prices: ChatModelTokenTypePrice.describe(\"Price categories and rates for this specific token range.\"),\n })\n .refine((t) => t.maxTokens === null || (typeof t.maxTokens === \"number\" && t.maxTokens > t.minTokens), {\n message: \"maxTokens must be > minTokens (or null for infinite).\",\n path: [\"maxTokens\"],\n })\n .describe(\"A single pricing tier defined by a token range and associated prices.\");\n\ntype ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;\n\n/**\n * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.\n * Ensures tiers are contiguous and cover the full range from 0 to infinity.\n * - First tier must start at 0 tokens.\n * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.\n * - Last `tokenRange` must have maxTokens = null (infinite).\n */\nconst ChatModelPrice = z\n .object({\n modelName: z.string().describe(\"Model name this schedule applies to.\"),\n currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n tokenRanges: z\n .array(ChatModelTokenRangePrice)\n .min(1)\n .describe(\"Pricing tiers (`ChatModelTokenRangePrice`) schedule, sorted by minTokens.\"),\n })\n .superRefine((data, ctx) => {\n const { tokenRanges } = data;\n\n // 1) First tier starts at 0\n if (tokenRanges[0].minTokens !== 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", 0, \"minTokens\"],\n message: \"The first tier must have minTokens = 0.\",\n });\n }\n\n // 2) tokenRanges must be sorted and contiguous\n for (let i = 1; i < tokenRanges.length; i++) {\n const prev = tokenRanges[i - 1];\n const curr = tokenRanges[i];\n\n if (prev.maxTokens === null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i - 1, \"maxTokens\"],\n message: \"Cannot define any tokenRanges after an infinite tier (maxTokens = null).\",\n });\n break; // Stop further checks if structure is already invalid\n }\n\n if (curr.minTokens !== prev.maxTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `Tier ${i} minTokens (${curr.minTokens}) must equal previous tier's maxTokens (${prev.maxTokens}) for contiguity.`,\n });\n }\n\n // Ensure sorting (although contiguity check often implies this)\n if (curr.minTokens < prev.minTokens) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", i, \"minTokens\"],\n message: `tokenRanges must be sorted by ascending minTokens. Tier ${i} (${curr.minTokens}) starts before Tier ${i - 1} (${prev.minTokens}).`,\n });\n }\n }\n\n // 3) Last tier must be infinite\n const last = tokenRanges[tokenRanges.length - 1];\n // Check last.maxTokens only if the loop didn't break early due to a previous infinite tier\n if (tokenRanges.every((t) => t.maxTokens !== null || t === last) && last.maxTokens !== null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"tokenRanges\", tokenRanges.length - 1, \"maxTokens\"],\n message: \"The final tier must have maxTokens = null (representing infinity).\",\n });\n }\n })\n .describe(\"Complete pricing schedule for a single chat model, including all its token-based tiers.\");\n\ntype ChatModelPriceType = z.infer<typeof ChatModelPrice>;\n\n// Export the schemas and types\nexport { ChatModelPrice, ChatModelTokenPairPrice, ChatModelTokenRangePrice, ChatModelTokenTypePrice };\nexport type { ChatModelPriceType, ChatModelTokenPairPriceType, ChatModelTokenRangePriceType, ChatModelTokenTypePriceType };\n","import { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\nconst FunctionParameter = z.object({\n anyOf: z.array(z.any()).optional(),\n type: FunctionParameterTypesLiteral.optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n type: z.enum([\"object\"]),\n title: z.string().optional(),\n $defs: z.record(z.any()).optional(),\n properties: z.record(FunctionParameter).optional(),\n required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n parameters: z.any(),\n strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst ApiRetrySettings = z.object({\n maxAttempts: z.number().int().positive(),\n initialDelay: z.number().int().positive(),\n exponentialFactor: z.number().int().positive(),\n});\n\nconst HttpRequestSettings = z.object({\n type: z.literal(\"http\"),\n method: z.enum([\"get\", \"post\"]),\n url: z.string().url(),\n proxyUrl: z.string().url().optional(),\n headers: z.record(z.string()).optional(),\n query: z.record(z.string()).optional(),\n body: z.record(z.any()).optional(),\n retry: ApiRetrySettings.optional(),\n});\n\nconst ApiSettings = z.discriminatedUnion(\"type\", [HttpRequestSettings]);\n\nconst FunctionTool = z.object({\n type: ToolTypesLiteral,\n definition: z.object({\n schema: Function,\n }),\n apiSettings: ApiSettings.optional(),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\nexport {\n Function,\n FunctionParameter,\n FunctionParameters,\n FunctionParameterTypes,\n FunctionParameterTypesLiteral,\n HttpRequestSettings,\n ApiSettings,\n ApiRetrySettings,\n ToolTypes,\n ToolTypesLiteral,\n type FunctionParametersType,\n type FunctionParameterType,\n type FunctionParameterTypesType,\n type FunctionType,\n type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import {\n Base64ImageContentTypeLiteral,\n ContentType,\n ImageContent,\n ImageContentDetailsLiteralType,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialMessage,\n PartialMessageType,\n PartialReasoningContent,\n PartialReasoningModalityLiteral,\n PartialTextContent,\n PartialTextModalityLiteral,\n PartialToolCallContent,\n PartialToolCallModalityLiteral,\n ReasoningContent,\n ReasoningContentTypeLiteral,\n ReasoningModalityLiteral,\n RedactedReasoningContentTypeLiteral,\n RoleEnumType,\n TextContent,\n TextModalityLiteral,\n ToolCallContent,\n ToolCallModalityLiteral,\n ToolResponseContent,\n ToolResponseModalityLiteral,\n UrlImageContentTypeLiteral,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n return TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n });\n};\n\nconst createToolCallContent = (index: number, id: string, name: string, args: string): ContentType => {\n return ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n TextContent().parse({\n modality: TextModalityLiteral,\n value: content,\n }),\n ],\n });\n};\n\nconst createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: UrlImageContentTypeLiteral,\n url: url,\n },\n }),\n ],\n });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ImageContent().parse({\n modality: ImageModalityLiteral,\n detail: detail,\n value: {\n type: Base64ImageContentTypeLiteral,\n base64: base64,\n },\n }),\n ],\n });\n};\n\nconst createToolCallMessage = (role: RoleEnumType, index: number, id: string, name: string, args: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolCallContent().parse({\n modality: ToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n ],\n });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ToolResponseContent().parse({\n modality: ToolResponseModalityLiteral,\n index: index,\n id: id,\n name: name,\n data: data,\n }),\n ],\n });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialTextContent().parse({\n modality: PartialTextModalityLiteral,\n value: content,\n }),\n });\n};\n\nconst createPartialToolCallMessage = (role: RoleEnumType, index: number, id?: string, name?: string, args?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialToolCallContent().parse({\n modality: PartialToolCallModalityLiteral,\n index: index,\n id: id,\n name: name,\n arguments: args,\n }),\n });\n};\n\nconst createReasoningContent = (thinking: string, signature: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n });\n};\n\nconst createReasoningMessage = (role: RoleEnumType, thinking: string, signature: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n }),\n ],\n });\n};\n// Redacted Reasoning Content\nconst createRedactedReasoningContent = (data: string): ContentType => {\n return ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n });\n};\n\nconst createRedactedReasoningMessage = (role: RoleEnumType, data: string): MessageType => {\n return Message().parse({\n role: role,\n content: [\n ReasoningContent().parse({\n modality: ReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n }),\n ],\n });\n};\n\nconst createPartialReasoningMessage = (role: RoleEnumType, thinking?: string, signature?: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: ReasoningContentTypeLiteral,\n thinking,\n signature,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\n// Create a partial redacted reasoning message\nconst createPartialRedactedReasoningMessage = (role: RoleEnumType, data: string): PartialMessageType => {\n return PartialMessage().parse({\n role: role,\n partialContent: PartialReasoningContent().parse({\n modality: PartialReasoningModalityLiteral,\n value: {\n type: RedactedReasoningContentTypeLiteral,\n data,\n },\n // metadata is optional; omit or provide if needed\n }),\n });\n};\n\nexport {\n createBase64ImageMessage,\n createPartialReasoningMessage,\n createPartialRedactedReasoningMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n createReasoningContent,\n createReasoningMessage,\n createRedactedReasoningContent,\n createRedactedReasoningMessage,\n createTextContent,\n createTextMessage,\n createToolCallContent,\n createToolCallMessage,\n createToolResponseMessage,\n createUrlImageMessage,\n};\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ProviderErrorLiteral = \"ProviderError\" as const;\nexport class ProviderError extends GatewayBaseError {\n readonly name = ProviderErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ProviderErrorLiteral);\n this.info = info;\n this.cause = cause;\n }\n\n static isProviderError(error: unknown): error is ProviderError {\n return error instanceof ProviderError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst ModelResponseErrorLiteral = \"ModelResponseError\" as const;\nexport class ModelResponseError extends GatewayBaseError {\n readonly name = ModelResponseErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, ModelResponseErrorLiteral);\n this.cause = cause;\n this.info = info;\n }\n\n static isModelResponseError(error: unknown): error is ModelResponseError {\n return error instanceof ModelResponseError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidModelRequestErrorLiteral = \"InvalidModelRequestError\" as const;\nexport class InvalidModelRequestError extends GatewayBaseError {\n readonly name = InvalidModelRequestErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidModelRequestErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidModelRequestError(error: unknown): error is InvalidModelRequestError {\n return error instanceof InvalidModelRequestError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidConfigErrorLiteral = \"InvalidConfigError\" as const;\nexport class InvalidConfigError extends GatewayBaseError {\n readonly name = InvalidConfigErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidConfigErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidConfigError(error: unknown): error is InvalidConfigError {\n return error instanceof InvalidConfigError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidMessagesErrorLiteral = \"InvalidMessagesError\" as const;\nexport class InvalidMessagesError extends GatewayBaseError {\n readonly name = InvalidMessagesErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidMessagesErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidMessagesError(error: unknown): error is InvalidMessagesError {\n return error instanceof InvalidMessagesError;\n }\n}\n","import { GatewayBaseError } from \"@adaline/types\";\n\nconst InvalidToolsErrorLiteral = \"InvalidToolsError\" as const;\nexport class InvalidToolsError extends GatewayBaseError {\n readonly name = InvalidToolsErrorLiteral;\n readonly info: string;\n readonly cause: unknown;\n\n constructor({ info, cause }: { info: string; cause: unknown }) {\n super({ info, cause }, InvalidToolsErrorLiteral);\n this.cause = cause;\n this.info = info;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n static isInvalidToolsError(error: unknown): error is InvalidToolsError {\n return error instanceof InvalidToolsError;\n }\n}\n","import { z } from \"zod\";\n\nconst MultiStringConfigItemTypeLiteral = \"multi-string\" as const;\n\nconst MultiStringConfigItemDef = z.object({\n type: z.literal(MultiStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n max: z.number().int().positive(),\n});\ntype MultiStringConfigItemType = z.infer<typeof MultiStringConfigItemDef>;\n\nconst MultiStringConfigItemSchema = (max: number) => z.array(z.string()).max(max).default([]).optional();\ntype MultiStringConfigItemSchemaType = z.infer<ReturnType<typeof MultiStringConfigItemSchema>>;\n\nconst MultiStringConfigItem = (data: Omit<MultiStringConfigItemType, \"type\">) => {\n return {\n def: MultiStringConfigItemDef.parse({\n type: MultiStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: MultiStringConfigItemSchema(data.max),\n };\n};\n\nexport {\n MultiStringConfigItem,\n MultiStringConfigItemDef,\n MultiStringConfigItemSchema,\n MultiStringConfigItemTypeLiteral,\n type MultiStringConfigItemSchemaType,\n type MultiStringConfigItemType,\n};\n","import { z } from \"zod\";\n\nconst ObjectSchemaConfigItemTypeLiteral = \"object-schema\" as const;\n\nconst ObjectSchemaConfigItemDef = z.object({\n type: z.literal(ObjectSchemaConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n objectSchema: z.any(),\n});\ntype ObjectSchemaConfigItemType = z.infer<typeof ObjectSchemaConfigItemDef>;\n\nconst ObjectSchemaConfigItemSchema = <S extends z.ZodRawShape>(schema: z.ZodObject<S>) => schema.optional();\ntype ObjectSchemaConfigItemSchemaType<S extends z.ZodRawShape = z.ZodRawShape> = z.infer<\n ReturnType<typeof ObjectSchemaConfigItemSchema<S>>\n>;\n\nconst ObjectSchemaConfigItem = (data: Omit<ObjectSchemaConfigItemType, \"type\">) => {\n return {\n def: ObjectSchemaConfigItemDef.parse({\n type: ObjectSchemaConfigItemTypeLiteral,\n ...data,\n }),\n schema: ObjectSchemaConfigItemSchema(data.objectSchema),\n };\n};\n\nexport {\n ObjectSchemaConfigItem,\n ObjectSchemaConfigItemDef,\n ObjectSchemaConfigItemSchema,\n ObjectSchemaConfigItemTypeLiteral,\n type ObjectSchemaConfigItemType,\n type ObjectSchemaConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst RangeConfigItemTypeLiteral = \"range\" as const;\n\nconst RangeConfigItemDef = z.object({\n type: z.literal(RangeConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n min: z.number().int(),\n max: z.number().int(),\n step: z.number().positive(),\n default: z.number(),\n});\ntype RangeConfigItemDefType = z.infer<typeof RangeConfigItemDef>;\n\nconst RangeConfigItemSchema = (min: number, max: number, step: number, defaultValue: number) =>\n z.number().min(min).max(max).step(step).default(defaultValue).optional();\ntype RangeConfigItemSchemaType = z.infer<ReturnType<typeof RangeConfigItemSchema>>;\n\nconst RangeConfigItem = (data: Omit<RangeConfigItemDefType, \"type\">) => {\n return {\n def: RangeConfigItemDef.parse({\n type: RangeConfigItemTypeLiteral,\n ...data,\n }),\n schema: RangeConfigItemSchema(data.min, data.max, data.step, data.default),\n };\n};\n\nexport {\n RangeConfigItem,\n RangeConfigItemDef,\n RangeConfigItemSchema,\n RangeConfigItemTypeLiteral,\n type RangeConfigItemDefType,\n type RangeConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectBooleanConfigItemTypeLiteral = \"select-boolean\" as const;\n\nconst SelectBooleanConfigItemDef = z.object({\n type: z.literal(SelectBooleanConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.boolean().nullable(),\n});\ntype SelectBooleanConfigItemDefType = z.infer<typeof SelectBooleanConfigItemDef>;\n\nconst SelectBooleanConfigItemSchema = (defaultValue: boolean | null) => z.boolean().nullable().default(defaultValue).optional();\ntype SelectBooleanConfigItemSchemaType = z.infer<ReturnType<typeof SelectBooleanConfigItemSchema>>;\n\nconst SelectBooleanConfigItem = (data: Omit<SelectBooleanConfigItemDefType, \"type\">) => {\n return {\n def: SelectBooleanConfigItemDef.parse({\n type: SelectBooleanConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectBooleanConfigItemSchema(data.default),\n };\n};\n\nexport {\n SelectBooleanConfigItem,\n SelectBooleanConfigItemDef,\n SelectBooleanConfigItemSchema,\n SelectBooleanConfigItemTypeLiteral,\n type SelectBooleanConfigItemDefType,\n type SelectBooleanConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nconst SelectStringConfigItemTypeLiteral = \"select-string\" as const;\n\nconst SelectStringConfigItemDef = z.object({\n type: z.literal(SelectStringConfigItemTypeLiteral),\n param: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1).max(500),\n default: z.string(),\n choices: z.array(z.string()),\n});\ntype SelectStringConfigItemDefType = z.infer<typeof SelectStringConfigItemDef>;\n\nconst SelectStringConfigItemSchema = (defaultValue: string | null, choices: string[]) =>\n z\n .enum(choices as [string, ...string[]])\n .nullable()\n .default(defaultValue)\n .optional();\ntype SelectStringConfigItemSchemaType = z.infer<ReturnType<typeof SelectStringConfigItemSchema>>;\n\nconst SelectStringConfigItem = (data: Omit<SelectStringConfigItemDefType, \"type\">) => {\n return {\n def: SelectStringConfigItemDef.parse({\n type: SelectStringConfigItemTypeLiteral,\n ...data,\n }),\n schema: SelectStringConfigItemSchema(data.default, data.choices),\n };\n};\n\nexport {\n SelectStringConfigItem,\n SelectStringConfigItemDef,\n SelectStringConfigItemSchema,\n SelectStringConfigItemTypeLiteral,\n type SelectStringConfigItemDefType,\n type SelectStringConfigItemSchemaType,\n};\n","import { z } from \"zod\";\n\nimport { MultiStringConfigItemDef, MultiStringConfigItemTypeLiteral } from \"./multi-string-config-item\";\nimport { ObjectSchemaConfigItemDef, ObjectSchemaConfigItemTypeLiteral } from \"./object-schema-config-item\";\nimport { RangeConfigItemDef, RangeConfigItemTypeLiteral } from \"./range-config-item\";\nimport { SelectBooleanConfigItemDef, SelectBooleanConfigItemTypeLiteral } from \"./select-boolean-config-item\";\nimport { SelectStringConfigItemDef, SelectStringConfigItemTypeLiteral } from \"./select-string-config-item\";\n\nconst ConfigItemLiterals = [\n RangeConfigItemTypeLiteral,\n MultiStringConfigItemTypeLiteral,\n SelectStringConfigItemTypeLiteral,\n ObjectSchemaConfigItemTypeLiteral,\n SelectBooleanConfigItemTypeLiteral,\n] as const;\nconst ConfigItemEnum = z.enum(ConfigItemLiterals);\ntype ConfigItemEnumType = z.infer<typeof ConfigItemEnum>;\n\nconst ConfigItemDef = z.discriminatedUnion(\"type\", [\n RangeConfigItemDef,\n MultiStringConfigItemDef,\n SelectStringConfigItemDef,\n SelectBooleanConfigItemDef,\n ObjectSchemaConfigItemDef,\n]);\ntype ConfigItemDefType = z.infer<typeof ConfigItemDef>;\n\nexport { ConfigItemDef, ConfigItemEnum, ConfigItemLiterals, type ConfigItemDefType, type ConfigItemEnumType };\n","import { z } from \"zod\";\n\nimport { ChatModelPriceType, ModalityEnum, RoleEnum } from \"@adaline/types\";\n\nimport { ConfigItemDef } from \"../../types/config\";\n\nconst ChatModelSchema = <\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n>(\n Roles: R = RoleEnum as unknown as R,\n Modalities: M = ModalityEnum as unknown as M\n) =>\n z.object({\n name: z.string().min(1),\n description: z.string().min(1),\n roles: z.record(Roles, z.string().min(1).optional()),\n modalities: z.array(Modalities).nonempty(),\n maxInputTokens: z.number().int().positive().min(1),\n maxOutputTokens: z.number().int().positive().min(1),\n maxReasoningTokens: z.number().int().positive().min(1).optional(),\n config: z\n .object({\n def: z.record(z.string().min(1), ConfigItemDef),\n schema: z.instanceof(z.ZodObject),\n })\n .refine(\n (config) => {\n const defKeys = Object.keys(config.def);\n const schemaKeys = Object.keys(config.schema?.shape ?? {});\n return defKeys.every((key) => schemaKeys.includes(key)) && schemaKeys.every((key) => defKeys.includes(key));\n },\n {\n message: \"Keys in 'config.def' must exactly match keys in 'config.schema'\",\n }\n ),\n price: z.custom<ChatModelPriceType>(),\n });\ntype ChatModelSchemaType<\n R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n M extends z.ZodEnum<[string, ...string[]]> = typeof ModalityEnum,\n> = z.infer<ReturnType<typeof ChatModelSchema<R, M>>>;\n\nexport { ChatModelSchema, type ChatModelSchemaType };\n","import { z } from \"zod\";\n\nconst Headers = z.record(z.string());\ntype HeadersType = z.infer<typeof Headers>;\n\nexport { Headers, type HeadersType };\n","import { z } from \"zod\";\n\nconst Params = z.record(\n z.union([\n z.boolean(),\n z.string(),\n z.number(),\n z.object({}),\n z.array(z.any()),\n z.null(),\n z.undefined(),\n ])\n);\ntype ParamsType = z.infer<typeof Params>;\n\nexport { Params, type ParamsType };\n","import { z } from \"zod\";\n\nconst Url = z.string().url();\ntype UrlType = z.infer<typeof Url>;\n\nexport { Url, type UrlType };\n","const TEMPERATURE = {\n type: \"range\",\n title: \"Temperature\",\n description:\n \"Adjusts the model's creativity level. With a setting of 0, the model strictly picks the most probable next word. \\\n For endeavors that benefit from a dash of inventiveness, consider dialing it up to 0.7 or higher, enabling the model to produce text \\\n that's unexpectedly fresh.\",\n} as const;\n\nconst MAX_TOKENS = {\n type: \"range\",\n title: \"Max tokens\",\n description:\n \"Specify the total tokens for generation, where one token approximates four English characters. \\\n Setting this to 0 defaults to the model's maximum capacity.\",\n} as const;\n\nconst MAX_REASONING_TOKENS = {\n type: \"range\",\n title: \"Max reasoning tokens\",\n description:\n \"Specify the total tokens for reasoning, where one token approximates four English characters.\",\n} as const;\n\nconst STOP = (max: number) =>\n ({\n type: \"multi\",\n title: \"Stop sequence\",\n description: `Enter up to ${max} sequences that will halt additional text output. \\\n The generated text will exclude these sequences.`,\n }) as const;\n\nconst TOP_A = {\n type: \"range\",\n title: \"Top A\",\n description:\n \"Considers only the top tokens that have 'sufficiently high' probabilities relative to the most likely token, \\\n functioning like a dynamic Top-P. \\\n A lower Top-A value narrows down the token choices based on the highest probability token, \\\n while a higher Top-A value refines the filtering without necessarily impacting the creativity of the output.\",\n} as const;\n\nconst TOP_P = {\n type: \"range\",\n title: \"Top P\",\n description:\n \"Selects a subset of likely tokens for generation, restricting choices to the top-P fraction of possibilities, \\\n such as the top 10% when P=0.1. \\\n This approach can limit the variety of the output. By default, it's set to 1, indicating no restriction. \\\n It's advised to adjust this parameter or temperature to modulate output diversity, but not to modify both simultaneously.\",\n} as const;\n\nconst TOP_K = {\n type: \"range\",\n title: \"Top K\",\n description:\n \"Select only from the highest K probabilities for each following word, effectively eliminating the less likely 'long tail' options.\",\n} as const;\n\nconst MIN_P = {\n type: \"range\",\n title: \"Min P\",\n description:\n \"Specifies the minimum probability a token must have to be considered, in relation to the probability of the most likely token. \\\n (This value varies based on the confidence level of the top token.) \\\n For example, if Min-P is set to 0.1, only tokens with at least 1/10th the probability of the highest-ranked token will be considered.\",\n} as const;\n\nconst FREQUENCY_PENALTY = {\n type: \"range\",\n title: \"Frequency penalty\",\n description:\n \"Minimize redundancy.\\\n By assigning a penalty to frequently used tokens within the text, the likelihood of repeating identical phrases is reduced. \\\n The default setting for this penalty is zero.\",\n} as const;\n\nconst PRESENCE_PENALTY = {\n type: \"range\",\n title: \"Presence penalty\",\n description:\n \"Enhance the introduction of novel subjects by reducing the preference for tokens that have already appeared in the text, \\\n thus boosting the chances of exploring fresh topics. \\\n The standard setting for this is zero.\",\n} as const;\n\nconst SEED = {\n type: \"range\",\n title: \"Seed\",\n description:\n \"When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. \\\n Deterministic output isn't guaranteed. \\\n Also, changing the model or parameter settings, such as the temperature, \\\n can cause variations in the response even when you use the same seed value. \\\n By default, a random seed value is used.\",\n} as const;\n\nconst REPETITION_PENALTY = {\n type: \"range\",\n title: \"Repetition penalty\",\n description:\n \"Reduces the likelihood of repeating tokens from the input. \\\n Increasing this value makes the model less prone to repetition, but setting it too high may lead to less coherent output, \\\n often resulting in run-on sentences missing smaller words. \\\n The token penalty is scaled according to the original token's probability.\",\n} as const;\n\nconst LOG_PROBS = {\n type: \"boolean\",\n title: \"Log probs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n} as const;\n\nconst TOP_LOG_PROBS = {\n type: \"range\",\n title: \"Top log probs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. \\\n 'logprobs' must be set to true if this parameter is used.\",\n} as const;\n\nconst ECHO = {\n type: \"boolean\",\n title: \"Echo\",\n description: \"If true, the response will contain the prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n} as const;\n\nconst RESPONSE_FORMAT_WITH_SCHEMA = {\n type: \"select\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n} as const;\n\nconst RESPONSE_SCHEMA = {\n type: \"object\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n} as const;\n\nconst CHAT_CONFIG = {\n TEMPERATURE,\n MAX_TOKENS,\n STOP,\n TOP_A,\n TOP_P,\n TOP_K,\n MIN_P,\n FREQUENCY_PENALTY,\n PRESENCE_PENALTY,\n REPETITION_PENALTY,\n SEED,\n LOG_PROBS,\n TOP_LOG_PROBS,\n ECHO,\n RESPONSE_FORMAT,\n RESPONSE_FORMAT_WITH_SCHEMA,\n RESPONSE_SCHEMA,\n MAX_REASONING_TOKENS,\n};\n\nexport { CHAT_CONFIG };\n","const removeUndefinedEntries = <T = unknown>(record: Record<string, T | undefined>): Record<string, T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Object.fromEntries(Object.entries(record).filter(([_, value]) => value != null)) as Record<string, T>;\n};\n\nexport { removeUndefinedEntries };\n","const isRunningInBrowser = () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof navigator !== \"undefined\";\n};\n\nexport { isRunningInBrowser };\n","import { isRunningInBrowser } from \"./is-running-in-browser\";\n\nconst convertBase64ToUint8Array = (base64String: string): Uint8Array => {\n const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const latin1string = globalThis.atob(base64Url);\n return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0)!);\n};\n\nconst convertUint8ArrayToBase64 = (array: Uint8Array): string => {\n let latin1string = \"\";\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return globalThis.btoa(latin1string);\n};\n\nconst encodedBase64ToString = (base64: string): string => {\n if (isRunningInBrowser()) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n const decoder = new TextDecoder(\"utf-8\");\n return decoder.decode(bytes);\n } else {\n return Buffer.from(base64, \"base64\").toString(\"utf-8\");\n }\n};\n\nconst getMimeTypeFromBase64 = (base64: string): string => {\n const mimeTypePrefix = base64.split(\";\")[0];\n const mimeType = mimeTypePrefix.split(\"/\")[1];\n return mimeType;\n};\n\nexport { convertBase64ToUint8Array, convertUint8ArrayToBase64, encodedBase64ToString, getMimeTypeFromBase64 };\n","const urlWithoutTrailingSlash = (url: string): string => {\n return url?.replace(/\\/$/, \"\");\n};\n\nexport { urlWithoutTrailingSlash };\n","import { CHAT_CONFIG, MultiStringConfigItem, RangeConfigItem, SelectBooleanConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CHAT_CONFIG.TEMPERATURE.title,\n description: CHAT_CONFIG.TEMPERATURE.description,\n min: 0,\n max: 2,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_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\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};\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 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 }),\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 content: z.string().nullable().optional(),\n tool_calls: OpenRouterToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n })\n .or(z.object({})),\n logprobs: OpenRouterLogProb,\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 createPartialTextMessage,\n createPartialToolCallMessage,\n createTextContent,\n createToolCallContent,\n ImageModalityLiteral,\n Message,\n MessageType,\n PartialChatResponseType,\n SystemRoleLiteral,\n TextModalityLiteral,\n Tool,\n ToolCallContentType,\n ToolCallModalityLiteral,\n ToolResponseContentType,\n ToolResponseModalityLiteral,\n ToolRoleLiteral,\n ToolType,\n UrlImageContentTypeLiteral,\n UserRoleLiteral,\n} from \"@adaline/types\";\n\nimport { 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRetryDelay(responseHeaders: HeadersType): { shouldRetry: boolean; delayMs: number } {\n return { shouldRetry: true, delayMs: 0 };\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 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 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 (\"content\" in message && message.content !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"refusal\" in message && message.refusal !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n const toolCall = message.tool_calls.at(0)!;\n partialResponse.partialMessages.push(\n createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n )\n );\n }\n }\n }\n\n if (parsedResponse.usage) {\n partialResponse.usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n }\n yield { partialResponse: partialResponse, buffer: newBuffer };\n } else {\n throw new ModelResponseError({ info: \"Invalid response from model\", cause: safe.error });\n }\n } catch (error) {\n throw new ModelResponseError({\n info: `Malformed JSON received in stream: ${jsonStr}`,\n cause: error,\n });\n }\n }\n }\n\n // Yield the updated buffer after processing all lines\n yield { partialResponse: { partialMessages: [] }, buffer: newBuffer };\n }\n async *transformProxyStreamChatResponseChunk(\n chunk: string,\n buffer: string,\n data?: any,\n headers?: Record<string, string>,\n query?: Record<string, string>\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n // Directly delegate to transformStreamChatResponseChunk\n yield* this.transformStreamChatResponseChunk(chunk, buffer);\n }\n async getProxyStreamChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.streamChatUrl);\n });\n }\n async getProxyCompleteChatUrl(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<UrlType> {\n return new Promise((resolve) => {\n resolve(this.completeChatUrl);\n });\n }\n\n async getProxyCompleteChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n if (!headers) {\n return {};\n }\n const sanitizedHeaders: Record<string, string> = { ...headers };\n\n delete sanitizedHeaders.host;\n delete sanitizedHeaders[\"content-length\"];\n return sanitizedHeaders;\n }\n async getProxyStreamChatHeaders(data?: any, headers?: Record<string, string>, query?: Record<string, string>): Promise<HeadersType> {\n // Directly delegate to getProxyCompleteChatHeaders for now\n return await this.getProxyCompleteChatHeaders(data, headers, query);\n }\n\n getModelPricing(): ChatModelPriceType {\n // Check if the modelName exists in pricingData before accessing it\n if (!(this.modelName in pricingData)) {\n throw new ModelResponseError({\n info: `Invalid model pricing for model : '${this.modelName}'`,\n cause: new Error(`No pricing configuration found for model \"${this.modelName}\"`),\n });\n }\n\n const entry = pricingData[this.modelName as keyof typeof pricingData];\n return entry as ChatModelPriceType;\n }\n}\n\nexport { BaseChatModel, BaseChatModelOptions, type BaseChatModelOptionsType };\n","import { 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"]}