@mariozechner/pi-ai 0.5.30 → 0.5.31
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/generate.d.ts.map +1 -1
- package/dist/generate.js +1 -0
- package/dist/generate.js.map +1 -1
- package/dist/models.generated.d.ts +174 -2
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +187 -15
- package/dist/models.generated.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,GAAG,EACH,gBAAgB,EAChB,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,aAAa,EACb,KAAK,EACL,aAAa,EAEb,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,YAAW,cAAc;IAC1D,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,OAAO,CAAkE;IACjF,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,mBAAmB,CAAuC;;IAQlE,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAqBxC,GAAG,IAAI,IAAI;IASJ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC;IAmBrE,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAGzC;AAID,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;AACtE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;AAK/D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AACvE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,GAAG,EACH,gBAAgB,EAChB,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,aAAa,EACb,KAAK,EACL,aAAa,EAEb,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,YAAW,cAAc;IAC1D,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,OAAO,CAAkE;IACjF,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,mBAAmB,CAAuC;;IAQlE,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAqBxC,GAAG,IAAI,IAAI;IASJ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC;IAmBrE,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAGzC;AAID,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;AACtE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;AAK/D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AACvE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAsBhE,wBAAgB,MAAM,CAAC,IAAI,SAAS,GAAG,EACtC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC3B,cAAc,CA2BhB;AAED,wBAAsB,QAAQ,CAAC,IAAI,SAAS,GAAG,EAC9C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED,wBAAgB,YAAY,CAAC,IAAI,SAAS,GAAG,EAC5C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,cAAc,CAQhB;AAED,wBAAsB,cAAc,CAAC,IAAI,SAAS,GAAG,EACpD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
|
package/dist/generate.js
CHANGED
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AnthropicOptions, streamAnthropic } from \"./providers/anthropic.js\";\nimport { type GoogleOptions, streamGoogle } from \"./providers/google.js\";\nimport { type OpenAICompletionsOptions, streamOpenAICompletions } from \"./providers/openai-completions.js\";\nimport { type OpenAIResponsesOptions, streamOpenAIResponses } from \"./providers/openai-responses.js\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tContext,\n\tGenerateStream,\n\tKnownProvider,\n\tModel,\n\tOptionsForApi,\n\tReasoningEffort,\n\tSimpleGenerateOptions,\n} from \"./types.js\";\n\nexport class QueuedGenerateStream implements GenerateStream {\n\tprivate queue: AssistantMessageEvent[] = [];\n\tprivate waiting: ((value: IteratorResult<AssistantMessageEvent>) => void)[] = [];\n\tprivate done = false;\n\tprivate finalMessagePromise: Promise<AssistantMessage>;\n\tprivate resolveFinalMessage!: (message: AssistantMessage) => void;\n\n\tconstructor() {\n\t\tthis.finalMessagePromise = new Promise((resolve) => {\n\t\t\tthis.resolveFinalMessage = resolve;\n\t\t});\n\t}\n\n\tpush(event: AssistantMessageEvent): void {\n\t\tif (this.done) return;\n\n\t\tif (event.type === \"done\") {\n\t\t\tthis.done = true;\n\t\t\tthis.resolveFinalMessage(event.message);\n\t\t}\n\t\tif (event.type === \"error\") {\n\t\t\tthis.done = true;\n\t\t\tthis.resolveFinalMessage(event.partial);\n\t\t}\n\n\t\t// Deliver to waiting consumer or queue it\n\t\tconst waiter = this.waiting.shift();\n\t\tif (waiter) {\n\t\t\twaiter({ value: event, done: false });\n\t\t} else {\n\t\t\tthis.queue.push(event);\n\t\t}\n\t}\n\n\tend(): void {\n\t\tthis.done = true;\n\t\t// Notify all waiting consumers that we're done\n\t\twhile (this.waiting.length > 0) {\n\t\t\tconst waiter = this.waiting.shift()!;\n\t\t\twaiter({ value: undefined as any, done: true });\n\t\t}\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncIterator<AssistantMessageEvent> {\n\t\twhile (true) {\n\t\t\t// If we have queued events, yield them\n\t\t\tif (this.queue.length > 0) {\n\t\t\t\tyield this.queue.shift()!;\n\t\t\t} else if (this.done) {\n\t\t\t\t// No more events and we're done\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// Wait for next event\n\t\t\t\tconst result = await new Promise<IteratorResult<AssistantMessageEvent>>((resolve) =>\n\t\t\t\t\tthis.waiting.push(resolve),\n\t\t\t\t);\n\t\t\t\tif (result.done) return;\n\t\t\t\tyield result.value;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalMessage(): Promise<AssistantMessage> {\n\t\treturn this.finalMessagePromise;\n\t}\n}\n\nconst apiKeys: Map<string, string> = new Map();\n\nexport function setApiKey(provider: KnownProvider, key: string): void;\nexport function setApiKey(provider: string, key: string): void;\nexport function setApiKey(provider: any, key: string): void {\n\tapiKeys.set(provider, key);\n}\n\nexport function getApiKey(provider: KnownProvider): string | undefined;\nexport function getApiKey(provider: string): string | undefined;\nexport function getApiKey(provider: any): string | undefined {\n\t// Check explicit keys first\n\tconst key = apiKeys.get(provider);\n\tif (key) return key;\n\n\t// Fall back to environment variables\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\tanthropic: \"ANTHROPIC_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n\nexport function stream<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: OptionsForApi<TApi>,\n): GenerateStream {\n\tconst apiKey = options?.apiKey || getApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\tconst providerOptions = { ...options, apiKey };\n\n\tconst api: Api = model.api;\n\tswitch (api) {\n\t\tcase \"anthropic-messages\":\n\t\t\treturn streamAnthropic(model as Model<\"anthropic-messages\">, context, providerOptions);\n\n\t\tcase \"openai-completions\":\n\t\t\treturn streamOpenAICompletions(model as Model<\"openai-completions\">, context, providerOptions as any);\n\n\t\tcase \"openai-responses\":\n\t\t\treturn streamOpenAIResponses(model as Model<\"openai-responses\">, context, providerOptions as any);\n\n\t\tcase \"google-generative-ai\":\n\t\t\treturn streamGoogle(model as Model<\"google-generative-ai\">, context, providerOptions);\n\n\t\tdefault: {\n\t\t\t// This should never be reached if all Api cases are handled\n\t\t\tconst _exhaustive: never = api;\n\t\t\tthrow new Error(`Unhandled API: ${_exhaustive}`);\n\t\t}\n\t}\n}\n\nexport async function complete<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: OptionsForApi<TApi>,\n): Promise<AssistantMessage> {\n\tconst s = stream(model, context, options);\n\treturn s.finalMessage();\n}\n\nexport function streamSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleGenerateOptions,\n): GenerateStream {\n\tconst apiKey = options?.apiKey || getApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst providerOptions = mapOptionsForApi(model, options, apiKey);\n\treturn stream(model, context, providerOptions);\n}\n\nexport async function completeSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleGenerateOptions,\n): Promise<AssistantMessage> {\n\tconst s = streamSimple(model, context, options);\n\treturn s.finalMessage();\n}\n\nfunction mapOptionsForApi<TApi extends Api>(\n\tmodel: Model<TApi>,\n\toptions?: SimpleGenerateOptions,\n\tapiKey?: string,\n): OptionsForApi<TApi> {\n\tconst base = {\n\t\ttemperature: options?.temperature,\n\t\tmaxTokens: options?.maxTokens,\n\t\tsignal: options?.signal,\n\t\tapiKey: apiKey || options?.apiKey,\n\t};\n\n\tswitch (model.api) {\n\t\tcase \"anthropic-messages\": {\n\t\t\tif (!options?.reasoning) return base satisfies AnthropicOptions;\n\n\t\t\tconst anthropicBudgets = {\n\t\t\t\tminimal: 1024,\n\t\t\t\tlow: 2048,\n\t\t\t\tmedium: 8192,\n\t\t\t\thigh: Math.min(25000, model.maxTokens - 1000),\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\tthinkingEnabled: true,\n\t\t\t\tthinkingBudgetTokens: anthropicBudgets[options.reasoning],\n\t\t\t} satisfies AnthropicOptions;\n\t\t}\n\n\t\tcase \"openai-completions\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\treasoningEffort: options?.reasoning,\n\t\t\t} satisfies OpenAICompletionsOptions;\n\n\t\tcase \"openai-responses\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\treasoningEffort: options?.reasoning,\n\t\t\t} satisfies OpenAIResponsesOptions;\n\n\t\tcase \"google-generative-ai\": {\n\t\t\tif (!options?.reasoning) return base as any;\n\n\t\t\tconst googleBudget = getGoogleBudget(model as Model<\"google-generative-ai\">, options.reasoning);\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\tthinking: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tbudgetTokens: googleBudget,\n\t\t\t\t},\n\t\t\t} satisfies GoogleOptions;\n\t\t}\n\n\t\tdefault: {\n\t\t\t// Exhaustiveness check\n\t\t\tconst _exhaustive: never = model.api;\n\t\t\tthrow new Error(`Unhandled API in mapOptionsForApi: ${_exhaustive}`);\n\t\t}\n\t}\n}\n\nfunction getGoogleBudget(model: Model<\"google-generative-ai\">, effort: ReasoningEffort): number {\n\t// See https://ai.google.dev/gemini-api/docs/thinking#set-budget\n\tif (model.id.includes(\"2.5-pro\")) {\n\t\tconst budgets = {\n\t\t\tminimal: 128,\n\t\t\tlow: 2048,\n\t\t\tmedium: 8192,\n\t\t\thigh: 32768,\n\t\t};\n\t\treturn budgets[effort];\n\t}\n\n\tif (model.id.includes(\"2.5-flash\")) {\n\t\t// Covers 2.5-flash-lite as well\n\t\tconst budgets = {\n\t\t\tminimal: 128,\n\t\t\tlow: 2048,\n\t\t\tmedium: 8192,\n\t\t\thigh: 24576,\n\t\t};\n\t\treturn budgets[effort];\n\t}\n\n\t// Unknown model - use dynamic\n\treturn -1;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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","sourcesContent":["import { type AnthropicOptions, streamAnthropic } from \"./providers/anthropic.js\";\nimport { type GoogleOptions, streamGoogle } from \"./providers/google.js\";\nimport { type OpenAICompletionsOptions, streamOpenAICompletions } from \"./providers/openai-completions.js\";\nimport { type OpenAIResponsesOptions, streamOpenAIResponses } from \"./providers/openai-responses.js\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tAssistantMessageEvent,\n\tContext,\n\tGenerateStream,\n\tKnownProvider,\n\tModel,\n\tOptionsForApi,\n\tReasoningEffort,\n\tSimpleGenerateOptions,\n} from \"./types.js\";\n\nexport class QueuedGenerateStream implements GenerateStream {\n\tprivate queue: AssistantMessageEvent[] = [];\n\tprivate waiting: ((value: IteratorResult<AssistantMessageEvent>) => void)[] = [];\n\tprivate done = false;\n\tprivate finalMessagePromise: Promise<AssistantMessage>;\n\tprivate resolveFinalMessage!: (message: AssistantMessage) => void;\n\n\tconstructor() {\n\t\tthis.finalMessagePromise = new Promise((resolve) => {\n\t\t\tthis.resolveFinalMessage = resolve;\n\t\t});\n\t}\n\n\tpush(event: AssistantMessageEvent): void {\n\t\tif (this.done) return;\n\n\t\tif (event.type === \"done\") {\n\t\t\tthis.done = true;\n\t\t\tthis.resolveFinalMessage(event.message);\n\t\t}\n\t\tif (event.type === \"error\") {\n\t\t\tthis.done = true;\n\t\t\tthis.resolveFinalMessage(event.partial);\n\t\t}\n\n\t\t// Deliver to waiting consumer or queue it\n\t\tconst waiter = this.waiting.shift();\n\t\tif (waiter) {\n\t\t\twaiter({ value: event, done: false });\n\t\t} else {\n\t\t\tthis.queue.push(event);\n\t\t}\n\t}\n\n\tend(): void {\n\t\tthis.done = true;\n\t\t// Notify all waiting consumers that we're done\n\t\twhile (this.waiting.length > 0) {\n\t\t\tconst waiter = this.waiting.shift()!;\n\t\t\twaiter({ value: undefined as any, done: true });\n\t\t}\n\t}\n\n\tasync *[Symbol.asyncIterator](): AsyncIterator<AssistantMessageEvent> {\n\t\twhile (true) {\n\t\t\t// If we have queued events, yield them\n\t\t\tif (this.queue.length > 0) {\n\t\t\t\tyield this.queue.shift()!;\n\t\t\t} else if (this.done) {\n\t\t\t\t// No more events and we're done\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// Wait for next event\n\t\t\t\tconst result = await new Promise<IteratorResult<AssistantMessageEvent>>((resolve) =>\n\t\t\t\t\tthis.waiting.push(resolve),\n\t\t\t\t);\n\t\t\t\tif (result.done) return;\n\t\t\t\tyield result.value;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalMessage(): Promise<AssistantMessage> {\n\t\treturn this.finalMessagePromise;\n\t}\n}\n\nconst apiKeys: Map<string, string> = new Map();\n\nexport function setApiKey(provider: KnownProvider, key: string): void;\nexport function setApiKey(provider: string, key: string): void;\nexport function setApiKey(provider: any, key: string): void {\n\tapiKeys.set(provider, key);\n}\n\nexport function getApiKey(provider: KnownProvider): string | undefined;\nexport function getApiKey(provider: string): string | undefined;\nexport function getApiKey(provider: any): string | undefined {\n\t// Check explicit keys first\n\tconst key = apiKeys.get(provider);\n\tif (key) return key;\n\n\t// Fall back to environment variables\n\tconst envMap: Record<string, string> = {\n\t\topenai: \"OPENAI_API_KEY\",\n\t\tanthropic: \"ANTHROPIC_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? process.env[envVar] : undefined;\n}\n\nexport function stream<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: OptionsForApi<TApi>,\n): GenerateStream {\n\tconst apiKey = options?.apiKey || getApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\tconst providerOptions = { ...options, apiKey };\n\n\tconst api: Api = model.api;\n\tswitch (api) {\n\t\tcase \"anthropic-messages\":\n\t\t\treturn streamAnthropic(model as Model<\"anthropic-messages\">, context, providerOptions);\n\n\t\tcase \"openai-completions\":\n\t\t\treturn streamOpenAICompletions(model as Model<\"openai-completions\">, context, providerOptions as any);\n\n\t\tcase \"openai-responses\":\n\t\t\treturn streamOpenAIResponses(model as Model<\"openai-responses\">, context, providerOptions as any);\n\n\t\tcase \"google-generative-ai\":\n\t\t\treturn streamGoogle(model as Model<\"google-generative-ai\">, context, providerOptions);\n\n\t\tdefault: {\n\t\t\t// This should never be reached if all Api cases are handled\n\t\t\tconst _exhaustive: never = api;\n\t\t\tthrow new Error(`Unhandled API: ${_exhaustive}`);\n\t\t}\n\t}\n}\n\nexport async function complete<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: OptionsForApi<TApi>,\n): Promise<AssistantMessage> {\n\tconst s = stream(model, context, options);\n\treturn s.finalMessage();\n}\n\nexport function streamSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleGenerateOptions,\n): GenerateStream {\n\tconst apiKey = options?.apiKey || getApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst providerOptions = mapOptionsForApi(model, options, apiKey);\n\treturn stream(model, context, providerOptions);\n}\n\nexport async function completeSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleGenerateOptions,\n): Promise<AssistantMessage> {\n\tconst s = streamSimple(model, context, options);\n\treturn s.finalMessage();\n}\n\nfunction mapOptionsForApi<TApi extends Api>(\n\tmodel: Model<TApi>,\n\toptions?: SimpleGenerateOptions,\n\tapiKey?: string,\n): OptionsForApi<TApi> {\n\tconst base = {\n\t\ttemperature: options?.temperature,\n\t\tmaxTokens: options?.maxTokens,\n\t\tsignal: options?.signal,\n\t\tapiKey: apiKey || options?.apiKey,\n\t};\n\n\tswitch (model.api) {\n\t\tcase \"anthropic-messages\": {\n\t\t\tif (!options?.reasoning) return base satisfies AnthropicOptions;\n\n\t\t\tconst anthropicBudgets = {\n\t\t\t\tminimal: 1024,\n\t\t\t\tlow: 2048,\n\t\t\t\tmedium: 8192,\n\t\t\t\thigh: Math.min(25000, model.maxTokens - 1000),\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\tthinkingEnabled: true,\n\t\t\t\tthinkingBudgetTokens: anthropicBudgets[options.reasoning],\n\t\t\t} satisfies AnthropicOptions;\n\t\t}\n\n\t\tcase \"openai-completions\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\treasoningEffort: options?.reasoning,\n\t\t\t} satisfies OpenAICompletionsOptions;\n\n\t\tcase \"openai-responses\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\treasoningEffort: options?.reasoning,\n\t\t\t} satisfies OpenAIResponsesOptions;\n\n\t\tcase \"google-generative-ai\": {\n\t\t\tif (!options?.reasoning) return base as any;\n\n\t\t\tconst googleBudget = getGoogleBudget(model as Model<\"google-generative-ai\">, options.reasoning);\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\tthinking: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tbudgetTokens: googleBudget,\n\t\t\t\t},\n\t\t\t} satisfies GoogleOptions;\n\t\t}\n\n\t\tdefault: {\n\t\t\t// Exhaustiveness check\n\t\t\tconst _exhaustive: never = model.api;\n\t\t\tthrow new Error(`Unhandled API in mapOptionsForApi: ${_exhaustive}`);\n\t\t}\n\t}\n}\n\nfunction getGoogleBudget(model: Model<\"google-generative-ai\">, effort: ReasoningEffort): number {\n\t// See https://ai.google.dev/gemini-api/docs/thinking#set-budget\n\tif (model.id.includes(\"2.5-pro\")) {\n\t\tconst budgets = {\n\t\t\tminimal: 128,\n\t\t\tlow: 2048,\n\t\t\tmedium: 8192,\n\t\t\thigh: 32768,\n\t\t};\n\t\treturn budgets[effort];\n\t}\n\n\tif (model.id.includes(\"2.5-flash\")) {\n\t\t// Covers 2.5-flash-lite as well\n\t\tconst budgets = {\n\t\t\tminimal: 128,\n\t\t\tlow: 2048,\n\t\t\tmedium: 8192,\n\t\t\thigh: 24576,\n\t\t};\n\t\treturn budgets[effort];\n\t}\n\n\t// Unknown model - use dynamic\n\treturn -1;\n}\n"]}
|
|
@@ -941,6 +941,23 @@ export declare const MODELS: {
|
|
|
941
941
|
contextWindow: number;
|
|
942
942
|
maxTokens: number;
|
|
943
943
|
};
|
|
944
|
+
readonly "moonshotai/kimi-k2-instruct-0905": {
|
|
945
|
+
id: string;
|
|
946
|
+
name: string;
|
|
947
|
+
api: "openai-completions";
|
|
948
|
+
provider: string;
|
|
949
|
+
baseUrl: string;
|
|
950
|
+
reasoning: false;
|
|
951
|
+
input: "text"[];
|
|
952
|
+
cost: {
|
|
953
|
+
input: number;
|
|
954
|
+
output: number;
|
|
955
|
+
cacheRead: number;
|
|
956
|
+
cacheWrite: number;
|
|
957
|
+
};
|
|
958
|
+
contextWindow: number;
|
|
959
|
+
maxTokens: number;
|
|
960
|
+
};
|
|
944
961
|
readonly "moonshotai/kimi-k2-instruct": {
|
|
945
962
|
id: string;
|
|
946
963
|
name: string;
|
|
@@ -1320,7 +1337,145 @@ export declare const MODELS: {
|
|
|
1320
1337
|
maxTokens: number;
|
|
1321
1338
|
};
|
|
1322
1339
|
};
|
|
1340
|
+
readonly zai: {
|
|
1341
|
+
readonly "glm-4.5-air": {
|
|
1342
|
+
id: string;
|
|
1343
|
+
name: string;
|
|
1344
|
+
api: "anthropic-messages";
|
|
1345
|
+
provider: string;
|
|
1346
|
+
baseUrl: string;
|
|
1347
|
+
reasoning: true;
|
|
1348
|
+
input: "text"[];
|
|
1349
|
+
cost: {
|
|
1350
|
+
input: number;
|
|
1351
|
+
output: number;
|
|
1352
|
+
cacheRead: number;
|
|
1353
|
+
cacheWrite: number;
|
|
1354
|
+
};
|
|
1355
|
+
contextWindow: number;
|
|
1356
|
+
maxTokens: number;
|
|
1357
|
+
};
|
|
1358
|
+
readonly "glm-4.5v": {
|
|
1359
|
+
id: string;
|
|
1360
|
+
name: string;
|
|
1361
|
+
api: "anthropic-messages";
|
|
1362
|
+
provider: string;
|
|
1363
|
+
baseUrl: string;
|
|
1364
|
+
reasoning: true;
|
|
1365
|
+
input: ("text" | "image")[];
|
|
1366
|
+
cost: {
|
|
1367
|
+
input: number;
|
|
1368
|
+
output: number;
|
|
1369
|
+
cacheRead: number;
|
|
1370
|
+
cacheWrite: number;
|
|
1371
|
+
};
|
|
1372
|
+
contextWindow: number;
|
|
1373
|
+
maxTokens: number;
|
|
1374
|
+
};
|
|
1375
|
+
readonly "glm-4.5-flash": {
|
|
1376
|
+
id: string;
|
|
1377
|
+
name: string;
|
|
1378
|
+
api: "anthropic-messages";
|
|
1379
|
+
provider: string;
|
|
1380
|
+
baseUrl: string;
|
|
1381
|
+
reasoning: true;
|
|
1382
|
+
input: "text"[];
|
|
1383
|
+
cost: {
|
|
1384
|
+
input: number;
|
|
1385
|
+
output: number;
|
|
1386
|
+
cacheRead: number;
|
|
1387
|
+
cacheWrite: number;
|
|
1388
|
+
};
|
|
1389
|
+
contextWindow: number;
|
|
1390
|
+
maxTokens: number;
|
|
1391
|
+
};
|
|
1392
|
+
readonly "glm-4.5": {
|
|
1393
|
+
id: string;
|
|
1394
|
+
name: string;
|
|
1395
|
+
api: "anthropic-messages";
|
|
1396
|
+
provider: string;
|
|
1397
|
+
baseUrl: string;
|
|
1398
|
+
reasoning: true;
|
|
1399
|
+
input: "text"[];
|
|
1400
|
+
cost: {
|
|
1401
|
+
input: number;
|
|
1402
|
+
output: number;
|
|
1403
|
+
cacheRead: number;
|
|
1404
|
+
cacheWrite: number;
|
|
1405
|
+
};
|
|
1406
|
+
contextWindow: number;
|
|
1407
|
+
maxTokens: number;
|
|
1408
|
+
};
|
|
1409
|
+
};
|
|
1323
1410
|
readonly openrouter: {
|
|
1411
|
+
readonly "openrouter/sonoma-dusk-alpha": {
|
|
1412
|
+
id: string;
|
|
1413
|
+
name: string;
|
|
1414
|
+
api: "openai-completions";
|
|
1415
|
+
provider: string;
|
|
1416
|
+
baseUrl: string;
|
|
1417
|
+
reasoning: false;
|
|
1418
|
+
input: ("text" | "image")[];
|
|
1419
|
+
cost: {
|
|
1420
|
+
input: number;
|
|
1421
|
+
output: number;
|
|
1422
|
+
cacheRead: number;
|
|
1423
|
+
cacheWrite: number;
|
|
1424
|
+
};
|
|
1425
|
+
contextWindow: number;
|
|
1426
|
+
maxTokens: number;
|
|
1427
|
+
};
|
|
1428
|
+
readonly "openrouter/sonoma-sky-alpha": {
|
|
1429
|
+
id: string;
|
|
1430
|
+
name: string;
|
|
1431
|
+
api: "openai-completions";
|
|
1432
|
+
provider: string;
|
|
1433
|
+
baseUrl: string;
|
|
1434
|
+
reasoning: true;
|
|
1435
|
+
input: ("text" | "image")[];
|
|
1436
|
+
cost: {
|
|
1437
|
+
input: number;
|
|
1438
|
+
output: number;
|
|
1439
|
+
cacheRead: number;
|
|
1440
|
+
cacheWrite: number;
|
|
1441
|
+
};
|
|
1442
|
+
contextWindow: number;
|
|
1443
|
+
maxTokens: number;
|
|
1444
|
+
};
|
|
1445
|
+
readonly "qwen/qwen3-max": {
|
|
1446
|
+
id: string;
|
|
1447
|
+
name: string;
|
|
1448
|
+
api: "openai-completions";
|
|
1449
|
+
provider: string;
|
|
1450
|
+
baseUrl: string;
|
|
1451
|
+
reasoning: false;
|
|
1452
|
+
input: "text"[];
|
|
1453
|
+
cost: {
|
|
1454
|
+
input: number;
|
|
1455
|
+
output: number;
|
|
1456
|
+
cacheRead: number;
|
|
1457
|
+
cacheWrite: number;
|
|
1458
|
+
};
|
|
1459
|
+
contextWindow: number;
|
|
1460
|
+
maxTokens: number;
|
|
1461
|
+
};
|
|
1462
|
+
readonly "moonshotai/kimi-k2-0905": {
|
|
1463
|
+
id: string;
|
|
1464
|
+
name: string;
|
|
1465
|
+
api: "openai-completions";
|
|
1466
|
+
provider: string;
|
|
1467
|
+
baseUrl: string;
|
|
1468
|
+
reasoning: false;
|
|
1469
|
+
input: "text"[];
|
|
1470
|
+
cost: {
|
|
1471
|
+
input: number;
|
|
1472
|
+
output: number;
|
|
1473
|
+
cacheRead: number;
|
|
1474
|
+
cacheWrite: number;
|
|
1475
|
+
};
|
|
1476
|
+
contextWindow: number;
|
|
1477
|
+
maxTokens: number;
|
|
1478
|
+
};
|
|
1324
1479
|
readonly "deepcogito/cogito-v2-preview-llama-109b-moe": {
|
|
1325
1480
|
id: string;
|
|
1326
1481
|
name: string;
|
|
@@ -1338,6 +1493,23 @@ export declare const MODELS: {
|
|
|
1338
1493
|
contextWindow: number;
|
|
1339
1494
|
maxTokens: number;
|
|
1340
1495
|
};
|
|
1496
|
+
readonly "stepfun-ai/step3": {
|
|
1497
|
+
id: string;
|
|
1498
|
+
name: string;
|
|
1499
|
+
api: "openai-completions";
|
|
1500
|
+
provider: string;
|
|
1501
|
+
baseUrl: string;
|
|
1502
|
+
reasoning: true;
|
|
1503
|
+
input: ("text" | "image")[];
|
|
1504
|
+
cost: {
|
|
1505
|
+
input: number;
|
|
1506
|
+
output: number;
|
|
1507
|
+
cacheRead: number;
|
|
1508
|
+
cacheWrite: number;
|
|
1509
|
+
};
|
|
1510
|
+
contextWindow: number;
|
|
1511
|
+
maxTokens: number;
|
|
1512
|
+
};
|
|
1341
1513
|
readonly "qwen/qwen3-30b-a3b-thinking-2507": {
|
|
1342
1514
|
id: string;
|
|
1343
1515
|
name: string;
|
|
@@ -2732,7 +2904,7 @@ export declare const MODELS: {
|
|
|
2732
2904
|
contextWindow: number;
|
|
2733
2905
|
maxTokens: number;
|
|
2734
2906
|
};
|
|
2735
|
-
readonly "meta-llama/llama-3.1-
|
|
2907
|
+
readonly "meta-llama/llama-3.1-70b-instruct": {
|
|
2736
2908
|
id: string;
|
|
2737
2909
|
name: string;
|
|
2738
2910
|
api: "openai-completions";
|
|
@@ -2749,7 +2921,7 @@ export declare const MODELS: {
|
|
|
2749
2921
|
contextWindow: number;
|
|
2750
2922
|
maxTokens: number;
|
|
2751
2923
|
};
|
|
2752
|
-
readonly "meta-llama/llama-3.1-
|
|
2924
|
+
readonly "meta-llama/llama-3.1-8b-instruct": {
|
|
2753
2925
|
id: string;
|
|
2754
2926
|
name: string;
|
|
2755
2927
|
api: "openai-completions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.generated.d.ts","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"models.generated.d.ts","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+qGT,CAAC"}
|
package/dist/models.generated.js
CHANGED
|
@@ -943,6 +943,23 @@ export const MODELS = {
|
|
|
943
943
|
contextWindow: 131072,
|
|
944
944
|
maxTokens: 16384,
|
|
945
945
|
},
|
|
946
|
+
"moonshotai/kimi-k2-instruct-0905": {
|
|
947
|
+
id: "moonshotai/kimi-k2-instruct-0905",
|
|
948
|
+
name: "Kimi K2 Instruct 0905",
|
|
949
|
+
api: "openai-completions",
|
|
950
|
+
provider: "groq",
|
|
951
|
+
baseUrl: "https://api.groq.com/openai/v1",
|
|
952
|
+
reasoning: false,
|
|
953
|
+
input: ["text"],
|
|
954
|
+
cost: {
|
|
955
|
+
input: 1,
|
|
956
|
+
output: 3,
|
|
957
|
+
cacheRead: 0,
|
|
958
|
+
cacheWrite: 0,
|
|
959
|
+
},
|
|
960
|
+
contextWindow: 262144,
|
|
961
|
+
maxTokens: 16384,
|
|
962
|
+
},
|
|
946
963
|
"moonshotai/kimi-k2-instruct": {
|
|
947
964
|
id: "moonshotai/kimi-k2-instruct",
|
|
948
965
|
name: "Kimi K2 Instruct",
|
|
@@ -1322,7 +1339,145 @@ export const MODELS = {
|
|
|
1322
1339
|
maxTokens: 8192,
|
|
1323
1340
|
},
|
|
1324
1341
|
},
|
|
1342
|
+
zai: {
|
|
1343
|
+
"glm-4.5-air": {
|
|
1344
|
+
id: "glm-4.5-air",
|
|
1345
|
+
name: "GLM-4.5-Air",
|
|
1346
|
+
api: "anthropic-messages",
|
|
1347
|
+
provider: "zai",
|
|
1348
|
+
baseUrl: "https://api.z.ai/api/anthropic",
|
|
1349
|
+
reasoning: true,
|
|
1350
|
+
input: ["text"],
|
|
1351
|
+
cost: {
|
|
1352
|
+
input: 0.2,
|
|
1353
|
+
output: 1.1,
|
|
1354
|
+
cacheRead: 0.03,
|
|
1355
|
+
cacheWrite: 0,
|
|
1356
|
+
},
|
|
1357
|
+
contextWindow: 131072,
|
|
1358
|
+
maxTokens: 98304,
|
|
1359
|
+
},
|
|
1360
|
+
"glm-4.5v": {
|
|
1361
|
+
id: "glm-4.5v",
|
|
1362
|
+
name: "GLM 4.5V",
|
|
1363
|
+
api: "anthropic-messages",
|
|
1364
|
+
provider: "zai",
|
|
1365
|
+
baseUrl: "https://api.z.ai/api/anthropic",
|
|
1366
|
+
reasoning: true,
|
|
1367
|
+
input: ["text", "image"],
|
|
1368
|
+
cost: {
|
|
1369
|
+
input: 0.6,
|
|
1370
|
+
output: 1.8,
|
|
1371
|
+
cacheRead: 0,
|
|
1372
|
+
cacheWrite: 0,
|
|
1373
|
+
},
|
|
1374
|
+
contextWindow: 64000,
|
|
1375
|
+
maxTokens: 16384,
|
|
1376
|
+
},
|
|
1377
|
+
"glm-4.5-flash": {
|
|
1378
|
+
id: "glm-4.5-flash",
|
|
1379
|
+
name: "GLM-4.5-Flash",
|
|
1380
|
+
api: "anthropic-messages",
|
|
1381
|
+
provider: "zai",
|
|
1382
|
+
baseUrl: "https://api.z.ai/api/anthropic",
|
|
1383
|
+
reasoning: true,
|
|
1384
|
+
input: ["text"],
|
|
1385
|
+
cost: {
|
|
1386
|
+
input: 0,
|
|
1387
|
+
output: 0,
|
|
1388
|
+
cacheRead: 0,
|
|
1389
|
+
cacheWrite: 0,
|
|
1390
|
+
},
|
|
1391
|
+
contextWindow: 131072,
|
|
1392
|
+
maxTokens: 98304,
|
|
1393
|
+
},
|
|
1394
|
+
"glm-4.5": {
|
|
1395
|
+
id: "glm-4.5",
|
|
1396
|
+
name: "GLM-4.5",
|
|
1397
|
+
api: "anthropic-messages",
|
|
1398
|
+
provider: "zai",
|
|
1399
|
+
baseUrl: "https://api.z.ai/api/anthropic",
|
|
1400
|
+
reasoning: true,
|
|
1401
|
+
input: ["text"],
|
|
1402
|
+
cost: {
|
|
1403
|
+
input: 0.6,
|
|
1404
|
+
output: 2.2,
|
|
1405
|
+
cacheRead: 0.11,
|
|
1406
|
+
cacheWrite: 0,
|
|
1407
|
+
},
|
|
1408
|
+
contextWindow: 131072,
|
|
1409
|
+
maxTokens: 98304,
|
|
1410
|
+
},
|
|
1411
|
+
},
|
|
1325
1412
|
openrouter: {
|
|
1413
|
+
"openrouter/sonoma-dusk-alpha": {
|
|
1414
|
+
id: "openrouter/sonoma-dusk-alpha",
|
|
1415
|
+
name: "Sonoma Dusk Alpha",
|
|
1416
|
+
api: "openai-completions",
|
|
1417
|
+
provider: "openrouter",
|
|
1418
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
1419
|
+
reasoning: false,
|
|
1420
|
+
input: ["text", "image"],
|
|
1421
|
+
cost: {
|
|
1422
|
+
input: 0,
|
|
1423
|
+
output: 0,
|
|
1424
|
+
cacheRead: 0,
|
|
1425
|
+
cacheWrite: 0,
|
|
1426
|
+
},
|
|
1427
|
+
contextWindow: 2000000,
|
|
1428
|
+
maxTokens: 4096,
|
|
1429
|
+
},
|
|
1430
|
+
"openrouter/sonoma-sky-alpha": {
|
|
1431
|
+
id: "openrouter/sonoma-sky-alpha",
|
|
1432
|
+
name: "Sonoma Sky Alpha",
|
|
1433
|
+
api: "openai-completions",
|
|
1434
|
+
provider: "openrouter",
|
|
1435
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
1436
|
+
reasoning: true,
|
|
1437
|
+
input: ["text", "image"],
|
|
1438
|
+
cost: {
|
|
1439
|
+
input: 0,
|
|
1440
|
+
output: 0,
|
|
1441
|
+
cacheRead: 0,
|
|
1442
|
+
cacheWrite: 0,
|
|
1443
|
+
},
|
|
1444
|
+
contextWindow: 2000000,
|
|
1445
|
+
maxTokens: 4096,
|
|
1446
|
+
},
|
|
1447
|
+
"qwen/qwen3-max": {
|
|
1448
|
+
id: "qwen/qwen3-max",
|
|
1449
|
+
name: "Qwen: Qwen3 Max",
|
|
1450
|
+
api: "openai-completions",
|
|
1451
|
+
provider: "openrouter",
|
|
1452
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
1453
|
+
reasoning: false,
|
|
1454
|
+
input: ["text"],
|
|
1455
|
+
cost: {
|
|
1456
|
+
input: 1.2,
|
|
1457
|
+
output: 6,
|
|
1458
|
+
cacheRead: 0.24,
|
|
1459
|
+
cacheWrite: 0,
|
|
1460
|
+
},
|
|
1461
|
+
contextWindow: 256000,
|
|
1462
|
+
maxTokens: 32768,
|
|
1463
|
+
},
|
|
1464
|
+
"moonshotai/kimi-k2-0905": {
|
|
1465
|
+
id: "moonshotai/kimi-k2-0905",
|
|
1466
|
+
name: "MoonshotAI: Kimi K2 0905",
|
|
1467
|
+
api: "openai-completions",
|
|
1468
|
+
provider: "openrouter",
|
|
1469
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
1470
|
+
reasoning: false,
|
|
1471
|
+
input: ["text"],
|
|
1472
|
+
cost: {
|
|
1473
|
+
input: 0.2962,
|
|
1474
|
+
output: 1.1852999999999998,
|
|
1475
|
+
cacheRead: 0,
|
|
1476
|
+
cacheWrite: 0,
|
|
1477
|
+
},
|
|
1478
|
+
contextWindow: 262144,
|
|
1479
|
+
maxTokens: 4096,
|
|
1480
|
+
},
|
|
1326
1481
|
"deepcogito/cogito-v2-preview-llama-109b-moe": {
|
|
1327
1482
|
id: "deepcogito/cogito-v2-preview-llama-109b-moe",
|
|
1328
1483
|
name: "Cogito V2 Preview Llama 109B",
|
|
@@ -1340,6 +1495,23 @@ export const MODELS = {
|
|
|
1340
1495
|
contextWindow: 32767,
|
|
1341
1496
|
maxTokens: 4096,
|
|
1342
1497
|
},
|
|
1498
|
+
"stepfun-ai/step3": {
|
|
1499
|
+
id: "stepfun-ai/step3",
|
|
1500
|
+
name: "StepFun: Step3",
|
|
1501
|
+
api: "openai-completions",
|
|
1502
|
+
provider: "openrouter",
|
|
1503
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
1504
|
+
reasoning: true,
|
|
1505
|
+
input: ["text", "image"],
|
|
1506
|
+
cost: {
|
|
1507
|
+
input: 0.5700000000000001,
|
|
1508
|
+
output: 1.42,
|
|
1509
|
+
cacheRead: 0,
|
|
1510
|
+
cacheWrite: 0,
|
|
1511
|
+
},
|
|
1512
|
+
contextWindow: 65536,
|
|
1513
|
+
maxTokens: 65536,
|
|
1514
|
+
},
|
|
1343
1515
|
"qwen/qwen3-30b-a3b-thinking-2507": {
|
|
1344
1516
|
id: "qwen/qwen3-30b-a3b-thinking-2507",
|
|
1345
1517
|
name: "Qwen: Qwen3 30B A3B Thinking 2507",
|
|
@@ -1682,7 +1854,7 @@ export const MODELS = {
|
|
|
1682
1854
|
},
|
|
1683
1855
|
"moonshotai/kimi-k2:free": {
|
|
1684
1856
|
id: "moonshotai/kimi-k2:free",
|
|
1685
|
-
name: "MoonshotAI: Kimi K2 (free)",
|
|
1857
|
+
name: "MoonshotAI: Kimi K2 0711 (free)",
|
|
1686
1858
|
api: "openai-completions",
|
|
1687
1859
|
provider: "openrouter",
|
|
1688
1860
|
baseUrl: "https://openrouter.ai/api/v1",
|
|
@@ -1699,7 +1871,7 @@ export const MODELS = {
|
|
|
1699
1871
|
},
|
|
1700
1872
|
"moonshotai/kimi-k2": {
|
|
1701
1873
|
id: "moonshotai/kimi-k2",
|
|
1702
|
-
name: "MoonshotAI: Kimi K2",
|
|
1874
|
+
name: "MoonshotAI: Kimi K2 0711",
|
|
1703
1875
|
api: "openai-completions",
|
|
1704
1876
|
provider: "openrouter",
|
|
1705
1877
|
baseUrl: "https://openrouter.ai/api/v1",
|
|
@@ -2233,12 +2405,12 @@ export const MODELS = {
|
|
|
2233
2405
|
reasoning: true,
|
|
2234
2406
|
input: ["text"],
|
|
2235
2407
|
cost: {
|
|
2236
|
-
input: 0.
|
|
2237
|
-
output: 0.
|
|
2408
|
+
input: 0.15,
|
|
2409
|
+
output: 0.39999999999999997,
|
|
2238
2410
|
cacheRead: 0,
|
|
2239
2411
|
cacheWrite: 0,
|
|
2240
2412
|
},
|
|
2241
|
-
contextWindow:
|
|
2413
|
+
contextWindow: 32768,
|
|
2242
2414
|
maxTokens: 4096,
|
|
2243
2415
|
},
|
|
2244
2416
|
"mistralai/mistral-saba": {
|
|
@@ -2734,34 +2906,34 @@ export const MODELS = {
|
|
|
2734
2906
|
contextWindow: 32768,
|
|
2735
2907
|
maxTokens: 16384,
|
|
2736
2908
|
},
|
|
2737
|
-
"meta-llama/llama-3.1-
|
|
2738
|
-
id: "meta-llama/llama-3.1-
|
|
2739
|
-
name: "Meta: Llama 3.1
|
|
2909
|
+
"meta-llama/llama-3.1-70b-instruct": {
|
|
2910
|
+
id: "meta-llama/llama-3.1-70b-instruct",
|
|
2911
|
+
name: "Meta: Llama 3.1 70B Instruct",
|
|
2740
2912
|
api: "openai-completions",
|
|
2741
2913
|
provider: "openrouter",
|
|
2742
2914
|
baseUrl: "https://openrouter.ai/api/v1",
|
|
2743
2915
|
reasoning: false,
|
|
2744
2916
|
input: ["text"],
|
|
2745
2917
|
cost: {
|
|
2746
|
-
input: 0.
|
|
2747
|
-
output: 0.
|
|
2918
|
+
input: 0.09999999999999999,
|
|
2919
|
+
output: 0.28,
|
|
2748
2920
|
cacheRead: 0,
|
|
2749
2921
|
cacheWrite: 0,
|
|
2750
2922
|
},
|
|
2751
2923
|
contextWindow: 131072,
|
|
2752
2924
|
maxTokens: 16384,
|
|
2753
2925
|
},
|
|
2754
|
-
"meta-llama/llama-3.1-
|
|
2755
|
-
id: "meta-llama/llama-3.1-
|
|
2756
|
-
name: "Meta: Llama 3.1
|
|
2926
|
+
"meta-llama/llama-3.1-8b-instruct": {
|
|
2927
|
+
id: "meta-llama/llama-3.1-8b-instruct",
|
|
2928
|
+
name: "Meta: Llama 3.1 8B Instruct",
|
|
2757
2929
|
api: "openai-completions",
|
|
2758
2930
|
provider: "openrouter",
|
|
2759
2931
|
baseUrl: "https://openrouter.ai/api/v1",
|
|
2760
2932
|
reasoning: false,
|
|
2761
2933
|
input: ["text"],
|
|
2762
2934
|
cost: {
|
|
2763
|
-
input: 0.
|
|
2764
|
-
output: 0.
|
|
2935
|
+
input: 0.015,
|
|
2936
|
+
output: 0.02,
|
|
2765
2937
|
cacheRead: 0,
|
|
2766
2938
|
cacheWrite: 0,
|
|
2767
2939
|
},
|