From 67958c9cf975f320253df206388ea1878bdc78f8 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:06:56 +0200 Subject: [PATCH 01/20] feat: add script to fetch models from OpenRouter API --- .../ai-openrouter/src/model-meta.ts | 25283 ++++++---------- scripts/fetch-openrouter-models.ts | 276 + scripts/openrouter.models.ts | 2560 +- 3 files changed, 11305 insertions(+), 16814 deletions(-) create mode 100644 scripts/fetch-openrouter-models.ts diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index 5be27ccc..b490b244 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,16552 +1,8722 @@ -import type { - OpenRouterBaseOptions, - OpenRouterCommonOptions, -} from './text/text-provider-options' -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_1_32B_THINK = { - id: 'allenai/olmo-3.1-32b-think', - name: 'AllenAI: Olmo 3.1 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, -} as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_5_SONNET = { - id: 'anthropic/claude-3.5-sonnet', - name: 'Anthropic: Claude 3.5 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 6, - cached: 8.1, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'verbosity', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI_FREE = { - id: 'arcee-ai/trinity-mini:free', - name: 'Arcee AI: Trinity Mini (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, -} as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const KWAIPILOT_KAT_CODER_PRO = { - id: 'kwaipilot/kat-coder-pro', - name: 'Kwaipilot: KAT-Coder-Pro V1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.207, - cached: 0.0414, - }, - output: { - normal: 0.828, - }, - }, - image: 0, - }, -} as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_2_6B = { - id: 'liquid/lfm-2.2-6b', - name: 'LiquidAI: LFM2-2.6B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.01, - cached: 0, - }, - output: { - normal: 0.02, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM2_8B_A1B = { - id: 'liquid/lfm2-8b-a1b', - name: 'LiquidAI: LFM2-8B-A1B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.01, - cached: 0, - }, - output: { - normal: 0.02, - }, - }, - image: 0, - }, -} as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0.0290000007, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.19, - cached: 0.095, - }, - output: { - normal: 1.15, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.15, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.47, - cached: 0.141, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0.21, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, -} as const -const REKA_REKA_EDGE = { - id: 'reka/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.02, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH_FREE = { - id: 'stepfun/step-3.5-flash:free', - name: 'StepFun: Step 3.5 Flash (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, -} as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20_BETA = { - id: 'x-ai/grok-4.20-beta', - name: 'xAI: Grok 4.20 Beta', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20_MULTI_AGENT_BETA = { - id: 'x-ai/grok-4.20-multi-agent-beta', - name: 'xAI: Grok 4.20 Multi-Agent Beta', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const +import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' + +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, + } as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_MINI_FREE = { + id: 'arcee-ai/trinity-mini:free', + name: 'Arcee AI: Trinity Mini (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, + } as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0.0290000007, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, + } as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const STEPFUN_STEP_3_5_FLASH_FREE = { + id: 'stepfun/step-3.5-flash:free', + name: 'StepFun: Step 3.5 Flash (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'topP'], + }, + context_window: 256000, + max_output_tokens: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, + } as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & - Pick - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & - OpenRouterBaseOptions - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_3_1_32B_THINK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_5_SONNET.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' - > - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [KWAIPILOT_KAT_CODER_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_2_6B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM2_8B_A1B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MANCER_WEAVER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - > - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & - Pick - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & - Pick - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & - Pick - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' - > - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_O1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - > - [OPENAI_O3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topP' - > - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [REKA_REKA_EDGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & - Pick - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'topP' - > - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - > - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [X_AI_GROK_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20_MULTI_AGENT_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' - > - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > + +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; + [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & Pick; + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; } -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_1_32B_THINK.id]: ReadonlyArray<'text'> - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' - > - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_5_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' | 'audio' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< - 'audio' | 'document' | 'image' | 'text' | 'video' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< - 'text' | 'audio' | 'image' | 'video' | 'document' - > - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> - [KWAIPILOT_KAT_CODER_PRO.id]: ReadonlyArray<'text'> - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_2_6B.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> - [LIQUID_LFM2_8B_A1B.id]: ReadonlyArray<'text'> - [MANCER_WEAVER.id]: ReadonlyArray<'text'> - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< - 'image' | 'text' | 'video' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< - 'document' | 'image' | 'text' - > - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENROUTER_AUTO.id]: ReadonlyArray< - 'text' | 'image' | 'audio' | 'document' | 'video' - > - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> - [REKA_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'> - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> - [X_AI_GROK_3.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text'> - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image'> - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image'> - [X_AI_GROK_4_20_BETA.id]: ReadonlyArray<'text' | 'image'> - [X_AI_GROK_4_20_MULTI_AGENT_BETA.id]: ReadonlyArray<'text' | 'image'> - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> + +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; + [MANCER_WEAVER.id]: ReadonlyArray<'text'>; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; + [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'>; + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; } export const OPENROUTER_CHAT_MODELS = [ @@ -16560,7 +8730,6 @@ export const OPENROUTER_CHAT_MODELS = [ ALLENAI_OLMO_2_0325_32B_INSTRUCT.id, ALLENAI_OLMO_3_32B_THINK.id, ALLENAI_OLMO_3_1_32B_INSTRUCT.id, - ALLENAI_OLMO_3_1_32B_THINK.id, ALPINDALE_GOLIATH_120B.id, AMAZON_NOVA_2_LITE_V1.id, AMAZON_NOVA_LITE_V1.id, @@ -16570,7 +8739,6 @@ export const OPENROUTER_CHAT_MODELS = [ ANTHRACITE_ORG_MAGNUM_V4_72B.id, ANTHROPIC_CLAUDE_3_HAIKU.id, ANTHROPIC_CLAUDE_3_5_HAIKU.id, - ANTHROPIC_CLAUDE_3_5_SONNET.id, ANTHROPIC_CLAUDE_3_7_SONNET.id, ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id, ANTHROPIC_CLAUDE_HAIKU_4_5.id, @@ -16578,6 +8746,7 @@ export const OPENROUTER_CHAT_MODELS = [ ANTHROPIC_CLAUDE_OPUS_4_1.id, ANTHROPIC_CLAUDE_OPUS_4_5.id, ANTHROPIC_CLAUDE_OPUS_4_6.id, + ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id, ANTHROPIC_CLAUDE_SONNET_4.id, ANTHROPIC_CLAUDE_SONNET_4_5.id, ANTHROPIC_CLAUDE_SONNET_4_6.id, @@ -16585,6 +8754,7 @@ export const OPENROUTER_CHAT_MODELS = [ ARCEE_AI_MAESTRO_REASONING.id, ARCEE_AI_SPOTLIGHT.id, ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id, + ARCEE_AI_TRINITY_LARGE_THINKING.id, ARCEE_AI_TRINITY_MINI.id, ARCEE_AI_TRINITY_MINI_FREE.id, ARCEE_AI_VIRTUOSO_LARGE.id, @@ -16643,6 +8813,12 @@ export const OPENROUTER_CHAT_MODELS = [ GOOGLE_GEMMA_3N_E2B_IT_FREE.id, GOOGLE_GEMMA_3N_E4B_IT.id, GOOGLE_GEMMA_3N_E4B_IT_FREE.id, + GOOGLE_GEMMA_4_26B_A4B_IT.id, + GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id, + GOOGLE_GEMMA_4_31B_IT.id, + GOOGLE_GEMMA_4_31B_IT_FREE.id, + GOOGLE_LYRIA_3_CLIP_PREVIEW.id, + GOOGLE_LYRIA_3_PRO_PREVIEW.id, GRYPHE_MYTHOMAX_L2_13B.id, IBM_GRANITE_GRANITE_4_0_H_MICRO.id, INCEPTION_MERCURY.id, @@ -16650,13 +8826,10 @@ export const OPENROUTER_CHAT_MODELS = [ INCEPTION_MERCURY_CODER.id, INFLECTION_INFLECTION_3_PI.id, INFLECTION_INFLECTION_3_PRODUCTIVITY.id, - KWAIPILOT_KAT_CODER_PRO.id, KWAIPILOT_KAT_CODER_PRO_V2.id, LIQUID_LFM_2_24B_A2B.id, - LIQUID_LFM_2_2_6B.id, LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id, LIQUID_LFM_2_5_1_2B_THINKING_FREE.id, - LIQUID_LFM2_8B_A1B.id, MANCER_WEAVER.id, MEITUAN_LONGCAT_FLASH_CHAT.id, META_LLAMA_LLAMA_3_70B_INSTRUCT.id, @@ -16850,8 +9023,10 @@ export const OPENROUTER_CHAT_MODELS = [ QWEN_QWEN3_5_9B.id, QWEN_QWEN3_5_FLASH_02_23.id, QWEN_QWEN3_5_PLUS_02_15.id, + QWEN_QWEN3_6_PLUS.id, QWEN_QWQ_32B.id, - REKA_REKA_EDGE.id, + REKAAI_REKA_EDGE.id, + REKAAI_REKA_FLASH_3.id, RELACE_RELACE_APPLY_3.id, RELACE_RELACE_SEARCH.id, SAO10K_L3_EURYALE_70B.id, @@ -16878,8 +9053,8 @@ export const OPENROUTER_CHAT_MODELS = [ X_AI_GROK_4.id, X_AI_GROK_4_FAST.id, X_AI_GROK_4_1_FAST.id, - X_AI_GROK_4_20_BETA.id, - X_AI_GROK_4_20_MULTI_AGENT_BETA.id, + X_AI_GROK_4_20.id, + X_AI_GROK_4_20_MULTI_AGENT.id, X_AI_GROK_CODE_FAST_1.id, XIAOMI_MIMO_V2_FLASH.id, XIAOMI_MIMO_V2_OMNI.id, @@ -16895,6 +9070,8 @@ export const OPENROUTER_CHAT_MODELS = [ Z_AI_GLM_4_7_FLASH.id, Z_AI_GLM_5.id, Z_AI_GLM_5_TURBO.id, + Z_AI_GLM_5_1.id, + Z_AI_GLM_5V_TURBO.id, ] as const export const OPENROUTER_IMAGE_MODELS = [ diff --git a/scripts/fetch-openrouter-models.ts b/scripts/fetch-openrouter-models.ts new file mode 100644 index 00000000..5baaa794 --- /dev/null +++ b/scripts/fetch-openrouter-models.ts @@ -0,0 +1,276 @@ +/** + * Fetches models from the OpenRouter API and writes them to openrouter.models.ts + * + * Usage: + * pnpm tsx scripts/fetch-openrouter-models.ts + * + * This replaces the manual process of updating openrouter.models.ts. + * The output file preserves the existing interface definition and exported + * `models` array format so that convert-openrouter-models.ts continues to work. + */ + +import { writeFile } from 'node:fs/promises' +import { resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const OUTPUT_PATH = resolve(__dirname, 'openrouter.models.ts') +const API_URL = 'https://openrouter.ai/api/v1/models' + +interface ApiModel { + id: string + canonical_slug?: string + hugging_face_id?: string | null + name: string + created?: number + description?: string + context_length: number + architecture: { + modality: string + input_modalities: Array + output_modalities: Array + tokenizer?: string + instruct_type?: string | null + } | null + pricing: { + prompt: string + completion: string + audio?: string + request?: string + image?: string + web_search?: string + internal_reasoning?: string + input_cache_read?: string + input_cache_write?: string + } | null + top_provider: { + context_length: number + max_completion_tokens: number | null + is_moderated: boolean + } | null + per_request_limits?: Record | null + supported_parameters?: Array +} + +function isValidModel(model: ApiModel): boolean { + return ( + typeof model.id === 'string' && + typeof model.name === 'string' && + typeof model.context_length === 'number' && + model.architecture != null && + model.pricing != null && + model.top_provider != null + ) +} + +function serializeModel(model: ApiModel, isLast: boolean): string { + const lines: Array = [] + lines.push(' {') + lines.push(` id: '${escapeString(model.id)}',`) + + if (model.canonical_slug !== undefined) { + lines.push(` canonical_slug: '${escapeString(model.canonical_slug)}',`) + } + if (model.hugging_face_id !== undefined) { + lines.push( + model.hugging_face_id === null + ? ' hugging_face_id: null,' + : ` hugging_face_id: '${escapeString(model.hugging_face_id)}',`, + ) + } + + lines.push(` name: '${escapeString(model.name)}',`) + + if (model.created !== undefined) { + lines.push(` created: ${model.created},`) + } + if (model.description !== undefined) { + lines.push(` description: '${escapeString(model.description)}',`) + } + + lines.push(` context_length: ${model.context_length},`) + + // architecture + const arch = model.architecture! + lines.push(' architecture: {') + lines.push(` modality: '${escapeString(arch.modality)}',`) + lines.push( + ` input_modalities: [${arch.input_modalities.map((m) => `'${escapeString(m)}'`).join(', ')}],`, + ) + lines.push( + ` output_modalities: [${arch.output_modalities.map((m) => `'${escapeString(m)}'`).join(', ')}],`, + ) + if (arch.tokenizer !== undefined) { + lines.push(` tokenizer: '${escapeString(arch.tokenizer)}',`) + } + if (arch.instruct_type !== undefined) { + lines.push( + arch.instruct_type === null + ? ' instruct_type: null,' + : ` instruct_type: '${escapeString(arch.instruct_type)}',`, + ) + } + lines.push(' },') + + // pricing + const pricing = model.pricing! + lines.push(' pricing: {') + lines.push(` prompt: '${escapeString(pricing.prompt)}',`) + lines.push(` completion: '${escapeString(pricing.completion)}',`) + if (pricing.audio !== undefined) { + lines.push(` audio: '${escapeString(pricing.audio)}',`) + } + if (pricing.request !== undefined) { + lines.push(` request: '${escapeString(pricing.request)}',`) + } + if (pricing.image !== undefined) { + lines.push(` image: '${escapeString(pricing.image)}',`) + } + if (pricing.web_search !== undefined) { + lines.push(` web_search: '${escapeString(pricing.web_search)}',`) + } + if (pricing.internal_reasoning !== undefined) { + lines.push( + ` internal_reasoning: '${escapeString(pricing.internal_reasoning)}',`, + ) + } + if (pricing.input_cache_read !== undefined) { + lines.push( + ` input_cache_read: '${escapeString(pricing.input_cache_read)}',`, + ) + } + if (pricing.input_cache_write !== undefined) { + lines.push( + ` input_cache_write: '${escapeString(pricing.input_cache_write)}',`, + ) + } + lines.push(' },') + + // top_provider + const tp = model.top_provider! + lines.push(' top_provider: {') + lines.push(` context_length: ${tp.context_length},`) + lines.push( + ` max_completion_tokens: ${tp.max_completion_tokens === null ? 'null' : tp.max_completion_tokens},`, + ) + lines.push(` is_moderated: ${tp.is_moderated},`) + lines.push(' },') + + // per_request_limits + if (model.per_request_limits !== undefined) { + if (model.per_request_limits === null) { + lines.push(' per_request_limits: null,') + } else { + const entries = Object.entries(model.per_request_limits) + if (entries.length === 0) { + lines.push(' per_request_limits: {},') + } else { + lines.push(' per_request_limits: {') + for (const [key, value] of entries) { + lines.push(` '${escapeString(key)}': '${escapeString(value)}',`) + } + lines.push(' },') + } + } + } + + // supported_parameters + if (model.supported_parameters !== undefined) { + lines.push( + ` supported_parameters: [${model.supported_parameters.map((p) => `\n '${escapeString(p)}',`).join('')}\n ],`, + ) + } + + lines.push(` }${isLast ? '' : ','}`) + return lines.join('\n') +} + +function escapeString(value: string): string { + return value + .replace(/\\/g, '\\\\') + .replace(/'/g, "\\'") + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') +} + +async function main() { + console.log(`Fetching models from ${API_URL}...`) + const response = await fetch(API_URL) + + if (!response.ok) { + throw new Error( + `Failed to fetch models: ${response.status} ${response.statusText}`, + ) + } + + const json = (await response.json()) as { data: Array } + const allModels = json.data + + // Filter out models missing required fields + const validModels = allModels.filter(isValidModel) + const skipped = allModels.length - validModels.length + if (skipped > 0) { + console.log( + `Skipped ${skipped} models missing required fields (id, name, context_length, architecture, pricing, top_provider)`, + ) + } + + // Sort by id + validModels.sort((a, b) => a.id.localeCompare(b.id)) + + const interfaceBlock = `export interface OpenRouterModel { + id: string + canonical_slug?: string + hugging_face_id?: string | null + name: string + created?: number + description?: string + context_length: number + architecture: { + modality: string + input_modalities: Array + output_modalities: Array + tokenizer?: string + instruct_type?: string | null + } + + pricing: { + prompt: string + completion: string + audio?: string + request?: string + image?: string + web_search?: string + internal_reasoning?: string + input_cache_read?: string + input_cache_write?: string + } + top_provider: { + context_length: number + max_completion_tokens: number | null + is_moderated: boolean + } + per_request_limits?: Record | null + supported_parameters?: Array +}` + + const modelEntries = validModels.map((model, i) => + serializeModel(model, i === validModels.length - 1), + ) + + const fileContent = `${interfaceBlock} + +export const models: Array = [ +${modelEntries.join('\n')} +] +` + + await writeFile(OUTPUT_PATH, fileContent, 'utf-8') + console.log(`Fetched ${validModels.length} models`) + console.log(`Written to ${OUTPUT_PATH}`) +} + +main().catch((error) => { + console.error(error) + process.exit(1) +}) diff --git a/scripts/openrouter.models.ts b/scripts/openrouter.models.ts index a14da8e5..4a7bf4bc 100644 --- a/scripts/openrouter.models.ts +++ b/scripts/openrouter.models.ts @@ -37,7 +37,11 @@ export interface OpenRouterModel { export const models: Array = [ { id: 'ai21/jamba-large-1.7', + canonical_slug: 'ai21/jamba-large-1.7', + hugging_face_id: 'ai21labs/AI21-Jamba-Large-1.7', name: 'AI21: Jamba Large 1.7', + created: 1754669020, + description: 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', context_length: 256000, architecture: { modality: 'text->text', @@ -55,6 +59,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -67,7 +72,11 @@ export const models: Array = [ }, { id: 'aion-labs/aion-1.0', + canonical_slug: 'aion-labs/aion-1.0', + hugging_face_id: '', name: 'AionLabs: Aion-1.0', + created: 1738697557, + description: 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', context_length: 131072, architecture: { modality: 'text->text', @@ -85,6 +94,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -95,7 +105,11 @@ export const models: Array = [ }, { id: 'aion-labs/aion-1.0-mini', + canonical_slug: 'aion-labs/aion-1.0-mini', + hugging_face_id: 'FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview', name: 'AionLabs: Aion-1.0-Mini', + created: 1738697107, + description: 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', context_length: 131072, architecture: { modality: 'text->text', @@ -113,6 +127,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -123,7 +138,11 @@ export const models: Array = [ }, { id: 'aion-labs/aion-2.0', + canonical_slug: 'aion-labs/aion-2.0-20260223', + hugging_face_id: null, name: 'AionLabs: Aion-2.0', + created: 1771881306, + description: 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', context_length: 131072, architecture: { modality: 'text->text', @@ -142,6 +161,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -152,7 +172,11 @@ export const models: Array = [ }, { id: 'aion-labs/aion-rp-llama-3.1-8b', + canonical_slug: 'aion-labs/aion-rp-llama-3.1-8b', + hugging_face_id: '', name: 'AionLabs: Aion-RP 1.0 (8B)', + created: 1738696718, + description: 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', context_length: 32768, architecture: { modality: 'text->text', @@ -170,11 +194,20 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'alfredpros/codellama-7b-instruct-solidity', + canonical_slug: 'alfredpros/codellama-7b-instruct-solidity', + hugging_face_id: 'AlfredPros/CodeLlama-7b-Instruct-Solidity', name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + created: 1744641874, + description: 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', context_length: 4096, architecture: { modality: 'text->text', @@ -192,6 +225,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -207,7 +241,11 @@ export const models: Array = [ }, { id: 'alibaba/tongyi-deepresearch-30b-a3b', + canonical_slug: 'alibaba/tongyi-deepresearch-30b-a3b', + hugging_face_id: 'Alibaba-NLP/Tongyi-DeepResearch-30B-A3B', name: 'Tongyi DeepResearch 30B A3B', + created: 1758210804, + description: 'Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It\'s optimized for long-horizon, deep information-seeking tasks...', context_length: 131072, architecture: { modality: 'text->text', @@ -226,6 +264,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -248,7 +287,11 @@ export const models: Array = [ }, { id: 'allenai/olmo-2-0325-32b-instruct', + canonical_slug: 'allenai/olmo-2-0325-32b-instruct', + hugging_face_id: 'allenai/OLMo-2-0325-32B-Instruct', name: 'AllenAI: Olmo 2 32B Instruct', + created: 1741988556, + description: 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', context_length: 128000, architecture: { modality: 'text->text', @@ -266,11 +309,17 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, - supported_parameters: [], + per_request_limits: null, + supported_parameters: [ + ], }, { id: 'allenai/olmo-3-32b-think', + canonical_slug: 'allenai/olmo-3-32b-think-20251121', + hugging_face_id: 'allenai/Olmo-3-32B-Think', name: 'AllenAI: Olmo 3 32B Think', + created: 1763758276, + description: 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', context_length: 65536, architecture: { modality: 'text->text', @@ -288,6 +337,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -307,7 +357,11 @@ export const models: Array = [ }, { id: 'allenai/olmo-3.1-32b-instruct', + canonical_slug: 'allenai/olmo-3.1-32b-instruct-20251215', + hugging_face_id: 'allenai/Olmo-3.1-32B-Instruct', name: 'AllenAI: Olmo 3.1 32B Instruct', + created: 1767728554, + description: 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', context_length: 65536, architecture: { modality: 'text->text', @@ -325,6 +379,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -342,46 +397,13 @@ export const models: Array = [ 'top_p', ], }, - { - id: 'allenai/olmo-3.1-32b-think', - name: 'AllenAI: Olmo 3.1 32B Think', - context_length: 65536, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0.00000015', - completion: '0.0000005', - }, - top_provider: { - context_length: 65536, - max_completion_tokens: 65536, - is_moderated: false, - }, - supported_parameters: [ - 'frequency_penalty', - 'include_reasoning', - 'logit_bias', - 'max_tokens', - 'presence_penalty', - 'reasoning', - 'repetition_penalty', - 'response_format', - 'seed', - 'stop', - 'structured_outputs', - 'temperature', - 'top_k', - 'top_p', - ], - }, { id: 'alpindale/goliath-120b', + canonical_slug: 'alpindale/goliath-120b', + hugging_face_id: 'alpindale/goliath-120b', name: 'Goliath 120B', + created: 1699574400, + description: 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', context_length: 6144, architecture: { modality: 'text->text', @@ -399,6 +421,7 @@ export const models: Array = [ max_completion_tokens: 1024, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -419,7 +442,11 @@ export const models: Array = [ }, { id: 'amazon/nova-2-lite-v1', + canonical_slug: 'amazon/nova-2-lite-v1', + hugging_face_id: '', name: 'Amazon: Nova 2 Lite', + created: 1764696672, + description: 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', context_length: 1000000, architecture: { modality: 'text+image+file+video->text', @@ -437,6 +464,7 @@ export const models: Array = [ max_completion_tokens: 65535, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -451,7 +479,11 @@ export const models: Array = [ }, { id: 'amazon/nova-lite-v1', + canonical_slug: 'amazon/nova-lite-v1', + hugging_face_id: '', name: 'Amazon: Nova Lite 1.0', + created: 1733437363, + description: 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -469,6 +501,7 @@ export const models: Array = [ max_completion_tokens: 5120, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -480,7 +513,11 @@ export const models: Array = [ }, { id: 'amazon/nova-micro-v1', + canonical_slug: 'amazon/nova-micro-v1', + hugging_face_id: '', name: 'Amazon: Nova Micro 1.0', + created: 1733437237, + description: 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', context_length: 128000, architecture: { modality: 'text->text', @@ -498,6 +535,7 @@ export const models: Array = [ max_completion_tokens: 5120, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -509,7 +547,11 @@ export const models: Array = [ }, { id: 'amazon/nova-premier-v1', + canonical_slug: 'amazon/nova-premier-v1', + hugging_face_id: '', name: 'Amazon: Nova Premier 1.0', + created: 1761950332, + description: 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -528,6 +570,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -539,7 +582,11 @@ export const models: Array = [ }, { id: 'amazon/nova-pro-v1', + canonical_slug: 'amazon/nova-pro-v1', + hugging_face_id: '', name: 'Amazon: Nova Pro 1.0', + created: 1733436303, + description: 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -557,6 +604,7 @@ export const models: Array = [ max_completion_tokens: 5120, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -568,7 +616,11 @@ export const models: Array = [ }, { id: 'anthracite-org/magnum-v4-72b', + canonical_slug: 'anthracite-org/magnum-v4-72b', + hugging_face_id: 'anthracite-org/magnum-v4-72b', name: 'Magnum v4 72B', + created: 1729555200, + description: 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', context_length: 16384, architecture: { modality: 'text->text', @@ -586,6 +638,7 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -606,7 +659,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-3-haiku', + canonical_slug: 'anthropic/claude-3-haiku', + hugging_face_id: null, name: 'Anthropic: Claude 3 Haiku', + created: 1710288000, + description: 'Claude 3 Haiku is Anthropic\'s fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal', context_length: 200000, architecture: { modality: 'text+image->text', @@ -626,6 +683,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -638,7 +696,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-3.5-haiku', + canonical_slug: 'anthropic/claude-3-5-haiku', + hugging_face_id: null, name: 'Anthropic: Claude 3.5 Haiku', + created: 1730678400, + description: 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -659,38 +721,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: true, }, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - 'tool_choice', - 'tools', - 'top_k', - 'top_p', - ], - }, - { - id: 'anthropic/claude-3.5-sonnet', - name: 'Anthropic: Claude 3.5 Sonnet', - context_length: 200000, - architecture: { - modality: 'text+image+file->text', - input_modalities: ['text', 'image', 'file'], - output_modalities: ['text'], - tokenizer: 'Claude', - instruct_type: null, - }, - pricing: { - prompt: '0.000006', - completion: '0.00003', - input_cache_read: '0.0000006', - input_cache_write: '0.0000075', - }, - top_provider: { - context_length: 200000, - max_completion_tokens: 8192, - is_moderated: true, - }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -703,7 +734,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-3.7-sonnet', + canonical_slug: 'anthropic/claude-3-7-sonnet-20250219', + hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet', + created: 1740422110, + description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -724,6 +759,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -738,7 +774,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-3.7-sonnet:thinking', + canonical_slug: 'anthropic/claude-3-7-sonnet-20250219', + hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + created: 1740422110, + description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -759,6 +799,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -772,7 +813,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-haiku-4.5', + canonical_slug: 'anthropic/claude-4.5-haiku-20251001', + hugging_face_id: '', name: 'Anthropic: Claude Haiku 4.5', + created: 1760547638, + description: 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -793,6 +838,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -809,7 +855,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-opus-4', + canonical_slug: 'anthropic/claude-4-opus-20250522', + hugging_face_id: '', name: 'Anthropic: Claude Opus 4', + created: 1747931245, + description: 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -830,6 +880,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -844,7 +895,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-opus-4.1', + canonical_slug: 'anthropic/claude-4.1-opus-20250805', + hugging_face_id: '', name: 'Anthropic: Claude Opus 4.1', + created: 1754411591, + description: 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -865,6 +920,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -881,7 +937,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-opus-4.5', + canonical_slug: 'anthropic/claude-4.5-opus-20251124', + hugging_face_id: '', name: 'Anthropic: Claude Opus 4.5', + created: 1764010580, + description: 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -902,6 +962,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -918,7 +979,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-opus-4.6', + canonical_slug: 'anthropic/claude-4.6-opus-20260205', + hugging_face_id: '', name: 'Anthropic: Claude Opus 4.6', + created: 1770219050, + description: 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -939,6 +1004,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -954,9 +1020,55 @@ export const models: Array = [ 'verbosity', ], }, + { + id: 'anthropic/claude-opus-4.6-fast', + canonical_slug: 'anthropic/claude-4.6-opus-fast-20260407', + hugging_face_id: null, + name: 'Anthropic: Claude Opus 4.6 (Fast)', + created: 1775592472, + description: 'Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic\'s docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode', + context_length: 1000000, + architecture: { + modality: 'text+image->text', + input_modalities: ['text', 'image'], + output_modalities: ['text'], + tokenizer: 'Claude', + instruct_type: null, + }, + pricing: { + prompt: '0.00003', + completion: '0.00015', + web_search: '0.01', + input_cache_read: '0.000003', + input_cache_write: '0.0000375', + }, + top_provider: { + context_length: 1000000, + max_completion_tokens: 128000, + is_moderated: true, + }, + per_request_limits: null, + supported_parameters: [ + 'include_reasoning', + 'max_tokens', + 'reasoning', + 'response_format', + 'stop', + 'structured_outputs', + 'temperature', + 'tool_choice', + 'tools', + 'top_p', + 'verbosity', + ], + }, { id: 'anthropic/claude-sonnet-4', + canonical_slug: 'anthropic/claude-4-sonnet-20250522', + hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4', + created: 1747930371, + description: 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -977,6 +1089,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -991,7 +1104,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-sonnet-4.5', + canonical_slug: 'anthropic/claude-4.5-sonnet-20250929', + hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.5', + created: 1759161676, + description: 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', context_length: 1000000, architecture: { modality: 'text+image+file->text', @@ -1012,6 +1129,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -1028,7 +1146,11 @@ export const models: Array = [ }, { id: 'anthropic/claude-sonnet-4.6', + canonical_slug: 'anthropic/claude-4.6-sonnet-20260217', + hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.6', + created: 1771342990, + description: 'Sonnet 4.6 is Anthropic\'s most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1049,6 +1171,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -1066,7 +1189,11 @@ export const models: Array = [ }, { id: 'arcee-ai/coder-large', + canonical_slug: 'arcee-ai/coder-large', + hugging_face_id: '', name: 'Arcee AI: Coder Large', + created: 1746478663, + description: 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', context_length: 32768, architecture: { modality: 'text->text', @@ -1084,6 +1211,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1099,7 +1227,11 @@ export const models: Array = [ }, { id: 'arcee-ai/maestro-reasoning', + canonical_slug: 'arcee-ai/maestro-reasoning', + hugging_face_id: '', name: 'Arcee AI: Maestro Reasoning', + created: 1746481269, + description: 'Maestro Reasoning is Arcee\'s flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...', context_length: 131072, architecture: { modality: 'text->text', @@ -1117,6 +1249,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1132,7 +1265,11 @@ export const models: Array = [ }, { id: 'arcee-ai/spotlight', + canonical_slug: 'arcee-ai/spotlight', + hugging_face_id: '', name: 'Arcee AI: Spotlight', + created: 1746481552, + description: 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -1150,6 +1287,7 @@ export const models: Array = [ max_completion_tokens: 65537, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1165,7 +1303,11 @@ export const models: Array = [ }, { id: 'arcee-ai/trinity-large-preview:free', + canonical_slug: 'arcee-ai/trinity-large-preview', + hugging_face_id: 'arcee-ai/Trinity-Large-Preview', name: 'Arcee AI: Trinity Large Preview (free)', + created: 1769552670, + description: 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', context_length: 131000, architecture: { modality: 'text->text', @@ -1183,11 +1325,56 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'response_format', + 'structured_outputs', + 'temperature', + 'tools', + 'top_k', + 'top_p', + ], + }, + { + id: 'arcee-ai/trinity-large-thinking', + canonical_slug: 'arcee-ai/trinity-large-thinking', + hugging_face_id: 'arcee-ai/Trinity-Large-Thinking', + name: 'Arcee AI: Trinity Large Thinking', + created: 1775058318, + description: 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', + context_length: 262144, + architecture: { + modality: 'text->text', + input_modalities: ['text'], + output_modalities: ['text'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0.00000022', + completion: '0.00000085', + }, + top_provider: { + context_length: 262144, + max_completion_tokens: 262144, + is_moderated: false, + }, + per_request_limits: null, supported_parameters: [ + 'frequency_penalty', + 'include_reasoning', + 'logit_bias', 'max_tokens', + 'presence_penalty', + 'reasoning', + 'repetition_penalty', 'response_format', + 'seed', + 'stop', 'structured_outputs', 'temperature', + 'tool_choice', 'tools', 'top_k', 'top_p', @@ -1195,7 +1382,11 @@ export const models: Array = [ }, { id: 'arcee-ai/trinity-mini', + canonical_slug: 'arcee-ai/trinity-mini-20251201', + hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini', + created: 1764601720, + description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1213,6 +1404,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -1228,7 +1420,11 @@ export const models: Array = [ }, { id: 'arcee-ai/trinity-mini:free', + canonical_slug: 'arcee-ai/trinity-mini-20251201', + hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini (free)', + created: 1764601720, + description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1246,6 +1442,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -1261,7 +1458,11 @@ export const models: Array = [ }, { id: 'arcee-ai/virtuoso-large', + canonical_slug: 'arcee-ai/virtuoso-large', + hugging_face_id: '', name: 'Arcee AI: Virtuoso Large', + created: 1746478885, + description: 'Virtuoso‑Large is Arcee\'s top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...', context_length: 131072, architecture: { modality: 'text->text', @@ -1279,6 +1480,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1296,7 +1498,11 @@ export const models: Array = [ }, { id: 'baidu/ernie-4.5-21b-a3b', + canonical_slug: 'baidu/ernie-4.5-21b-a3b', + hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-PT', name: 'Baidu: ERNIE 4.5 21B A3B', + created: 1755034167, + description: 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', context_length: 120000, architecture: { modality: 'text->text', @@ -1314,6 +1520,7 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1330,7 +1537,11 @@ export const models: Array = [ }, { id: 'baidu/ernie-4.5-21b-a3b-thinking', + canonical_slug: 'baidu/ernie-4.5-21b-a3b-thinking', + hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-Thinking', name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + created: 1760048887, + description: 'ERNIE-4.5-21B-A3B-Thinking is Baidu\'s upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.', context_length: 131072, architecture: { modality: 'text->text', @@ -1348,6 +1559,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1364,7 +1576,11 @@ export const models: Array = [ }, { id: 'baidu/ernie-4.5-300b-a47b', + canonical_slug: 'baidu/ernie-4.5-300b-a47b', + hugging_face_id: 'baidu/ERNIE-4.5-300B-A47B-PT', name: 'Baidu: ERNIE 4.5 300B A47B ', + created: 1751300139, + description: 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', context_length: 123000, architecture: { modality: 'text->text', @@ -1382,6 +1598,7 @@ export const models: Array = [ max_completion_tokens: 12000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1398,7 +1615,11 @@ export const models: Array = [ }, { id: 'baidu/ernie-4.5-vl-28b-a3b', + canonical_slug: 'baidu/ernie-4.5-vl-28b-a3b', + hugging_face_id: 'baidu/ERNIE-4.5-VL-28B-A3B-PT', name: 'Baidu: ERNIE 4.5 VL 28B A3B', + created: 1755032836, + description: 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', context_length: 30000, architecture: { modality: 'text+image->text', @@ -1416,6 +1637,7 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1434,7 +1656,11 @@ export const models: Array = [ }, { id: 'baidu/ernie-4.5-vl-424b-a47b', + canonical_slug: 'baidu/ernie-4.5-vl-424b-a47b', + hugging_face_id: 'baidu/ERNIE-4.5-VL-424B-A47B-PT', name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + created: 1751300903, + description: 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', context_length: 123000, architecture: { modality: 'text+image->text', @@ -1452,6 +1678,7 @@ export const models: Array = [ max_completion_tokens: 16000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1468,7 +1695,11 @@ export const models: Array = [ }, { id: 'bytedance-seed/seed-1.6', + canonical_slug: 'bytedance-seed/seed-1.6-20250625', + hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6', + created: 1766504997, + description: 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1486,6 +1717,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1502,7 +1734,11 @@ export const models: Array = [ }, { id: 'bytedance-seed/seed-1.6-flash', + canonical_slug: 'bytedance-seed/seed-1.6-flash-20250625', + hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6 Flash', + created: 1766505011, + description: 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1520,6 +1756,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1536,7 +1773,11 @@ export const models: Array = [ }, { id: 'bytedance-seed/seed-2.0-lite', + canonical_slug: 'bytedance-seed/seed-2.0-lite-20260309', + hugging_face_id: null, name: 'ByteDance Seed: Seed-2.0-Lite', + created: 1773157231, + description: 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1554,6 +1795,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1570,7 +1812,11 @@ export const models: Array = [ }, { id: 'bytedance-seed/seed-2.0-mini', + canonical_slug: 'bytedance-seed/seed-2.0-mini-20260224', + hugging_face_id: '', name: 'ByteDance Seed: Seed-2.0-Mini', + created: 1772131107, + description: 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1588,6 +1834,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1604,7 +1851,11 @@ export const models: Array = [ }, { id: 'bytedance/ui-tars-1.5-7b', + canonical_slug: 'bytedance/ui-tars-1.5-7b', + hugging_face_id: 'ByteDance-Seed/UI-TARS-1.5-7B', name: 'ByteDance: UI-TARS 7B ', + created: 1753205056, + description: 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -1622,6 +1873,7 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1637,7 +1889,11 @@ export const models: Array = [ }, { id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + canonical_slug: 'venice/uncensored', + hugging_face_id: 'cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition', name: 'Venice: Uncensored (free)', + created: 1752094966, + description: 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', context_length: 32768, architecture: { modality: 'text->text', @@ -1655,6 +1911,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1669,7 +1926,11 @@ export const models: Array = [ }, { id: 'cohere/command-a', + canonical_slug: 'cohere/command-a-03-2025', + hugging_face_id: 'CohereForAI/c4ai-command-a-03-2025', name: 'Cohere: Command A', + created: 1741894342, + description: 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', context_length: 256000, architecture: { modality: 'text->text', @@ -1687,6 +1948,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1702,7 +1964,11 @@ export const models: Array = [ }, { id: 'cohere/command-r-08-2024', + canonical_slug: 'cohere/command-r-08-2024', + hugging_face_id: null, name: 'Cohere: Command R (08-2024)', + created: 1724976000, + description: 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', context_length: 128000, architecture: { modality: 'text->text', @@ -1720,6 +1986,7 @@ export const models: Array = [ max_completion_tokens: 4000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1737,7 +2004,11 @@ export const models: Array = [ }, { id: 'cohere/command-r-plus-08-2024', + canonical_slug: 'cohere/command-r-plus-08-2024', + hugging_face_id: null, name: 'Cohere: Command R+ (08-2024)', + created: 1724976000, + description: 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', context_length: 128000, architecture: { modality: 'text->text', @@ -1755,6 +2026,7 @@ export const models: Array = [ max_completion_tokens: 4000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1772,7 +2044,11 @@ export const models: Array = [ }, { id: 'cohere/command-r7b-12-2024', + canonical_slug: 'cohere/command-r7b-12-2024', + hugging_face_id: '', name: 'Cohere: Command R7B (12-2024)', + created: 1734158152, + description: 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', context_length: 128000, architecture: { modality: 'text->text', @@ -1790,6 +2066,7 @@ export const models: Array = [ max_completion_tokens: 4000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1805,7 +2082,11 @@ export const models: Array = [ }, { id: 'deepcogito/cogito-v2.1-671b', + canonical_slug: 'deepcogito/cogito-v2.1-671b-20251118', + hugging_face_id: '', name: 'Deep Cogito: Cogito v2.1 671B', + created: 1763071233, + description: 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', context_length: 128000, architecture: { modality: 'text->text', @@ -1823,6 +2104,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1842,7 +2124,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-chat', + canonical_slug: 'deepseek/deepseek-chat-v3', + hugging_face_id: 'deepseek-ai/DeepSeek-V3', name: 'DeepSeek: DeepSeek V3', + created: 1735241320, + description: 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', context_length: 163840, architecture: { modality: 'text->text', @@ -1860,6 +2146,7 @@ export const models: Array = [ max_completion_tokens: 163840, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -1878,7 +2165,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-chat-v3-0324', + canonical_slug: 'deepseek/deepseek-chat-v3-0324', + hugging_face_id: 'deepseek-ai/DeepSeek-V3-0324', name: 'DeepSeek: DeepSeek V3 0324', + created: 1742824755, + description: 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', context_length: 163840, architecture: { modality: 'text->text', @@ -1897,6 +2188,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -1920,7 +2212,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-chat-v3.1', + canonical_slug: 'deepseek/deepseek-chat-v3.1', + hugging_face_id: 'deepseek-ai/DeepSeek-V3.1', name: 'DeepSeek: DeepSeek V3.1', + created: 1755779628, + description: 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', context_length: 32768, architecture: { modality: 'text->text', @@ -1938,6 +2234,7 @@ export const models: Array = [ max_completion_tokens: 7168, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1962,7 +2259,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-r1', + canonical_slug: 'deepseek/deepseek-r1', + hugging_face_id: 'deepseek-ai/DeepSeek-R1', name: 'DeepSeek: R1', + created: 1737381095, + description: 'DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active in an inference pass....', context_length: 64000, architecture: { modality: 'text->text', @@ -1980,6 +2281,7 @@ export const models: Array = [ max_completion_tokens: 16000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -1998,7 +2300,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-r1-0528', + canonical_slug: 'deepseek/deepseek-r1-0528', + hugging_face_id: 'deepseek-ai/DeepSeek-R1-0528', name: 'DeepSeek: R1 0528', + created: 1748455170, + description: 'May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active...', context_length: 163840, architecture: { modality: 'text->text', @@ -2017,6 +2323,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2039,7 +2346,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-r1-distill-llama-70b', + canonical_slug: 'deepseek/deepseek-r1-distill-llama-70b', + hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Llama-70B', name: 'DeepSeek: R1 Distill Llama 70B', + created: 1737663169, + description: 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -2057,6 +2368,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2068,7 +2380,6 @@ export const models: Array = [ 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'top_k', 'top_p', @@ -2076,7 +2387,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-r1-distill-qwen-32b', + canonical_slug: 'deepseek/deepseek-r1-distill-qwen-32b', + hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', name: 'DeepSeek: R1 Distill Qwen 32B', + created: 1738194830, + description: 'DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI\'s o1-mini across various benchmarks, achieving new...', context_length: 32768, architecture: { modality: 'text->text', @@ -2094,6 +2409,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2111,7 +2427,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-v3.1-terminus', + canonical_slug: 'deepseek/deepseek-v3.1-terminus', + hugging_face_id: 'deepseek-ai/DeepSeek-V3.1-Terminus', name: 'DeepSeek: DeepSeek V3.1 Terminus', + created: 1758548275, + description: 'DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model\'s original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model\'s...', context_length: 163840, architecture: { modality: 'text->text', @@ -2130,6 +2450,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2152,7 +2473,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-v3.2', + canonical_slug: 'deepseek/deepseek-v3.2-20251201', + hugging_face_id: 'deepseek-ai/DeepSeek-V3.2', name: 'DeepSeek: DeepSeek V3.2', + created: 1764594642, + description: 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2171,6 +2496,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2195,7 +2521,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-v3.2-exp', + canonical_slug: 'deepseek/deepseek-v3.2-exp', + hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Exp', name: 'DeepSeek: DeepSeek V3.2 Exp', + created: 1759150481, + description: 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2213,6 +2543,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2235,7 +2566,11 @@ export const models: Array = [ }, { id: 'deepseek/deepseek-v3.2-speciale', + canonical_slug: 'deepseek/deepseek-v3.2-speciale-20251201', + hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Speciale', name: 'DeepSeek: DeepSeek V3.2 Speciale', + created: 1764594837, + description: 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', context_length: 163840, architecture: { modality: 'text->text', @@ -2254,6 +2589,7 @@ export const models: Array = [ max_completion_tokens: 163840, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -2274,7 +2610,11 @@ export const models: Array = [ }, { id: 'eleutherai/llemma_7b', + canonical_slug: 'eleutherai/llemma_7b', + hugging_face_id: 'EleutherAI/llemma_7b', name: 'EleutherAI: Llemma 7b', + created: 1744643225, + description: 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', context_length: 4096, architecture: { modality: 'text->text', @@ -2292,6 +2632,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -2307,7 +2648,11 @@ export const models: Array = [ }, { id: 'essentialai/rnj-1-instruct', + canonical_slug: 'essentialai/rnj-1-instruct', + hugging_face_id: 'EssentialAI/rnj-1-instruct', name: 'EssentialAI: Rnj 1 Instruct', + created: 1765094847, + description: 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', context_length: 32768, architecture: { modality: 'text->text', @@ -2325,6 +2670,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -2344,7 +2690,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.0-flash-001', + canonical_slug: 'google/gemini-2.0-flash-001', + hugging_face_id: '', name: 'Google: Gemini 2.0 Flash', + created: 1738769413, + description: 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2356,8 +2706,8 @@ export const models: Array = [ pricing: { prompt: '0.0000001', completion: '0.0000004', - image: '0.0000001', audio: '0.0000007', + image: '0.0000001', internal_reasoning: '0.0000004', input_cache_read: '0.000000025', input_cache_write: '0.00000008333333333333334', @@ -2367,6 +2717,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -2381,7 +2732,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.0-flash-lite-001', + canonical_slug: 'google/gemini-2.0-flash-lite-001', + hugging_face_id: '', name: 'Google: Gemini 2.0 Flash Lite', + created: 1740506212, + description: 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2393,8 +2748,8 @@ export const models: Array = [ pricing: { prompt: '0.000000075', completion: '0.0000003', - image: '0.000000075', audio: '0.000000075', + image: '0.000000075', internal_reasoning: '0.0000003', }, top_provider: { @@ -2402,6 +2757,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -2416,7 +2772,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-flash', + canonical_slug: 'google/gemini-2.5-flash', + hugging_face_id: '', name: 'Google: Gemini 2.5 Flash', + created: 1750172488, + description: 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2428,8 +2788,8 @@ export const models: Array = [ pricing: { prompt: '0.0000003', completion: '0.0000025', - image: '0.0000003', audio: '0.000001', + image: '0.0000003', internal_reasoning: '0.0000025', input_cache_read: '0.00000003', input_cache_write: '0.00000008333333333333334', @@ -2439,6 +2799,7 @@ export const models: Array = [ max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2455,7 +2816,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-flash-image', + canonical_slug: 'google/gemini-2.5-flash-image', + hugging_face_id: '', name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + created: 1759870431, + description: 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', context_length: 32768, architecture: { modality: 'text+image->text+image', @@ -2467,8 +2832,8 @@ export const models: Array = [ pricing: { prompt: '0.0000003', completion: '0.0000025', - image: '0.0000003', audio: '0.000001', + image: '0.0000003', internal_reasoning: '0.0000025', input_cache_read: '0.00000003', input_cache_write: '0.00000008333333333333334', @@ -2478,6 +2843,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -2490,7 +2856,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-flash-lite', + canonical_slug: 'google/gemini-2.5-flash-lite', + hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite', + created: 1753200276, + description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2502,8 +2872,8 @@ export const models: Array = [ pricing: { prompt: '0.0000001', completion: '0.0000004', - image: '0.0000001', audio: '0.0000003', + image: '0.0000001', internal_reasoning: '0.0000004', input_cache_read: '0.00000001', input_cache_write: '0.00000008333333333333334', @@ -2513,6 +2883,7 @@ export const models: Array = [ max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2529,7 +2900,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-flash-lite-preview-09-2025', + canonical_slug: 'google/gemini-2.5-flash-lite-preview-09-2025', + hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + created: 1758819686, + description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2541,17 +2916,18 @@ export const models: Array = [ pricing: { prompt: '0.0000001', completion: '0.0000004', - image: '0.0000001', audio: '0.0000003', + image: '0.0000001', internal_reasoning: '0.0000004', input_cache_read: '0.00000001', input_cache_write: '0.00000008333333333333334', }, top_provider: { context_length: 1048576, - max_completion_tokens: 65536, + max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2568,7 +2944,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-pro', + canonical_slug: 'google/gemini-2.5-pro', + hugging_face_id: '', name: 'Google: Gemini 2.5 Pro', + created: 1750169544, + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2580,8 +2960,8 @@ export const models: Array = [ pricing: { prompt: '0.00000125', completion: '0.00001', - image: '0.00000125', audio: '0.00000125', + image: '0.00000125', internal_reasoning: '0.00001', input_cache_read: '0.000000125', input_cache_write: '0.000000375', @@ -2591,6 +2971,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2607,7 +2988,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-pro-preview', + canonical_slug: 'google/gemini-2.5-pro-preview-06-05', + hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 06-05', + created: 1749137257, + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio->text', @@ -2619,8 +3004,8 @@ export const models: Array = [ pricing: { prompt: '0.00000125', completion: '0.00001', - image: '0.00000125', audio: '0.00000125', + image: '0.00000125', internal_reasoning: '0.00001', input_cache_read: '0.000000125', input_cache_write: '0.000000375', @@ -2630,6 +3015,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2646,7 +3032,11 @@ export const models: Array = [ }, { id: 'google/gemini-2.5-pro-preview-05-06', + canonical_slug: 'google/gemini-2.5-pro-preview-03-25', + hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 05-06', + created: 1746578513, + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2658,8 +3048,8 @@ export const models: Array = [ pricing: { prompt: '0.00000125', completion: '0.00001', - image: '0.00000125', audio: '0.00000125', + image: '0.00000125', internal_reasoning: '0.00001', input_cache_read: '0.000000125', input_cache_write: '0.000000375', @@ -2669,6 +3059,7 @@ export const models: Array = [ max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2685,7 +3076,11 @@ export const models: Array = [ }, { id: 'google/gemini-3-flash-preview', + canonical_slug: 'google/gemini-3-flash-preview-20251217', + hugging_face_id: '', name: 'Google: Gemini 3 Flash Preview', + created: 1765987078, + description: 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2697,8 +3092,8 @@ export const models: Array = [ pricing: { prompt: '0.0000005', completion: '0.000003', - image: '0.0000005', audio: '0.000001', + image: '0.0000005', internal_reasoning: '0.000003', input_cache_read: '0.00000005', input_cache_write: '0.00000008333333333333334', @@ -2708,6 +3103,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2724,7 +3120,11 @@ export const models: Array = [ }, { id: 'google/gemini-3-pro-image-preview', + canonical_slug: 'google/gemini-3-pro-image-preview-20251120', + hugging_face_id: '', name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + created: 1763653797, + description: 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -2736,8 +3136,8 @@ export const models: Array = [ pricing: { prompt: '0.000002', completion: '0.000012', - image: '0.000002', audio: '0.000002', + image: '0.000002', internal_reasoning: '0.000012', input_cache_read: '0.0000002', input_cache_write: '0.000000375', @@ -2747,6 +3147,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2761,7 +3162,11 @@ export const models: Array = [ }, { id: 'google/gemini-3.1-flash-image-preview', + canonical_slug: 'google/gemini-3.1-flash-image-preview-20260226', + hugging_face_id: '', name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + created: 1772119558, + description: 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -2779,6 +3184,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2793,7 +3199,11 @@ export const models: Array = [ }, { id: 'google/gemini-3.1-flash-lite-preview', + canonical_slug: 'google/gemini-3.1-flash-lite-preview-20260303', + hugging_face_id: '', name: 'Google: Gemini 3.1 Flash Lite Preview', + created: 1772512673, + description: 'Gemini 3.1 Flash Lite Preview is Google\'s high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2805,8 +3215,8 @@ export const models: Array = [ pricing: { prompt: '0.00000025', completion: '0.0000015', - image: '0.00000025', audio: '0.0000005', + image: '0.00000025', internal_reasoning: '0.0000015', input_cache_read: '0.000000025', input_cache_write: '0.00000008333333333333334', @@ -2816,6 +3226,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2832,7 +3243,11 @@ export const models: Array = [ }, { id: 'google/gemini-3.1-pro-preview', + canonical_slug: 'google/gemini-3.1-pro-preview-20260219', + hugging_face_id: '', name: 'Google: Gemini 3.1 Pro Preview', + created: 1771509627, + description: 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2844,8 +3259,8 @@ export const models: Array = [ pricing: { prompt: '0.000002', completion: '0.000012', - image: '0.000002', audio: '0.000002', + image: '0.000002', internal_reasoning: '0.000012', input_cache_read: '0.0000002', input_cache_write: '0.000000375', @@ -2855,6 +3270,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2871,7 +3287,11 @@ export const models: Array = [ }, { id: 'google/gemini-3.1-pro-preview-customtools', + canonical_slug: 'google/gemini-3.1-pro-preview-customtools-20260219', + hugging_face_id: null, name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + created: 1772045923, + description: 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2883,8 +3303,8 @@ export const models: Array = [ pricing: { prompt: '0.000002', completion: '0.000012', - image: '0.000002', audio: '0.000002', + image: '0.000002', internal_reasoning: '0.000012', input_cache_read: '0.0000002', input_cache_write: '0.000000375', @@ -2894,6 +3314,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -2910,7 +3331,11 @@ export const models: Array = [ }, { id: 'google/gemma-2-27b-it', + canonical_slug: 'google/gemma-2-27b-it', + hugging_face_id: 'google/gemma-2-27b-it', name: 'Google: Gemma 2 27B', + created: 1720828800, + description: 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -2928,6 +3353,7 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -2941,7 +3367,11 @@ export const models: Array = [ }, { id: 'google/gemma-2-9b-it', + canonical_slug: 'google/gemma-2-9b-it', + hugging_face_id: 'google/gemma-2-9b-it', name: 'Google: Gemma 2 9B', + created: 1719532800, + description: 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -2959,6 +3389,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -2971,7 +3402,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-12b-it', + canonical_slug: 'google/gemma-3-12b-it', + hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B', + created: 1741902625, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -2989,6 +3424,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3007,7 +3443,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-12b-it:free', + canonical_slug: 'google/gemma-3-12b-it', + hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B (free)', + created: 1741902625, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3025,6 +3465,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'seed', @@ -3035,7 +3476,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-27b-it', + canonical_slug: 'google/gemma-3-27b-it', + hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B', + created: 1741756359, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3053,6 +3498,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3071,7 +3517,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-27b-it:free', + canonical_slug: 'google/gemma-3-27b-it', + hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B (free)', + created: 1741756359, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3089,6 +3539,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3100,7 +3551,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-4b-it', + canonical_slug: 'google/gemma-3-4b-it', + hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B', + created: 1741905510, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3118,6 +3573,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -3134,7 +3590,11 @@ export const models: Array = [ }, { id: 'google/gemma-3-4b-it:free', + canonical_slug: 'google/gemma-3-4b-it', + hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B (free)', + created: 1741905510, + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3152,6 +3612,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3163,7 +3624,11 @@ export const models: Array = [ }, { id: 'google/gemma-3n-e2b-it:free', + canonical_slug: 'google/gemma-3n-e2b-it', + hugging_face_id: 'google/gemma-3n-E2B-it', name: 'Google: Gemma 3n 2B (free)', + created: 1752074904, + description: 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', context_length: 8192, architecture: { modality: 'text->text', @@ -3181,6 +3646,7 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3191,7 +3657,11 @@ export const models: Array = [ }, { id: 'google/gemma-3n-e4b-it', + canonical_slug: 'google/gemma-3n-e4b-it', + hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B', + created: 1747776824, + description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 32768, architecture: { modality: 'text->text', @@ -3209,6 +3679,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3224,7 +3695,11 @@ export const models: Array = [ }, { id: 'google/gemma-3n-e4b-it:free', + canonical_slug: 'google/gemma-3n-e4b-it', + hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B (free)', + created: 1747776824, + description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 8192, architecture: { modality: 'text->text', @@ -3242,6 +3717,239 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'response_format', + 'seed', + 'temperature', + 'top_p', + ], + }, + { + id: 'google/gemma-4-26b-a4b-it', + canonical_slug: 'google/gemma-4-26b-a4b-it-20260403', + hugging_face_id: 'google/gemma-4-26B-A4B-it', + name: 'Google: Gemma 4 26B A4B ', + created: 1775227989, + description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + context_length: 262144, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['image', 'text', 'video'], + output_modalities: ['text'], + tokenizer: 'Gemma', + instruct_type: null, + }, + pricing: { + prompt: '0.00000013', + completion: '0.0000004', + }, + top_provider: { + context_length: 262144, + max_completion_tokens: 262144, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'frequency_penalty', + 'include_reasoning', + 'logit_bias', + 'logprobs', + 'max_tokens', + 'presence_penalty', + 'reasoning', + 'repetition_penalty', + 'response_format', + 'seed', + 'stop', + 'structured_outputs', + 'temperature', + 'tool_choice', + 'tools', + 'top_k', + 'top_logprobs', + 'top_p', + ], + }, + { + id: 'google/gemma-4-26b-a4b-it:free', + canonical_slug: 'google/gemma-4-26b-a4b-it-20260403', + hugging_face_id: 'google/gemma-4-26B-A4B-it', + name: 'Google: Gemma 4 26B A4B (free)', + created: 1775227989, + description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + context_length: 262144, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['image', 'text', 'video'], + output_modalities: ['text'], + tokenizer: 'Gemma', + instruct_type: null, + }, + pricing: { + prompt: '0', + completion: '0', + }, + top_provider: { + context_length: 262144, + max_completion_tokens: 32768, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'include_reasoning', + 'max_tokens', + 'reasoning', + 'response_format', + 'seed', + 'temperature', + 'tool_choice', + 'tools', + 'top_p', + ], + }, + { + id: 'google/gemma-4-31b-it', + canonical_slug: 'google/gemma-4-31b-it-20260402', + hugging_face_id: 'google/gemma-4-31B-it', + name: 'Google: Gemma 4 31B', + created: 1775148486, + description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + context_length: 262144, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['image', 'text', 'video'], + output_modalities: ['text'], + tokenizer: 'Gemma', + instruct_type: null, + }, + pricing: { + prompt: '0.00000014', + completion: '0.0000004', + }, + top_provider: { + context_length: 262144, + max_completion_tokens: 131072, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'frequency_penalty', + 'include_reasoning', + 'logit_bias', + 'logprobs', + 'max_tokens', + 'presence_penalty', + 'reasoning', + 'repetition_penalty', + 'response_format', + 'seed', + 'stop', + 'structured_outputs', + 'temperature', + 'tool_choice', + 'tools', + 'top_k', + 'top_logprobs', + 'top_p', + ], + }, + { + id: 'google/gemma-4-31b-it:free', + canonical_slug: 'google/gemma-4-31b-it-20260402', + hugging_face_id: 'google/gemma-4-31B-it', + name: 'Google: Gemma 4 31B (free)', + created: 1775148486, + description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + context_length: 262144, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['image', 'text', 'video'], + output_modalities: ['text'], + tokenizer: 'Gemma', + instruct_type: null, + }, + pricing: { + prompt: '0', + completion: '0', + }, + top_provider: { + context_length: 262144, + max_completion_tokens: 32768, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'include_reasoning', + 'max_tokens', + 'reasoning', + 'response_format', + 'seed', + 'temperature', + 'tool_choice', + 'tools', + 'top_p', + ], + }, + { + id: 'google/lyria-3-clip-preview', + canonical_slug: 'google/lyria-3-clip-preview-20260330', + hugging_face_id: null, + name: 'Google: Lyria 3 Clip Preview', + created: 1774907255, + description: '30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate...', + context_length: 1048576, + architecture: { + modality: 'text+image->text+audio', + input_modalities: ['text', 'image'], + output_modalities: ['text', 'audio'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0', + completion: '0', + }, + top_provider: { + context_length: 1048576, + max_completion_tokens: 65536, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'response_format', + 'seed', + 'temperature', + 'top_p', + ], + }, + { + id: 'google/lyria-3-pro-preview', + canonical_slug: 'google/lyria-3-pro-preview-20260330', + hugging_face_id: null, + name: 'Google: Lyria 3 Pro Preview', + created: 1774907286, + description: 'Full-length songs are priced at $0.08 per song. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...', + context_length: 1048576, + architecture: { + modality: 'text+image->text+audio', + input_modalities: ['text', 'image'], + output_modalities: ['text', 'audio'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0', + completion: '0', + }, + top_provider: { + context_length: 1048576, + max_completion_tokens: 65536, + is_moderated: false, + }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3252,7 +3960,11 @@ export const models: Array = [ }, { id: 'gryphe/mythomax-l2-13b', + canonical_slug: 'gryphe/mythomax-l2-13b', + hugging_face_id: 'Gryphe/MythoMax-L2-13b', name: 'MythoMax 13B', + created: 1688256000, + description: 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', context_length: 4096, architecture: { modality: 'text->text', @@ -3270,6 +3982,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3291,7 +4004,11 @@ export const models: Array = [ }, { id: 'ibm-granite/granite-4.0-h-micro', + canonical_slug: 'ibm-granite/granite-4.0-h-micro', + hugging_face_id: 'ibm-granite/granite-4.0-h-micro', name: 'IBM: Granite 4.0 Micro', + created: 1760927695, + description: 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', context_length: 131000, architecture: { modality: 'text->text', @@ -3309,6 +4026,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -3322,7 +4040,11 @@ export const models: Array = [ }, { id: 'inception/mercury', + canonical_slug: 'inception/mercury', + hugging_face_id: '', name: 'Inception: Mercury', + created: 1750973026, + description: 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', context_length: 128000, architecture: { modality: 'text->text', @@ -3341,6 +4063,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3353,7 +4076,11 @@ export const models: Array = [ }, { id: 'inception/mercury-2', + canonical_slug: 'inception/mercury-2-20260304', + hugging_face_id: null, name: 'Inception: Mercury 2', + created: 1772636275, + description: 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', context_length: 128000, architecture: { modality: 'text->text', @@ -3372,6 +4099,7 @@ export const models: Array = [ max_completion_tokens: 50000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -3386,7 +4114,11 @@ export const models: Array = [ }, { id: 'inception/mercury-coder', + canonical_slug: 'inception/mercury-coder-small-beta', + hugging_face_id: '', name: 'Inception: Mercury Coder', + created: 1746033880, + description: 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', context_length: 128000, architecture: { modality: 'text->text', @@ -3405,6 +4137,7 @@ export const models: Array = [ max_completion_tokens: 32000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -3417,7 +4150,11 @@ export const models: Array = [ }, { id: 'inflection/inflection-3-pi', + canonical_slug: 'inflection/inflection-3-pi', + hugging_face_id: null, name: 'Inflection: Inflection 3 Pi', + created: 1728604800, + description: 'Inflection 3 Pi powers Inflection\'s [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...', context_length: 8000, architecture: { modality: 'text->text', @@ -3435,11 +4172,21 @@ export const models: Array = [ max_completion_tokens: 1024, is_moderated: false, }, - supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + 'top_p', + ], }, { id: 'inflection/inflection-3-productivity', + canonical_slug: 'inflection/inflection-3-productivity', + hugging_face_id: null, name: 'Inflection: Inflection 3 Productivity', + created: 1728604800, + description: 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', context_length: 8000, architecture: { modality: 'text->text', @@ -3457,50 +4204,21 @@ export const models: Array = [ max_completion_tokens: 1024, is_moderated: false, }, - supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], - }, - { - id: 'kwaipilot/kat-coder-pro', - name: 'Kwaipilot: KAT-Coder-Pro V1', - context_length: 256000, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0.000000207', - completion: '0.000000828', - input_cache_read: '0.0000000414', - }, - top_provider: { - context_length: 256000, - max_completion_tokens: 128000, - is_moderated: false, - }, + per_request_limits: null, supported_parameters: [ - 'frequency_penalty', - 'logit_bias', 'max_tokens', - 'min_p', - 'presence_penalty', - 'repetition_penalty', - 'response_format', - 'seed', 'stop', - 'structured_outputs', 'temperature', - 'tool_choice', - 'tools', - 'top_k', 'top_p', ], }, { id: 'kwaipilot/kat-coder-pro-v2', + canonical_slug: 'kwaipilot/kat-coder-pro-v2-20260327', + hugging_face_id: '', name: 'Kwaipilot: KAT-Coder-Pro V2', + created: 1774649310, + description: 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', context_length: 256000, architecture: { modality: 'text->text', @@ -3515,97 +4233,36 @@ export const models: Array = [ input_cache_read: '0.00000006', }, top_provider: { - context_length: 256000, - max_completion_tokens: 80000, - is_moderated: false, - }, - supported_parameters: [ - 'frequency_penalty', - 'logit_bias', - 'max_tokens', - 'min_p', - 'presence_penalty', - 'repetition_penalty', - 'response_format', - 'seed', - 'stop', - 'structured_outputs', - 'temperature', - 'tool_choice', - 'tools', - 'top_k', - 'top_p', - ], - }, - { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - context_length: 32768, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0.00000003', - completion: '0.00000012', - }, - top_provider: { - context_length: 32768, - max_completion_tokens: null, - is_moderated: false, - }, - supported_parameters: [ - 'frequency_penalty', - 'logit_bias', - 'max_tokens', - 'min_p', - 'presence_penalty', - 'repetition_penalty', - 'stop', - 'temperature', - 'top_k', - 'top_p', - ], - }, - { - id: 'liquid/lfm-2.2-6b', - name: 'LiquidAI: LFM2-2.6B', - context_length: 32768, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0.00000001', - completion: '0.00000002', - }, - top_provider: { - context_length: 32768, - max_completion_tokens: null, + context_length: 256000, + max_completion_tokens: 80000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', + 'logit_bias', 'max_tokens', 'min_p', 'presence_penalty', 'repetition_penalty', + 'response_format', 'seed', 'stop', + 'structured_outputs', 'temperature', + 'tool_choice', + 'tools', 'top_k', 'top_p', ], }, { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + id: 'liquid/lfm-2-24b-a2b', + canonical_slug: 'liquid/lfm-2-24b-a2b-20260224', + hugging_face_id: 'LiquidAI/LFM2-24B-A2B', + name: 'LiquidAI: LFM2-24B-A2B', + created: 1772048711, + description: 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', context_length: 32768, architecture: { modality: 'text->text', @@ -3615,21 +4272,22 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0', - completion: '0', + prompt: '0.00000003', + completion: '0.00000012', }, top_provider: { context_length: 32768, max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', + 'logit_bias', 'max_tokens', 'min_p', 'presence_penalty', 'repetition_penalty', - 'seed', 'stop', 'temperature', 'top_k', @@ -3637,8 +4295,12 @@ export const models: Array = [ ], }, { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + id: 'liquid/lfm-2.5-1.2b-instruct:free', + canonical_slug: 'liquid/lfm-2.5-1.2b-instruct-20260120', + hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Instruct', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + created: 1768927521, + description: 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', context_length: 32768, architecture: { modality: 'text->text', @@ -3656,13 +4318,12 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', - 'include_reasoning', 'max_tokens', 'min_p', 'presence_penalty', - 'reasoning', 'repetition_penalty', 'seed', 'stop', @@ -3672,8 +4333,12 @@ export const models: Array = [ ], }, { - id: 'liquid/lfm2-8b-a1b', - name: 'LiquidAI: LFM2-8B-A1B', + id: 'liquid/lfm-2.5-1.2b-thinking:free', + canonical_slug: 'liquid/lfm-2.5-1.2b-thinking-20260120', + hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Thinking', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + created: 1768927527, + description: 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', context_length: 32768, architecture: { modality: 'text->text', @@ -3683,19 +4348,22 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0.00000001', - completion: '0.00000002', + prompt: '0', + completion: '0', }, top_provider: { context_length: 32768, max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', + 'include_reasoning', 'max_tokens', 'min_p', 'presence_penalty', + 'reasoning', 'repetition_penalty', 'seed', 'stop', @@ -3706,7 +4374,11 @@ export const models: Array = [ }, { id: 'mancer/weaver', + canonical_slug: 'mancer/weaver', + hugging_face_id: null, name: 'Mancer: Weaver (alpha)', + created: 1690934400, + description: 'An attempt to recreate Claude-style verbosity, but don\'t expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.', context_length: 8000, architecture: { modality: 'text->text', @@ -3724,6 +4396,7 @@ export const models: Array = [ max_completion_tokens: 2000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3744,7 +4417,11 @@ export const models: Array = [ }, { id: 'meituan/longcat-flash-chat', + canonical_slug: 'meituan/longcat-flash-chat', + hugging_face_id: 'meituan-longcat/LongCat-Flash-Chat', name: 'Meituan: LongCat Flash Chat', + created: 1757427658, + description: 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', context_length: 131072, architecture: { modality: 'text->text', @@ -3763,6 +4440,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3783,7 +4461,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3-70b-instruct', + canonical_slug: 'meta-llama/llama-3-70b-instruct', + hugging_face_id: 'meta-llama/Meta-Llama-3-70B-Instruct', name: 'Meta: Llama 3 70B Instruct', + created: 1713398400, + description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 8192, architecture: { modality: 'text->text', @@ -3801,15 +4483,14 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', 'presence_penalty', 'repetition_penalty', - 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'top_k', 'top_p', @@ -3817,7 +4498,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3-8b-instruct', + canonical_slug: 'meta-llama/llama-3-8b-instruct', + hugging_face_id: 'meta-llama/Meta-Llama-3-8B-Instruct', name: 'Meta: Llama 3 8B Instruct', + created: 1713398400, + description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 8192, architecture: { modality: 'text->text', @@ -3835,6 +4520,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -3854,7 +4540,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.1-70b-instruct', + canonical_slug: 'meta-llama/llama-3.1-70b-instruct', + hugging_face_id: 'meta-llama/Meta-Llama-3.1-70B-Instruct', name: 'Meta: Llama 3.1 70B Instruct', + created: 1721692800, + description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 131072, architecture: { modality: 'text->text', @@ -3872,6 +4562,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -3890,7 +4581,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.1-8b-instruct', + canonical_slug: 'meta-llama/llama-3.1-8b-instruct', + hugging_face_id: 'meta-llama/Meta-Llama-3.1-8B-Instruct', name: 'Meta: Llama 3.1 8B Instruct', + created: 1721692800, + description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...', context_length: 16384, architecture: { modality: 'text->text', @@ -3908,6 +4603,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -3929,7 +4625,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.2-11b-vision-instruct', + canonical_slug: 'meta-llama/llama-3.2-11b-vision-instruct', + hugging_face_id: 'meta-llama/Llama-3.2-11B-Vision-Instruct', name: 'Meta: Llama 3.2 11B Vision Instruct', + created: 1727222400, + description: 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3947,6 +4647,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -3963,7 +4664,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.2-1b-instruct', + canonical_slug: 'meta-llama/llama-3.2-1b-instruct', + hugging_face_id: 'meta-llama/Llama-3.2-1B-Instruct', name: 'Meta: Llama 3.2 1B Instruct', + created: 1727222400, + description: 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', context_length: 60000, architecture: { modality: 'text->text', @@ -3981,6 +4686,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -3994,7 +4700,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.2-3b-instruct', + canonical_slug: 'meta-llama/llama-3.2-3b-instruct', + hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct', + created: 1727222400, + description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 80000, architecture: { modality: 'text->text', @@ -4012,6 +4722,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4025,7 +4736,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.2-3b-instruct:free', + canonical_slug: 'meta-llama/llama-3.2-3b-instruct', + hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct (free)', + created: 1727222400, + description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 131072, architecture: { modality: 'text->text', @@ -4043,6 +4758,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4055,7 +4771,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.3-70b-instruct', + canonical_slug: 'meta-llama/llama-3.3-70b-instruct', + hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct', + created: 1733506137, + description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 131072, architecture: { modality: 'text->text', @@ -4073,6 +4793,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -4095,7 +4816,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-3.3-70b-instruct:free', + canonical_slug: 'meta-llama/llama-3.3-70b-instruct', + hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct (free)', + created: 1733506137, + description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 65536, architecture: { modality: 'text->text', @@ -4113,6 +4838,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4127,7 +4853,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-4-maverick', + canonical_slug: 'meta-llama/llama-4-maverick-17b-128e-instruct', + hugging_face_id: 'meta-llama/Llama-4-Maverick-17B-128E-Instruct', name: 'Meta: Llama 4 Maverick', + created: 1743881822, + description: 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', context_length: 1048576, architecture: { modality: 'text+image->text', @@ -4145,6 +4875,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -4165,7 +4896,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-4-scout', + canonical_slug: 'meta-llama/llama-4-scout-17b-16e-instruct', + hugging_face_id: 'meta-llama/Llama-4-Scout-17B-16E-Instruct', name: 'Meta: Llama 4 Scout', + created: 1743881519, + description: 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', context_length: 327680, architecture: { modality: 'text+image->text', @@ -4183,6 +4918,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4202,7 +4938,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-guard-3-8b', + canonical_slug: 'meta-llama/llama-guard-3-8b', + hugging_face_id: 'meta-llama/Llama-Guard-3-8B', name: 'Llama Guard 3 8B', + created: 1739401318, + description: 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', context_length: 131072, architecture: { modality: 'text->text', @@ -4220,6 +4960,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4233,7 +4974,11 @@ export const models: Array = [ }, { id: 'meta-llama/llama-guard-4-12b', + canonical_slug: 'meta-llama/llama-guard-4-12b', + hugging_face_id: 'meta-llama/Llama-Guard-4-12B', name: 'Meta: Llama Guard 4 12B', + created: 1745975193, + description: 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', context_length: 163840, architecture: { modality: 'text+image->text', @@ -4251,6 +4996,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -4268,7 +5014,11 @@ export const models: Array = [ }, { id: 'microsoft/phi-4', + canonical_slug: 'microsoft/phi-4', + hugging_face_id: 'microsoft/phi-4', name: 'Microsoft: Phi 4', + created: 1736489872, + description: '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', context_length: 16384, architecture: { modality: 'text->text', @@ -4286,6 +5036,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -4305,7 +5056,11 @@ export const models: Array = [ }, { id: 'microsoft/wizardlm-2-8x22b', + canonical_slug: 'microsoft/wizardlm-2-8x22b', + hugging_face_id: 'microsoft/WizardLM-2-8x22B', name: 'WizardLM-2 8x22B', + created: 1713225600, + description: 'WizardLM-2 8x22B is Microsoft AI\'s most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...', context_length: 65535, architecture: { modality: 'text->text', @@ -4323,6 +5078,7 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4337,7 +5093,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-01', + canonical_slug: 'minimax/minimax-01', + hugging_face_id: 'MiniMaxAI/MiniMax-Text-01', name: 'MiniMax: MiniMax-01', + created: 1736915462, + description: 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', context_length: 1000192, architecture: { modality: 'text+image->text', @@ -4355,11 +5115,20 @@ export const models: Array = [ max_completion_tokens: 1000192, is_moderated: false, }, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'minimax/minimax-m1', + canonical_slug: 'minimax/minimax-m1', + hugging_face_id: '', name: 'MiniMax: MiniMax M1', + created: 1750200414, + description: 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', context_length: 1000000, architecture: { modality: 'text->text', @@ -4377,6 +5146,7 @@ export const models: Array = [ max_completion_tokens: 40000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -4395,7 +5165,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-m2', + canonical_slug: 'minimax/minimax-m2', + hugging_face_id: 'MiniMaxAI/MiniMax-M2', name: 'MiniMax: MiniMax M2', + created: 1761252093, + description: 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', context_length: 196608, architecture: { modality: 'text->text', @@ -4414,6 +5188,7 @@ export const models: Array = [ max_completion_tokens: 196608, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -4436,7 +5211,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-m2-her', + canonical_slug: 'minimax/minimax-m2-her-20260123', + hugging_face_id: '', name: 'MiniMax: MiniMax M2-her', + created: 1769177239, + description: 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', context_length: 65536, architecture: { modality: 'text->text', @@ -4455,11 +5234,20 @@ export const models: Array = [ max_completion_tokens: 2048, is_moderated: false, }, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'minimax/minimax-m2.1', + canonical_slug: 'minimax/minimax-m2.1', + hugging_face_id: 'MiniMaxAI/MiniMax-M2.1', name: 'MiniMax: MiniMax M2.1', + created: 1766454997, + description: 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', context_length: 196608, architecture: { modality: 'text->text', @@ -4478,6 +5266,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -4502,7 +5291,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-m2.5', + canonical_slug: 'minimax/minimax-m2.5-20260211', + hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5', + created: 1770908502, + description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -4512,15 +5305,16 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0.00000019', - completion: '0.00000115', - input_cache_read: '0.000000095', + prompt: '0.000000118', + completion: '0.00000099', + input_cache_read: '0.000000059', }, top_provider: { context_length: 196608, max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -4547,7 +5341,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-m2.5:free', + canonical_slug: 'minimax/minimax-m2.5-20260211', + hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5 (free)', + created: 1770908502, + description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -4565,6 +5363,7 @@ export const models: Array = [ max_completion_tokens: 196608, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -4578,7 +5377,11 @@ export const models: Array = [ }, { id: 'minimax/minimax-m2.7', + canonical_slug: 'minimax/minimax-m2.7-20260318', + hugging_face_id: 'MiniMaxAI/MiniMax-M2.7', name: 'MiniMax: MiniMax M2.7', + created: 1773836697, + description: 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', context_length: 204800, architecture: { modality: 'text->text', @@ -4597,6 +5400,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -4610,7 +5414,11 @@ export const models: Array = [ }, { id: 'mistralai/codestral-2508', + canonical_slug: 'mistralai/codestral-2508', + hugging_face_id: '', name: 'Mistral: Codestral 2508', + created: 1754079630, + description: 'Mistral\'s cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)', context_length: 256000, architecture: { modality: 'text->text', @@ -4629,6 +5437,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4645,7 +5454,11 @@ export const models: Array = [ }, { id: 'mistralai/devstral-2512', + canonical_slug: 'mistralai/devstral-2512', + hugging_face_id: 'mistralai/Devstral-2-123B-Instruct-2512', name: 'Mistral: Devstral 2 2512', + created: 1765285419, + description: 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', context_length: 262144, architecture: { modality: 'text->text', @@ -4664,6 +5477,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4680,7 +5494,11 @@ export const models: Array = [ }, { id: 'mistralai/devstral-medium', + canonical_slug: 'mistralai/devstral-medium-2507', + hugging_face_id: '', name: 'Mistral: Devstral Medium', + created: 1752161321, + description: 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', context_length: 131072, architecture: { modality: 'text->text', @@ -4699,6 +5517,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4715,7 +5534,11 @@ export const models: Array = [ }, { id: 'mistralai/devstral-small', + canonical_slug: 'mistralai/devstral-small-2507', + hugging_face_id: 'mistralai/Devstral-Small-2507', name: 'Mistral: Devstral Small 1.1', + created: 1752160751, + description: 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', context_length: 131072, architecture: { modality: 'text->text', @@ -4734,6 +5557,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4750,7 +5574,11 @@ export const models: Array = [ }, { id: 'mistralai/ministral-14b-2512', + canonical_slug: 'mistralai/ministral-14b-2512', + hugging_face_id: 'mistralai/Ministral-3-14B-Instruct-2512', name: 'Mistral: Ministral 3 14B 2512', + created: 1764681735, + description: 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -4769,6 +5597,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -4788,7 +5617,11 @@ export const models: Array = [ }, { id: 'mistralai/ministral-3b-2512', + canonical_slug: 'mistralai/ministral-3b-2512', + hugging_face_id: 'mistralai/Ministral-3-3B-Instruct-2512', name: 'Mistral: Ministral 3 3B 2512', + created: 1764681560, + description: 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', context_length: 131072, architecture: { modality: 'text+image->text', @@ -4807,6 +5640,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -4826,7 +5660,11 @@ export const models: Array = [ }, { id: 'mistralai/ministral-8b-2512', + canonical_slug: 'mistralai/ministral-8b-2512', + hugging_face_id: 'mistralai/Ministral-3-8B-Instruct-2512', name: 'Mistral: Ministral 3 8B 2512', + created: 1764681654, + description: 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -4845,6 +5683,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -4864,7 +5703,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-7b-instruct-v0.1', + canonical_slug: 'mistralai/mistral-7b-instruct-v0.1', + hugging_face_id: 'mistralai/Mistral-7B-Instruct-v0.1', name: 'Mistral: Mistral 7B Instruct v0.1', + created: 1695859200, + description: 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', context_length: 2824, architecture: { modality: 'text->text', @@ -4882,6 +5725,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4895,7 +5739,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-large', + canonical_slug: 'mistralai/mistral-large', + hugging_face_id: null, name: 'Mistral Large', + created: 1708905600, + description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version `mistral-large-2407`). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', context_length: 128000, architecture: { modality: 'text->text', @@ -4914,6 +5762,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4930,7 +5779,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-large-2407', + canonical_slug: 'mistralai/mistral-large-2407', + hugging_face_id: '', name: 'Mistral Large 2407', + created: 1731978415, + description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version mistral-large-2407). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', context_length: 131072, architecture: { modality: 'text->text', @@ -4949,6 +5802,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -4965,7 +5819,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-large-2411', + canonical_slug: 'mistralai/mistral-large-2411', + hugging_face_id: '', name: 'Mistral Large 2411', + created: 1731978685, + description: 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', context_length: 131072, architecture: { modality: 'text->text', @@ -4984,6 +5842,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5000,7 +5859,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-large-2512', + canonical_slug: 'mistralai/mistral-large-2512', + hugging_face_id: '', name: 'Mistral: Mistral Large 3 2512', + created: 1764624472, + description: 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5019,6 +5882,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5035,7 +5899,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-medium-3', + canonical_slug: 'mistralai/mistral-medium-3', + hugging_face_id: '', name: 'Mistral: Mistral Medium 3', + created: 1746627341, + description: 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5054,6 +5922,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5070,7 +5939,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-medium-3.1', + canonical_slug: 'mistralai/mistral-medium-3.1', + hugging_face_id: '', name: 'Mistral: Mistral Medium 3.1', + created: 1755095639, + description: 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5089,6 +5962,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5105,7 +5979,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-nemo', + canonical_slug: 'mistralai/mistral-nemo', + hugging_face_id: 'mistralai/Mistral-Nemo-Instruct-2407', name: 'Mistral: Mistral Nemo', + created: 1721347200, + description: 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', context_length: 131072, architecture: { modality: 'text->text', @@ -5123,6 +6001,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5142,7 +6021,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-saba', + canonical_slug: 'mistralai/mistral-saba-2502', + hugging_face_id: '', name: 'Mistral: Saba', + created: 1739803239, + description: 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', context_length: 32768, architecture: { modality: 'text->text', @@ -5161,6 +6044,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5177,7 +6061,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-small-24b-instruct-2501', + canonical_slug: 'mistralai/mistral-small-24b-instruct-2501', + hugging_face_id: 'mistralai/Mistral-Small-24B-Instruct-2501', name: 'Mistral: Mistral Small 3', + created: 1738255409, + description: 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', context_length: 32768, architecture: { modality: 'text->text', @@ -5195,9 +6083,9 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', - 'logit_bias', 'max_tokens', 'min_p', 'presence_penalty', @@ -5206,15 +6094,17 @@ export const models: Array = [ 'seed', 'stop', 'temperature', - 'tool_choice', - 'tools', 'top_k', 'top_p', ], }, { id: 'mistralai/mistral-small-2603', + canonical_slug: 'mistralai/mistral-small-2603', + hugging_face_id: 'mistralai/Mistral-Small-4-119B-2603', name: 'Mistral: Mistral Small 4', + created: 1773695685, + description: 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5233,6 +6123,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5251,7 +6142,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-small-3.1-24b-instruct', + canonical_slug: 'mistralai/mistral-small-3.1-24b-instruct-2503', + hugging_face_id: 'mistralai/Mistral-Small-3.1-24B-Instruct-2503', name: 'Mistral: Mistral Small 3.1 24B', + created: 1742238937, + description: 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5270,6 +6165,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5286,7 +6182,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-small-3.2-24b-instruct', + canonical_slug: 'mistralai/mistral-small-3.2-24b-instruct-2506', + hugging_face_id: 'mistralai/Mistral-Small-3.2-24B-Instruct-2506', name: 'Mistral: Mistral Small 3.2 24B', + created: 1750443016, + description: 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -5304,6 +6204,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -5324,7 +6225,11 @@ export const models: Array = [ }, { id: 'mistralai/mistral-small-creative', + canonical_slug: 'mistralai/mistral-small-creative-20251216', + hugging_face_id: null, name: 'Mistral: Mistral Small Creative', + created: 1765908653, + description: 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', context_length: 32768, architecture: { modality: 'text->text', @@ -5343,11 +6248,19 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, - supported_parameters: ['tool_choice', 'tools'], + per_request_limits: null, + supported_parameters: [ + 'tool_choice', + 'tools', + ], }, { id: 'mistralai/mixtral-8x22b-instruct', + canonical_slug: 'mistralai/mixtral-8x22b-instruct', + hugging_face_id: 'mistralai/Mixtral-8x22B-Instruct-v0.1', name: 'Mistral: Mixtral 8x22B Instruct', + created: 1713312000, + description: 'Mistral\'s official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...', context_length: 65536, architecture: { modality: 'text->text', @@ -5366,6 +6279,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5382,7 +6296,11 @@ export const models: Array = [ }, { id: 'mistralai/mixtral-8x7b-instruct', + canonical_slug: 'mistralai/mixtral-8x7b-instruct', + hugging_face_id: 'mistralai/Mixtral-8x7B-Instruct-v0.1', name: 'Mistral: Mixtral 8x7B Instruct', + created: 1702166400, + description: 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', context_length: 32768, architecture: { modality: 'text->text', @@ -5400,6 +6318,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -5419,7 +6338,11 @@ export const models: Array = [ }, { id: 'mistralai/pixtral-large-2411', + canonical_slug: 'mistralai/pixtral-large-2411', + hugging_face_id: '', name: 'Mistral: Pixtral Large 2411', + created: 1731977388, + description: 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5438,6 +6361,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5454,7 +6378,11 @@ export const models: Array = [ }, { id: 'mistralai/voxtral-small-24b-2507', + canonical_slug: 'mistralai/voxtral-small-24b-2507', + hugging_face_id: 'mistralai/Voxtral-Small-24B-2507', name: 'Mistral: Voxtral Small 24B 2507', + created: 1761835144, + description: 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', context_length: 32000, architecture: { modality: 'text+audio->text', @@ -5474,6 +6402,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5490,7 +6419,11 @@ export const models: Array = [ }, { id: 'moonshotai/kimi-k2', + canonical_slug: 'moonshotai/kimi-k2', + hugging_face_id: 'moonshotai/Kimi-K2-Instruct', name: 'MoonshotAI: Kimi K2 0711', + created: 1752263252, + description: 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -5508,28 +6441,29 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', - 'logprobs', 'max_tokens', 'presence_penalty', 'repetition_penalty', - 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'tool_choice', 'tools', 'top_k', - 'top_logprobs', 'top_p', ], }, { id: 'moonshotai/kimi-k2-0905', + canonical_slug: 'moonshotai/kimi-k2-0905', + hugging_face_id: 'moonshotai/Kimi-K2-Instruct-0905', name: 'MoonshotAI: Kimi K2 0905', - context_length: 131072, + created: 1757021147, + description: 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', + context_length: 262144, architecture: { modality: 'text->text', input_modalities: ['text'], @@ -5540,13 +6474,13 @@ export const models: Array = [ pricing: { prompt: '0.0000004', completion: '0.000002', - input_cache_read: '0.00000015', }, top_provider: { - context_length: 131072, - max_completion_tokens: null, + context_length: 262144, + max_completion_tokens: 262144, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -5569,8 +6503,12 @@ export const models: Array = [ }, { id: 'moonshotai/kimi-k2-thinking', + canonical_slug: 'moonshotai/kimi-k2-thinking-20251106', + hugging_face_id: 'moonshotai/Kimi-K2-Thinking', name: 'MoonshotAI: Kimi K2 Thinking', - context_length: 131072, + created: 1762440622, + description: 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', + context_length: 262144, architecture: { modality: 'text->text', input_modalities: ['text'], @@ -5579,15 +6517,15 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0.00000047', - completion: '0.000002', - input_cache_read: '0.000000141', + prompt: '0.0000006', + completion: '0.0000025', }, top_provider: { - context_length: 131072, + context_length: 262144, max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5610,7 +6548,11 @@ export const models: Array = [ }, { id: 'moonshotai/kimi-k2.5', + canonical_slug: 'moonshotai/kimi-k2.5-0127', + hugging_face_id: 'moonshotai/Kimi-K2.5', name: 'MoonshotAI: Kimi K2.5', + created: 1769487076, + description: 'Kimi K2.5 is Moonshot AI\'s native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5620,15 +6562,16 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0.00000042', - completion: '0.0000022', - input_cache_read: '0.00000021', + prompt: '0.0000003827', + completion: '0.00000172', + input_cache_read: '0.00000019135', }, top_provider: { context_length: 262144, max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5654,7 +6597,11 @@ export const models: Array = [ }, { id: 'morph/morph-v3-fast', + canonical_slug: 'morph/morph-v3-fast', + hugging_face_id: '', name: 'Morph: Morph V3 Fast', + created: 1751910002, + description: 'Morph\'s fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...', context_length: 81920, architecture: { modality: 'text->text', @@ -5672,11 +6619,20 @@ export const models: Array = [ max_completion_tokens: 38000, is_moderated: false, }, - supported_parameters: ['max_tokens', 'stop', 'temperature'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + ], }, { id: 'morph/morph-v3-large', + canonical_slug: 'morph/morph-v3-large', + hugging_face_id: '', name: 'Morph: Morph V3 Large', + created: 1751910858, + description: 'Morph\'s high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...', context_length: 262144, architecture: { modality: 'text->text', @@ -5694,11 +6650,20 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, - supported_parameters: ['max_tokens', 'stop', 'temperature'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + ], }, { id: 'nex-agi/deepseek-v3.1-nex-n1', + canonical_slug: 'nex-agi/deepseek-v3.1-nex-n1', + hugging_face_id: 'nex-agi/DeepSeek-V3.1-Nex-N1', name: 'Nex AGI: DeepSeek V3.1 Nex N1', + created: 1765204393, + description: 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -5716,6 +6681,7 @@ export const models: Array = [ max_completion_tokens: 163840, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'response_format', @@ -5729,7 +6695,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-2-pro-llama-3-8b', + canonical_slug: 'nousresearch/hermes-2-pro-llama-3-8b', + hugging_face_id: 'NousResearch/Hermes-2-Pro-Llama-3-8B', name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + created: 1716768000, + description: 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', context_length: 8192, architecture: { modality: 'text->text', @@ -5747,6 +6717,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5763,7 +6734,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-3-llama-3.1-405b', + canonical_slug: 'nousresearch/hermes-3-llama-3.1-405b', + hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct', + created: 1723766400, + description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -5781,6 +6756,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5797,7 +6773,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-3-llama-3.1-405b:free', + canonical_slug: 'nousresearch/hermes-3-llama-3.1-405b', + hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct (free)', + created: 1723766400, + description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -5815,6 +6795,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5827,7 +6808,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-3-llama-3.1-70b', + canonical_slug: 'nousresearch/hermes-3-llama-3.1-70b', + hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-70B', name: 'Nous: Hermes 3 70B Instruct', + created: 1723939200, + description: 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -5845,6 +6830,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5861,7 +6847,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-4-405b', + canonical_slug: 'nousresearch/hermes-4-405b', + hugging_face_id: 'NousResearch/Hermes-4-405B', name: 'Nous: Hermes 4 405B', + created: 1756235463, + description: 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', context_length: 131072, architecture: { modality: 'text->text', @@ -5879,6 +6869,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5894,7 +6885,11 @@ export const models: Array = [ }, { id: 'nousresearch/hermes-4-70b', + canonical_slug: 'nousresearch/hermes-4-70b', + hugging_face_id: 'NousResearch/Hermes-4-70B', name: 'Nous: Hermes 4 70B', + created: 1756236182, + description: 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', context_length: 131072, architecture: { modality: 'text->text', @@ -5912,6 +6907,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5927,7 +6923,11 @@ export const models: Array = [ }, { id: 'nvidia/llama-3.1-nemotron-70b-instruct', + canonical_slug: 'nvidia/llama-3.1-nemotron-70b-instruct', + hugging_face_id: 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF', name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + created: 1728950400, + description: 'NVIDIA\'s Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...', context_length: 131072, architecture: { modality: 'text->text', @@ -5945,6 +6945,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -5963,7 +6964,11 @@ export const models: Array = [ }, { id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + canonical_slug: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + hugging_face_id: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + created: 1744115059, + description: 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', context_length: 131072, architecture: { modality: 'text->text', @@ -5981,6 +6986,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -5997,7 +7003,11 @@ export const models: Array = [ }, { id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + canonical_slug: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + hugging_face_id: 'nvidia/Llama-3_3-Nemotron-Super-49B-v1_5', name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + created: 1760101395, + description: 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -6015,6 +7025,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -6035,7 +7046,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-3-nano-30b-a3b', + canonical_slug: 'nvidia/nemotron-3-nano-30b-a3b', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + created: 1765731275, + description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 262144, architecture: { modality: 'text->text', @@ -6053,6 +7068,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -6073,7 +7089,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-3-nano-30b-a3b:free', + canonical_slug: 'nvidia/nemotron-3-nano-30b-a3b', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + created: 1765731275, + description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 256000, architecture: { modality: 'text->text', @@ -6091,6 +7111,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -6104,7 +7125,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-3-super-120b-a12b', + canonical_slug: 'nvidia/nemotron-3-super-120b-a12b-20230311', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super', + created: 1773245239, + description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -6123,6 +7148,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -6143,7 +7169,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-3-super-120b-a12b:free', + canonical_slug: 'nvidia/nemotron-3-super-120b-a12b-20230311', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super (free)', + created: 1773245239, + description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -6161,6 +7191,7 @@ export const models: Array = [ max_completion_tokens: 262144, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -6176,7 +7207,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-nano-12b-v2-vl', + canonical_slug: 'nvidia/nemotron-nano-12b-v2-vl', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL', + created: 1761675565, + description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -6194,6 +7229,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -6212,7 +7248,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-nano-12b-v2-vl:free', + canonical_slug: 'nvidia/nemotron-nano-12b-v2-vl', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + created: 1761675565, + description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 128000, architecture: { modality: 'text+image+video->text', @@ -6230,6 +7270,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -6243,7 +7284,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-nano-9b-v2', + canonical_slug: 'nvidia/nemotron-nano-9b-v2', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2', + created: 1757106807, + description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 131072, architecture: { modality: 'text->text', @@ -6261,6 +7306,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -6281,7 +7327,11 @@ export const models: Array = [ }, { id: 'nvidia/nemotron-nano-9b-v2:free', + canonical_slug: 'nvidia/nemotron-nano-9b-v2', + hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + created: 1757106807, + description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 128000, architecture: { modality: 'text->text', @@ -6299,6 +7349,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -6314,7 +7365,11 @@ export const models: Array = [ }, { id: 'openai/gpt-3.5-turbo', + canonical_slug: 'openai/gpt-3.5-turbo', + hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo', + created: 1685232000, + description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', context_length: 16385, architecture: { modality: 'text->text', @@ -6332,6 +7387,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6351,7 +7407,11 @@ export const models: Array = [ }, { id: 'openai/gpt-3.5-turbo-0613', + canonical_slug: 'openai/gpt-3.5-turbo-0613', + hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + created: 1706140800, + description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -6369,6 +7429,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6388,7 +7449,11 @@ export const models: Array = [ }, { id: 'openai/gpt-3.5-turbo-16k', + canonical_slug: 'openai/gpt-3.5-turbo-16k', + hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo 16k', + created: 1693180800, + description: 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', context_length: 16385, architecture: { modality: 'text->text', @@ -6406,6 +7471,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6425,7 +7491,11 @@ export const models: Array = [ }, { id: 'openai/gpt-3.5-turbo-instruct', + canonical_slug: 'openai/gpt-3.5-turbo-instruct', + hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo Instruct', + created: 1695859200, + description: 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -6443,6 +7513,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6460,7 +7531,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4', + canonical_slug: 'openai/gpt-4', + hugging_face_id: null, name: 'OpenAI: GPT-4', + created: 1685232000, + description: 'OpenAI\'s flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...', context_length: 8191, architecture: { modality: 'text->text', @@ -6478,6 +7553,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6497,7 +7573,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4-0314', + canonical_slug: 'openai/gpt-4-0314', + hugging_face_id: null, name: 'OpenAI: GPT-4 (older v0314)', + created: 1685232000, + description: 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', context_length: 8191, architecture: { modality: 'text->text', @@ -6515,6 +7595,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6534,7 +7615,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4-1106-preview', + canonical_slug: 'openai/gpt-4-1106-preview', + hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo (older v1106)', + created: 1699228800, + description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', context_length: 128000, architecture: { modality: 'text->text', @@ -6552,6 +7637,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6571,7 +7657,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4-turbo', + canonical_slug: 'openai/gpt-4-turbo', + hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo', + created: 1712620800, + description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', context_length: 128000, architecture: { modality: 'text+image->text', @@ -6589,6 +7679,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6608,7 +7699,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4-turbo-preview', + canonical_slug: 'openai/gpt-4-turbo-preview', + hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo Preview', + created: 1706140800, + description: 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', context_length: 128000, architecture: { modality: 'text->text', @@ -6626,6 +7721,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6645,7 +7741,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4.1', + canonical_slug: 'openai/gpt-4.1-2025-04-14', + hugging_face_id: '', name: 'OpenAI: GPT-4.1', + created: 1744651385, + description: 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -6665,6 +7765,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -6678,7 +7779,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4.1-mini', + canonical_slug: 'openai/gpt-4.1-mini-2025-04-14', + hugging_face_id: '', name: 'OpenAI: GPT-4.1 Mini', + created: 1744651381, + description: 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -6698,6 +7803,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -6711,7 +7817,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4.1-nano', + canonical_slug: 'openai/gpt-4.1-nano-2025-04-14', + hugging_face_id: '', name: 'OpenAI: GPT-4.1 Nano', + created: 1744651369, + description: 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -6731,6 +7841,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -6744,7 +7855,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o', + canonical_slug: 'openai/gpt-4o', + hugging_face_id: null, name: 'OpenAI: GPT-4o', + created: 1715558400, + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6763,6 +7878,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6783,7 +7899,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-2024-05-13', + canonical_slug: 'openai/gpt-4o-2024-05-13', + hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-05-13)', + created: 1715558400, + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6801,6 +7921,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6821,7 +7942,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-2024-08-06', + canonical_slug: 'openai/gpt-4o-2024-08-06', + hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-08-06)', + created: 1722902400, + description: 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6840,6 +7965,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6860,7 +7986,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-2024-11-20', + canonical_slug: 'openai/gpt-4o-2024-11-20', + hugging_face_id: '', name: 'OpenAI: GPT-4o (2024-11-20)', + created: 1732127594, + description: 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6879,6 +8009,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6899,7 +8030,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-audio-preview', + canonical_slug: 'openai/gpt-4o-audio-preview', + hugging_face_id: '', name: 'OpenAI: GPT-4o Audio', + created: 1755233061, + description: 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -6918,6 +8053,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6937,7 +8073,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-mini', + canonical_slug: 'openai/gpt-4o-mini', + hugging_face_id: null, name: 'OpenAI: GPT-4o-mini', + created: 1721260800, + description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6956,6 +8096,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -6976,7 +8117,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-mini-2024-07-18', + canonical_slug: 'openai/gpt-4o-mini-2024-07-18', + hugging_face_id: null, name: 'OpenAI: GPT-4o-mini (2024-07-18)', + created: 1721260800, + description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -6995,6 +8140,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -7015,7 +8161,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-mini-search-preview', + canonical_slug: 'openai/gpt-4o-mini-search-preview-2025-03-11', + hugging_face_id: '', name: 'OpenAI: GPT-4o-mini Search Preview', + created: 1741818122, + description: 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -7034,6 +8184,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7043,7 +8194,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o-search-preview', + canonical_slug: 'openai/gpt-4o-search-preview-2025-03-11', + hugging_face_id: '', name: 'OpenAI: GPT-4o Search Preview', + created: 1741817949, + description: 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -7062,6 +8217,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7071,7 +8227,11 @@ export const models: Array = [ }, { id: 'openai/gpt-4o:extended', + canonical_slug: 'openai/gpt-4o', + hugging_face_id: null, name: 'OpenAI: GPT-4o (extended)', + created: 1715558400, + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7089,6 +8249,7 @@ export const models: Array = [ max_completion_tokens: 64000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -7109,7 +8270,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5', + canonical_slug: 'openai/gpt-5-2025-08-07', + hugging_face_id: '', name: 'OpenAI: GPT-5', + created: 1754587413, + description: 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7129,6 +8294,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7142,7 +8308,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-chat', + canonical_slug: 'openai/gpt-5-chat-2025-08-07', + hugging_face_id: '', name: 'OpenAI: GPT-5 Chat', + created: 1754587837, + description: 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7162,6 +8332,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7171,7 +8342,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-codex', + canonical_slug: 'openai/gpt-5-codex', + hugging_face_id: '', name: 'OpenAI: GPT-5 Codex', + created: 1758643403, + description: 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -7190,6 +8365,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7203,7 +8379,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-image', + canonical_slug: 'openai/gpt-5-image', + hugging_face_id: '', name: 'OpenAI: GPT-5 Image', + created: 1760447986, + description: '[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI\'s GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1\'s superior instruction following,...', context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -7223,6 +8403,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -7244,7 +8425,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-image-mini', + canonical_slug: 'openai/gpt-5-image-mini', + hugging_face_id: '', name: 'OpenAI: GPT-5 Image Mini', + created: 1760624583, + description: 'GPT-5 Image Mini combines OpenAI\'s advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...', context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -7264,6 +8449,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -7285,7 +8471,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-mini', + canonical_slug: 'openai/gpt-5-mini-2025-08-07', + hugging_face_id: '', name: 'OpenAI: GPT-5 Mini', + created: 1754587407, + description: 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7305,6 +8495,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7318,7 +8509,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-nano', + canonical_slug: 'openai/gpt-5-nano-2025-08-07', + hugging_face_id: '', name: 'OpenAI: GPT-5 Nano', + created: 1754587402, + description: 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7338,6 +8533,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7351,7 +8547,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5-pro', + canonical_slug: 'openai/gpt-5-pro-2025-10-06', + hugging_face_id: '', name: 'OpenAI: GPT-5 Pro', + created: 1759776663, + description: 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7370,6 +8570,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7383,7 +8584,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.1', + canonical_slug: 'openai/gpt-5.1-20251113', + hugging_face_id: '', name: 'OpenAI: GPT-5.1', + created: 1763060305, + description: 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7403,6 +8608,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7416,7 +8622,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.1-chat', + canonical_slug: 'openai/gpt-5.1-chat-20251113', + hugging_face_id: '', name: 'OpenAI: GPT-5.1 Chat', + created: 1763060302, + description: 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7436,6 +8646,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7447,7 +8658,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.1-codex', + canonical_slug: 'openai/gpt-5.1-codex-20251113', + hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex', + created: 1763060298, + description: 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -7466,6 +8681,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7479,7 +8695,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.1-codex-max', + canonical_slug: 'openai/gpt-5.1-codex-max-20251204', + hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Max', + created: 1764878934, + description: 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', context_length: 400000, architecture: { modality: 'text+image->text', @@ -7499,6 +8719,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7512,7 +8733,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.1-codex-mini', + canonical_slug: 'openai/gpt-5.1-codex-mini-20251113', + hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Mini', + created: 1763057820, + description: 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', context_length: 400000, architecture: { modality: 'text+image->text', @@ -7531,6 +8756,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7544,7 +8770,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.2', + canonical_slug: 'openai/gpt-5.2-20251211', + hugging_face_id: '', name: 'OpenAI: GPT-5.2', + created: 1765389775, + description: 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7564,6 +8794,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7577,7 +8808,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.2-chat', + canonical_slug: 'openai/gpt-5.2-chat-20251211', + hugging_face_id: '', name: 'OpenAI: GPT-5.2 Chat', + created: 1765389783, + description: 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7597,6 +8832,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7608,7 +8844,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.2-codex', + canonical_slug: 'openai/gpt-5.2-codex-20260114', + hugging_face_id: '', name: 'OpenAI: GPT-5.2-Codex', + created: 1768409315, + description: 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -7628,6 +8868,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7641,7 +8882,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.2-pro', + canonical_slug: 'openai/gpt-5.2-pro-20251211', + hugging_face_id: '', name: 'OpenAI: GPT-5.2 Pro', + created: 1765389780, + description: 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7660,6 +8905,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7673,7 +8919,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.3-chat', + canonical_slug: 'openai/gpt-5.3-chat-20260303', + hugging_face_id: '', name: 'OpenAI: GPT-5.3 Chat', + created: 1772564061, + description: 'GPT-5.3 Chat is an update to ChatGPT\'s most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7693,6 +8943,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'response_format', @@ -7704,7 +8955,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.3-codex', + canonical_slug: 'openai/gpt-5.3-codex-20260224', + hugging_face_id: '', name: 'OpenAI: GPT-5.3-Codex', + created: 1771959164, + description: 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7724,6 +8979,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7737,7 +8993,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.4', + canonical_slug: 'openai/gpt-5.4-20260305', + hugging_face_id: '', name: 'OpenAI: GPT-5.4', + created: 1772734352, + description: 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -7757,6 +9017,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7770,7 +9031,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.4-mini', + canonical_slug: 'openai/gpt-5.4-mini-20260317', + hugging_face_id: '', name: 'OpenAI: GPT-5.4 Mini', + created: 1773748178, + description: 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7790,6 +9055,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7803,7 +9069,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.4-nano', + canonical_slug: 'openai/gpt-5.4-nano-20260317', + hugging_face_id: '', name: 'OpenAI: GPT-5.4 Nano', + created: 1773748187, + description: 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -7823,6 +9093,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7836,7 +9107,11 @@ export const models: Array = [ }, { id: 'openai/gpt-5.4-pro', + canonical_slug: 'openai/gpt-5.4-pro-20260305', + hugging_face_id: '', name: 'OpenAI: GPT-5.4 Pro', + created: 1772734366, + description: 'GPT-5.4 Pro is OpenAI\'s most advanced model, building on GPT-5.4\'s unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -7855,6 +9130,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -7868,7 +9144,11 @@ export const models: Array = [ }, { id: 'openai/gpt-audio', + canonical_slug: 'openai/gpt-audio', + hugging_face_id: '', name: 'OpenAI: GPT Audio', + created: 1768862569, + description: 'The gpt-audio model is OpenAI\'s first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -7887,6 +9167,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -7898,13 +9179,19 @@ export const models: Array = [ 'stop', 'structured_outputs', 'temperature', + 'tool_choice', + 'tools', 'top_logprobs', 'top_p', ], }, { id: 'openai/gpt-audio-mini', + canonical_slug: 'openai/gpt-audio-mini', + hugging_face_id: '', name: 'OpenAI: GPT Audio Mini', + created: 1768859419, + description: 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -7923,6 +9210,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -7934,13 +9222,19 @@ export const models: Array = [ 'stop', 'structured_outputs', 'temperature', + 'tool_choice', + 'tools', 'top_logprobs', 'top_p', ], }, { id: 'openai/gpt-oss-120b', + canonical_slug: 'openai/gpt-oss-120b', + hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b', + created: 1754414231, + description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -7958,10 +9252,12 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', 'logit_bias', + 'logprobs', 'max_tokens', 'min_p', 'presence_penalty', @@ -7976,12 +9272,17 @@ export const models: Array = [ 'tool_choice', 'tools', 'top_k', + 'top_logprobs', 'top_p', ], }, { id: 'openai/gpt-oss-120b:free', + canonical_slug: 'openai/gpt-oss-120b', + hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b (free)', + created: 1754414231, + description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -7999,6 +9300,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8012,7 +9314,11 @@ export const models: Array = [ }, { id: 'openai/gpt-oss-20b', + canonical_slug: 'openai/gpt-oss-20b', + hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b', + created: 1754414229, + description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -8031,6 +9337,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8056,7 +9363,11 @@ export const models: Array = [ }, { id: 'openai/gpt-oss-20b:free', + canonical_slug: 'openai/gpt-oss-20b', + hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b (free)', + created: 1754414229, + description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -8074,6 +9385,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8087,7 +9399,11 @@ export const models: Array = [ }, { id: 'openai/gpt-oss-safeguard-20b', + canonical_slug: 'openai/gpt-oss-safeguard-20b', + hugging_face_id: 'openai/gpt-oss-safeguard-20b', name: 'OpenAI: gpt-oss-safeguard-20b', + created: 1761752836, + description: 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', context_length: 131072, architecture: { modality: 'text->text', @@ -8106,6 +9422,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8121,7 +9438,11 @@ export const models: Array = [ }, { id: 'openai/o1', + canonical_slug: 'openai/o1-2024-12-17', + hugging_face_id: '', name: 'OpenAI: o1', + created: 1734459999, + description: 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8140,6 +9461,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8153,7 +9475,11 @@ export const models: Array = [ }, { id: 'openai/o1-pro', + canonical_slug: 'openai/o1-pro', + hugging_face_id: '', name: 'OpenAI: o1-pro', + created: 1742423211, + description: 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8171,6 +9497,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8182,7 +9509,11 @@ export const models: Array = [ }, { id: 'openai/o3', + canonical_slug: 'openai/o3-2025-04-16', + hugging_face_id: '', name: 'OpenAI: o3', + created: 1744823457, + description: 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8202,6 +9533,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8215,7 +9547,11 @@ export const models: Array = [ }, { id: 'openai/o3-deep-research', + canonical_slug: 'openai/o3-deep-research-2025-06-26', + hugging_face_id: '', name: 'OpenAI: o3 Deep Research', + created: 1760129661, + description: 'o3-deep-research is OpenAI\'s advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8235,6 +9571,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8256,7 +9593,11 @@ export const models: Array = [ }, { id: 'openai/o3-mini', + canonical_slug: 'openai/o3-mini-2025-01-31', + hugging_face_id: '', name: 'OpenAI: o3 Mini', + created: 1738351721, + description: 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -8275,6 +9616,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8288,7 +9630,11 @@ export const models: Array = [ }, { id: 'openai/o3-mini-high', + canonical_slug: 'openai/o3-mini-high-2025-01-31', + hugging_face_id: '', name: 'OpenAI: o3 Mini High', + created: 1739372611, + description: 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -8307,6 +9653,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8320,7 +9667,11 @@ export const models: Array = [ }, { id: 'openai/o3-pro', + canonical_slug: 'openai/o3-pro-2025-06-10', + hugging_face_id: '', name: 'OpenAI: o3 Pro', + created: 1749598352, + description: 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8339,6 +9690,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8352,7 +9704,11 @@ export const models: Array = [ }, { id: 'openai/o4-mini', + canonical_slug: 'openai/o4-mini-2025-04-16', + hugging_face_id: '', name: 'OpenAI: o4 Mini', + created: 1744820942, + description: 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8372,6 +9728,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8385,7 +9742,11 @@ export const models: Array = [ }, { id: 'openai/o4-mini-deep-research', + canonical_slug: 'openai/o4-mini-deep-research-2025-06-26', + hugging_face_id: '', name: 'OpenAI: o4 Mini Deep Research', + created: 1760129642, + description: 'o4-mini-deep-research is OpenAI\'s faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8405,6 +9766,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8426,7 +9788,11 @@ export const models: Array = [ }, { id: 'openai/o4-mini-high', + canonical_slug: 'openai/o4-mini-high-2025-04-16', + hugging_face_id: '', name: 'OpenAI: o4 Mini High', + created: 1744824212, + description: 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -8446,6 +9812,7 @@ export const models: Array = [ max_completion_tokens: 100000, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8459,7 +9826,11 @@ export const models: Array = [ }, { id: 'openrouter/auto', + canonical_slug: 'openrouter/auto', + hugging_face_id: null, name: 'Auto Router', + created: 1699401600, + description: 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', context_length: 2000000, architecture: { modality: 'text+image+file+audio+video->text+image', @@ -8477,6 +9848,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8503,7 +9875,11 @@ export const models: Array = [ }, { id: 'openrouter/bodybuilder', + canonical_slug: 'openrouter/bodybuilder', + hugging_face_id: '', name: 'Body Builder (beta)', + created: 1764903653, + description: 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', context_length: 128000, architecture: { modality: 'text->text', @@ -8521,11 +9897,17 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, - supported_parameters: [], + per_request_limits: null, + supported_parameters: [ + ], }, { id: 'openrouter/free', + canonical_slug: 'openrouter/free', + hugging_face_id: '', name: 'Free Models Router', + created: 1769917427, + description: 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -8543,6 +9925,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8564,7 +9947,11 @@ export const models: Array = [ }, { id: 'perplexity/sonar', + canonical_slug: 'perplexity/sonar', + hugging_face_id: '', name: 'Perplexity: Sonar', + created: 1738013808, + description: 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', context_length: 127072, architecture: { modality: 'text+image->text', @@ -8583,6 +9970,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -8595,7 +9983,11 @@ export const models: Array = [ }, { id: 'perplexity/sonar-deep-research', + canonical_slug: 'perplexity/sonar-deep-research', + hugging_face_id: '', name: 'Perplexity: Sonar Deep Research', + created: 1741311246, + description: 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', context_length: 128000, architecture: { modality: 'text->text', @@ -8615,6 +10007,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8629,7 +10022,11 @@ export const models: Array = [ }, { id: 'perplexity/sonar-pro', + canonical_slug: 'perplexity/sonar-pro', + hugging_face_id: '', name: 'Perplexity: Sonar Pro', + created: 1741312423, + description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -8648,6 +10045,7 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -8660,7 +10058,11 @@ export const models: Array = [ }, { id: 'perplexity/sonar-pro-search', + canonical_slug: 'perplexity/sonar-pro-search', + hugging_face_id: '', name: 'Perplexity: Sonar Pro Search', + created: 1761854366, + description: 'Exclusively available on the OpenRouter API, Sonar Pro\'s new Pro Search mode is Perplexity\'s most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -8679,6 +10081,7 @@ export const models: Array = [ max_completion_tokens: 8000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8694,7 +10097,11 @@ export const models: Array = [ }, { id: 'perplexity/sonar-reasoning-pro', + canonical_slug: 'perplexity/sonar-reasoning-pro', + hugging_face_id: '', name: 'Perplexity: Sonar Reasoning Pro', + created: 1741313308, + description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -8713,6 +10120,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8727,7 +10135,11 @@ export const models: Array = [ }, { id: 'prime-intellect/intellect-3', + canonical_slug: 'prime-intellect/intellect-3-20251126', + hugging_face_id: 'PrimeIntellect/INTELLECT-3-FP8', name: 'Prime Intellect: INTELLECT-3', + created: 1764212534, + description: 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', context_length: 131072, architecture: { modality: 'text->text', @@ -8745,6 +10157,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -8763,7 +10176,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-2.5-72b-instruct', + canonical_slug: 'qwen/qwen-2.5-72b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-72B-Instruct', name: 'Qwen2.5 72B Instruct', + created: 1726704000, + description: 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -8781,6 +10198,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -8790,7 +10208,6 @@ export const models: Array = [ 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'tool_choice', 'tools', @@ -8800,7 +10217,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-2.5-7b-instruct', + canonical_slug: 'qwen/qwen-2.5-7b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-7B-Instruct', name: 'Qwen: Qwen2.5 7B Instruct', + created: 1729036800, + description: 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -8818,6 +10239,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -8837,7 +10259,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-2.5-coder-32b-instruct', + canonical_slug: 'qwen/qwen-2.5-coder-32b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-Coder-32B-Instruct', name: 'Qwen2.5 Coder 32B Instruct', + created: 1731368400, + description: 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', context_length: 32768, architecture: { modality: 'text->text', @@ -8855,6 +10281,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -8868,7 +10295,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-max', + canonical_slug: 'qwen/qwen-max-2025-01-25', + hugging_face_id: '', name: 'Qwen: Qwen-Max ', + created: 1738402289, + description: 'Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It\'s a large-scale MoE model that has been pretrained on over 20 trillion...', context_length: 32768, architecture: { modality: 'text->text', @@ -8887,6 +10318,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -8900,7 +10332,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-plus', + canonical_slug: 'qwen/qwen-plus-2025-01-25', + hugging_face_id: '', name: 'Qwen: Qwen-Plus', + created: 1738409840, + description: 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -8919,6 +10355,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -8932,7 +10369,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-plus-2025-07-28', + canonical_slug: 'qwen/qwen-plus-2025-07-28', + hugging_face_id: '', name: 'Qwen: Qwen Plus 0728', + created: 1757347599, + description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -8950,6 +10391,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -8964,7 +10406,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-plus-2025-07-28:thinking', + canonical_slug: 'qwen/qwen-plus-2025-07-28', + hugging_face_id: '', name: 'Qwen: Qwen Plus 0728 (thinking)', + created: 1757347599, + description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -8982,6 +10428,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -8998,7 +10445,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-turbo', + canonical_slug: 'qwen/qwen-turbo-2024-11-01', + hugging_face_id: '', name: 'Qwen: Qwen-Turbo', + created: 1738410974, + description: 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', context_length: 131072, architecture: { modality: 'text->text', @@ -9017,6 +10468,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9030,7 +10482,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-vl-max', + canonical_slug: 'qwen/qwen-vl-max-2025-01-25', + hugging_face_id: '', name: 'Qwen: Qwen VL Max', + created: 1738434304, + description: 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', context_length: 131072, architecture: { modality: 'text+image->text', @@ -9048,6 +10504,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9061,7 +10518,11 @@ export const models: Array = [ }, { id: 'qwen/qwen-vl-plus', + canonical_slug: 'qwen/qwen-vl-plus', + hugging_face_id: '', name: 'Qwen: Qwen VL Plus', + created: 1738731255, + description: 'Qwen\'s Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -9080,6 +10541,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9091,7 +10553,11 @@ export const models: Array = [ }, { id: 'qwen/qwen2.5-coder-7b-instruct', + canonical_slug: 'qwen/qwen2.5-coder-7b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-Coder-7B-Instruct', name: 'Qwen: Qwen2.5 Coder 7B Instruct', + created: 1744734887, + description: 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', context_length: 32768, architecture: { modality: 'text->text', @@ -9109,6 +10575,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -9123,7 +10590,11 @@ export const models: Array = [ }, { id: 'qwen/qwen2.5-vl-32b-instruct', + canonical_slug: 'qwen/qwen2.5-vl-32b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-VL-32B-Instruct', name: 'Qwen: Qwen2.5 VL 32B Instruct', + created: 1742839838, + description: 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -9141,6 +10612,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -9157,7 +10629,11 @@ export const models: Array = [ }, { id: 'qwen/qwen2.5-vl-72b-instruct', + canonical_slug: 'qwen/qwen2.5-vl-72b-instruct', + hugging_face_id: 'Qwen/Qwen2.5-VL-72B-Instruct', name: 'Qwen: Qwen2.5 VL 72B Instruct', + created: 1738410311, + description: 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', context_length: 32768, architecture: { modality: 'text+image->text', @@ -9175,6 +10651,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9192,7 +10669,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-14b', + canonical_slug: 'qwen/qwen3-14b-04-28', + hugging_face_id: 'Qwen/Qwen3-14B', name: 'Qwen: Qwen3 14B', + created: 1745876478, + description: 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -9210,6 +10691,7 @@ export const models: Array = [ max_completion_tokens: 40960, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9233,7 +10715,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-235b-a22b', + canonical_slug: 'qwen/qwen3-235b-a22b-04-28', + hugging_face_id: 'Qwen/Qwen3-235B-A22B', name: 'Qwen: Qwen3 235B A22B', + created: 1745875757, + description: 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -9251,6 +10737,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -9266,7 +10753,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-235b-a22b-2507', + canonical_slug: 'qwen/qwen3-235b-a22b-07-25', + hugging_face_id: 'Qwen/Qwen3-235B-A22B-Instruct-2507', name: 'Qwen: Qwen3 235B A22B Instruct 2507', + created: 1753119555, + description: 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', context_length: 262144, architecture: { modality: 'text->text', @@ -9284,6 +10775,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9303,12 +10795,17 @@ export const models: Array = [ 'tool_choice', 'tools', 'top_k', + 'top_logprobs', 'top_p', ], }, { id: 'qwen/qwen3-235b-a22b-thinking-2507', + canonical_slug: 'qwen/qwen3-235b-a22b-thinking-2507', + hugging_face_id: 'Qwen/Qwen3-235B-A22B-Thinking-2507', name: 'Qwen: Qwen3 235B A22B Thinking 2507', + created: 1753449557, + description: 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', context_length: 131072, architecture: { modality: 'text->text', @@ -9326,6 +10823,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9348,7 +10846,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-30b-a3b', + canonical_slug: 'qwen/qwen3-30b-a3b-04-28', + hugging_face_id: 'Qwen/Qwen3-30B-A3B', name: 'Qwen: Qwen3 30B A3B', + created: 1745878604, + description: 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', context_length: 40960, architecture: { modality: 'text->text', @@ -9366,6 +10868,7 @@ export const models: Array = [ max_completion_tokens: 40960, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9389,7 +10892,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-30b-a3b-instruct-2507', + canonical_slug: 'qwen/qwen3-30b-a3b-instruct-2507', + hugging_face_id: 'Qwen/Qwen3-30B-A3B-Instruct-2507', name: 'Qwen: Qwen3 30B A3B Instruct 2507', + created: 1753806965, + description: 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', context_length: 262144, architecture: { modality: 'text->text', @@ -9407,6 +10914,7 @@ export const models: Array = [ max_completion_tokens: 262144, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9427,7 +10935,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-30b-a3b-thinking-2507', + canonical_slug: 'qwen/qwen3-30b-a3b-thinking-2507', + hugging_face_id: 'Qwen/Qwen3-30B-A3B-Thinking-2507', name: 'Qwen: Qwen3 30B A3B Thinking 2507', + created: 1756399192, + description: 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', context_length: 131072, architecture: { modality: 'text->text', @@ -9446,6 +10958,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9468,7 +10981,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-32b', + canonical_slug: 'qwen/qwen3-32b-04-28', + hugging_face_id: 'Qwen/Qwen3-32B', name: 'Qwen: Qwen3 32B', + created: 1745875945, + description: 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -9487,6 +11004,7 @@ export const models: Array = [ max_completion_tokens: 40960, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9509,7 +11027,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-8b', + canonical_slug: 'qwen/qwen3-8b-04-28', + hugging_face_id: 'Qwen/Qwen3-8B', name: 'Qwen: Qwen3 8B', + created: 1745876632, + description: 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', context_length: 40960, architecture: { modality: 'text->text', @@ -9528,6 +11050,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9550,7 +11073,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder', + canonical_slug: 'qwen/qwen3-coder-480b-a35b-07-25', + hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B', + created: 1753230546, + description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262144, architecture: { modality: 'text->text', @@ -9569,6 +11096,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9589,7 +11117,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder-30b-a3b-instruct', + canonical_slug: 'qwen/qwen3-coder-30b-a3b-instruct', + hugging_face_id: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + created: 1753972379, + description: 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', context_length: 160000, architecture: { modality: 'text->text', @@ -9607,6 +11139,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -9625,7 +11158,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder-flash', + canonical_slug: 'qwen/qwen3-coder-flash', + hugging_face_id: '', name: 'Qwen: Qwen3 Coder Flash', + created: 1758115536, + description: 'Qwen3 Coder Flash is Alibaba\'s fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...', context_length: 1000000, architecture: { modality: 'text->text', @@ -9644,6 +11181,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9657,7 +11195,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder-next', + canonical_slug: 'qwen/qwen3-coder-next-2025-02-03', + hugging_face_id: 'Qwen/Qwen3-Coder-Next', name: 'Qwen: Qwen3 Coder Next', + created: 1770164101, + description: 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', context_length: 262144, architecture: { modality: 'text->text', @@ -9676,6 +11218,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9696,7 +11239,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder-plus', + canonical_slug: 'qwen/qwen3-coder-plus', + hugging_face_id: '', name: 'Qwen: Qwen3 Coder Plus', + created: 1758662707, + description: 'Qwen3 Coder Plus is Alibaba\'s proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...', context_length: 1000000, architecture: { modality: 'text->text', @@ -9715,6 +11262,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9729,7 +11277,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-coder:free', + canonical_slug: 'qwen/qwen3-coder-480b-a35b-07-25', + hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B (free)', + created: 1753230546, + description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262000, architecture: { modality: 'text->text', @@ -9747,6 +11299,7 @@ export const models: Array = [ max_completion_tokens: 262000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -9761,7 +11314,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-max', + canonical_slug: 'qwen/qwen3-max', + hugging_face_id: '', name: 'Qwen: Qwen3 Max', + created: 1758662808, + description: 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', context_length: 262144, architecture: { modality: 'text->text', @@ -9780,6 +11337,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -9793,7 +11351,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-max-thinking', + canonical_slug: 'qwen/qwen3-max-thinking-20260123', + hugging_face_id: null, name: 'Qwen: Qwen3 Max Thinking', + created: 1770671901, + description: 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', context_length: 262144, architecture: { modality: 'text->text', @@ -9811,6 +11373,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -9827,7 +11390,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-next-80b-a3b-instruct', + canonical_slug: 'qwen/qwen3-next-80b-a3b-instruct-2509', + hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct', + created: 1757612213, + description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -9845,6 +11412,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9865,7 +11433,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-next-80b-a3b-instruct:free', + canonical_slug: 'qwen/qwen3-next-80b-a3b-instruct-2509', + hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + created: 1757612213, + description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -9883,6 +11455,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -9899,7 +11472,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-next-80b-a3b-thinking', + canonical_slug: 'qwen/qwen3-next-80b-a3b-thinking-2509', + hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Thinking', name: 'Qwen: Qwen3 Next 80B A3B Thinking', + created: 1757612284, + description: 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', context_length: 131072, architecture: { modality: 'text->text', @@ -9917,6 +11494,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -9939,7 +11517,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-235b-a22b-instruct', + canonical_slug: 'qwen/qwen3-vl-235b-a22b-instruct', + hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Instruct', name: 'Qwen: Qwen3 VL 235B A22B Instruct', + created: 1758668687, + description: 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -9958,6 +11540,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -9978,7 +11561,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-235b-a22b-thinking', + canonical_slug: 'qwen/qwen3-vl-235b-a22b-thinking', + hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Thinking', name: 'Qwen: Qwen3 VL 235B A22B Thinking', + created: 1758668690, + description: 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', context_length: 131072, architecture: { modality: 'text+image->text', @@ -9996,6 +11583,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10016,7 +11604,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-30b-a3b-instruct', + canonical_slug: 'qwen/qwen3-vl-30b-a3b-instruct', + hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Instruct', name: 'Qwen: Qwen3 VL 30B A3B Instruct', + created: 1759794476, + description: 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10034,8 +11626,10 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', + 'logit_bias', 'max_tokens', 'min_p', 'presence_penalty', @@ -10053,7 +11647,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-30b-a3b-thinking', + canonical_slug: 'qwen/qwen3-vl-30b-a3b-thinking', + hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Thinking', name: 'Qwen: Qwen3 VL 30B A3B Thinking', + created: 1759794479, + description: 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10071,6 +11669,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10091,7 +11690,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-32b-instruct', + canonical_slug: 'qwen/qwen3-vl-32b-instruct', + hugging_face_id: 'Qwen/Qwen3-VL-32B-Instruct', name: 'Qwen: Qwen3 VL 32B Instruct', + created: 1761231332, + description: 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10109,6 +11712,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'presence_penalty', @@ -10122,7 +11726,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-8b-instruct', + canonical_slug: 'qwen/qwen3-vl-8b-instruct', + hugging_face_id: 'Qwen/Qwen3-VL-8B-Instruct', name: 'Qwen: Qwen3 VL 8B Instruct', + created: 1760463308, + description: 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10140,6 +11748,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -10160,7 +11769,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3-vl-8b-thinking', + canonical_slug: 'qwen/qwen3-vl-8b-thinking', + hugging_face_id: 'Qwen/Qwen3-VL-8B-Thinking', name: 'Qwen: Qwen3 VL 8B Thinking', + created: 1760463746, + description: 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10178,6 +11791,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -10194,7 +11808,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-122b-a10b', + canonical_slug: 'qwen/qwen3.5-122b-a10b-20260224', + hugging_face_id: 'Qwen/Qwen3.5-122B-A10B', name: 'Qwen: Qwen3.5-122B-A10B', + created: 1772053789, + description: 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -10212,6 +11830,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10236,7 +11855,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-27b', + canonical_slug: 'qwen/qwen3.5-27b-20260224', + hugging_face_id: 'Qwen/Qwen3.5-27B', name: 'Qwen: Qwen3.5-27B', + created: 1772053810, + description: 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -10254,6 +11877,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10278,7 +11902,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-35b-a3b', + canonical_slug: 'qwen/qwen3.5-35b-a3b-20260224', + hugging_face_id: 'Qwen/Qwen3.5-35B-A3B', name: 'Qwen: Qwen3.5-35B-A3B', + created: 1772053822, + description: 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -10296,6 +11924,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10320,7 +11949,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-397b-a17b', + canonical_slug: 'qwen/qwen3.5-397b-a17b-20260216', + hugging_face_id: 'Qwen/Qwen3.5-397B-A17B', name: 'Qwen: Qwen3.5 397B A17B', + created: 1771223018, + description: 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -10338,6 +11971,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10360,7 +11994,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-9b', + canonical_slug: 'qwen/qwen3.5-9b-20260310', + hugging_face_id: 'Qwen/Qwen3.5-9B', name: 'Qwen: Qwen3.5-9B', + created: 1773152396, + description: 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', context_length: 256000, architecture: { modality: 'text+image+video->text', @@ -10375,9 +12013,10 @@ export const models: Array = [ }, top_provider: { context_length: 256000, - max_completion_tokens: 65536, + max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10401,7 +12040,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-flash-02-23', + canonical_slug: 'qwen/qwen3.5-flash-20260224', + hugging_face_id: null, name: 'Qwen: Qwen3.5-Flash', + created: 1772053776, + description: 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -10419,6 +12062,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -10435,7 +12079,11 @@ export const models: Array = [ }, { id: 'qwen/qwen3.5-plus-02-15', + canonical_slug: 'qwen/qwen3.5-plus-20260216', + hugging_face_id: '', name: 'Qwen: Qwen3.5 Plus 2026-02-15', + created: 1771229416, + description: 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -10453,6 +12101,46 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, + supported_parameters: [ + 'include_reasoning', + 'max_tokens', + 'presence_penalty', + 'reasoning', + 'response_format', + 'seed', + 'structured_outputs', + 'temperature', + 'tool_choice', + 'tools', + 'top_p', + ], + }, + { + id: 'qwen/qwen3.6-plus', + canonical_slug: 'qwen/qwen3.6-plus-04-02', + hugging_face_id: '', + name: 'Qwen: Qwen3.6 Plus', + created: 1775133557, + description: 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', + context_length: 1000000, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['text', 'image', 'video'], + output_modalities: ['text'], + tokenizer: 'Qwen3', + instruct_type: null, + }, + pricing: { + prompt: '0.000000325', + completion: '0.00000195', + }, + top_provider: { + context_length: 1000000, + max_completion_tokens: 65536, + is_moderated: false, + }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -10469,7 +12157,11 @@ export const models: Array = [ }, { id: 'qwen/qwq-32b', + canonical_slug: 'qwen/qwq-32b', + hugging_face_id: 'Qwen/QwQ-32B', name: 'Qwen: QwQ 32B', + created: 1741208814, + description: 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', context_length: 131072, architecture: { modality: 'text->text', @@ -10487,6 +12179,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10499,8 +12192,12 @@ export const models: Array = [ ], }, { - id: 'reka/reka-edge', + id: 'rekaai/reka-edge', + canonical_slug: 'rekaai/reka-edge-2603', + hugging_face_id: 'RekaAI/reka-edge-2603', name: 'Reka Edge', + created: 1774026965, + description: 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', context_length: 16384, architecture: { modality: 'text+image+video->text', @@ -10518,6 +12215,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -10532,9 +12230,51 @@ export const models: Array = [ 'top_p', ], }, + { + id: 'rekaai/reka-flash-3', + canonical_slug: 'rekaai/reka-flash-3', + hugging_face_id: 'RekaAI/reka-flash-3', + name: 'Reka Flash 3', + created: 1741812813, + description: 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', + context_length: 65536, + architecture: { + modality: 'text->text', + input_modalities: ['text'], + output_modalities: ['text'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0.0000001', + completion: '0.0000002', + }, + top_provider: { + context_length: 65536, + max_completion_tokens: 65536, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'frequency_penalty', + 'include_reasoning', + 'max_tokens', + 'presence_penalty', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'top_k', + 'top_p', + ], + }, { id: 'relace/relace-apply-3', + canonical_slug: 'relace/relace-apply-3', + hugging_face_id: '', name: 'Relace: Relace Apply 3', + created: 1758891572, + description: 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', context_length: 256000, architecture: { modality: 'text->text', @@ -10552,11 +12292,20 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: false, }, - supported_parameters: ['max_tokens', 'seed', 'stop'], + per_request_limits: null, + supported_parameters: [ + 'max_tokens', + 'seed', + 'stop', + ], }, { id: 'relace/relace-search', + canonical_slug: 'relace/relace-search-20251208', + hugging_face_id: null, name: 'Relace: Relace Search', + created: 1765213560, + description: 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', context_length: 256000, architecture: { modality: 'text->text', @@ -10574,6 +12323,7 @@ export const models: Array = [ max_completion_tokens: 128000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'seed', @@ -10586,7 +12336,11 @@ export const models: Array = [ }, { id: 'sao10k/l3-euryale-70b', + canonical_slug: 'sao10k/l3-euryale-70b', + hugging_face_id: 'Sao10K/L3-70B-Euryale-v2.1', name: 'Sao10k: Llama 3 Euryale 70B v2.1', + created: 1718668800, + description: 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', context_length: 8192, architecture: { modality: 'text->text', @@ -10604,6 +12358,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -10620,7 +12375,11 @@ export const models: Array = [ }, { id: 'sao10k/l3-lunaris-8b', + canonical_slug: 'sao10k/l3-lunaris-8b', + hugging_face_id: 'Sao10K/L3-8B-Lunaris-v1', name: 'Sao10K: Llama 3 8B Lunaris', + created: 1723507200, + description: 'Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It\'s a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....', context_length: 8192, architecture: { modality: 'text->text', @@ -10638,6 +12397,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -10655,7 +12415,11 @@ export const models: Array = [ }, { id: 'sao10k/l3.1-70b-hanami-x1', + canonical_slug: 'sao10k/l3.1-70b-hanami-x1', + hugging_face_id: 'Sao10K/L3.1-70B-Hanami-x1', name: 'Sao10K: Llama 3.1 70B Hanami x1', + created: 1736302854, + description: 'This is [Sao10K](/sao10k)\'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).', context_length: 16000, architecture: { modality: 'text->text', @@ -10673,6 +12437,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -10689,7 +12454,11 @@ export const models: Array = [ }, { id: 'sao10k/l3.1-euryale-70b', + canonical_slug: 'sao10k/l3.1-euryale-70b', + hugging_face_id: 'Sao10K/L3.1-70B-Euryale-v2.2', name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + created: 1724803200, + description: 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -10707,6 +12476,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'max_tokens', @@ -10716,7 +12486,6 @@ export const models: Array = [ 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'tool_choice', 'tools', @@ -10726,7 +12495,11 @@ export const models: Array = [ }, { id: 'sao10k/l3.3-euryale-70b', + canonical_slug: 'sao10k/l3.3-euryale-70b-v2.3', + hugging_face_id: 'Sao10K/L3.3-70B-Euryale-v2.3', name: 'Sao10K: Llama 3.3 Euryale 70B', + created: 1734535928, + description: 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -10744,6 +12517,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -10763,7 +12537,11 @@ export const models: Array = [ }, { id: 'stepfun/step-3.5-flash', + canonical_slug: 'stepfun/step-3.5-flash', + hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash', + created: 1769728337, + description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', context_length: 262144, architecture: { modality: 'text->text', @@ -10775,13 +12553,13 @@ export const models: Array = [ pricing: { prompt: '0.0000001', completion: '0.0000003', - input_cache_read: '0.00000002', }, top_provider: { context_length: 262144, - max_completion_tokens: null, + max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10794,6 +12572,7 @@ export const models: Array = [ 'seed', 'stop', 'temperature', + 'tool_choice', 'tools', 'top_k', 'top_p', @@ -10801,7 +12580,11 @@ export const models: Array = [ }, { id: 'stepfun/step-3.5-flash:free', + canonical_slug: 'stepfun/step-3.5-flash', + hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash (free)', + created: 1769728337, + description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', context_length: 256000, architecture: { modality: 'text->text', @@ -10819,6 +12602,7 @@ export const models: Array = [ max_completion_tokens: 256000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10832,7 +12616,11 @@ export const models: Array = [ }, { id: 'switchpoint/router', + canonical_slug: 'switchpoint/router', + hugging_face_id: '', name: 'Switchpoint Router', + created: 1752272899, + description: 'Switchpoint AI\'s router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...', context_length: 131072, architecture: { modality: 'text->text', @@ -10850,6 +12638,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -10863,7 +12652,11 @@ export const models: Array = [ }, { id: 'tencent/hunyuan-a13b-instruct', + canonical_slug: 'tencent/hunyuan-a13b-instruct', + hugging_face_id: 'tencent/Hunyuan-A13B-Instruct', name: 'Tencent: Hunyuan A13B Instruct', + created: 1751987664, + description: 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', context_length: 131072, architecture: { modality: 'text->text', @@ -10881,6 +12674,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -10894,7 +12688,11 @@ export const models: Array = [ }, { id: 'thedrummer/cydonia-24b-v4.1', + canonical_slug: 'thedrummer/cydonia-24b-v4.1', + hugging_face_id: 'thedrummer/cydonia-24b-v4.1', name: 'TheDrummer: Cydonia 24B V4.1', + created: 1758931878, + description: 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', context_length: 131072, architecture: { modality: 'text->text', @@ -10912,6 +12710,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -10927,7 +12726,11 @@ export const models: Array = [ }, { id: 'thedrummer/rocinante-12b', + canonical_slug: 'thedrummer/rocinante-12b', + hugging_face_id: 'TheDrummer/Rocinante-12B-v1.1', name: 'TheDrummer: Rocinante 12B', + created: 1727654400, + description: 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', context_length: 32768, architecture: { modality: 'text->text', @@ -10945,6 +12748,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -10967,7 +12771,11 @@ export const models: Array = [ }, { id: 'thedrummer/skyfall-36b-v2', + canonical_slug: 'thedrummer/skyfall-36b-v2', + hugging_face_id: 'TheDrummer/Skyfall-36B-v2', name: 'TheDrummer: Skyfall 36B V2', + created: 1741636566, + description: 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', context_length: 32768, architecture: { modality: 'text->text', @@ -10985,6 +12793,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -11000,7 +12809,11 @@ export const models: Array = [ }, { id: 'thedrummer/unslopnemo-12b', + canonical_slug: 'thedrummer/unslopnemo-12b', + hugging_face_id: 'TheDrummer/UnslopNemo-12B-v4.1', name: 'TheDrummer: UnslopNemo 12B', + created: 1731103448, + description: 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', context_length: 32768, architecture: { modality: 'text->text', @@ -11018,6 +12831,7 @@ export const models: Array = [ max_completion_tokens: 32768, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -11037,7 +12851,11 @@ export const models: Array = [ }, { id: 'tngtech/deepseek-r1t2-chimera', + canonical_slug: 'tngtech/deepseek-r1t2-chimera', + hugging_face_id: 'tngtech/DeepSeek-TNG-R1T2-Chimera', name: 'TNG: DeepSeek R1T2 Chimera', + created: 1751986985, + description: 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', context_length: 163840, architecture: { modality: 'text->text', @@ -11056,6 +12874,7 @@ export const models: Array = [ max_completion_tokens: 163840, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11076,7 +12895,11 @@ export const models: Array = [ }, { id: 'undi95/remm-slerp-l2-13b', + canonical_slug: 'undi95/remm-slerp-l2-13b', + hugging_face_id: 'Undi95/ReMM-SLERP-L2-13B', name: 'ReMM SLERP 13B', + created: 1689984000, + description: 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', context_length: 6144, architecture: { modality: 'text->text', @@ -11094,6 +12917,7 @@ export const models: Array = [ max_completion_tokens: 4096, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logit_bias', @@ -11115,7 +12939,11 @@ export const models: Array = [ }, { id: 'upstage/solar-pro-3', + canonical_slug: 'upstage/solar-pro-3', + hugging_face_id: '', name: 'Upstage: Solar Pro 3', + created: 1769481200, + description: 'Solar Pro 3 is Upstage\'s powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...', context_length: 128000, architecture: { modality: 'text->text', @@ -11134,6 +12962,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -11147,7 +12976,11 @@ export const models: Array = [ }, { id: 'writer/palmyra-x5', + canonical_slug: 'writer/palmyra-x5-20250428', + hugging_face_id: '', name: 'Writer: Palmyra X5', + created: 1769003823, + description: 'Palmyra X5 is Writer\'s most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...', context_length: 1040000, architecture: { modality: 'text->text', @@ -11165,6 +12998,7 @@ export const models: Array = [ max_completion_tokens: 8192, is_moderated: true, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'stop', @@ -11175,7 +13009,11 @@ export const models: Array = [ }, { id: 'x-ai/grok-3', + canonical_slug: 'x-ai/grok-3', + hugging_face_id: '', name: 'xAI: Grok 3', + created: 1749582908, + description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', context_length: 131072, architecture: { modality: 'text->text', @@ -11195,6 +13033,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -11213,7 +13052,11 @@ export const models: Array = [ }, { id: 'x-ai/grok-3-beta', + canonical_slug: 'x-ai/grok-3-beta', + hugging_face_id: '', name: 'xAI: Grok 3 Beta', + created: 1744240068, + description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', context_length: 131072, architecture: { modality: 'text->text', @@ -11233,6 +13076,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'logprobs', @@ -11250,7 +13094,11 @@ export const models: Array = [ }, { id: 'x-ai/grok-3-mini', + canonical_slug: 'x-ai/grok-3-mini', + hugging_face_id: '', name: 'xAI: Grok 3 Mini', + created: 1749583245, + description: 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', context_length: 131072, architecture: { modality: 'text->text', @@ -11270,6 +13118,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11288,7 +13137,11 @@ export const models: Array = [ }, { id: 'x-ai/grok-3-mini-beta', + canonical_slug: 'x-ai/grok-3-mini-beta', + hugging_face_id: '', name: 'xAI: Grok 3 Mini Beta', + created: 1744240195, + description: 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', context_length: 131072, architecture: { modality: 'text->text', @@ -11308,6 +13161,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11325,11 +13179,15 @@ export const models: Array = [ }, { id: 'x-ai/grok-4', + canonical_slug: 'x-ai/grok-4-07-09', + hugging_face_id: '', name: 'xAI: Grok 4', + created: 1752087689, + description: 'Grok 4 is xAI\'s latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...', context_length: 256000, architecture: { - modality: 'text+image->text', - input_modalities: ['image', 'text'], + modality: 'text+image+file->text', + input_modalities: ['image', 'text', 'file'], output_modalities: ['text'], tokenizer: 'Grok', instruct_type: null, @@ -11345,6 +13203,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11362,11 +13221,15 @@ export const models: Array = [ }, { id: 'x-ai/grok-4-fast', + canonical_slug: 'x-ai/grok-4-fast', + hugging_face_id: '', name: 'xAI: Grok 4 Fast', + created: 1758240090, + description: 'Grok 4 Fast is xAI\'s latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...', context_length: 2000000, architecture: { - modality: 'text+image->text', - input_modalities: ['text', 'image'], + modality: 'text+image+file->text', + input_modalities: ['text', 'image', 'file'], output_modalities: ['text'], tokenizer: 'Grok', instruct_type: null, @@ -11382,6 +13245,7 @@ export const models: Array = [ max_completion_tokens: 30000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11399,11 +13263,15 @@ export const models: Array = [ }, { id: 'x-ai/grok-4.1-fast', + canonical_slug: 'x-ai/grok-4.1-fast', + hugging_face_id: '', name: 'xAI: Grok 4.1 Fast', + created: 1763587502, + description: 'Grok 4.1 Fast is xAI\'s best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...', context_length: 2000000, architecture: { - modality: 'text+image->text', - input_modalities: ['text', 'image'], + modality: 'text+image+file->text', + input_modalities: ['text', 'image', 'file'], output_modalities: ['text'], tokenizer: 'Grok', instruct_type: null, @@ -11419,6 +13287,7 @@ export const models: Array = [ max_completion_tokens: 30000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11435,12 +13304,16 @@ export const models: Array = [ ], }, { - id: 'x-ai/grok-4.20-beta', - name: 'xAI: Grok 4.20 Beta', + id: 'x-ai/grok-4.20', + canonical_slug: 'x-ai/grok-4.20-20260309', + hugging_face_id: '', + name: 'xAI: Grok 4.20', + created: 1774979019, + description: 'Grok 4.20 is xAI\'s newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...', context_length: 2000000, architecture: { - modality: 'text+image->text', - input_modalities: ['text', 'image'], + modality: 'text+image+file->text', + input_modalities: ['text', 'image', 'file'], output_modalities: ['text'], tokenizer: 'Grok', instruct_type: null, @@ -11456,6 +13329,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11472,12 +13346,16 @@ export const models: Array = [ ], }, { - id: 'x-ai/grok-4.20-multi-agent-beta', - name: 'xAI: Grok 4.20 Multi-Agent Beta', + id: 'x-ai/grok-4.20-multi-agent', + canonical_slug: 'x-ai/grok-4.20-multi-agent-20260309', + hugging_face_id: '', + name: 'xAI: Grok 4.20 Multi-Agent', + created: 1774979158, + description: 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', context_length: 2000000, architecture: { - modality: 'text+image->text', - input_modalities: ['text', 'image'], + modality: 'text+image+file->text', + input_modalities: ['text', 'image', 'file'], output_modalities: ['text'], tokenizer: 'Grok', instruct_type: null, @@ -11493,6 +13371,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11508,7 +13387,11 @@ export const models: Array = [ }, { id: 'x-ai/grok-code-fast-1', + canonical_slug: 'x-ai/grok-code-fast-1', + hugging_face_id: '', name: 'xAI: Grok Code Fast 1', + created: 1756238927, + description: 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', context_length: 256000, architecture: { modality: 'text->text', @@ -11528,6 +13411,7 @@ export const models: Array = [ max_completion_tokens: 10000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'logprobs', @@ -11546,7 +13430,11 @@ export const models: Array = [ }, { id: 'xiaomi/mimo-v2-flash', + canonical_slug: 'xiaomi/mimo-v2-flash-20251210', + hugging_face_id: 'XiaomiMiMo/MiMo-V2-Flash', name: 'Xiaomi: MiMo-V2-Flash', + created: 1765731308, + description: 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', context_length: 262144, architecture: { modality: 'text->text', @@ -11565,6 +13453,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11587,7 +13476,11 @@ export const models: Array = [ }, { id: 'xiaomi/mimo-v2-omni', + canonical_slug: 'xiaomi/mimo-v2-omni-20260318', + hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Omni', + created: 1773863703, + description: 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', context_length: 262144, architecture: { modality: 'text+image+audio+video->text', @@ -11606,6 +13499,7 @@ export const models: Array = [ max_completion_tokens: 65536, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11622,7 +13516,11 @@ export const models: Array = [ }, { id: 'xiaomi/mimo-v2-pro', + canonical_slug: 'xiaomi/mimo-v2-pro-20260318', + hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Pro', + created: 1773863643, + description: 'MiMo-V2-Pro is Xiaomi\'s flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...', context_length: 1048576, architecture: { modality: 'text->text', @@ -11641,6 +13539,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11657,7 +13556,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4-32b', + canonical_slug: 'z-ai/glm-4-32b-0414', + hugging_face_id: '', name: 'Z.ai: GLM 4 32B ', + created: 1753376617, + description: 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', context_length: 128000, architecture: { modality: 'text->text', @@ -11675,6 +13578,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'max_tokens', 'temperature', @@ -11685,7 +13589,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.5', + canonical_slug: 'z-ai/glm-4.5', + hugging_face_id: 'zai-org/GLM-4.5', name: 'Z.ai: GLM 4.5', + created: 1753471347, + description: 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', context_length: 131072, architecture: { modality: 'text->text', @@ -11704,6 +13612,7 @@ export const models: Array = [ max_completion_tokens: 98304, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11724,7 +13633,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.5-air', + canonical_slug: 'z-ai/glm-4.5-air', + hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air', + created: 1753471258, + description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -11743,6 +13656,7 @@ export const models: Array = [ max_completion_tokens: 98304, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11763,7 +13677,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.5-air:free', + canonical_slug: 'z-ai/glm-4.5-air', + hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air (free)', + created: 1753471258, + description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -11781,6 +13699,7 @@ export const models: Array = [ max_completion_tokens: 96000, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'include_reasoning', 'max_tokens', @@ -11793,7 +13712,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.5v', + canonical_slug: 'z-ai/glm-4.5v', + hugging_face_id: 'zai-org/GLM-4.5V', name: 'Z.ai: GLM 4.5V', + created: 1754922288, + description: 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', context_length: 65536, architecture: { modality: 'text+image->text', @@ -11812,6 +13735,7 @@ export const models: Array = [ max_completion_tokens: 16384, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11819,10 +13743,8 @@ export const models: Array = [ 'presence_penalty', 'reasoning', 'repetition_penalty', - 'response_format', 'seed', 'stop', - 'structured_outputs', 'temperature', 'tool_choice', 'tools', @@ -11832,7 +13754,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.6', + canonical_slug: 'z-ai/glm-4.6', + hugging_face_id: 'zai-org/GLM-4.6', name: 'Z.ai: GLM 4.6', + created: 1759235576, + description: 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', context_length: 204800, architecture: { modality: 'text->text', @@ -11850,6 +13776,7 @@ export const models: Array = [ max_completion_tokens: 204800, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11872,7 +13799,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.6v', + canonical_slug: 'z-ai/glm-4.6-20251208', + hugging_face_id: 'zai-org/GLM-4.6V', name: 'Z.ai: GLM 4.6V', + created: 1765207462, + description: 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -11890,6 +13821,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11911,7 +13843,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-4.7', + canonical_slug: 'z-ai/glm-4.7-20251222', + hugging_face_id: 'zai-org/GLM-4.7', name: 'Z.ai: GLM 4.7', + created: 1766378014, + description: 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', context_length: 202752, architecture: { modality: 'text->text', @@ -11930,10 +13866,12 @@ export const models: Array = [ max_completion_tokens: 65535, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', 'logit_bias', + 'logprobs', 'max_tokens', 'min_p', 'presence_penalty', @@ -11947,12 +13885,17 @@ export const models: Array = [ 'tool_choice', 'tools', 'top_k', + 'top_logprobs', 'top_p', ], }, { id: 'z-ai/glm-4.7-flash', + canonical_slug: 'z-ai/glm-4.7-flash-20260119', + hugging_face_id: 'zai-org/GLM-4.7-Flash', name: 'Z.ai: GLM 4.7 Flash', + created: 1768833913, + description: 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', context_length: 202752, architecture: { modality: 'text->text', @@ -11971,6 +13914,7 @@ export const models: Array = [ max_completion_tokens: null, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -11992,7 +13936,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-5', + canonical_slug: 'z-ai/glm-5-20260211', + hugging_face_id: 'zai-org/GLM-5', name: 'Z.ai: GLM 5', + created: 1770829182, + description: 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', context_length: 80000, architecture: { modality: 'text->text', @@ -12010,6 +13958,7 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', @@ -12034,7 +13983,11 @@ export const models: Array = [ }, { id: 'z-ai/glm-5-turbo', + canonical_slug: 'z-ai/glm-5-turbo-20260315', + hugging_face_id: '', name: 'Z.ai: GLM 5 Turbo', + created: 1773583573, + description: 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', context_length: 202752, architecture: { modality: 'text->text', @@ -12053,10 +14006,56 @@ export const models: Array = [ max_completion_tokens: 131072, is_moderated: false, }, + per_request_limits: null, + supported_parameters: [ + 'frequency_penalty', + 'include_reasoning', + 'logit_bias', + 'max_tokens', + 'min_p', + 'presence_penalty', + 'reasoning', + 'repetition_penalty', + 'response_format', + 'seed', + 'stop', + 'temperature', + 'tool_choice', + 'tools', + 'top_k', + 'top_p', + ], + }, + { + id: 'z-ai/glm-5.1', + canonical_slug: 'z-ai/glm-5.1-20260406', + hugging_face_id: 'zai-org/GLM-5.1', + name: 'Z.ai: GLM 5.1', + created: 1775578025, + description: 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', + context_length: 202752, + architecture: { + modality: 'text->text', + input_modalities: ['text'], + output_modalities: ['text'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0.00000126', + completion: '0.00000396', + }, + top_provider: { + context_length: 202752, + max_completion_tokens: null, + is_moderated: false, + }, + per_request_limits: null, supported_parameters: [ 'frequency_penalty', 'include_reasoning', 'logit_bias', + 'logprobs', 'max_tokens', 'min_p', 'presence_penalty', @@ -12065,11 +14064,50 @@ export const models: Array = [ 'response_format', 'seed', 'stop', + 'structured_outputs', 'temperature', 'tool_choice', 'tools', 'top_k', + 'top_logprobs', 'top_p', ], }, + { + id: 'z-ai/glm-5v-turbo', + canonical_slug: 'z-ai/glm-5v-turbo-20260401', + hugging_face_id: '', + name: 'Z.ai: GLM 5V Turbo', + created: 1775061458, + description: 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', + context_length: 202752, + architecture: { + modality: 'text+image+video->text', + input_modalities: ['image', 'text', 'video'], + output_modalities: ['text'], + tokenizer: 'Other', + instruct_type: null, + }, + pricing: { + prompt: '0.0000012', + completion: '0.000004', + input_cache_read: '0.00000024', + }, + top_provider: { + context_length: 202752, + max_completion_tokens: 131072, + is_moderated: false, + }, + per_request_limits: null, + supported_parameters: [ + 'include_reasoning', + 'max_tokens', + 'reasoning', + 'response_format', + 'temperature', + 'tool_choice', + 'tools', + 'top_p', + ], + } ] From eaaa9f1e0f4fb8e87bc56712f6d67c4351353416 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:28:43 +0200 Subject: [PATCH 02/20] feat: add script to sync OpenRouter models into provider packages --- scripts/sync-provider-models.ts | 530 ++++++++++++++++++++++++++++++++ 1 file changed, 530 insertions(+) create mode 100644 scripts/sync-provider-models.ts diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts new file mode 100644 index 00000000..f1ecefc9 --- /dev/null +++ b/scripts/sync-provider-models.ts @@ -0,0 +1,530 @@ +/** + * Syncs OpenRouter models into native provider model-meta.ts files. + * + * For each supported provider (OpenAI, Anthropic, Gemini, Grok), this script: + * 1. Reads the OpenRouter model list + * 2. Filters models matching the provider prefix + * 3. Identifies models missing from the provider's model-meta.ts + * 4. Generates and inserts new model constants, array entries, and type map entries + * + * Usage: + * pnpm tsx scripts/sync-provider-models.ts + */ + +import { readFile, writeFile } from 'node:fs/promises' +import { resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' +import { models } from './openrouter.models' +import type { OpenRouterModel } from './openrouter.models' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const ROOT = resolve(__dirname, '..') + +// --------------------------------------------------------------------------- +// Provider configuration +// --------------------------------------------------------------------------- + +interface ProviderConfig { + metaFile: string + /** How array entries reference the constant, e.g. '.name' or '.id' */ + arrayRef: '.name' | '.id' + /** Which field name is used for context window size */ + contextField: 'context_window' | 'max_input_tokens' + /** Name of the exported chat model array */ + chatArrayName: string + /** Name of the provider options type map */ + providerOptionsTypeName: string + /** Name of the input modalities type map */ + inputModalitiesTypeName: string + /** The full supports block to copy for new models */ + referenceSupports: string + /** The satisfies type clause (after 'as const satisfies') */ + referenceSatisfies: string + /** The type string for provider options map entries */ + referenceProviderOptionsEntry: string + /** Whether this provider has both name AND id fields */ + hasBothNameAndId: boolean + /** Whether the provider options type is a mapped type (skip insertion) */ + providerOptionsIsMappedType: boolean +} + +const PROVIDER_MAP: Record = { + 'openai/': { + metaFile: resolve(ROOT, 'packages/typescript/ai-openai/src/model-meta.ts'), + arrayRef: '.name', + contextField: 'context_window', + chatArrayName: 'OPENAI_CHAT_MODELS', + providerOptionsTypeName: 'OpenAIChatModelProviderOptionsByName', + inputModalitiesTypeName: 'OpenAIModelInputModalitiesByName', + referenceSupports: ` supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + },`, + referenceSatisfies: + 'ModelMeta', + referenceProviderOptionsEntry: + 'OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions', + hasBothNameAndId: false, + providerOptionsIsMappedType: false, + }, + 'anthropic/': { + metaFile: resolve( + ROOT, + 'packages/typescript/ai-anthropic/src/model-meta.ts', + ), + arrayRef: '.id', + contextField: 'context_window', + chatArrayName: 'ANTHROPIC_MODELS', + providerOptionsTypeName: 'AnthropicChatModelProviderOptionsByName', + inputModalitiesTypeName: 'AnthropicModelInputModalitiesByName', + referenceSupports: ` supports: { + input: ['text', 'image', 'document'], + extended_thinking: true, + priority_tier: true, + },`, + referenceSatisfies: + 'ModelMeta', + referenceProviderOptionsEntry: + 'AnthropicContainerOptions & AnthropicContextManagementOptions & AnthropicMCPOptions & AnthropicServiceTierOptions & AnthropicStopSequencesOptions & AnthropicThinkingOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions', + hasBothNameAndId: true, + providerOptionsIsMappedType: false, + }, + 'google/': { + metaFile: resolve(ROOT, 'packages/typescript/ai-gemini/src/model-meta.ts'), + arrayRef: '.name', + contextField: 'max_input_tokens', + chatArrayName: 'GEMINI_MODELS', + providerOptionsTypeName: 'GeminiChatModelProviderOptionsByName', + inputModalitiesTypeName: 'GeminiModelInputModalitiesByName', + referenceSupports: ` supports: { + input: ['text', 'image', 'audio', 'video', 'document'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + },`, + referenceSatisfies: + 'ModelMeta', + referenceProviderOptionsEntry: + 'GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions', + hasBothNameAndId: false, + providerOptionsIsMappedType: false, + }, + 'x-ai/': { + metaFile: resolve(ROOT, 'packages/typescript/ai-grok/src/model-meta.ts'), + arrayRef: '.name', + contextField: 'context_window', + chatArrayName: 'GROK_CHAT_MODELS', + providerOptionsTypeName: 'GrokChatModelProviderOptionsByName', + inputModalitiesTypeName: 'GrokModelInputModalitiesByName', + referenceSupports: ` supports: { + input: ['text', 'image'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + },`, + referenceSatisfies: 'ModelMeta', + referenceProviderOptionsEntry: 'GrokProviderOptions', + hasBothNameAndId: false, + providerOptionsIsMappedType: true, + }, +} + +// --------------------------------------------------------------------------- +// Utility functions +// --------------------------------------------------------------------------- + +/** Strip the provider prefix from an OpenRouter model ID */ +function stripPrefix(prefix: string, modelId: string): string { + return modelId.slice(prefix.length) +} + +/** + * Convert a model ID (after prefix stripping) to a TypeScript constant name. + * E.g. 'gpt-6' -> 'GPT_6', 'grok-4.20-multi-agent' -> 'GROK_4_20_MULTI_AGENT' + */ +function toConstName(prefix: string, modelId: string): string { + const stripped = stripPrefix(prefix, modelId) + return stripped + .replace(/[-]/g, '_') + .replace(/[.]/g, '_') + .replace(/[:]/g, '_') + .replace(/[/]/g, '_') + .toUpperCase() +} + +/** + * Convert an OpenRouter price string to per-million-token pricing. + * Same logic as the existing convert script. + */ +function convertPrice(priceStr: string | undefined): number { + const price = parseFloat(priceStr ?? '0') + if (isNaN(price)) return 0 + const result = price * 1_000_000 + return Math.round(result * 1e10) / 1e10 +} + +/** + * Normalize a model ID for comparison. + * Handles cases where the same model uses dots vs dashes + * (e.g., Anthropic's 'claude-3-5-haiku' vs OpenRouter's 'claude-3.5-haiku'). + */ +function normalizeId(id: string): string { + return id.replace(/[.]/g, '-') +} + +/** + * Extract existing model IDs from a model-meta file. + * Matches BOTH name: 'xxx' AND id: 'xxx' lines to get a complete set, + * since providers like Anthropic use different naming between name and id. + * Returns a normalized set for comparison purposes. + */ +function extractExistingModelIds(content: string): Set { + const ids = new Set() + // Match both name and id fields inside const blocks + const nameRegex = /^\s+name:\s*'([^']+)'/gm + const idRegex = /^\s+id:\s*'([^']+)'/gm + let match + while ((match = nameRegex.exec(content)) !== null) { + ids.add(normalizeId(match[1]!)) + } + while ((match = idRegex.exec(content)) !== null) { + ids.add(normalizeId(match[1]!)) + } + return ids +} + +/** + * Extract existing constant names from a model-meta file. + * Matches: const UPPER_CASE_NAME = + */ +function extractExistingConstNames(content: string): Set { + const names = new Set() + const regex = /^const\s+([A-Z][A-Z0-9_]+)\s*=/gm + let match + while ((match = regex.exec(content)) !== null) { + names.add(match[1]!) + } + return names +} + +/** + * Check if an OpenRouter model outputs text (for chat model array). + */ +function outputsText(model: OpenRouterModel): boolean { + return model.architecture.output_modalities.includes('text') +} + +/** + * Check if an OpenRouter model outputs ONLY images (no text output). + * Image-only models are skipped entirely because image model arrays + * require manual curation with specialized type maps (sizes, provider options). + */ +function isImageOnlyModel(model: OpenRouterModel): boolean { + return ( + model.architecture.output_modalities.includes('image') && + !model.architecture.output_modalities.includes('text') + ) +} + +// --------------------------------------------------------------------------- +// Model constant generation +// --------------------------------------------------------------------------- + +function generateModelConstant( + model: OpenRouterModel, + prefix: string, + config: ProviderConfig, +): string { + const constName = toConstName(prefix, model.id) + const strippedId = stripPrefix(prefix, model.id) + + const inputNormal = convertPrice(model.pricing.prompt) + const inputCached = convertPrice(model.pricing.input_cache_read) + const outputNormal = convertPrice(model.pricing.completion) + + const lines: Array = [] + lines.push(`const ${constName} = {`) + + // name field + lines.push(` name: '${strippedId}',`) + + // id field (Anthropic has both name and id, set to same value for new models) + if (config.hasBothNameAndId) { + lines.push(` id: '${strippedId}',`) + } + + // context / max_input_tokens + if (model.context_length > 0) { + lines.push( + ` ${config.contextField}: ${formatNumber(model.context_length)},`, + ) + } + + // max_output_tokens + if (model.top_provider.max_completion_tokens) { + lines.push( + ` max_output_tokens: ${formatNumber(model.top_provider.max_completion_tokens)},`, + ) + } + + // pricing + lines.push(` pricing: {`) + lines.push(` input: {`) + lines.push(` normal: ${inputNormal},`) + if (inputCached > 0) { + lines.push(` cached: ${inputCached},`) + } + lines.push(` },`) + lines.push(` output: {`) + lines.push(` normal: ${outputNormal},`) + lines.push(` },`) + lines.push(` },`) + + // supports block (copied from reference) + lines.push(config.referenceSupports) + + lines.push(`} as const satisfies ${config.referenceSatisfies}`) + + return lines.join('\n') +} + +/** + * Format a number with underscore separators for readability. + * E.g. 131072 -> '131_072', 200000 -> '200_000' + */ +function formatNumber(n: number): string { + if (n < 1000) return String(n) + const str = String(n) + // Insert underscores every 3 digits from the right + const parts: Array = [] + let remaining = str + while (remaining.length > 3) { + parts.unshift(remaining.slice(-3)) + remaining = remaining.slice(0, -3) + } + parts.unshift(remaining) + return parts.join('_') +} + +// --------------------------------------------------------------------------- +// File modification +// --------------------------------------------------------------------------- + +/** + * Insert new model constants before the first `export` statement. + */ +function insertConstants(content: string, constants: Array): string { + const block = '\n' + constants.join('\n\n') + '\n' + // Find the first `\nexport ` that is not inside a comment + const exportIndex = content.indexOf('\nexport ') + if (exportIndex === -1) { + // Fallback: append before end of file + return content + block + } + return content.slice(0, exportIndex) + block + content.slice(exportIndex) +} + +/** + * Add entries to an array like: export const ARRAY_NAME = [ ... ] as const + * Uses a regex with the `s` flag (dotAll) to match across newlines. + */ +function addToArray( + content: string, + arrayName: string, + entries: Array, + arrayRef: string, +): string { + // Match the array declaration: export const ARRAY_NAME = [...] as const + const pattern = new RegExp( + `(export const ${arrayName} = \\[[^\\]]*)(\\] as const)`, + 's', + ) + const match = pattern.exec(content) + if (!match) { + console.warn(` Warning: Could not find array '${arrayName}' in file`) + return content + } + + const newEntries = entries + .map((constName) => ` ${constName}${arrayRef},`) + .join('\n') + return content.replace(pattern, `${match[1]}\n${newEntries}\n${match[2]}`) +} + +/** + * Add entries to a type map like: + * export type TypeName = { + * ...existing entries... + * } + */ +function addToTypeMap( + content: string, + typeName: string, + entries: Array, +): string { + // Match: export type TypeName = { ... \n} + const pattern = new RegExp( + `(export type ${typeName} = \\{[\\s\\S]*?)(\\n\\})`, + ) + const match = pattern.exec(content) + if (!match) { + console.warn(` Warning: Could not find type map '${typeName}' in file`) + return content + } + + const newEntries = entries.join('\n') + return content.replace(pattern, `${match[1]}\n${newEntries}${match[2]}`) +} + +// --------------------------------------------------------------------------- +// Main +// --------------------------------------------------------------------------- + +async function main() { + let totalAdded = 0 + + for (const [prefix, config] of Object.entries(PROVIDER_MAP)) { + console.log(`\nProcessing provider: ${prefix}`) + + // Filter OpenRouter models for this prefix + const providerModels = models.filter((m) => m.id.startsWith(prefix)) + console.log( + ` Found ${providerModels.length} OpenRouter models with prefix '${prefix}'`, + ) + + // Read the provider's model-meta.ts + let content: string + try { + content = await readFile(config.metaFile, 'utf-8') + } catch { + console.warn(` Skipping: could not read ${config.metaFile}`) + continue + } + + // Extract existing model IDs (normalized) and constant names + const existingIds = extractExistingModelIds(content) + const existingConstNames = extractExistingConstNames(content) + + console.log( + ` Existing models in file: ${existingIds.size} IDs, ${existingConstNames.size} constants`, + ) + + // Find new models + const newModels: Array<{ + model: OpenRouterModel + constName: string + strippedId: string + }> = [] + + for (const model of providerModels) { + const strippedId = stripPrefix(prefix, model.id) + const constName = toConstName(prefix, model.id) + + // Skip models with ':' variants (e.g., 'anthropic/claude-3.7-sonnet:thinking') + // These are routing variants, not separate models + if (strippedId.includes(':')) { + continue + } + + // Normalize for comparison to handle dots-vs-dashes naming differences + if ( + !existingIds.has(normalizeId(strippedId)) && + !existingConstNames.has(constName) + ) { + newModels.push({ model, constName, strippedId }) + } + } + + if (newModels.length === 0) { + console.log(' No new models to add.') + continue + } + + console.log(` Adding ${newModels.length} new models:`) + for (const { strippedId, constName } of newModels) { + console.log(` - ${strippedId} (${constName})`) + } + + // Filter out image-only models (they need manual curation for size/provider type maps) + const filteredModels = newModels.filter( + ({ model }) => !isImageOnlyModel(model), + ) + const skippedImageOnly = newModels.length - filteredModels.length + if (skippedImageOnly > 0) { + console.log( + ` Skipping ${skippedImageOnly} image-only models (require manual curation)`, + ) + } + + if (filteredModels.length === 0) { + console.log(' No eligible models to add after filtering.') + continue + } + + // Generate constants + const constants = filteredModels.map(({ model }) => + generateModelConstant(model, prefix, config), + ) + + // Insert constants before first export + content = insertConstants(content, constants) + + // All non-image-only models go into the chat array + // (models that output both text and image are still chat models) + const chatModels = filteredModels.filter(({ model }) => outputsText(model)) + + if (chatModels.length > 0) { + content = addToArray( + content, + config.chatArrayName, + chatModels.map(({ constName }) => constName), + config.arrayRef, + ) + } + + // NOTE: We intentionally do NOT add models to image arrays. + // Image model arrays have specialized type maps (sizes, provider options) + // that require manual curation. + + // Add to provider options type map (skip for Grok - uses mapped type) + if (!config.providerOptionsIsMappedType && chatModels.length > 0) { + const providerOptionsEntries = chatModels.map( + ({ constName }) => + ` [${constName}${config.arrayRef}]: ${config.referenceProviderOptionsEntry}`, + ) + if (providerOptionsEntries.length > 0) { + content = addToTypeMap( + content, + config.providerOptionsTypeName, + providerOptionsEntries, + ) + } + } + + // Add to input modalities type map + const modalityEntries = chatModels.map( + ({ constName }) => + ` [${constName}${config.arrayRef}]: typeof ${constName}.supports.input`, + ) + if (modalityEntries.length > 0) { + content = addToTypeMap( + content, + config.inputModalitiesTypeName, + modalityEntries, + ) + } + + // Write the modified file + await writeFile(config.metaFile, content, 'utf-8') + console.log(` Wrote updated file: ${config.metaFile}`) + totalAdded += filteredModels.length + } + + console.log(`\nDone. Added ${totalAdded} new models total.`) +} + +main().catch((err) => { + console.error(err) + process.exit(1) +}) From a7f28416acef0e9f8d92edaf01d29910fd73fa5e Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:40:35 +0200 Subject: [PATCH 03/20] fix: harden regex and replacement patterns in sync script Use replacer functions in String.replace() to prevent $-character interpretation, and use non-greedy regex for array matching to handle potential ] characters in comments. --- scripts/sync-provider-models.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index f1ecefc9..4c0ae2b9 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -336,9 +336,9 @@ function addToArray( arrayRef: string, ): string { // Match the array declaration: export const ARRAY_NAME = [...] as const + // Uses [\s\S]*? (non-greedy) instead of [^\]]* to handle ] inside comments const pattern = new RegExp( - `(export const ${arrayName} = \\[[^\\]]*)(\\] as const)`, - 's', + `(export const ${arrayName} = \\[\\s*[\\s\\S]*?)(\\] as const)`, ) const match = pattern.exec(content) if (!match) { @@ -349,7 +349,8 @@ function addToArray( const newEntries = entries .map((constName) => ` ${constName}${arrayRef},`) .join('\n') - return content.replace(pattern, `${match[1]}\n${newEntries}\n${match[2]}`) + // Use replacer function to prevent $-character interpretation in replacement string + return content.replace(pattern, () => `${match[1]}\n${newEntries}\n${match[2]}`) } /** @@ -374,7 +375,8 @@ function addToTypeMap( } const newEntries = entries.join('\n') - return content.replace(pattern, `${match[1]}\n${newEntries}${match[2]}`) + // Use replacer function to prevent $-character interpretation in replacement string + return content.replace(pattern, () => `${match[1]}\n${newEntries}${match[2]}`) } // --------------------------------------------------------------------------- From 0be4eeeb7a84518d864ba0951e60039fb43e4406 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:41:03 +0200 Subject: [PATCH 04/20] feat: add generate:models:fetch and generate:models:sync scripts --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index 2c3b222a..8f155e66 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,8 @@ "format": "prettier --experimental-cli --ignore-unknown '**/*' --write", "generate-docs": "node scripts/generate-docs.ts && pnpm run copy:readme", "generate:models": "tsx scripts/convert-openrouter-models.ts", + "generate:models:fetch": "tsx scripts/fetch-openrouter-models.ts", + "generate:models:sync": "pnpm generate:models:fetch && pnpm generate:models && tsx scripts/sync-provider-models.ts", "sync-docs-config": "node scripts/sync-docs-config.ts", "copy:readme": "cp README.md packages/typescript/ai/README.md && cp README.md packages/typescript/ai-devtools/README.md && cp README.md packages/typescript/preact-ai-devtools/README.md && cp README.md packages/typescript/ai-client/README.md && cp README.md packages/typescript/ai-gemini/README.md && cp README.md packages/typescript/ai-ollama/README.md && cp README.md packages/typescript/ai-openai/README.md && cp README.md packages/typescript/ai-react/README.md && cp README.md packages/typescript/ai-react-ui/README.md && cp README.md packages/typescript/react-ai-devtools/README.md && cp README.md packages/typescript/solid-ai-devtools/README.md", "changeset": "changeset", From 6e636bef0121d108c9b282dba87ebf8edff4a0e3 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:44:02 +0200 Subject: [PATCH 05/20] ci: add daily model sync workflow --- .github/workflows/sync-models.yml | 116 ++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 .github/workflows/sync-models.yml diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml new file mode 100644 index 00000000..b0f69810 --- /dev/null +++ b/.github/workflows/sync-models.yml @@ -0,0 +1,116 @@ +name: Sync Model Metadata + +on: + schedule: + - cron: '0 6 * * *' + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + name: Sync Models + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6.0.2 + with: + fetch-depth: 0 + + - name: Setup Tools + uses: TanStack/config/.github/setup@main + + - name: Fetch and sync model metadata + run: pnpm generate:models:sync + + - name: Check for changes + id: changes + run: | + if git diff --quiet; then + echo "changed=false" >> $GITHUB_OUTPUT + else + echo "changed=true" >> $GITHUB_OUTPUT + fi + + - name: Detect affected packages and create changeset + if: steps.changes.outputs.changed == 'true' + run: | + CHANGED_FILES=$(git diff --name-only) + TIMESTAMP=$(date +%s) + CHANGESET_FILE=".changeset/sync-models-${TIMESTAMP}.md" + + PACKAGES="" + if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openai/"; then + PACKAGES="${PACKAGES}'@tanstack/ai-openai': patch +" + fi + if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-anthropic/"; then + PACKAGES="${PACKAGES}'@tanstack/ai-anthropic': patch +" + fi + if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-gemini/"; then + PACKAGES="${PACKAGES}'@tanstack/ai-gemini': patch +" + fi + if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-grok/"; then + PACKAGES="${PACKAGES}'@tanstack/ai-grok': patch +" + fi + if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openrouter/"; then + PACKAGES="${PACKAGES}'@tanstack/ai-openrouter': patch +" + fi + + if [ -n "$PACKAGES" ]; then + printf '%s' "--- +${PACKAGES}--- + +Update model metadata from OpenRouter API +" > "$CHANGESET_FILE" + fi + + - name: Commit and force-push + if: steps.changes.outputs.changed == 'true' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add packages/ .changeset/ + git commit -m "chore: sync model metadata from OpenRouter" + git push --force origin HEAD:automated/sync-models + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create or update PR + if: steps.changes.outputs.changed == 'true' + run: | + BRANCH="automated/sync-models" + EXISTING_PR=$(gh pr list --head "$BRANCH" --base main --json number --jq '.[0].number' 2>/dev/null || true) + + if [ -z "$EXISTING_PR" ] || [ "$EXISTING_PR" = "null" ]; then + gh pr create \ + --title "chore: sync model metadata from OpenRouter" \ + --body "## Summary + +This automated PR syncs model metadata from the OpenRouter API daily. + +- Fetches the latest model list from OpenRouter +- Converts to the internal adapter format +- Syncs provider-specific model metadata for affected packages +- Creates a patch changeset for all changed packages + +## Review Checklist + +- [ ] Verify model additions/removals look correct +- [ ] Check that no unexpected packages were changed +- [ ] Confirm changeset bump type is appropriate (patch)" \ + --base main \ + --head "$BRANCH" + fi + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 07e63c2ee1b79064a3c2ac4d50a899dff29ff9a6 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 16:44:33 +0200 Subject: [PATCH 06/20] fix: include openrouter.models.ts in CI commit --- .github/workflows/sync-models.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml index b0f69810..06fff912 100644 --- a/.github/workflows/sync-models.yml +++ b/.github/workflows/sync-models.yml @@ -80,7 +80,7 @@ Update model metadata from OpenRouter API run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add packages/ .changeset/ + git add packages/ scripts/openrouter.models.ts .changeset/ git commit -m "chore: sync model metadata from OpenRouter" git push --force origin HEAD:automated/sync-models env: From c5f891d33b8cc9374e676044c1359eda06c51528 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Wed, 8 Apr 2026 17:00:44 +0200 Subject: [PATCH 07/20] fix: use actual input modalities, exclude non-chat models, reduce CI noise - Use OpenRouter's actual input_modalities instead of blindly copying reference model's modalities (fixes text-only models claiming image support) - Filter modalities to only include types valid for each provider's interface - Add blocklist for non-chat model families (lyria, veo, imagen, sora, dall-e, tts) - Swap field order to supports-before-pricing matching existing convention - CI only creates PR when package files actually changed (not just openrouter.models.ts) --- .github/workflows/sync-models.yml | 4 +- scripts/sync-provider-models.ts | 110 ++++++++++++++++++++++-------- 2 files changed, 84 insertions(+), 30 deletions(-) diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml index 06fff912..039ceff6 100644 --- a/.github/workflows/sync-models.yml +++ b/.github/workflows/sync-models.yml @@ -29,10 +29,10 @@ jobs: - name: Fetch and sync model metadata run: pnpm generate:models:sync - - name: Check for changes + - name: Check for package changes id: changes run: | - if git diff --quiet; then + if git diff --quiet -- packages/; then echo "changed=false" >> $GITHUB_OUTPUT else echo "changed=true" >> $GITHUB_OUTPUT diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 4c0ae2b9..36d75cf3 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -36,8 +36,10 @@ interface ProviderConfig { providerOptionsTypeName: string /** Name of the input modalities type map */ inputModalitiesTypeName: string - /** The full supports block to copy for new models */ - referenceSupports: string + /** The supports block template (minus input modalities, which come from OpenRouter) */ + referenceSupportsBody: string + /** Valid input modality types for this provider's ModelMeta interface */ + validInputModalities: Array /** The satisfies type clause (after 'as const satisfies') */ referenceSatisfies: string /** The type string for provider options map entries */ @@ -56,13 +58,11 @@ const PROVIDER_MAP: Record = { chatArrayName: 'OPENAI_CHAT_MODELS', providerOptionsTypeName: 'OpenAIChatModelProviderOptionsByName', inputModalitiesTypeName: 'OpenAIModelInputModalitiesByName', - referenceSupports: ` supports: { - input: ['text', 'image'], - output: ['text'], + validInputModalities: ['text', 'image', 'audio', 'video'], + referenceSupportsBody: ` output: ['text'], endpoints: ['chat', 'chat-completions'], features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], - },`, + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'],`, referenceSatisfies: 'ModelMeta', referenceProviderOptionsEntry: @@ -80,11 +80,9 @@ const PROVIDER_MAP: Record = { chatArrayName: 'ANTHROPIC_MODELS', providerOptionsTypeName: 'AnthropicChatModelProviderOptionsByName', inputModalitiesTypeName: 'AnthropicModelInputModalitiesByName', - referenceSupports: ` supports: { - input: ['text', 'image', 'document'], - extended_thinking: true, - priority_tier: true, - },`, + validInputModalities: ['text', 'image', 'audio', 'video', 'document'], + referenceSupportsBody: ` extended_thinking: true, + priority_tier: true,`, referenceSatisfies: 'ModelMeta', referenceProviderOptionsEntry: @@ -99,11 +97,9 @@ const PROVIDER_MAP: Record = { chatArrayName: 'GEMINI_MODELS', providerOptionsTypeName: 'GeminiChatModelProviderOptionsByName', inputModalitiesTypeName: 'GeminiModelInputModalitiesByName', - referenceSupports: ` supports: { - input: ['text', 'image', 'audio', 'video', 'document'], - output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], - },`, + validInputModalities: ['text', 'image', 'audio', 'video', 'document'], + referenceSupportsBody: ` output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'],`, referenceSatisfies: 'ModelMeta', referenceProviderOptionsEntry: @@ -118,11 +114,9 @@ const PROVIDER_MAP: Record = { chatArrayName: 'GROK_CHAT_MODELS', providerOptionsTypeName: 'GrokChatModelProviderOptionsByName', inputModalitiesTypeName: 'GrokModelInputModalitiesByName', - referenceSupports: ` supports: { - input: ['text', 'image'], - output: ['text'], - capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], - },`, + validInputModalities: ['text', 'image', 'audio', 'video', 'document'], + referenceSupportsBody: ` output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'],`, referenceSatisfies: 'ModelMeta', referenceProviderOptionsEntry: 'GrokProviderOptions', hasBothNameAndId: false, @@ -134,6 +128,32 @@ const PROVIDER_MAP: Record = { // Utility functions // --------------------------------------------------------------------------- +type InputModality = 'text' | 'image' | 'audio' | 'video' | 'document' + +const MODALITY_MAP: Record = { + text: 'text', + image: 'image', + audio: 'audio', + video: 'video', + file: 'document', + document: 'document', +} + +/** + * Map OpenRouter input modalities to our standard modality types. + * Same mapping as the existing convert-openrouter-models.ts script. + */ +function mapInputModalities(modalities: Array): Array { + const mapped = modalities + .map((m) => MODALITY_MAP[m.toLowerCase()]) + .filter((m): m is InputModality => m !== undefined) + // Ensure at least 'text' is present + if (!mapped.includes('text')) { + mapped.unshift('text') + } + return mapped +} + /** Strip the provider prefix from an OpenRouter model ID */ function stripPrefix(prefix: string, modelId: string): string { return modelId.slice(prefix.length) @@ -227,6 +247,24 @@ function isImageOnlyModel(model: OpenRouterModel): boolean { ) } +/** + * Non-chat model family prefixes to exclude from chat model arrays. + * These are audio/music/video/image generation models that happen to + * include 'text' in their output modalities but are not chat models. + */ +const NON_CHAT_MODEL_PREFIXES = [ + 'lyria-', // Google music generation + 'veo-', // Google video generation + 'imagen-', // Google image generation + 'sora-', // OpenAI video generation + 'dall-e-', // OpenAI image generation + 'tts-', // Text-to-speech models +] + +function isNonChatModel(strippedId: string): boolean { + return NON_CHAT_MODEL_PREFIXES.some((p) => strippedId.startsWith(p)) +} + // --------------------------------------------------------------------------- // Model constant generation // --------------------------------------------------------------------------- @@ -243,6 +281,12 @@ function generateModelConstant( const inputCached = convertPrice(model.pricing.input_cache_read) const outputNormal = convertPrice(model.pricing.completion) + // Use actual input modalities from OpenRouter data, filtered to what this provider supports + const inputModalities = mapInputModalities( + model.architecture.input_modalities, + ).filter((m) => config.validInputModalities.includes(m)) + const inputModalitiesStr = inputModalities.map((m) => `'${m}'`).join(', ') + const lines: Array = [] lines.push(`const ${constName} = {`) @@ -268,6 +312,12 @@ function generateModelConstant( ) } + // supports block (actual input modalities + reference capabilities) + lines.push(` supports: {`) + lines.push(` input: [${inputModalitiesStr}],`) + lines.push(config.referenceSupportsBody) + lines.push(` },`) + // pricing lines.push(` pricing: {`) lines.push(` input: {`) @@ -281,9 +331,6 @@ function generateModelConstant( lines.push(` },`) lines.push(` },`) - // supports block (copied from reference) - lines.push(config.referenceSupports) - lines.push(`} as const satisfies ${config.referenceSatisfies}`) return lines.join('\n') @@ -429,6 +476,11 @@ async function main() { continue } + // Skip non-chat model families (audio/music/video/image generation) + if (isNonChatModel(strippedId)) { + continue + } + // Normalize for comparison to handle dots-vs-dashes naming differences if ( !existingIds.has(normalizeId(strippedId)) && @@ -472,9 +524,11 @@ async function main() { // Insert constants before first export content = insertConstants(content, constants) - // All non-image-only models go into the chat array - // (models that output both text and image are still chat models) - const chatModels = filteredModels.filter(({ model }) => outputsText(model)) + // Filter to chat-eligible models: must output text and not be a non-chat model family + const chatModels = filteredModels.filter( + ({ model, strippedId }) => + outputsText(model) && !isNonChatModel(strippedId), + ) if (chatModels.length > 0) { content = addToArray( From a7911d94f58b2769d392b0ae61e1e725445f3911 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 15:06:04 +0000 Subject: [PATCH 08/20] ci: apply automated fixes --- .../ai-openrouter/src/model-meta.ts | 25606 ++++++++++------ scripts/openrouter.models.ts | 1119 +- scripts/sync-provider-models.ts | 17 +- 3 files changed, 17617 insertions(+), 9125 deletions(-) diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index b490b244..575d22ea 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,8722 +1,16898 @@ +import type { + OpenRouterBaseOptions, + OpenRouterCommonOptions, +} from './text/text-provider-options' -import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' - -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, - } as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { - id: 'anthropic/claude-opus-4.6-fast', - name: 'Anthropic: Claude Opus 4.6 (Fast)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 40.5, - }, - output: { - normal: 150, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_THINKING = { - id: 'arcee-ai/trinity-large-thinking', - name: 'Arcee AI: Trinity Large Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_MINI_FREE = { - id: 'arcee-ai/trinity-mini:free', - name: 'Arcee AI: Trinity Mini (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, - } as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT = { - id: 'google/gemma-4-26b-a4b-it', - name: 'Google: Gemma 4 26B A4B ', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { - id: 'google/gemma-4-26b-a4b-it:free', - name: 'Google: Gemma 4 26B A4B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT = { - id: 'google/gemma-4-31b-it', - name: 'Google: Gemma 4 31B', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT_FREE = { - id: 'google/gemma-4-31b-it:free', - name: 'Google: Gemma 4 31B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_CLIP_PREVIEW = { - id: 'google/lyria-3-clip-preview', - name: 'Google: Lyria 3 Clip Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_PRO_PREVIEW = { - id: 'google/lyria-3-pro-preview', - name: 'Google: Lyria 3 Pro Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0.0290000007, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.118, - cached: 0.059, - }, - output: { - normal: 0.99, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3827, - cached: 0.19135, - }, - output: { - normal: 1.72, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_6_PLUS = { - id: 'qwen/qwen3.6-plus', - name: 'Qwen: Qwen3.6 Plus', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.325, - cached: 0, - }, - output: { - normal: 1.95, - }, - }, - image: 0, - }, - } as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_EDGE = { - id: 'rekaai/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_FLASH_3 = { - id: 'rekaai/reka-flash-3', - name: 'Reka Flash 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const STEPFUN_STEP_3_5_FLASH_FREE = { - id: 'stepfun/step-3.5-flash:free', - name: 'StepFun: Step 3.5 Flash (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'topP'], - }, - context_window: 256000, - max_output_tokens: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, - } as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20 = { - id: 'x-ai/grok-4.20', - name: 'xAI: Grok 4.20', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20_MULTI_AGENT = { - id: 'x-ai/grok-4.20-multi-agent', - name: 'xAI: Grok 4.20 Multi-Agent', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_1 = { - id: 'z-ai/glm-5.1', - name: 'Z.ai: GLM 5.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 1.26, - cached: 0, - }, - output: { - normal: 3.96, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5V_TURBO = { - id: 'z-ai/glm-5v-turbo', - name: 'Z.ai: GLM 5V Turbo', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, +} as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'verbosity', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_MINI_FREE = { + id: 'arcee-ai/trinity-mini:free', + name: 'Arcee AI: Trinity Mini (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, +} as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0.0290000007, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, +} as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const STEPFUN_STEP_3_5_FLASH_FREE = { + id: 'stepfun/step-3.5-flash:free', + name: 'StepFun: Step 3.5 Flash (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, +} as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const - -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; - [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & Pick; - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & + Pick + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & + OpenRouterBaseOptions + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MANCER_WEAVER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + > + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & + Pick + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & + Pick + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & + Pick + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' + > + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_O1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + > + [OPENAI_O3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topP' + > + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & + Pick + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'topP' + > + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + > + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [X_AI_GROK_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' + > + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > } - -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; - [MANCER_WEAVER.id]: ReadonlyArray<'text'>; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; - [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; - [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'>; - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' + > + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'> + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' | 'audio' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< + 'audio' | 'document' | 'image' | 'text' | 'video' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< + 'text' | 'audio' | 'image' | 'video' | 'document' + > + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> + [MANCER_WEAVER.id]: ReadonlyArray<'text'> + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< + 'image' | 'text' | 'video' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< + 'document' | 'image' | 'text' + > + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENROUTER_AUTO.id]: ReadonlyArray< + 'text' | 'image' | 'audio' | 'document' | 'video' + > + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> + [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'> + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> + [X_AI_GROK_3.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'> } export const OPENROUTER_CHAT_MODELS = [ diff --git a/scripts/openrouter.models.ts b/scripts/openrouter.models.ts index 4a7bf4bc..db5f8595 100644 --- a/scripts/openrouter.models.ts +++ b/scripts/openrouter.models.ts @@ -41,7 +41,8 @@ export const models: Array = [ hugging_face_id: 'ai21labs/AI21-Jamba-Large-1.7', name: 'AI21: Jamba Large 1.7', created: 1754669020, - description: 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', + description: + 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', context_length: 256000, architecture: { modality: 'text->text', @@ -76,7 +77,8 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-1.0', created: 1738697557, - description: 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', + description: + 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', context_length: 131072, architecture: { modality: 'text->text', @@ -109,7 +111,8 @@ export const models: Array = [ hugging_face_id: 'FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview', name: 'AionLabs: Aion-1.0-Mini', created: 1738697107, - description: 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', + description: + 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', context_length: 131072, architecture: { modality: 'text->text', @@ -142,7 +145,8 @@ export const models: Array = [ hugging_face_id: null, name: 'AionLabs: Aion-2.0', created: 1771881306, - description: 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', + description: + 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', context_length: 131072, architecture: { modality: 'text->text', @@ -176,7 +180,8 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-RP 1.0 (8B)', created: 1738696718, - description: 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', + description: + 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', context_length: 32768, architecture: { modality: 'text->text', @@ -195,11 +200,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'alfredpros/codellama-7b-instruct-solidity', @@ -207,7 +208,8 @@ export const models: Array = [ hugging_face_id: 'AlfredPros/CodeLlama-7b-Instruct-Solidity', name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', created: 1744641874, - description: 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', + description: + 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', context_length: 4096, architecture: { modality: 'text->text', @@ -245,7 +247,8 @@ export const models: Array = [ hugging_face_id: 'Alibaba-NLP/Tongyi-DeepResearch-30B-A3B', name: 'Tongyi DeepResearch 30B A3B', created: 1758210804, - description: 'Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It\'s optimized for long-horizon, deep information-seeking tasks...', + description: + "Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It's optimized for long-horizon, deep information-seeking tasks...", context_length: 131072, architecture: { modality: 'text->text', @@ -291,7 +294,8 @@ export const models: Array = [ hugging_face_id: 'allenai/OLMo-2-0325-32B-Instruct', name: 'AllenAI: Olmo 2 32B Instruct', created: 1741988556, - description: 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', + description: + 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', context_length: 128000, architecture: { modality: 'text->text', @@ -310,8 +314,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - ], + supported_parameters: [], }, { id: 'allenai/olmo-3-32b-think', @@ -319,7 +322,8 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3-32B-Think', name: 'AllenAI: Olmo 3 32B Think', created: 1763758276, - description: 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', + description: + 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', context_length: 65536, architecture: { modality: 'text->text', @@ -361,7 +365,8 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3.1-32B-Instruct', name: 'AllenAI: Olmo 3.1 32B Instruct', created: 1767728554, - description: 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', + description: + 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', context_length: 65536, architecture: { modality: 'text->text', @@ -403,7 +408,8 @@ export const models: Array = [ hugging_face_id: 'alpindale/goliath-120b', name: 'Goliath 120B', created: 1699574400, - description: 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', + description: + 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', context_length: 6144, architecture: { modality: 'text->text', @@ -446,7 +452,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova 2 Lite', created: 1764696672, - description: 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', + description: + 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', context_length: 1000000, architecture: { modality: 'text+image+file+video->text', @@ -483,7 +490,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Lite 1.0', created: 1733437363, - description: 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', + description: + 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -517,7 +525,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Micro 1.0', created: 1733437237, - description: 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', + description: + 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', context_length: 128000, architecture: { modality: 'text->text', @@ -551,7 +560,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Premier 1.0', created: 1761950332, - description: 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', + description: + 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -586,7 +596,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Pro 1.0', created: 1733436303, - description: 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', + description: + 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -620,7 +631,8 @@ export const models: Array = [ hugging_face_id: 'anthracite-org/magnum-v4-72b', name: 'Magnum v4 72B', created: 1729555200, - description: 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', + description: + 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', context_length: 16384, architecture: { modality: 'text->text', @@ -663,7 +675,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3 Haiku', created: 1710288000, - description: 'Claude 3 Haiku is Anthropic\'s fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal', + description: + "Claude 3 Haiku is Anthropic's fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal", context_length: 200000, architecture: { modality: 'text+image->text', @@ -700,7 +713,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3.5 Haiku', created: 1730678400, - description: 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', + description: + 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -738,7 +752,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet', created: 1740422110, - description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: + 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -778,7 +793,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet (thinking)', created: 1740422110, - description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: + 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -817,7 +833,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Haiku 4.5', created: 1760547638, - description: 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', + description: + 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -859,7 +876,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4', created: 1747931245, - description: 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', + description: + 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -899,7 +917,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.1', created: 1754411591, - description: 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', + description: + 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -941,7 +960,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.5', created: 1764010580, - description: 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', + description: + 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -983,7 +1003,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.6', created: 1770219050, - description: 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', + description: + 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1026,7 +1047,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude Opus 4.6 (Fast)', created: 1775592472, - description: 'Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic\'s docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode', + description: + "Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic's docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode", context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1068,7 +1090,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4', created: 1747930371, - description: 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', + description: + 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -1108,7 +1131,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.5', created: 1759161676, - description: 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', + description: + 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', context_length: 1000000, architecture: { modality: 'text+image+file->text', @@ -1150,7 +1174,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.6', created: 1771342990, - description: 'Sonnet 4.6 is Anthropic\'s most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...', + description: + "Sonnet 4.6 is Anthropic's most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...", context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1193,7 +1218,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Coder Large', created: 1746478663, - description: 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', + description: + 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', context_length: 32768, architecture: { modality: 'text->text', @@ -1231,7 +1257,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Maestro Reasoning', created: 1746481269, - description: 'Maestro Reasoning is Arcee\'s flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...', + description: + "Maestro Reasoning is Arcee's flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...", context_length: 131072, architecture: { modality: 'text->text', @@ -1269,7 +1296,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Spotlight', created: 1746481552, - description: 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', + description: + 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -1307,7 +1335,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Preview', name: 'Arcee AI: Trinity Large Preview (free)', created: 1769552670, - description: 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', + description: + 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', context_length: 131000, architecture: { modality: 'text->text', @@ -1342,7 +1371,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Thinking', name: 'Arcee AI: Trinity Large Thinking', created: 1775058318, - description: 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', + description: + 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', context_length: 262144, architecture: { modality: 'text->text', @@ -1386,7 +1416,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini', created: 1764601720, - description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', + description: + 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1424,7 +1455,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini (free)', created: 1764601720, - description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', + description: + 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1462,7 +1494,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Virtuoso Large', created: 1746478885, - description: 'Virtuoso‑Large is Arcee\'s top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...', + description: + "Virtuoso‑Large is Arcee's top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...", context_length: 131072, architecture: { modality: 'text->text', @@ -1502,7 +1535,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-PT', name: 'Baidu: ERNIE 4.5 21B A3B', created: 1755034167, - description: 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', + description: + 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', context_length: 120000, architecture: { modality: 'text->text', @@ -1541,7 +1575,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-Thinking', name: 'Baidu: ERNIE 4.5 21B A3B Thinking', created: 1760048887, - description: 'ERNIE-4.5-21B-A3B-Thinking is Baidu\'s upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.', + description: + "ERNIE-4.5-21B-A3B-Thinking is Baidu's upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.", context_length: 131072, architecture: { modality: 'text->text', @@ -1580,7 +1615,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-300B-A47B-PT', name: 'Baidu: ERNIE 4.5 300B A47B ', created: 1751300139, - description: 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', + description: + 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', context_length: 123000, architecture: { modality: 'text->text', @@ -1619,7 +1655,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-28B-A3B-PT', name: 'Baidu: ERNIE 4.5 VL 28B A3B', created: 1755032836, - description: 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', + description: + 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', context_length: 30000, architecture: { modality: 'text+image->text', @@ -1660,7 +1697,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-424B-A47B-PT', name: 'Baidu: ERNIE 4.5 VL 424B A47B ', created: 1751300903, - description: 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', + description: + 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', context_length: 123000, architecture: { modality: 'text+image->text', @@ -1699,7 +1737,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6', created: 1766504997, - description: 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', + description: + 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1738,7 +1777,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6 Flash', created: 1766505011, - description: 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', + description: + 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1777,7 +1817,8 @@ export const models: Array = [ hugging_face_id: null, name: 'ByteDance Seed: Seed-2.0-Lite', created: 1773157231, - description: 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', + description: + 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1816,7 +1857,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed-2.0-Mini', created: 1772131107, - description: 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', + description: + 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1855,7 +1897,8 @@ export const models: Array = [ hugging_face_id: 'ByteDance-Seed/UI-TARS-1.5-7B', name: 'ByteDance: UI-TARS 7B ', created: 1753205056, - description: 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', + description: + 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -1893,7 +1936,8 @@ export const models: Array = [ hugging_face_id: 'cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition', name: 'Venice: Uncensored (free)', created: 1752094966, - description: 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', + description: + 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', context_length: 32768, architecture: { modality: 'text->text', @@ -1930,7 +1974,8 @@ export const models: Array = [ hugging_face_id: 'CohereForAI/c4ai-command-a-03-2025', name: 'Cohere: Command A', created: 1741894342, - description: 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', + description: + 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', context_length: 256000, architecture: { modality: 'text->text', @@ -1968,7 +2013,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R (08-2024)', created: 1724976000, - description: 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', + description: + 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', context_length: 128000, architecture: { modality: 'text->text', @@ -2008,7 +2054,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R+ (08-2024)', created: 1724976000, - description: 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', + description: + 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', context_length: 128000, architecture: { modality: 'text->text', @@ -2048,7 +2095,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Cohere: Command R7B (12-2024)', created: 1734158152, - description: 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', + description: + 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2086,7 +2134,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Deep Cogito: Cogito v2.1 671B', created: 1763071233, - description: 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', + description: + 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2128,7 +2177,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3', name: 'DeepSeek: DeepSeek V3', created: 1735241320, - description: 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', + description: + 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', context_length: 163840, architecture: { modality: 'text->text', @@ -2169,7 +2219,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3-0324', name: 'DeepSeek: DeepSeek V3 0324', created: 1742824755, - description: 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', + description: + 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', context_length: 163840, architecture: { modality: 'text->text', @@ -2216,7 +2267,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1', name: 'DeepSeek: DeepSeek V3.1', created: 1755779628, - description: 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', + description: + 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', context_length: 32768, architecture: { modality: 'text->text', @@ -2263,7 +2315,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1', name: 'DeepSeek: R1', created: 1737381095, - description: 'DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active in an inference pass....', + description: + "DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass....", context_length: 64000, architecture: { modality: 'text->text', @@ -2304,7 +2357,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-0528', name: 'DeepSeek: R1 0528', created: 1748455170, - description: 'May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active...', + description: + "May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active...", context_length: 163840, architecture: { modality: 'text->text', @@ -2350,7 +2404,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Llama-70B', name: 'DeepSeek: R1 Distill Llama 70B', created: 1737663169, - description: 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', + description: + 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -2391,7 +2446,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', name: 'DeepSeek: R1 Distill Qwen 32B', created: 1738194830, - description: 'DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI\'s o1-mini across various benchmarks, achieving new...', + description: + "DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI's o1-mini across various benchmarks, achieving new...", context_length: 32768, architecture: { modality: 'text->text', @@ -2431,7 +2487,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1-Terminus', name: 'DeepSeek: DeepSeek V3.1 Terminus', created: 1758548275, - description: 'DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model\'s original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model\'s...', + description: + "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model's original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model's...", context_length: 163840, architecture: { modality: 'text->text', @@ -2477,7 +2534,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2', name: 'DeepSeek: DeepSeek V3.2', created: 1764594642, - description: 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: + 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2525,7 +2583,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Exp', name: 'DeepSeek: DeepSeek V3.2 Exp', created: 1759150481, - description: 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: + 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2570,7 +2629,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Speciale', name: 'DeepSeek: DeepSeek V3.2 Speciale', created: 1764594837, - description: 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', + description: + 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', context_length: 163840, architecture: { modality: 'text->text', @@ -2614,7 +2674,8 @@ export const models: Array = [ hugging_face_id: 'EleutherAI/llemma_7b', name: 'EleutherAI: Llemma 7b', created: 1744643225, - description: 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', + description: + 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', context_length: 4096, architecture: { modality: 'text->text', @@ -2652,7 +2713,8 @@ export const models: Array = [ hugging_face_id: 'EssentialAI/rnj-1-instruct', name: 'EssentialAI: Rnj 1 Instruct', created: 1765094847, - description: 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', + description: + 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', context_length: 32768, architecture: { modality: 'text->text', @@ -2694,7 +2756,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash', created: 1738769413, - description: 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', + description: + 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2736,7 +2799,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash Lite', created: 1740506212, - description: 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', + description: + 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2776,7 +2840,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash', created: 1750172488, - description: 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', + description: + 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2820,7 +2885,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', created: 1759870431, - description: 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', + description: + 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', context_length: 32768, architecture: { modality: 'text+image->text+image', @@ -2860,7 +2926,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite', created: 1753200276, - description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: + 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2904,7 +2971,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', created: 1758819686, - description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: + 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2948,7 +3016,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro', created: 1750169544, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2992,7 +3061,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 06-05', created: 1749137257, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio->text', @@ -3036,7 +3106,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 05-06', created: 1746578513, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3080,7 +3151,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3 Flash Preview', created: 1765987078, - description: 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', + description: + 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3124,7 +3196,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', created: 1763653797, - description: 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', + description: + 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3166,7 +3239,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', created: 1772119558, - description: 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', + description: + 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3203,7 +3277,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Flash Lite Preview', created: 1772512673, - description: 'Gemini 3.1 Flash Lite Preview is Google\'s high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...', + description: + "Gemini 3.1 Flash Lite Preview is Google's high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...", context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3247,7 +3322,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Pro Preview', created: 1771509627, - description: 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', + description: + 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3291,7 +3367,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Gemini 3.1 Pro Preview Custom Tools', created: 1772045923, - description: 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', + description: + 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3335,7 +3412,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-27b-it', name: 'Google: Gemma 2 27B', created: 1720828800, - description: 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', + description: + 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3371,7 +3449,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-9b-it', name: 'Google: Gemma 2 9B', created: 1719532800, - description: 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', + description: + 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3406,7 +3485,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B', created: 1741902625, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3447,7 +3527,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B (free)', created: 1741902625, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3480,7 +3561,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B', created: 1741756359, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3521,7 +3603,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B (free)', created: 1741756359, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3555,7 +3638,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B', created: 1741905510, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3594,7 +3678,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B (free)', created: 1741905510, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3628,7 +3713,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E2B-it', name: 'Google: Gemma 3n 2B (free)', created: 1752074904, - description: 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', + description: + 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', context_length: 8192, architecture: { modality: 'text->text', @@ -3661,7 +3747,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B', created: 1747776824, - description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: + 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 32768, architecture: { modality: 'text->text', @@ -3699,7 +3786,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B (free)', created: 1747776824, - description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: + 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 8192, architecture: { modality: 'text->text', @@ -3732,7 +3820,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B ', created: 1775227989, - description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: + 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3778,7 +3867,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B (free)', created: 1775227989, - description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: + 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3815,7 +3905,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B', created: 1775148486, - description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + description: + "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3861,7 +3952,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B (free)', created: 1775148486, - description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + description: + "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3898,7 +3990,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Clip Preview', created: 1774907255, - description: '30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate...', + description: + "30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate...", context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -3931,7 +4024,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Pro Preview', created: 1774907286, - description: 'Full-length songs are priced at $0.08 per song. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...', + description: + "Full-length songs are priced at $0.08 per song. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...", context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -3964,7 +4058,8 @@ export const models: Array = [ hugging_face_id: 'Gryphe/MythoMax-L2-13b', name: 'MythoMax 13B', created: 1688256000, - description: 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', + description: + 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', context_length: 4096, architecture: { modality: 'text->text', @@ -4008,7 +4103,8 @@ export const models: Array = [ hugging_face_id: 'ibm-granite/granite-4.0-h-micro', name: 'IBM: Granite 4.0 Micro', created: 1760927695, - description: 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', + description: + 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', context_length: 131000, architecture: { modality: 'text->text', @@ -4044,7 +4140,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury', created: 1750973026, - description: 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', + description: + 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', context_length: 128000, architecture: { modality: 'text->text', @@ -4080,7 +4177,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inception: Mercury 2', created: 1772636275, - description: 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', + description: + 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', context_length: 128000, architecture: { modality: 'text->text', @@ -4118,7 +4216,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury Coder', created: 1746033880, - description: 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', + description: + 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', context_length: 128000, architecture: { modality: 'text->text', @@ -4154,7 +4253,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Pi', created: 1728604800, - description: 'Inflection 3 Pi powers Inflection\'s [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...', + description: + "Inflection 3 Pi powers Inflection's [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...", context_length: 8000, architecture: { modality: 'text->text', @@ -4173,12 +4273,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], }, { id: 'inflection/inflection-3-productivity', @@ -4186,7 +4281,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Productivity', created: 1728604800, - description: 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', + description: + 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', context_length: 8000, architecture: { modality: 'text->text', @@ -4205,12 +4301,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], }, { id: 'kwaipilot/kat-coder-pro-v2', @@ -4218,7 +4309,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Kwaipilot: KAT-Coder-Pro V2', created: 1774649310, - description: 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', + description: + 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', context_length: 256000, architecture: { modality: 'text->text', @@ -4262,7 +4354,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2-24B-A2B', name: 'LiquidAI: LFM2-24B-A2B', created: 1772048711, - description: 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', + description: + 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', context_length: 32768, architecture: { modality: 'text->text', @@ -4300,7 +4393,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Instruct', name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', created: 1768927521, - description: 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', + description: + 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', context_length: 32768, architecture: { modality: 'text->text', @@ -4338,7 +4432,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Thinking', name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', created: 1768927527, - description: 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', + description: + 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', context_length: 32768, architecture: { modality: 'text->text', @@ -4378,7 +4473,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mancer: Weaver (alpha)', created: 1690934400, - description: 'An attempt to recreate Claude-style verbosity, but don\'t expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.', + description: + "An attempt to recreate Claude-style verbosity, but don't expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.", context_length: 8000, architecture: { modality: 'text->text', @@ -4421,7 +4517,8 @@ export const models: Array = [ hugging_face_id: 'meituan-longcat/LongCat-Flash-Chat', name: 'Meituan: LongCat Flash Chat', created: 1757427658, - description: 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', + description: + 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', context_length: 131072, architecture: { modality: 'text->text', @@ -4465,7 +4562,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-70B-Instruct', name: 'Meta: Llama 3 70B Instruct', created: 1713398400, - description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 8192, architecture: { modality: 'text->text', @@ -4502,7 +4600,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-8B-Instruct', name: 'Meta: Llama 3 8B Instruct', created: 1713398400, - description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 8192, architecture: { modality: 'text->text', @@ -4544,7 +4643,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-70B-Instruct', name: 'Meta: Llama 3.1 70B Instruct', created: 1721692800, - description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 131072, architecture: { modality: 'text->text', @@ -4585,7 +4685,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-8B-Instruct', name: 'Meta: Llama 3.1 8B Instruct', created: 1721692800, - description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...', + description: + "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...", context_length: 16384, architecture: { modality: 'text->text', @@ -4629,7 +4730,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-11B-Vision-Instruct', name: 'Meta: Llama 3.2 11B Vision Instruct', created: 1727222400, - description: 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', + description: + 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -4668,7 +4770,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-1B-Instruct', name: 'Meta: Llama 3.2 1B Instruct', created: 1727222400, - description: 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', + description: + 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', context_length: 60000, architecture: { modality: 'text->text', @@ -4704,7 +4807,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct', created: 1727222400, - description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: + 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 80000, architecture: { modality: 'text->text', @@ -4740,7 +4844,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct (free)', created: 1727222400, - description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: + 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 131072, architecture: { modality: 'text->text', @@ -4775,7 +4880,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct', created: 1733506137, - description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: + 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 131072, architecture: { modality: 'text->text', @@ -4820,7 +4926,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct (free)', created: 1733506137, - description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: + 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 65536, architecture: { modality: 'text->text', @@ -4857,7 +4964,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Maverick-17B-128E-Instruct', name: 'Meta: Llama 4 Maverick', created: 1743881822, - description: 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', + description: + 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', context_length: 1048576, architecture: { modality: 'text+image->text', @@ -4900,7 +5008,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Scout-17B-16E-Instruct', name: 'Meta: Llama 4 Scout', created: 1743881519, - description: 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', + description: + 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', context_length: 327680, architecture: { modality: 'text+image->text', @@ -4942,7 +5051,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-3-8B', name: 'Llama Guard 3 8B', created: 1739401318, - description: 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', + description: + 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', context_length: 131072, architecture: { modality: 'text->text', @@ -4978,7 +5088,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-4-12B', name: 'Meta: Llama Guard 4 12B', created: 1745975193, - description: 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', + description: + 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', context_length: 163840, architecture: { modality: 'text+image->text', @@ -5018,7 +5129,8 @@ export const models: Array = [ hugging_face_id: 'microsoft/phi-4', name: 'Microsoft: Phi 4', created: 1736489872, - description: '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', + description: + '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', context_length: 16384, architecture: { modality: 'text->text', @@ -5060,7 +5172,8 @@ export const models: Array = [ hugging_face_id: 'microsoft/WizardLM-2-8x22B', name: 'WizardLM-2 8x22B', created: 1713225600, - description: 'WizardLM-2 8x22B is Microsoft AI\'s most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...', + description: + "WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...", context_length: 65535, architecture: { modality: 'text->text', @@ -5097,7 +5210,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-Text-01', name: 'MiniMax: MiniMax-01', created: 1736915462, - description: 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', + description: + 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', context_length: 1000192, architecture: { modality: 'text+image->text', @@ -5116,11 +5230,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'minimax/minimax-m1', @@ -5128,7 +5238,8 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M1', created: 1750200414, - description: 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', + description: + 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', context_length: 1000000, architecture: { modality: 'text->text', @@ -5169,7 +5280,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2', name: 'MiniMax: MiniMax M2', created: 1761252093, - description: 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', + description: + 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', context_length: 196608, architecture: { modality: 'text->text', @@ -5215,7 +5327,8 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M2-her', created: 1769177239, - description: 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', + description: + 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', context_length: 65536, architecture: { modality: 'text->text', @@ -5235,11 +5348,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'minimax/minimax-m2.1', @@ -5247,7 +5356,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.1', name: 'MiniMax: MiniMax M2.1', created: 1766454997, - description: 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', + description: + 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', context_length: 196608, architecture: { modality: 'text->text', @@ -5295,7 +5405,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5', created: 1770908502, - description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: + 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5345,7 +5456,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5 (free)', created: 1770908502, - description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: + 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5381,7 +5493,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.7', name: 'MiniMax: MiniMax M2.7', created: 1773836697, - description: 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', + description: + 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', context_length: 204800, architecture: { modality: 'text->text', @@ -5418,7 +5531,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Codestral 2508', created: 1754079630, - description: 'Mistral\'s cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)', + description: + "Mistral's cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)", context_length: 256000, architecture: { modality: 'text->text', @@ -5458,7 +5572,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-2-123B-Instruct-2512', name: 'Mistral: Devstral 2 2512', created: 1765285419, - description: 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', + description: + 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', context_length: 262144, architecture: { modality: 'text->text', @@ -5498,7 +5613,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Devstral Medium', created: 1752161321, - description: 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', + description: + 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', context_length: 131072, architecture: { modality: 'text->text', @@ -5538,7 +5654,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-Small-2507', name: 'Mistral: Devstral Small 1.1', created: 1752160751, - description: 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', + description: + 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', context_length: 131072, architecture: { modality: 'text->text', @@ -5578,7 +5695,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-14B-Instruct-2512', name: 'Mistral: Ministral 3 14B 2512', created: 1764681735, - description: 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', + description: + 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5621,7 +5739,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-3B-Instruct-2512', name: 'Mistral: Ministral 3 3B 2512', created: 1764681560, - description: 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', + description: + 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5664,7 +5783,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-8B-Instruct-2512', name: 'Mistral: Ministral 3 8B 2512', created: 1764681654, - description: 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', + description: + 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5707,7 +5827,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-7B-Instruct-v0.1', name: 'Mistral: Mistral 7B Instruct v0.1', created: 1695859200, - description: 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', + description: + 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', context_length: 2824, architecture: { modality: 'text->text', @@ -5743,7 +5864,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral Large', created: 1708905600, - description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version `mistral-large-2407`). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', + description: + "This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", context_length: 128000, architecture: { modality: 'text->text', @@ -5783,7 +5905,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2407', created: 1731978415, - description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version mistral-large-2407). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', + description: + "This is Mistral AI's flagship model, Mistral Large 2 (version mistral-large-2407). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", context_length: 131072, architecture: { modality: 'text->text', @@ -5823,7 +5946,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2411', created: 1731978685, - description: 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', + description: + 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', context_length: 131072, architecture: { modality: 'text->text', @@ -5863,7 +5987,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Large 3 2512', created: 1764624472, - description: 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', + description: + 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5903,7 +6028,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3', created: 1746627341, - description: 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', + description: + 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5943,7 +6069,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3.1', created: 1755095639, - description: 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', + description: + 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5983,7 +6110,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Nemo-Instruct-2407', name: 'Mistral: Mistral Nemo', created: 1721347200, - description: 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', + description: + 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', context_length: 131072, architecture: { modality: 'text->text', @@ -6025,7 +6153,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Saba', created: 1739803239, - description: 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', + description: + 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', context_length: 32768, architecture: { modality: 'text->text', @@ -6065,7 +6194,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-24B-Instruct-2501', name: 'Mistral: Mistral Small 3', created: 1738255409, - description: 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', + description: + 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', context_length: 32768, architecture: { modality: 'text->text', @@ -6104,7 +6234,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-4-119B-2603', name: 'Mistral: Mistral Small 4', created: 1773695685, - description: 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', + description: + 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -6146,7 +6277,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.1-24B-Instruct-2503', name: 'Mistral: Mistral Small 3.1 24B', created: 1742238937, - description: 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', + description: + 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6186,7 +6318,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.2-24B-Instruct-2506', name: 'Mistral: Mistral Small 3.2 24B', created: 1750443016, - description: 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', + description: + 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -6229,7 +6362,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral: Mistral Small Creative', created: 1765908653, - description: 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', + description: + 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', context_length: 32768, architecture: { modality: 'text->text', @@ -6249,10 +6383,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'tool_choice', - 'tools', - ], + supported_parameters: ['tool_choice', 'tools'], }, { id: 'mistralai/mixtral-8x22b-instruct', @@ -6260,7 +6391,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x22B-Instruct-v0.1', name: 'Mistral: Mixtral 8x22B Instruct', created: 1713312000, - description: 'Mistral\'s official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...', + description: + "Mistral's official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...", context_length: 65536, architecture: { modality: 'text->text', @@ -6300,7 +6432,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x7B-Instruct-v0.1', name: 'Mistral: Mixtral 8x7B Instruct', created: 1702166400, - description: 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', + description: + 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', context_length: 32768, architecture: { modality: 'text->text', @@ -6342,7 +6475,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Pixtral Large 2411', created: 1731977388, - description: 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', + description: + 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6382,7 +6516,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Voxtral-Small-24B-2507', name: 'Mistral: Voxtral Small 24B 2507', created: 1761835144, - description: 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', + description: + 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', context_length: 32000, architecture: { modality: 'text+audio->text', @@ -6423,7 +6558,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct', name: 'MoonshotAI: Kimi K2 0711', created: 1752263252, - description: 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', + description: + 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -6462,7 +6598,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct-0905', name: 'MoonshotAI: Kimi K2 0905', created: 1757021147, - description: 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', + description: + 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', context_length: 262144, architecture: { modality: 'text->text', @@ -6507,7 +6644,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Thinking', name: 'MoonshotAI: Kimi K2 Thinking', created: 1762440622, - description: 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', + description: + 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', context_length: 262144, architecture: { modality: 'text->text', @@ -6552,7 +6690,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2.5', name: 'MoonshotAI: Kimi K2.5', created: 1769487076, - description: 'Kimi K2.5 is Moonshot AI\'s native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...', + description: + "Kimi K2.5 is Moonshot AI's native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...", context_length: 262144, architecture: { modality: 'text+image->text', @@ -6601,7 +6740,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Fast', created: 1751910002, - description: 'Morph\'s fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...', + description: + "Morph's fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...", context_length: 81920, architecture: { modality: 'text->text', @@ -6620,11 +6760,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature'], }, { id: 'morph/morph-v3-large', @@ -6632,7 +6768,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Large', created: 1751910858, - description: 'Morph\'s high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...', + description: + "Morph's high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...", context_length: 262144, architecture: { modality: 'text->text', @@ -6651,11 +6788,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature'], }, { id: 'nex-agi/deepseek-v3.1-nex-n1', @@ -6663,7 +6796,8 @@ export const models: Array = [ hugging_face_id: 'nex-agi/DeepSeek-V3.1-Nex-N1', name: 'Nex AGI: DeepSeek V3.1 Nex N1', created: 1765204393, - description: 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', + description: + 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -6699,7 +6833,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-2-Pro-Llama-3-8B', name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', created: 1716768000, - description: 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', + description: + 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', context_length: 8192, architecture: { modality: 'text->text', @@ -6738,7 +6873,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct', created: 1723766400, - description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6777,7 +6913,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct (free)', created: 1723766400, - description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6812,7 +6949,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-70B', name: 'Nous: Hermes 3 70B Instruct', created: 1723939200, - description: 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6851,7 +6989,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-405B', name: 'Nous: Hermes 4 405B', created: 1756235463, - description: 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', + description: + 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', context_length: 131072, architecture: { modality: 'text->text', @@ -6889,7 +7028,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-70B', name: 'Nous: Hermes 4 70B', created: 1756236182, - description: 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', + description: + 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', context_length: 131072, architecture: { modality: 'text->text', @@ -6927,7 +7067,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF', name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', created: 1728950400, - description: 'NVIDIA\'s Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...', + description: + "NVIDIA's Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...", context_length: 131072, architecture: { modality: 'text->text', @@ -6968,7 +7109,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', created: 1744115059, - description: 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', + description: + 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', context_length: 131072, architecture: { modality: 'text->text', @@ -7007,7 +7149,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_3-Nemotron-Super-49B-v1_5', name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', created: 1760101395, - description: 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', + description: + 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7050,7 +7193,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B', created: 1765731275, - description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: + 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 262144, architecture: { modality: 'text->text', @@ -7093,7 +7237,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', created: 1765731275, - description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: + 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 256000, architecture: { modality: 'text->text', @@ -7129,7 +7274,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super', created: 1773245239, - description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: + 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7173,7 +7319,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super (free)', created: 1773245239, - description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: + 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7211,7 +7358,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL', created: 1761675565, - description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: + 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -7252,7 +7400,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', created: 1761675565, - description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: + 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 128000, architecture: { modality: 'text+image+video->text', @@ -7288,7 +7437,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2', created: 1757106807, - description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: + 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7331,7 +7481,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2 (free)', created: 1757106807, - description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: + 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 128000, architecture: { modality: 'text->text', @@ -7369,7 +7520,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo', created: 1685232000, - description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', + description: + "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", context_length: 16385, architecture: { modality: 'text->text', @@ -7411,7 +7563,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo (older v0613)', created: 1706140800, - description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', + description: + "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", context_length: 4095, architecture: { modality: 'text->text', @@ -7453,7 +7606,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo 16k', created: 1693180800, - description: 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', + description: + 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', context_length: 16385, architecture: { modality: 'text->text', @@ -7495,7 +7649,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo Instruct', created: 1695859200, - description: 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', + description: + 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -7535,7 +7690,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4', created: 1685232000, - description: 'OpenAI\'s flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...', + description: + "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...", context_length: 8191, architecture: { modality: 'text->text', @@ -7577,7 +7733,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 (older v0314)', created: 1685232000, - description: 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', + description: + 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', context_length: 8191, architecture: { modality: 'text->text', @@ -7619,7 +7776,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo (older v1106)', created: 1699228800, - description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', + description: + 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', context_length: 128000, architecture: { modality: 'text->text', @@ -7661,7 +7819,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo', created: 1712620800, - description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', + description: + 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', context_length: 128000, architecture: { modality: 'text+image->text', @@ -7703,7 +7862,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo Preview', created: 1706140800, - description: 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', + description: + 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', context_length: 128000, architecture: { modality: 'text->text', @@ -7745,7 +7905,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1', created: 1744651385, - description: 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', + description: + 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7783,7 +7944,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Mini', created: 1744651381, - description: 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', + description: + 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7821,7 +7983,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Nano', created: 1744651369, - description: 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', + description: + 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7859,7 +8022,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7903,7 +8067,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-05-13)', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7946,7 +8111,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-08-06)', created: 1722902400, - description: 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', + description: + 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7990,7 +8156,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o (2024-11-20)', created: 1732127594, - description: 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', + description: + 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8034,7 +8201,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Audio', created: 1755233061, - description: 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', + description: + 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -8077,7 +8245,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini', created: 1721260800, - description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', + description: + "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8121,7 +8290,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini (2024-07-18)', created: 1721260800, - description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', + description: + "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8165,7 +8335,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o-mini Search Preview', created: 1741818122, - description: 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: + 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8198,7 +8369,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Search Preview', created: 1741817949, - description: 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: + 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8231,7 +8403,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (extended)', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8274,7 +8447,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5', created: 1754587413, - description: 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', + description: + 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8312,7 +8486,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Chat', created: 1754587837, - description: 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', + description: + 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8346,7 +8521,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Codex', created: 1758643403, - description: 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8383,7 +8559,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image', created: 1760447986, - description: '[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI\'s GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1\'s superior instruction following,...', + description: + "[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI's GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1's superior instruction following,...", context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8429,7 +8606,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image Mini', created: 1760624583, - description: 'GPT-5 Image Mini combines OpenAI\'s advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...', + description: + "GPT-5 Image Mini combines OpenAI's advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...", context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8475,7 +8653,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Mini', created: 1754587407, - description: 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', + description: + 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8513,7 +8692,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Nano', created: 1754587402, - description: 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', + description: + 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8551,7 +8731,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Pro', created: 1759776663, - description: 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', + description: + 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8588,7 +8769,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1', created: 1763060305, - description: 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', + description: + 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8626,7 +8808,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1 Chat', created: 1763060302, - description: 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: + 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8662,7 +8845,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex', created: 1763060298, - description: 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8699,7 +8883,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Max', created: 1764878934, - description: 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', + description: + 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8737,7 +8922,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Mini', created: 1763057820, - description: 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', + description: + 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8774,7 +8960,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2', created: 1765389775, - description: 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', + description: + 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8812,7 +8999,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Chat', created: 1765389783, - description: 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: + 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8848,7 +9036,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2-Codex', created: 1768409315, - description: 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8886,7 +9075,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Pro', created: 1765389780, - description: 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', + description: + 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8923,7 +9113,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3 Chat', created: 1772564061, - description: 'GPT-5.3 Chat is an update to ChatGPT\'s most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...', + description: + "GPT-5.3 Chat is an update to ChatGPT's most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8959,7 +9150,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3-Codex', created: 1771959164, - description: 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', + description: + 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8997,7 +9189,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4', created: 1772734352, - description: 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', + description: + 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9035,7 +9228,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Mini', created: 1773748178, - description: 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', + description: + 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9073,7 +9267,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Nano', created: 1773748187, - description: 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', + description: + 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9111,7 +9306,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Pro', created: 1772734366, - description: 'GPT-5.4 Pro is OpenAI\'s most advanced model, building on GPT-5.4\'s unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...', + description: + "GPT-5.4 Pro is OpenAI's most advanced model, building on GPT-5.4's unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...", context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9148,7 +9344,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio', created: 1768862569, - description: 'The gpt-audio model is OpenAI\'s first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...', + description: + "The gpt-audio model is OpenAI's first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...", context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9191,7 +9388,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio Mini', created: 1768859419, - description: 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', + description: + 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9234,7 +9432,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b', created: 1754414231, - description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: + 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9282,7 +9481,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b (free)', created: 1754414231, - description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: + 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9318,7 +9518,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b', created: 1754414229, - description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: + 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9367,7 +9568,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b (free)', created: 1754414229, - description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: + 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9403,7 +9605,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-safeguard-20b', name: 'OpenAI: gpt-oss-safeguard-20b', created: 1761752836, - description: 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', + description: + 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', context_length: 131072, architecture: { modality: 'text->text', @@ -9442,7 +9645,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1', created: 1734459999, - description: 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', + description: + 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9479,7 +9683,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1-pro', created: 1742423211, - description: 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', + description: + 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9513,7 +9718,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3', created: 1744823457, - description: 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', + description: + 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9551,7 +9757,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Deep Research', created: 1760129661, - description: 'o3-deep-research is OpenAI\'s advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', + description: + "o3-deep-research is OpenAI's advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9597,7 +9804,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini', created: 1738351721, - description: 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', + description: + 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9634,7 +9842,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini High', created: 1739372611, - description: 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', + description: + 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9671,7 +9880,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Pro', created: 1749598352, - description: 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', + description: + 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9708,7 +9918,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini', created: 1744820942, - description: 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', + description: + 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9746,7 +9957,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini Deep Research', created: 1760129642, - description: 'o4-mini-deep-research is OpenAI\'s faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', + description: + "o4-mini-deep-research is OpenAI's faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9792,7 +10004,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini High', created: 1744824212, - description: 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', + description: + 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9830,7 +10043,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Auto Router', created: 1699401600, - description: 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', + description: + 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', context_length: 2000000, architecture: { modality: 'text+image+file+audio+video->text+image', @@ -9879,7 +10093,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Body Builder (beta)', created: 1764903653, - description: 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', + description: + 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', context_length: 128000, architecture: { modality: 'text->text', @@ -9898,8 +10113,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - ], + supported_parameters: [], }, { id: 'openrouter/free', @@ -9907,7 +10121,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Free Models Router', created: 1769917427, - description: 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', + description: + 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -9951,7 +10166,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar', created: 1738013808, - description: 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', + description: + 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', context_length: 127072, architecture: { modality: 'text+image->text', @@ -9987,7 +10203,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Deep Research', created: 1741311246, - description: 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', + description: + 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', context_length: 128000, architecture: { modality: 'text->text', @@ -10026,7 +10243,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro', created: 1741312423, - description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', + description: + 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -10062,7 +10280,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro Search', created: 1761854366, - description: 'Exclusively available on the OpenRouter API, Sonar Pro\'s new Pro Search mode is Perplexity\'s most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...', + description: + "Exclusively available on the OpenRouter API, Sonar Pro's new Pro Search mode is Perplexity's most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...", context_length: 200000, architecture: { modality: 'text+image->text', @@ -10101,7 +10320,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Reasoning Pro', created: 1741313308, - description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', + description: + 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10139,7 +10359,8 @@ export const models: Array = [ hugging_face_id: 'PrimeIntellect/INTELLECT-3-FP8', name: 'Prime Intellect: INTELLECT-3', created: 1764212534, - description: 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', + description: + 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', context_length: 131072, architecture: { modality: 'text->text', @@ -10180,7 +10401,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-72B-Instruct', name: 'Qwen2.5 72B Instruct', created: 1726704000, - description: 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: + 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10221,7 +10443,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-7B-Instruct', name: 'Qwen: Qwen2.5 7B Instruct', created: 1729036800, - description: 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: + 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10263,7 +10486,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-32B-Instruct', name: 'Qwen2.5 Coder 32B Instruct', created: 1731368400, - description: 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', + description: + 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', context_length: 32768, architecture: { modality: 'text->text', @@ -10299,7 +10523,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Max ', created: 1738402289, - description: 'Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It\'s a large-scale MoE model that has been pretrained on over 20 trillion...', + description: + "Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It's a large-scale MoE model that has been pretrained on over 20 trillion...", context_length: 32768, architecture: { modality: 'text->text', @@ -10336,7 +10561,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Plus', created: 1738409840, - description: 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', + description: + 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10373,7 +10599,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728', created: 1757347599, - description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: + 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10410,7 +10637,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728 (thinking)', created: 1757347599, - description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: + 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10449,7 +10677,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Turbo', created: 1738410974, - description: 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', + description: + 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', context_length: 131072, architecture: { modality: 'text->text', @@ -10486,7 +10715,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Max', created: 1738434304, - description: 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', + description: + 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10522,7 +10752,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Plus', created: 1738731255, - description: 'Qwen\'s Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...', + description: + "Qwen's Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...", context_length: 131072, architecture: { modality: 'text+image->text', @@ -10557,7 +10788,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-7B-Instruct', name: 'Qwen: Qwen2.5 Coder 7B Instruct', created: 1744734887, - description: 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', + description: + 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', context_length: 32768, architecture: { modality: 'text->text', @@ -10594,7 +10826,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-32B-Instruct', name: 'Qwen: Qwen2.5 VL 32B Instruct', created: 1742839838, - description: 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', + description: + 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10633,7 +10866,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-72B-Instruct', name: 'Qwen: Qwen2.5 VL 72B Instruct', created: 1738410311, - description: 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', + description: + 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', context_length: 32768, architecture: { modality: 'text+image->text', @@ -10673,7 +10907,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-14B', name: 'Qwen: Qwen3 14B', created: 1745876478, - description: 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: + 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -10719,7 +10954,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B', name: 'Qwen: Qwen3 235B A22B', created: 1745875757, - description: 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', + description: + 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -10757,7 +10993,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Instruct-2507', name: 'Qwen: Qwen3 235B A22B Instruct 2507', created: 1753119555, - description: 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', + description: + 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', context_length: 262144, architecture: { modality: 'text->text', @@ -10805,7 +11042,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Thinking-2507', name: 'Qwen: Qwen3 235B A22B Thinking 2507', created: 1753449557, - description: 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', + description: + 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', context_length: 131072, architecture: { modality: 'text->text', @@ -10850,7 +11088,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B', name: 'Qwen: Qwen3 30B A3B', created: 1745878604, - description: 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', + description: + 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', context_length: 40960, architecture: { modality: 'text->text', @@ -10896,7 +11135,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Instruct-2507', name: 'Qwen: Qwen3 30B A3B Instruct 2507', created: 1753806965, - description: 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', + description: + 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', context_length: 262144, architecture: { modality: 'text->text', @@ -10939,7 +11179,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Thinking-2507', name: 'Qwen: Qwen3 30B A3B Thinking 2507', created: 1756399192, - description: 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', + description: + 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', context_length: 131072, architecture: { modality: 'text->text', @@ -10985,7 +11226,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-32B', name: 'Qwen: Qwen3 32B', created: 1745875945, - description: 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: + 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -11031,7 +11273,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-8B', name: 'Qwen: Qwen3 8B', created: 1745876632, - description: 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', + description: + 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', context_length: 40960, architecture: { modality: 'text->text', @@ -11077,7 +11320,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B', created: 1753230546, - description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: + 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262144, architecture: { modality: 'text->text', @@ -11121,7 +11365,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', name: 'Qwen: Qwen3 Coder 30B A3B Instruct', created: 1753972379, - description: 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', + description: + 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', context_length: 160000, architecture: { modality: 'text->text', @@ -11162,7 +11407,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Flash', created: 1758115536, - description: 'Qwen3 Coder Flash is Alibaba\'s fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...', + description: + "Qwen3 Coder Flash is Alibaba's fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...", context_length: 1000000, architecture: { modality: 'text->text', @@ -11199,7 +11445,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-Next', name: 'Qwen: Qwen3 Coder Next', created: 1770164101, - description: 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', + description: + 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', context_length: 262144, architecture: { modality: 'text->text', @@ -11243,7 +11490,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Plus', created: 1758662707, - description: 'Qwen3 Coder Plus is Alibaba\'s proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...', + description: + "Qwen3 Coder Plus is Alibaba's proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...", context_length: 1000000, architecture: { modality: 'text->text', @@ -11281,7 +11529,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B (free)', created: 1753230546, - description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: + 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262000, architecture: { modality: 'text->text', @@ -11318,7 +11567,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Max', created: 1758662808, - description: 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', + description: + 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', context_length: 262144, architecture: { modality: 'text->text', @@ -11355,7 +11605,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3 Max Thinking', created: 1770671901, - description: 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', + description: + 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', context_length: 262144, architecture: { modality: 'text->text', @@ -11394,7 +11645,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct', created: 1757612213, - description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: + 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11437,7 +11689,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', created: 1757612213, - description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: + 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11476,7 +11729,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Thinking', name: 'Qwen: Qwen3 Next 80B A3B Thinking', created: 1757612284, - description: 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', + description: + 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', context_length: 131072, architecture: { modality: 'text->text', @@ -11521,7 +11775,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Instruct', name: 'Qwen: Qwen3 VL 235B A22B Instruct', created: 1758668687, - description: 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', + description: + 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -11565,7 +11820,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Thinking', name: 'Qwen: Qwen3 VL 235B A22B Thinking', created: 1758668690, - description: 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', + description: + 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11608,7 +11864,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Instruct', name: 'Qwen: Qwen3 VL 30B A3B Instruct', created: 1759794476, - description: 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', + description: + 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11651,7 +11908,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Thinking', name: 'Qwen: Qwen3 VL 30B A3B Thinking', created: 1759794479, - description: 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', + description: + 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11694,7 +11952,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-32B-Instruct', name: 'Qwen: Qwen3 VL 32B Instruct', created: 1761231332, - description: 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', + description: + 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11730,7 +11989,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Instruct', name: 'Qwen: Qwen3 VL 8B Instruct', created: 1760463308, - description: 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', + description: + 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11773,7 +12033,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Thinking', name: 'Qwen: Qwen3 VL 8B Thinking', created: 1760463746, - description: 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', + description: + 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11812,7 +12073,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-122B-A10B', name: 'Qwen: Qwen3.5-122B-A10B', created: 1772053789, - description: 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', + description: + 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11859,7 +12121,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-27B', name: 'Qwen: Qwen3.5-27B', created: 1772053810, - description: 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', + description: + 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11906,7 +12169,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-35B-A3B', name: 'Qwen: Qwen3.5-35B-A3B', created: 1772053822, - description: 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', + description: + 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11953,7 +12217,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-397B-A17B', name: 'Qwen: Qwen3.5 397B A17B', created: 1771223018, - description: 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', + description: + 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11998,7 +12263,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-9B', name: 'Qwen: Qwen3.5-9B', created: 1773152396, - description: 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', + description: + 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', context_length: 256000, architecture: { modality: 'text+image+video->text', @@ -12044,7 +12310,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3.5-Flash', created: 1772053776, - description: 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', + description: + 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12083,7 +12350,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.5 Plus 2026-02-15', created: 1771229416, - description: 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', + description: + 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12122,7 +12390,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.6 Plus', created: 1775133557, - description: 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', + description: + 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12161,7 +12430,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/QwQ-32B', name: 'Qwen: QwQ 32B', created: 1741208814, - description: 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', + description: + 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', context_length: 131072, architecture: { modality: 'text->text', @@ -12197,7 +12467,8 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-edge-2603', name: 'Reka Edge', created: 1774026965, - description: 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', + description: + 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', context_length: 16384, architecture: { modality: 'text+image+video->text', @@ -12236,7 +12507,8 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-flash-3', name: 'Reka Flash 3', created: 1741812813, - description: 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', + description: + 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', context_length: 65536, architecture: { modality: 'text->text', @@ -12274,7 +12546,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Relace: Relace Apply 3', created: 1758891572, - description: 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', + description: + 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', context_length: 256000, architecture: { modality: 'text->text', @@ -12293,11 +12566,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'seed', - 'stop', - ], + supported_parameters: ['max_tokens', 'seed', 'stop'], }, { id: 'relace/relace-search', @@ -12305,7 +12574,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Relace: Relace Search', created: 1765213560, - description: 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', + description: + 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', context_length: 256000, architecture: { modality: 'text->text', @@ -12340,7 +12610,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-70B-Euryale-v2.1', name: 'Sao10k: Llama 3 Euryale 70B v2.1', created: 1718668800, - description: 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', + description: + 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', context_length: 8192, architecture: { modality: 'text->text', @@ -12379,7 +12650,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-8B-Lunaris-v1', name: 'Sao10K: Llama 3 8B Lunaris', created: 1723507200, - description: 'Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It\'s a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....', + description: + "Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It's a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....", context_length: 8192, architecture: { modality: 'text->text', @@ -12419,7 +12691,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Hanami-x1', name: 'Sao10K: Llama 3.1 70B Hanami x1', created: 1736302854, - description: 'This is [Sao10K](/sao10k)\'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).', + description: + "This is [Sao10K](/sao10k)'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).", context_length: 16000, architecture: { modality: 'text->text', @@ -12458,7 +12731,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Euryale-v2.2', name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', created: 1724803200, - description: 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', + description: + 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12499,7 +12773,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.3-70B-Euryale-v2.3', name: 'Sao10K: Llama 3.3 Euryale 70B', created: 1734535928, - description: 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', + description: + 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12541,7 +12816,8 @@ export const models: Array = [ hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash', created: 1769728337, - description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', + description: + "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....", context_length: 262144, architecture: { modality: 'text->text', @@ -12584,7 +12860,8 @@ export const models: Array = [ hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash (free)', created: 1769728337, - description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', + description: + "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....", context_length: 256000, architecture: { modality: 'text->text', @@ -12620,7 +12897,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Switchpoint Router', created: 1752272899, - description: 'Switchpoint AI\'s router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...', + description: + "Switchpoint AI's router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...", context_length: 131072, architecture: { modality: 'text->text', @@ -12656,7 +12934,8 @@ export const models: Array = [ hugging_face_id: 'tencent/Hunyuan-A13B-Instruct', name: 'Tencent: Hunyuan A13B Instruct', created: 1751987664, - description: 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', + description: + 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', context_length: 131072, architecture: { modality: 'text->text', @@ -12692,7 +12971,8 @@ export const models: Array = [ hugging_face_id: 'thedrummer/cydonia-24b-v4.1', name: 'TheDrummer: Cydonia 24B V4.1', created: 1758931878, - description: 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', + description: + 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', context_length: 131072, architecture: { modality: 'text->text', @@ -12730,7 +13010,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Rocinante-12B-v1.1', name: 'TheDrummer: Rocinante 12B', created: 1727654400, - description: 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', + description: + 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', context_length: 32768, architecture: { modality: 'text->text', @@ -12775,7 +13056,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Skyfall-36B-v2', name: 'TheDrummer: Skyfall 36B V2', created: 1741636566, - description: 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', + description: + 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', context_length: 32768, architecture: { modality: 'text->text', @@ -12813,7 +13095,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/UnslopNemo-12B-v4.1', name: 'TheDrummer: UnslopNemo 12B', created: 1731103448, - description: 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', + description: + 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', context_length: 32768, architecture: { modality: 'text->text', @@ -12855,7 +13138,8 @@ export const models: Array = [ hugging_face_id: 'tngtech/DeepSeek-TNG-R1T2-Chimera', name: 'TNG: DeepSeek R1T2 Chimera', created: 1751986985, - description: 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', + description: + 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', context_length: 163840, architecture: { modality: 'text->text', @@ -12899,7 +13183,8 @@ export const models: Array = [ hugging_face_id: 'Undi95/ReMM-SLERP-L2-13B', name: 'ReMM SLERP 13B', created: 1689984000, - description: 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', + description: + 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', context_length: 6144, architecture: { modality: 'text->text', @@ -12943,7 +13228,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Upstage: Solar Pro 3', created: 1769481200, - description: 'Solar Pro 3 is Upstage\'s powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...', + description: + "Solar Pro 3 is Upstage's powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...", context_length: 128000, architecture: { modality: 'text->text', @@ -12980,7 +13266,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Writer: Palmyra X5', created: 1769003823, - description: 'Palmyra X5 is Writer\'s most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...', + description: + "Palmyra X5 is Writer's most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...", context_length: 1040000, architecture: { modality: 'text->text', @@ -13013,7 +13300,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3', created: 1749582908, - description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', + description: + "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", context_length: 131072, architecture: { modality: 'text->text', @@ -13056,7 +13344,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Beta', created: 1744240068, - description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', + description: + "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", context_length: 131072, architecture: { modality: 'text->text', @@ -13098,7 +13387,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini', created: 1749583245, - description: 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', + description: + 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', context_length: 131072, architecture: { modality: 'text->text', @@ -13141,7 +13431,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini Beta', created: 1744240195, - description: 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', + description: + 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', context_length: 131072, architecture: { modality: 'text->text', @@ -13183,7 +13474,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4', created: 1752087689, - description: 'Grok 4 is xAI\'s latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...', + description: + "Grok 4 is xAI's latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...", context_length: 256000, architecture: { modality: 'text+image+file->text', @@ -13225,7 +13517,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4 Fast', created: 1758240090, - description: 'Grok 4 Fast is xAI\'s latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...', + description: + "Grok 4 Fast is xAI's latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13267,7 +13560,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.1 Fast', created: 1763587502, - description: 'Grok 4.1 Fast is xAI\'s best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...', + description: + "Grok 4.1 Fast is xAI's best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13309,7 +13603,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20', created: 1774979019, - description: 'Grok 4.20 is xAI\'s newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...', + description: + "Grok 4.20 is xAI's newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13351,7 +13646,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20 Multi-Agent', created: 1774979158, - description: 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', + description: + 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13391,7 +13687,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok Code Fast 1', created: 1756238927, - description: 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', + description: + 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', context_length: 256000, architecture: { modality: 'text->text', @@ -13434,7 +13731,8 @@ export const models: Array = [ hugging_face_id: 'XiaomiMiMo/MiMo-V2-Flash', name: 'Xiaomi: MiMo-V2-Flash', created: 1765731308, - description: 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', + description: + 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', context_length: 262144, architecture: { modality: 'text->text', @@ -13480,7 +13778,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Omni', created: 1773863703, - description: 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', + description: + 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', context_length: 262144, architecture: { modality: 'text+image+audio+video->text', @@ -13520,7 +13819,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Pro', created: 1773863643, - description: 'MiMo-V2-Pro is Xiaomi\'s flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...', + description: + "MiMo-V2-Pro is Xiaomi's flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...", context_length: 1048576, architecture: { modality: 'text->text', @@ -13560,7 +13860,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 4 32B ', created: 1753376617, - description: 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', + description: + 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', context_length: 128000, architecture: { modality: 'text->text', @@ -13593,7 +13894,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5', name: 'Z.ai: GLM 4.5', created: 1753471347, - description: 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', + description: + 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', context_length: 131072, architecture: { modality: 'text->text', @@ -13637,7 +13939,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air', created: 1753471258, - description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: + 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -13681,7 +13984,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air (free)', created: 1753471258, - description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: + 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -13716,7 +14020,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5V', name: 'Z.ai: GLM 4.5V', created: 1754922288, - description: 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', + description: + 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', context_length: 65536, architecture: { modality: 'text+image->text', @@ -13758,7 +14063,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6', name: 'Z.ai: GLM 4.6', created: 1759235576, - description: 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', + description: + 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', context_length: 204800, architecture: { modality: 'text->text', @@ -13803,7 +14109,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6V', name: 'Z.ai: GLM 4.6V', created: 1765207462, - description: 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', + description: + 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -13847,7 +14154,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7', name: 'Z.ai: GLM 4.7', created: 1766378014, - description: 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', + description: + 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', context_length: 202752, architecture: { modality: 'text->text', @@ -13895,7 +14203,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7-Flash', name: 'Z.ai: GLM 4.7 Flash', created: 1768833913, - description: 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', + description: + 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', context_length: 202752, architecture: { modality: 'text->text', @@ -13940,7 +14249,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5', name: 'Z.ai: GLM 5', created: 1770829182, - description: 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', + description: + 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', context_length: 80000, architecture: { modality: 'text->text', @@ -13987,7 +14297,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5 Turbo', created: 1773583573, - description: 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', + description: + 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', context_length: 202752, architecture: { modality: 'text->text', @@ -14032,7 +14343,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5.1', name: 'Z.ai: GLM 5.1', created: 1775578025, - description: 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', + description: + 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', context_length: 202752, architecture: { modality: 'text->text', @@ -14079,7 +14391,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5V Turbo', created: 1775061458, - description: 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', + description: + 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', context_length: 202752, architecture: { modality: 'text+image+video->text', @@ -14109,5 +14422,5 @@ export const models: Array = [ 'tools', 'top_p', ], - } + }, ] diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 36d75cf3..4a932b5e 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -253,12 +253,12 @@ function isImageOnlyModel(model: OpenRouterModel): boolean { * include 'text' in their output modalities but are not chat models. */ const NON_CHAT_MODEL_PREFIXES = [ - 'lyria-', // Google music generation - 'veo-', // Google video generation - 'imagen-', // Google image generation - 'sora-', // OpenAI video generation - 'dall-e-', // OpenAI image generation - 'tts-', // Text-to-speech models + 'lyria-', // Google music generation + 'veo-', // Google video generation + 'imagen-', // Google image generation + 'sora-', // OpenAI video generation + 'dall-e-', // OpenAI image generation + 'tts-', // Text-to-speech models ] function isNonChatModel(strippedId: string): boolean { @@ -397,7 +397,10 @@ function addToArray( .map((constName) => ` ${constName}${arrayRef},`) .join('\n') // Use replacer function to prevent $-character interpretation in replacement string - return content.replace(pattern, () => `${match[1]}\n${newEntries}\n${match[2]}`) + return content.replace( + pattern, + () => `${match[1]}\n${newEntries}\n${match[2]}`, + ) } /** From 69549157ecff93e44d2446dc058170354c7719b0 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Thu, 9 Apr 2026 10:38:26 +0200 Subject: [PATCH 09/20] fix: fix YAML parsing in sync-models workflow --- .github/workflows/sync-models.yml | 52 +++++++++++++------------------ 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml index 039ceff6..635b0212 100644 --- a/.github/workflows/sync-models.yml +++ b/.github/workflows/sync-models.yml @@ -47,32 +47,25 @@ jobs: PACKAGES="" if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openai/"; then - PACKAGES="${PACKAGES}'@tanstack/ai-openai': patch -" + PACKAGES="$PACKAGES'@tanstack/ai-openai': patch"$'\n' fi if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-anthropic/"; then - PACKAGES="${PACKAGES}'@tanstack/ai-anthropic': patch -" + PACKAGES="$PACKAGES'@tanstack/ai-anthropic': patch"$'\n' fi if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-gemini/"; then - PACKAGES="${PACKAGES}'@tanstack/ai-gemini': patch -" + PACKAGES="$PACKAGES'@tanstack/ai-gemini': patch"$'\n' fi if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-grok/"; then - PACKAGES="${PACKAGES}'@tanstack/ai-grok': patch -" + PACKAGES="$PACKAGES'@tanstack/ai-grok': patch"$'\n' fi if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openrouter/"; then - PACKAGES="${PACKAGES}'@tanstack/ai-openrouter': patch -" + PACKAGES="$PACKAGES'@tanstack/ai-openrouter': patch"$'\n' fi if [ -n "$PACKAGES" ]; then - printf '%s' "--- -${PACKAGES}--- - -Update model metadata from OpenRouter API -" > "$CHANGESET_FILE" + printf '%s\n' "---" > "$CHANGESET_FILE" + printf '%s' "$PACKAGES" >> "$CHANGESET_FILE" + printf '%s\n\n%s\n' "---" "Update model metadata from OpenRouter API" >> "$CHANGESET_FILE" fi - name: Commit and force-push @@ -88,29 +81,26 @@ Update model metadata from OpenRouter API - name: Create or update PR if: steps.changes.outputs.changed == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash run: | BRANCH="automated/sync-models" EXISTING_PR=$(gh pr list --head "$BRANCH" --base main --json number --jq '.[0].number' 2>/dev/null || true) if [ -z "$EXISTING_PR" ] || [ "$EXISTING_PR" = "null" ]; then + BODY=$(cat <<'PRBODY' + Automated daily sync of model metadata from the OpenRouter API. + + - Fetches the latest model list from OpenRouter + - Converts to the internal adapter format + - Syncs provider-specific model metadata for affected packages + - Creates a patch changeset for all changed packages + PRBODY + ) gh pr create \ --title "chore: sync model metadata from OpenRouter" \ - --body "## Summary - -This automated PR syncs model metadata from the OpenRouter API daily. - -- Fetches the latest model list from OpenRouter -- Converts to the internal adapter format -- Syncs provider-specific model metadata for affected packages -- Creates a patch changeset for all changed packages - -## Review Checklist - -- [ ] Verify model additions/removals look correct -- [ ] Check that no unexpected packages were changed -- [ ] Confirm changeset bump type is appropriate (patch)" \ + --body "$BODY" \ --base main \ --head "$BRANCH" fi - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 4c00a3ebac82bb822294e85ca4329059de659cd7 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Thu, 9 Apr 2026 10:42:45 +0200 Subject: [PATCH 10/20] fix: address PR review feedback - Exclude non-chat model families (lyria, veo, imagen, sora, dall-e, tts) from OPENROUTER_CHAT_MODELS in the convert script - Add 30s fetch timeout via AbortSignal.timeout - Fix import ordering (dirname before resolve) - Remove redundant isNonChatModel check in chatModels filter --- .../ai-openrouter/src/model-meta.ts | 25608 ++++++---------- scripts/convert-openrouter-models.ts | 4 +- scripts/fetch-openrouter-models.ts | 4 +- scripts/sync-provider-models.ts | 9 +- 4 files changed, 8724 insertions(+), 16901 deletions(-) diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index 575d22ea..02b06aec 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,16898 +1,8722 @@ -import type { - OpenRouterBaseOptions, - OpenRouterCommonOptions, -} from './text/text-provider-options' -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, -} as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'verbosity', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { - id: 'anthropic/claude-opus-4.6-fast', - name: 'Anthropic: Claude Opus 4.6 (Fast)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 40.5, - }, - output: { - normal: 150, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_LARGE_THINKING = { - id: 'arcee-ai/trinity-large-thinking', - name: 'Arcee AI: Trinity Large Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI_FREE = { - id: 'arcee-ai/trinity-mini:free', - name: 'Arcee AI: Trinity Mini (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, -} as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_26B_A4B_IT = { - id: 'google/gemma-4-26b-a4b-it', - name: 'Google: Gemma 4 26B A4B ', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { - id: 'google/gemma-4-26b-a4b-it:free', - name: 'Google: Gemma 4 26B A4B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_31B_IT = { - id: 'google/gemma-4-31b-it', - name: 'Google: Gemma 4 31B', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_31B_IT_FREE = { - id: 'google/gemma-4-31b-it:free', - name: 'Google: Gemma 4 31B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_LYRIA_3_CLIP_PREVIEW = { - id: 'google/lyria-3-clip-preview', - name: 'Google: Lyria 3 Clip Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_LYRIA_3_PRO_PREVIEW = { - id: 'google/lyria-3-pro-preview', - name: 'Google: Lyria 3 Pro Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0.0290000007, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.118, - cached: 0.059, - }, - output: { - normal: 0.99, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3827, - cached: 0.19135, - }, - output: { - normal: 1.72, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_6_PLUS = { - id: 'qwen/qwen3.6-plus', - name: 'Qwen: Qwen3.6 Plus', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.325, - cached: 0, - }, - output: { - normal: 1.95, - }, - }, - image: 0, - }, -} as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, -} as const -const REKAAI_REKA_EDGE = { - id: 'rekaai/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const REKAAI_REKA_FLASH_3 = { - id: 'rekaai/reka-flash-3', - name: 'Reka Flash 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH_FREE = { - id: 'stepfun/step-3.5-flash:free', - name: 'StepFun: Step 3.5 Flash (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, -} as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20 = { - id: 'x-ai/grok-4.20', - name: 'xAI: Grok 4.20', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20_MULTI_AGENT = { - id: 'x-ai/grok-4.20-multi-agent', - name: 'xAI: Grok 4.20 Multi-Agent', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5_1 = { - id: 'z-ai/glm-5.1', - name: 'Z.ai: GLM 5.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 1.26, - cached: 0, - }, - output: { - normal: 3.96, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5V_TURBO = { - id: 'z-ai/glm-5v-turbo', - name: 'Z.ai: GLM 5V Turbo', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const +import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' + +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, + } as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_MINI_FREE = { + id: 'arcee-ai/trinity-mini:free', + name: 'Arcee AI: Trinity Mini (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, + } as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0.0290000007, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, + } as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const STEPFUN_STEP_3_5_FLASH_FREE = { + id: 'stepfun/step-3.5-flash:free', + name: 'StepFun: Step 3.5 Flash (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'topP'], + }, + context_window: 256000, + max_output_tokens: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, + } as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & - Pick - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & - OpenRouterBaseOptions - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' - > - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MANCER_WEAVER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - > - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & - Pick - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & - Pick - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & - Pick - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' - > - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_O1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - > - [OPENAI_O3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topP' - > - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & - Pick - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'topP' - > - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - > - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [X_AI_GROK_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' - > - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topP' - > + +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; + [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & Pick; + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; } -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' - > - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' | 'audio' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< - 'audio' | 'document' | 'image' | 'text' | 'video' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< - 'text' | 'audio' | 'image' | 'video' | 'document' - > - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'> - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> - [MANCER_WEAVER.id]: ReadonlyArray<'text'> - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< - 'image' | 'text' | 'video' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< - 'document' | 'image' | 'text' - > - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENROUTER_AUTO.id]: ReadonlyArray< - 'text' | 'image' | 'audio' | 'document' | 'video' - > - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> - [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'> - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'> - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> - [X_AI_GROK_3.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'> + +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; + [MANCER_WEAVER.id]: ReadonlyArray<'text'>; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; + [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'>; + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; } export const OPENROUTER_CHAT_MODELS = [ @@ -16993,8 +8817,6 @@ export const OPENROUTER_CHAT_MODELS = [ GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id, GOOGLE_GEMMA_4_31B_IT.id, GOOGLE_GEMMA_4_31B_IT_FREE.id, - GOOGLE_LYRIA_3_CLIP_PREVIEW.id, - GOOGLE_LYRIA_3_PRO_PREVIEW.id, GRYPHE_MYTHOMAX_L2_13B.id, IBM_GRANITE_GRANITE_4_0_H_MICRO.id, INCEPTION_MERCURY.id, diff --git a/scripts/convert-openrouter-models.ts b/scripts/convert-openrouter-models.ts index 37670fa5..2be24c26 100644 --- a/scripts/convert-openrouter-models.ts +++ b/scripts/convert-openrouter-models.ts @@ -140,7 +140,9 @@ function generateModelMetaString(model: OpenRouterModel): string { if (!inputModalities.includes('text')) { inputModalities.unshift('text') } - if (outputModalities.includes('text')) { + const nonChatFamilies = ['lyria', 'veo', 'imagen', 'sora', 'dall-e', 'tts'] + const isNonChat = nonChatFamilies.some((f) => model.id.toLowerCase().includes(f)) + if (outputModalities.includes('text') && !isNonChat) { chatModels.add(`${constName}.id`) } if (outputModalities.includes('image')) { diff --git a/scripts/fetch-openrouter-models.ts b/scripts/fetch-openrouter-models.ts index 5baaa794..97b84c61 100644 --- a/scripts/fetch-openrouter-models.ts +++ b/scripts/fetch-openrouter-models.ts @@ -195,7 +195,9 @@ function escapeString(value: string): string { async function main() { console.log(`Fetching models from ${API_URL}...`) - const response = await fetch(API_URL) + const response = await fetch(API_URL, { + signal: AbortSignal.timeout(30_000), + }) if (!response.ok) { throw new Error( diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 4a932b5e..31a854b9 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -12,7 +12,7 @@ */ import { readFile, writeFile } from 'node:fs/promises' -import { resolve, dirname } from 'node:path' +import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { models } from './openrouter.models' import type { OpenRouterModel } from './openrouter.models' @@ -527,11 +527,8 @@ async function main() { // Insert constants before first export content = insertConstants(content, constants) - // Filter to chat-eligible models: must output text and not be a non-chat model family - const chatModels = filteredModels.filter( - ({ model, strippedId }) => - outputsText(model) && !isNonChatModel(strippedId), - ) + // Filter to chat-eligible models: must output text + const chatModels = filteredModels.filter(({ model }) => outputsText(model)) if (chatModels.length > 0) { content = addToArray( From eea0168639e24cc30b66d5ec6e281dcb522f90aa Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 08:44:23 +0000 Subject: [PATCH 11/20] ci: apply automated fixes --- .../ai-openrouter/src/model-meta.ts | 25606 ++++++++++------ scripts/convert-openrouter-models.ts | 4 +- 2 files changed, 16894 insertions(+), 8716 deletions(-) diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index 02b06aec..02b23ddf 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,8722 +1,16898 @@ +import type { + OpenRouterBaseOptions, + OpenRouterCommonOptions, +} from './text/text-provider-options' -import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' - -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, - } as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { - id: 'anthropic/claude-opus-4.6-fast', - name: 'Anthropic: Claude Opus 4.6 (Fast)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 40.5, - }, - output: { - normal: 150, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_THINKING = { - id: 'arcee-ai/trinity-large-thinking', - name: 'Arcee AI: Trinity Large Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_MINI_FREE = { - id: 'arcee-ai/trinity-mini:free', - name: 'Arcee AI: Trinity Mini (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, - } as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT = { - id: 'google/gemma-4-26b-a4b-it', - name: 'Google: Gemma 4 26B A4B ', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { - id: 'google/gemma-4-26b-a4b-it:free', - name: 'Google: Gemma 4 26B A4B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT = { - id: 'google/gemma-4-31b-it', - name: 'Google: Gemma 4 31B', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT_FREE = { - id: 'google/gemma-4-31b-it:free', - name: 'Google: Gemma 4 31B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_CLIP_PREVIEW = { - id: 'google/lyria-3-clip-preview', - name: 'Google: Lyria 3 Clip Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_PRO_PREVIEW = { - id: 'google/lyria-3-pro-preview', - name: 'Google: Lyria 3 Pro Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0.0290000007, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.118, - cached: 0.059, - }, - output: { - normal: 0.99, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3827, - cached: 0.19135, - }, - output: { - normal: 1.72, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_6_PLUS = { - id: 'qwen/qwen3.6-plus', - name: 'Qwen: Qwen3.6 Plus', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.325, - cached: 0, - }, - output: { - normal: 1.95, - }, - }, - image: 0, - }, - } as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_EDGE = { - id: 'rekaai/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_FLASH_3 = { - id: 'rekaai/reka-flash-3', - name: 'Reka Flash 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const STEPFUN_STEP_3_5_FLASH_FREE = { - id: 'stepfun/step-3.5-flash:free', - name: 'StepFun: Step 3.5 Flash (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'topP'], - }, - context_window: 256000, - max_output_tokens: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, - } as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20 = { - id: 'x-ai/grok-4.20', - name: 'xAI: Grok 4.20', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20_MULTI_AGENT = { - id: 'x-ai/grok-4.20-multi-agent', - name: 'xAI: Grok 4.20 Multi-Agent', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_1 = { - id: 'z-ai/glm-5.1', - name: 'Z.ai: GLM 5.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 1.26, - cached: 0, - }, - output: { - normal: 3.96, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5V_TURBO = { - id: 'z-ai/glm-5v-turbo', - name: 'Z.ai: GLM 5V Turbo', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, +} as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'verbosity', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_MINI_FREE = { + id: 'arcee-ai/trinity-mini:free', + name: 'Arcee AI: Trinity Mini (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, +} as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0.0290000007, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, +} as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const STEPFUN_STEP_3_5_FLASH_FREE = { + id: 'stepfun/step-3.5-flash:free', + name: 'StepFun: Step 3.5 Flash (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, +} as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const - -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; - [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & Pick; - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & + Pick + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & + OpenRouterBaseOptions + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MANCER_WEAVER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + > + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & + Pick + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & + Pick + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & + Pick + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' + > + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' + > + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_O1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + > + [OPENAI_O3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topP' + > + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & + Pick + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'topP' + > + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + > + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [X_AI_GROK_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' + > + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > } - -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; - [MANCER_WEAVER.id]: ReadonlyArray<'text'>; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; - [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; - [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'>; - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' + > + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'> + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' | 'audio' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< + 'audio' | 'document' | 'image' | 'text' | 'video' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< + 'text' | 'audio' | 'image' | 'video' | 'document' + > + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> + [MANCER_WEAVER.id]: ReadonlyArray<'text'> + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< + 'image' | 'text' | 'video' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< + 'document' | 'image' | 'text' + > + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENROUTER_AUTO.id]: ReadonlyArray< + 'text' | 'image' | 'audio' | 'document' | 'video' + > + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> + [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'> + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> + [X_AI_GROK_3.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'> } export const OPENROUTER_CHAT_MODELS = [ diff --git a/scripts/convert-openrouter-models.ts b/scripts/convert-openrouter-models.ts index 2be24c26..70ae852a 100644 --- a/scripts/convert-openrouter-models.ts +++ b/scripts/convert-openrouter-models.ts @@ -141,7 +141,9 @@ function generateModelMetaString(model: OpenRouterModel): string { inputModalities.unshift('text') } const nonChatFamilies = ['lyria', 'veo', 'imagen', 'sora', 'dall-e', 'tts'] - const isNonChat = nonChatFamilies.some((f) => model.id.toLowerCase().includes(f)) + const isNonChat = nonChatFamilies.some((f) => + model.id.toLowerCase().includes(f), + ) if (outputModalities.includes('text') && !isNonChat) { chatModels.add(`${constName}.id`) } From 137f44096f56fbed0b109ce203f25a839e5134cc Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 10 Apr 2026 12:44:27 +0200 Subject: [PATCH 12/20] refactor: rename scripts and move changeset creation into sync script - generate:models is now the full pipeline (fetch + convert + sync) - regenerate:models is the old openrouter-only convert - Sync script now creates changeset file when models are added - CI workflow simplified (no longer creates changeset, just commits) - Restored missing workflow file lost during merge --- .github/workflows/sync-models.yml | 32 +------------------------- package.json | 4 ++-- scripts/sync-provider-models.ts | 37 +++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml index 635b0212..8fe72aad 100644 --- a/.github/workflows/sync-models.yml +++ b/.github/workflows/sync-models.yml @@ -27,7 +27,7 @@ jobs: uses: TanStack/config/.github/setup@main - name: Fetch and sync model metadata - run: pnpm generate:models:sync + run: pnpm generate:models - name: Check for package changes id: changes @@ -38,36 +38,6 @@ jobs: echo "changed=true" >> $GITHUB_OUTPUT fi - - name: Detect affected packages and create changeset - if: steps.changes.outputs.changed == 'true' - run: | - CHANGED_FILES=$(git diff --name-only) - TIMESTAMP=$(date +%s) - CHANGESET_FILE=".changeset/sync-models-${TIMESTAMP}.md" - - PACKAGES="" - if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openai/"; then - PACKAGES="$PACKAGES'@tanstack/ai-openai': patch"$'\n' - fi - if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-anthropic/"; then - PACKAGES="$PACKAGES'@tanstack/ai-anthropic': patch"$'\n' - fi - if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-gemini/"; then - PACKAGES="$PACKAGES'@tanstack/ai-gemini': patch"$'\n' - fi - if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-grok/"; then - PACKAGES="$PACKAGES'@tanstack/ai-grok': patch"$'\n' - fi - if echo "$CHANGED_FILES" | grep -q "packages/typescript/ai-openrouter/"; then - PACKAGES="$PACKAGES'@tanstack/ai-openrouter': patch"$'\n' - fi - - if [ -n "$PACKAGES" ]; then - printf '%s\n' "---" > "$CHANGESET_FILE" - printf '%s' "$PACKAGES" >> "$CHANGESET_FILE" - printf '%s\n\n%s\n' "---" "Update model metadata from OpenRouter API" >> "$CHANGESET_FILE" - fi - - name: Commit and force-push if: steps.changes.outputs.changed == 'true' run: | diff --git a/package.json b/package.json index 8f155e66..ed29ad29 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ "dev": "pnpm run watch", "format": "prettier --experimental-cli --ignore-unknown '**/*' --write", "generate-docs": "node scripts/generate-docs.ts && pnpm run copy:readme", - "generate:models": "tsx scripts/convert-openrouter-models.ts", + "generate:models": "pnpm generate:models:fetch && pnpm regenerate:models && tsx scripts/sync-provider-models.ts", "generate:models:fetch": "tsx scripts/fetch-openrouter-models.ts", - "generate:models:sync": "pnpm generate:models:fetch && pnpm generate:models && tsx scripts/sync-provider-models.ts", + "regenerate:models": "tsx scripts/convert-openrouter-models.ts", "sync-docs-config": "node scripts/sync-docs-config.ts", "copy:readme": "cp README.md packages/typescript/ai/README.md && cp README.md packages/typescript/ai-devtools/README.md && cp README.md packages/typescript/preact-ai-devtools/README.md && cp README.md packages/typescript/ai-client/README.md && cp README.md packages/typescript/ai-gemini/README.md && cp README.md packages/typescript/ai-ollama/README.md && cp README.md packages/typescript/ai-openai/README.md && cp README.md packages/typescript/ai-react/README.md && cp README.md packages/typescript/ai-react-ui/README.md && cp README.md packages/typescript/react-ai-devtools/README.md && cp README.md packages/typescript/solid-ai-devtools/README.md", "changeset": "changeset", diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 31a854b9..a8b91e63 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -25,6 +25,8 @@ const ROOT = resolve(__dirname, '..') // --------------------------------------------------------------------------- interface ProviderConfig { + /** npm package name for changeset */ + packageName: string metaFile: string /** How array entries reference the constant, e.g. '.name' or '.id' */ arrayRef: '.name' | '.id' @@ -52,6 +54,7 @@ interface ProviderConfig { const PROVIDER_MAP: Record = { 'openai/': { + packageName: '@tanstack/ai-openai', metaFile: resolve(ROOT, 'packages/typescript/ai-openai/src/model-meta.ts'), arrayRef: '.name', contextField: 'context_window', @@ -71,6 +74,7 @@ const PROVIDER_MAP: Record = { providerOptionsIsMappedType: false, }, 'anthropic/': { + packageName: '@tanstack/ai-anthropic', metaFile: resolve( ROOT, 'packages/typescript/ai-anthropic/src/model-meta.ts', @@ -91,6 +95,7 @@ const PROVIDER_MAP: Record = { providerOptionsIsMappedType: false, }, 'google/': { + packageName: '@tanstack/ai-gemini', metaFile: resolve(ROOT, 'packages/typescript/ai-gemini/src/model-meta.ts'), arrayRef: '.name', contextField: 'max_input_tokens', @@ -108,6 +113,7 @@ const PROVIDER_MAP: Record = { providerOptionsIsMappedType: false, }, 'x-ai/': { + packageName: '@tanstack/ai-grok', metaFile: resolve(ROOT, 'packages/typescript/ai-grok/src/model-meta.ts'), arrayRef: '.name', contextField: 'context_window', @@ -435,6 +441,7 @@ function addToTypeMap( async function main() { let totalAdded = 0 + const changedPackages = new Set() for (const [prefix, config] of Object.entries(PROVIDER_MAP)) { console.log(`\nProcessing provider: ${prefix}`) @@ -575,9 +582,39 @@ async function main() { await writeFile(config.metaFile, content, 'utf-8') console.log(` Wrote updated file: ${config.metaFile}`) totalAdded += filteredModels.length + changedPackages.add(config.packageName) } console.log(`\nDone. Added ${totalAdded} new models total.`) + + // Create changeset if any models were added + if (totalAdded > 0) { + await createChangeset(changedPackages) + } +} + +/** + * Create a changeset file for all affected packages. + * Always includes @tanstack/ai-openrouter since the convert script regenerates it. + */ +async function createChangeset(changedPackages: Set) { + // Always include openrouter (fully regenerated by the convert script) + changedPackages.add('@tanstack/ai-openrouter') + + const changesetDir = resolve(ROOT, '.changeset') + const timestamp = Date.now() + const changesetFile = resolve(changesetDir, `sync-models-${timestamp}.md`) + + const packageLines = Array.from(changedPackages) + .sort() + .map((pkg) => `'${pkg}': patch`) + .join('\n') + + const content = `---\n${packageLines}\n---\n\nUpdate model metadata from OpenRouter API\n` + + await writeFile(changesetFile, content, 'utf-8') + console.log(`\nChangeset created: ${changesetFile}`) + console.log(` Packages: ${Array.from(changedPackages).sort().join(', ')}`) } main().catch((err) => { From cfa3ebe9e89ae2754ecbd05c03ff8e684067982c Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 10 Apr 2026 12:47:17 +0200 Subject: [PATCH 13/20] chore: sync model metadata from OpenRouter API --- .changeset/sync-models-1775817980896.md | 9 + .../typescript/ai-anthropic/src/model-meta.ts | 25 + .../typescript/ai-gemini/src/model-meta.ts | 287 ++++++++ packages/typescript/ai-grok/src/model-meta.ts | 129 ++++ .../typescript/ai-openai/src/model-meta.ts | 665 ++++++++++++++++++ 5 files changed, 1115 insertions(+) create mode 100644 .changeset/sync-models-1775817980896.md diff --git a/.changeset/sync-models-1775817980896.md b/.changeset/sync-models-1775817980896.md new file mode 100644 index 00000000..34862bcd --- /dev/null +++ b/.changeset/sync-models-1775817980896.md @@ -0,0 +1,9 @@ +--- +'@tanstack/ai-anthropic': patch +'@tanstack/ai-gemini': patch +'@tanstack/ai-grok': patch +'@tanstack/ai-openai': patch +'@tanstack/ai-openrouter': patch +--- + +Update model metadata from OpenRouter API diff --git a/packages/typescript/ai-anthropic/src/model-meta.ts b/packages/typescript/ai-anthropic/src/model-meta.ts index 82302ac0..122b71e3 100644 --- a/packages/typescript/ai-anthropic/src/model-meta.ts +++ b/packages/typescript/ai-anthropic/src/model-meta.ts @@ -423,6 +423,27 @@ const CLAUDE_HAIKU_3 = { ? TMessageCapabilities : unknown */ +const CLAUDE_OPUS_4_6_FAST = { + name: 'claude-opus-4.6-fast', + id: 'claude-opus-4.6-fast', + context_window: 1_000_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + extended_thinking: true, + priority_tier: true, + }, + pricing: { + input: { + normal: 30, + cached: 3, + }, + output: { + normal: 150, + }, + }, +} as const satisfies ModelMeta + export const ANTHROPIC_MODELS = [ CLAUDE_OPUS_4_6.id, CLAUDE_OPUS_4_5.id, @@ -435,6 +456,8 @@ export const ANTHROPIC_MODELS = [ CLAUDE_OPUS_4.id, CLAUDE_HAIKU_3_5.id, CLAUDE_HAIKU_3.id, + + CLAUDE_OPUS_4_6_FAST.id, ] as const // const ANTHROPIC_IMAGE_MODELS = [] as const @@ -537,6 +560,7 @@ export type AnthropicChatModelProviderOptionsByName = { AnthropicStopSequencesOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions + [CLAUDE_OPUS_4_6_FAST.id]: AnthropicContainerOptions & AnthropicContextManagementOptions & AnthropicMCPOptions & AnthropicServiceTierOptions & AnthropicStopSequencesOptions & AnthropicThinkingOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions } /** @@ -562,4 +586,5 @@ export type AnthropicModelInputModalitiesByName = { [CLAUDE_OPUS_4.id]: typeof CLAUDE_OPUS_4.supports.input [CLAUDE_HAIKU_3_5.id]: typeof CLAUDE_HAIKU_3_5.supports.input [CLAUDE_HAIKU_3.id]: typeof CLAUDE_HAIKU_3.supports.input + [CLAUDE_OPUS_4_6_FAST.id]: typeof CLAUDE_OPUS_4_6_FAST.supports.input } diff --git a/packages/typescript/ai-gemini/src/model-meta.ts b/packages/typescript/ai-gemini/src/model-meta.ts index 5b4c3b92..f945bf36 100644 --- a/packages/typescript/ai-gemini/src/model-meta.ts +++ b/packages/typescript/ai-gemini/src/model-meta.ts @@ -927,6 +927,253 @@ const VEO_2 = { [VEO_2.name]: VEO_2, } as const */ +const GEMINI_2_0_FLASH_001 = { + name: 'gemini-2.0-flash-001', + max_input_tokens: 1_048_576, + max_output_tokens: 8_192, + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, +} as const satisfies ModelMeta + +const GEMINI_2_0_FLASH_LITE_001 = { + name: 'gemini-2.0-flash-lite-001', + max_input_tokens: 1_048_576, + max_output_tokens: 8_192, + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.075, + }, + output: { + normal: 0.3, + }, + }, +} as const satisfies ModelMeta + +const GEMINI_2_5_PRO_PREVIEW = { + name: 'gemini-2.5-pro-preview', + max_input_tokens: 1_048_576, + max_output_tokens: 65_536, + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GEMINI_2_5_PRO_PREVIEW_05_06 = { + name: 'gemini-2.5-pro-preview-05-06', + max_input_tokens: 1_048_576, + max_output_tokens: 65_535, + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + name: 'gemini-3.1-pro-preview-customtools', + max_input_tokens: 1_048_576, + max_output_tokens: 65_536, + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 12, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_2_27B_IT = { + name: 'gemma-2-27b-it', + max_input_tokens: 8_192, + max_output_tokens: 2_048, + supports: { + input: ['text'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.65, + }, + output: { + normal: 0.65, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_2_9B_IT = { + name: 'gemma-2-9b-it', + max_input_tokens: 8_192, + supports: { + input: ['text'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.03, + }, + output: { + normal: 0.09, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_3_12B_IT = { + name: 'gemma-3-12b-it', + max_input_tokens: 131_072, + supports: { + input: ['text', 'image'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.04, + }, + output: { + normal: 0.13, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_3_27B_IT = { + name: 'gemma-3-27b-it', + max_input_tokens: 131_072, + max_output_tokens: 16_384, + supports: { + input: ['text', 'image'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.08, + }, + output: { + normal: 0.16, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_3_4B_IT = { + name: 'gemma-3-4b-it', + max_input_tokens: 131_072, + supports: { + input: ['text', 'image'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.04, + }, + output: { + normal: 0.08, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_3N_E4B_IT = { + name: 'gemma-3n-e4b-it', + max_input_tokens: 32_768, + supports: { + input: ['text'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.02, + }, + output: { + normal: 0.04, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_4_26B_A4B_IT = { + name: 'gemma-4-26b-a4b-it', + max_input_tokens: 262_144, + max_output_tokens: 262_144, + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.13, + }, + output: { + normal: 0.4, + }, + }, +} as const satisfies ModelMeta + +const GEMMA_4_31B_IT = { + name: 'gemma-4-31b-it', + max_input_tokens: 262_144, + max_output_tokens: 131_072, + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + }, + pricing: { + input: { + normal: 0.14, + }, + output: { + normal: 0.4, + }, + }, +} as const satisfies ModelMeta + export const GEMINI_MODELS = [ GEMINI_3_1_PRO.name, GEMINI_3_PRO.name, @@ -939,6 +1186,20 @@ export const GEMINI_MODELS = [ GEMINI_2_5_FLASH_LITE_PREVIEW.name, GEMINI_2_FLASH.name, GEMINI_2_FLASH_LITE.name, + + GEMINI_2_0_FLASH_001.name, + GEMINI_2_0_FLASH_LITE_001.name, + GEMINI_2_5_PRO_PREVIEW.name, + GEMINI_2_5_PRO_PREVIEW_05_06.name, + GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name, + GEMMA_2_27B_IT.name, + GEMMA_2_9B_IT.name, + GEMMA_3_12B_IT.name, + GEMMA_3_27B_IT.name, + GEMMA_3_4B_IT.name, + GEMMA_3N_E4B_IT.name, + GEMMA_4_26B_A4B_IT.name, + GEMMA_4_31B_IT.name, ] as const export type GeminiModels = (typeof GEMINI_MODELS)[number] @@ -1090,6 +1351,19 @@ export type GeminiChatModelProviderOptionsByName = { GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions + [GEMINI_2_0_FLASH_001.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMINI_2_0_FLASH_LITE_001.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMINI_2_5_PRO_PREVIEW.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMINI_2_5_PRO_PREVIEW_05_06.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_2_27B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_2_9B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_3_12B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_3_27B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_3_4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_3N_E4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_4_26B_A4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMMA_4_31B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions } /** @@ -1120,4 +1394,17 @@ export type GeminiModelInputModalitiesByName = { [GEMINI_2_5_FLASH_PREVIEW.name]: typeof GEMINI_2_5_FLASH_PREVIEW.supports.input [GEMINI_2_FLASH.name]: typeof GEMINI_2_FLASH.supports.input [GEMINI_2_FLASH_LITE.name]: typeof GEMINI_2_FLASH_LITE.supports.input + [GEMINI_2_0_FLASH_001.name]: typeof GEMINI_2_0_FLASH_001.supports.input + [GEMINI_2_0_FLASH_LITE_001.name]: typeof GEMINI_2_0_FLASH_LITE_001.supports.input + [GEMINI_2_5_PRO_PREVIEW.name]: typeof GEMINI_2_5_PRO_PREVIEW.supports.input + [GEMINI_2_5_PRO_PREVIEW_05_06.name]: typeof GEMINI_2_5_PRO_PREVIEW_05_06.supports.input + [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: typeof GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.supports.input + [GEMMA_2_27B_IT.name]: typeof GEMMA_2_27B_IT.supports.input + [GEMMA_2_9B_IT.name]: typeof GEMMA_2_9B_IT.supports.input + [GEMMA_3_12B_IT.name]: typeof GEMMA_3_12B_IT.supports.input + [GEMMA_3_27B_IT.name]: typeof GEMMA_3_27B_IT.supports.input + [GEMMA_3_4B_IT.name]: typeof GEMMA_3_4B_IT.supports.input + [GEMMA_3N_E4B_IT.name]: typeof GEMMA_3N_E4B_IT.supports.input + [GEMMA_4_26B_A4B_IT.name]: typeof GEMMA_4_26B_A4B_IT.supports.input + [GEMMA_4_31B_IT.name]: typeof GEMMA_4_31B_IT.supports.input } diff --git a/packages/typescript/ai-grok/src/model-meta.ts b/packages/typescript/ai-grok/src/model-meta.ts index bae811b9..f8126081 100644 --- a/packages/typescript/ai-grok/src/model-meta.ts +++ b/packages/typescript/ai-grok/src/model-meta.ts @@ -213,6 +213,122 @@ const GROK_2_IMAGE = { * Grok Chat Models * Based on xAI's available models as of 2025 */ +const GROK_3_BETA = { + name: 'grok-3-beta', + context_window: 131_072, + supports: { + input: ['text'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, +} as const satisfies ModelMeta + +const GROK_3_MINI_BETA = { + name: 'grok-3-mini-beta', + context_window: 131_072, + supports: { + input: ['text'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, +} as const satisfies ModelMeta + +const GROK_4_FAST = { + name: 'grok-4-fast', + context_window: 2_000_000, + max_output_tokens: 30_000, + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, +} as const satisfies ModelMeta + +const GROK_4_1_FAST = { + name: 'grok-4.1-fast', + context_window: 2_000_000, + max_output_tokens: 30_000, + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, +} as const satisfies ModelMeta + +const GROK_4_20 = { + name: 'grok-4.20', + context_window: 2_000_000, + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, +} as const satisfies ModelMeta + +const GROK_4_20_MULTI_AGENT = { + name: 'grok-4.20-multi-agent', + context_window: 2_000_000, + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], + }, + pricing: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, +} as const satisfies ModelMeta + export const GROK_CHAT_MODELS = [ GROK_4_1_FAST_REASONING.name, GROK_4_1_FAST_NON_REASONING.name, @@ -223,6 +339,13 @@ export const GROK_CHAT_MODELS = [ GROK_3.name, GROK_3_MINI.name, GROK_2_VISION.name, + + GROK_3_BETA.name, + GROK_3_MINI_BETA.name, + GROK_4_FAST.name, + GROK_4_1_FAST.name, + GROK_4_20.name, + GROK_4_20_MULTI_AGENT.name, ] as const /** @@ -247,6 +370,12 @@ export type GrokModelInputModalitiesByName = { [GROK_3.name]: typeof GROK_3.supports.input [GROK_3_MINI.name]: typeof GROK_3_MINI.supports.input [GROK_2_VISION.name]: typeof GROK_2_VISION.supports.input + [GROK_3_BETA.name]: typeof GROK_3_BETA.supports.input + [GROK_3_MINI_BETA.name]: typeof GROK_3_MINI_BETA.supports.input + [GROK_4_FAST.name]: typeof GROK_4_FAST.supports.input + [GROK_4_1_FAST.name]: typeof GROK_4_1_FAST.supports.input + [GROK_4_20.name]: typeof GROK_4_20.supports.input + [GROK_4_20_MULTI_AGENT.name]: typeof GROK_4_20_MULTI_AGENT.supports.input } /** diff --git a/packages/typescript/ai-openai/src/model-meta.ts b/packages/typescript/ai-openai/src/model-meta.ts index 3557a9b4..1c5f9b8c 100644 --- a/packages/typescript/ai-openai/src/model-meta.ts +++ b/packages/typescript/ai-openai/src/model-meta.ts @@ -1646,6 +1646,589 @@ const TTS_1_HD = { > */ // Chat/text completion models (based on endpoints: "chat" or "chat-completions") +const GPT_3_5_TURBO_0613 = { + name: 'gpt-3.5-turbo-0613', + context_window: 4_095, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1, + }, + output: { + normal: 2, + }, + }, +} as const satisfies ModelMeta + +const GPT_3_5_TURBO_16K = { + name: 'gpt-3.5-turbo-16k', + context_window: 16_385, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 3, + }, + output: { + normal: 4, + }, + }, +} as const satisfies ModelMeta + +const GPT_3_5_TURBO_INSTRUCT = { + name: 'gpt-3.5-turbo-instruct', + context_window: 4_095, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.5, + }, + output: { + normal: 2, + }, + }, +} as const satisfies ModelMeta + +const GPT_4_0314 = { + name: 'gpt-4-0314', + context_window: 8_191, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 30, + }, + output: { + normal: 60, + }, + }, +} as const satisfies ModelMeta + +const GPT_4_1106_PREVIEW = { + name: 'gpt-4-1106-preview', + context_window: 128_000, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 10, + }, + output: { + normal: 30, + }, + }, +} as const satisfies ModelMeta + +const GPT_4_TURBO_PREVIEW = { + name: 'gpt-4-turbo-preview', + context_window: 128_000, + max_output_tokens: 4_096, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 10, + }, + output: { + normal: 30, + }, + }, +} as const satisfies ModelMeta + +const GPT_4O_2024_05_13 = { + name: 'gpt-4o-2024-05-13', + context_window: 128_000, + max_output_tokens: 4_096, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 5, + }, + output: { + normal: 15, + }, + }, +} as const satisfies ModelMeta + +const GPT_4O_2024_08_06 = { + name: 'gpt-4o-2024-08-06', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GPT_4O_2024_11_20 = { + name: 'gpt-4o-2024-11-20', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GPT_4O_AUDIO_PREVIEW = { + name: 'gpt-4o-audio-preview', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['audio', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 2.5, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GPT_4O_MINI_2024_07_18 = { + name: 'gpt-4o-mini-2024-07-18', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_IMAGE = { + name: 'gpt-5-image', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_IMAGE_MINI = { + name: 'gpt-5-image-mini', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_1_CODEX_MAX = { + name: 'gpt-5.1-codex-max', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_2_CHAT = { + name: 'gpt-5.2-chat', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_2_CODEX = { + name: 'gpt-5.2-codex', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_3_CHAT = { + name: 'gpt-5.3-chat', + context_window: 128_000, + max_output_tokens: 16_384, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_3_CODEX = { + name: 'gpt-5.3-codex', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_4 = { + name: 'gpt-5.4', + context_window: 1_050_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_4_MINI = { + name: 'gpt-5.4-mini', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_4_NANO = { + name: 'gpt-5.4-nano', + context_window: 400_000, + max_output_tokens: 128_000, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, +} as const satisfies ModelMeta + +const GPT_5_4_PRO = { + name: 'gpt-5.4-pro', + context_window: 1_050_000, + max_output_tokens: 128_000, + supports: { + input: ['text', 'image'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 30, + }, + output: { + normal: 180, + }, + }, +} as const satisfies ModelMeta + +const GPT_OSS_120B = { + name: 'gpt-oss-120b', + context_window: 131_072, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.039, + }, + output: { + normal: 0.19, + }, + }, +} as const satisfies ModelMeta + +const GPT_OSS_20B = { + name: 'gpt-oss-20b', + context_window: 131_072, + max_output_tokens: 131_072, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, +} as const satisfies ModelMeta + +const GPT_OSS_SAFEGUARD_20B = { + name: 'gpt-oss-safeguard-20b', + context_window: 131_072, + max_output_tokens: 65_536, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, +} as const satisfies ModelMeta + +const O3_MINI_HIGH = { + name: 'o3-mini-high', + context_window: 200_000, + max_output_tokens: 100_000, + supports: { + input: ['text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, +} as const satisfies ModelMeta + +const O4_MINI_HIGH = { + name: 'o4-mini-high', + context_window: 200_000, + max_output_tokens: 100_000, + supports: { + input: ['image', 'text'], + output: ['text'], + endpoints: ['chat', 'chat-completions'], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + }, + pricing: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, +} as const satisfies ModelMeta + export const OPENAI_CHAT_MODELS = [ // Frontier models GPT5_2.name, @@ -1694,6 +2277,34 @@ export const OPENAI_CHAT_MODELS = [ // Legacy reasoning O1.name, O1_PRO.name, + + GPT_3_5_TURBO_0613.name, + GPT_3_5_TURBO_16K.name, + GPT_3_5_TURBO_INSTRUCT.name, + GPT_4_0314.name, + GPT_4_1106_PREVIEW.name, + GPT_4_TURBO_PREVIEW.name, + GPT_4O_2024_05_13.name, + GPT_4O_2024_08_06.name, + GPT_4O_2024_11_20.name, + GPT_4O_AUDIO_PREVIEW.name, + GPT_4O_MINI_2024_07_18.name, + GPT_5_IMAGE.name, + GPT_5_IMAGE_MINI.name, + GPT_5_1_CODEX_MAX.name, + GPT_5_2_CHAT.name, + GPT_5_2_CODEX.name, + GPT_5_3_CHAT.name, + GPT_5_3_CODEX.name, + GPT_5_4.name, + GPT_5_4_MINI.name, + GPT_5_4_NANO.name, + GPT_5_4_PRO.name, + GPT_OSS_120B.name, + GPT_OSS_20B.name, + GPT_OSS_SAFEGUARD_20B.name, + O3_MINI_HIGH.name, + O4_MINI_HIGH.name, ] as const export type OpenAIChatModel = (typeof OPENAI_CHAT_MODELS)[number] @@ -1947,6 +2558,33 @@ export type OpenAIChatModelProviderOptionsByName = { OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_3_5_TURBO_0613.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_3_5_TURBO_16K.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_3_5_TURBO_INSTRUCT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4_0314.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4_1106_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4_TURBO_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4O_2024_05_13.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4O_2024_08_06.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4O_2024_11_20.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4O_AUDIO_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_4O_MINI_2024_07_18.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_IMAGE.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_IMAGE_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_1_CODEX_MAX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_2_CHAT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_2_CODEX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_3_CHAT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_3_CODEX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4_NANO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4_PRO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_OSS_120B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_OSS_20B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_OSS_SAFEGUARD_20B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [O3_MINI_HIGH.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [O4_MINI_HIGH.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions } /** @@ -2002,4 +2640,31 @@ export type OpenAIModelInputModalitiesByName = { [O3_MINI.name]: typeof O3_MINI.supports.input [GPT_4O_SEARCH_PREVIEW.name]: typeof GPT_4O_SEARCH_PREVIEW.supports.input [GPT_4O_MINI_SEARCH_PREVIEW.name]: typeof GPT_4O_MINI_SEARCH_PREVIEW.supports.input + [GPT_3_5_TURBO_0613.name]: typeof GPT_3_5_TURBO_0613.supports.input + [GPT_3_5_TURBO_16K.name]: typeof GPT_3_5_TURBO_16K.supports.input + [GPT_3_5_TURBO_INSTRUCT.name]: typeof GPT_3_5_TURBO_INSTRUCT.supports.input + [GPT_4_0314.name]: typeof GPT_4_0314.supports.input + [GPT_4_1106_PREVIEW.name]: typeof GPT_4_1106_PREVIEW.supports.input + [GPT_4_TURBO_PREVIEW.name]: typeof GPT_4_TURBO_PREVIEW.supports.input + [GPT_4O_2024_05_13.name]: typeof GPT_4O_2024_05_13.supports.input + [GPT_4O_2024_08_06.name]: typeof GPT_4O_2024_08_06.supports.input + [GPT_4O_2024_11_20.name]: typeof GPT_4O_2024_11_20.supports.input + [GPT_4O_AUDIO_PREVIEW.name]: typeof GPT_4O_AUDIO_PREVIEW.supports.input + [GPT_4O_MINI_2024_07_18.name]: typeof GPT_4O_MINI_2024_07_18.supports.input + [GPT_5_IMAGE.name]: typeof GPT_5_IMAGE.supports.input + [GPT_5_IMAGE_MINI.name]: typeof GPT_5_IMAGE_MINI.supports.input + [GPT_5_1_CODEX_MAX.name]: typeof GPT_5_1_CODEX_MAX.supports.input + [GPT_5_2_CHAT.name]: typeof GPT_5_2_CHAT.supports.input + [GPT_5_2_CODEX.name]: typeof GPT_5_2_CODEX.supports.input + [GPT_5_3_CHAT.name]: typeof GPT_5_3_CHAT.supports.input + [GPT_5_3_CODEX.name]: typeof GPT_5_3_CODEX.supports.input + [GPT_5_4.name]: typeof GPT_5_4.supports.input + [GPT_5_4_MINI.name]: typeof GPT_5_4_MINI.supports.input + [GPT_5_4_NANO.name]: typeof GPT_5_4_NANO.supports.input + [GPT_5_4_PRO.name]: typeof GPT_5_4_PRO.supports.input + [GPT_OSS_120B.name]: typeof GPT_OSS_120B.supports.input + [GPT_OSS_20B.name]: typeof GPT_OSS_20B.supports.input + [GPT_OSS_SAFEGUARD_20B.name]: typeof GPT_OSS_SAFEGUARD_20B.supports.input + [O3_MINI_HIGH.name]: typeof O3_MINI_HIGH.supports.input + [O4_MINI_HIGH.name]: typeof O4_MINI_HIGH.supports.input } From 499c75623a7f3476b883855666aa8749a29bc14a Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:48:38 +0000 Subject: [PATCH 14/20] ci: apply automated fixes --- .../typescript/ai-anthropic/src/model-meta.ts | 20 +- .../typescript/ai-gemini/src/model-meta.ts | 390 +++++++- .../typescript/ai-openai/src/model-meta.ts | 837 +++++++++++++++--- 3 files changed, 1098 insertions(+), 149 deletions(-) diff --git a/packages/typescript/ai-anthropic/src/model-meta.ts b/packages/typescript/ai-anthropic/src/model-meta.ts index 122b71e3..fd6d7544 100644 --- a/packages/typescript/ai-anthropic/src/model-meta.ts +++ b/packages/typescript/ai-anthropic/src/model-meta.ts @@ -442,7 +442,16 @@ const CLAUDE_OPUS_4_6_FAST = { normal: 150, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + AnthropicContainerOptions & + AnthropicContextManagementOptions & + AnthropicMCPOptions & + AnthropicServiceTierOptions & + AnthropicStopSequencesOptions & + AnthropicThinkingOptions & + AnthropicToolChoiceOptions & + AnthropicSamplingOptions +> export const ANTHROPIC_MODELS = [ CLAUDE_OPUS_4_6.id, @@ -560,7 +569,14 @@ export type AnthropicChatModelProviderOptionsByName = { AnthropicStopSequencesOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions - [CLAUDE_OPUS_4_6_FAST.id]: AnthropicContainerOptions & AnthropicContextManagementOptions & AnthropicMCPOptions & AnthropicServiceTierOptions & AnthropicStopSequencesOptions & AnthropicThinkingOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions + [CLAUDE_OPUS_4_6_FAST.id]: AnthropicContainerOptions & + AnthropicContextManagementOptions & + AnthropicMCPOptions & + AnthropicServiceTierOptions & + AnthropicStopSequencesOptions & + AnthropicThinkingOptions & + AnthropicToolChoiceOptions & + AnthropicSamplingOptions } /** diff --git a/packages/typescript/ai-gemini/src/model-meta.ts b/packages/typescript/ai-gemini/src/model-meta.ts index f945bf36..68a48a53 100644 --- a/packages/typescript/ai-gemini/src/model-meta.ts +++ b/packages/typescript/ai-gemini/src/model-meta.ts @@ -934,7 +934,17 @@ const GEMINI_2_0_FLASH_001 = { supports: { input: ['text', 'image', 'document', 'audio', 'video'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -945,7 +955,15 @@ const GEMINI_2_0_FLASH_001 = { normal: 0.4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMINI_2_0_FLASH_LITE_001 = { name: 'gemini-2.0-flash-lite-001', @@ -954,7 +972,17 @@ const GEMINI_2_0_FLASH_LITE_001 = { supports: { input: ['text', 'image', 'document', 'audio', 'video'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -964,7 +992,15 @@ const GEMINI_2_0_FLASH_LITE_001 = { normal: 0.3, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMINI_2_5_PRO_PREVIEW = { name: 'gemini-2.5-pro-preview', @@ -973,7 +1009,17 @@ const GEMINI_2_5_PRO_PREVIEW = { supports: { input: ['document', 'image', 'text', 'audio'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -984,7 +1030,15 @@ const GEMINI_2_5_PRO_PREVIEW = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMINI_2_5_PRO_PREVIEW_05_06 = { name: 'gemini-2.5-pro-preview-05-06', @@ -993,7 +1047,17 @@ const GEMINI_2_5_PRO_PREVIEW_05_06 = { supports: { input: ['text', 'image', 'document', 'audio', 'video'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1004,7 +1068,15 @@ const GEMINI_2_5_PRO_PREVIEW_05_06 = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { name: 'gemini-3.1-pro-preview-customtools', @@ -1013,7 +1085,17 @@ const GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { supports: { input: ['text', 'audio', 'image', 'video', 'document'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1024,7 +1106,15 @@ const GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { normal: 12, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_2_27B_IT = { name: 'gemma-2-27b-it', @@ -1033,7 +1123,17 @@ const GEMMA_2_27B_IT = { supports: { input: ['text'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1043,7 +1143,15 @@ const GEMMA_2_27B_IT = { normal: 0.65, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_2_9B_IT = { name: 'gemma-2-9b-it', @@ -1051,7 +1159,17 @@ const GEMMA_2_9B_IT = { supports: { input: ['text'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1061,7 +1179,15 @@ const GEMMA_2_9B_IT = { normal: 0.09, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_3_12B_IT = { name: 'gemma-3-12b-it', @@ -1069,7 +1195,17 @@ const GEMMA_3_12B_IT = { supports: { input: ['text', 'image'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1079,7 +1215,15 @@ const GEMMA_3_12B_IT = { normal: 0.13, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_3_27B_IT = { name: 'gemma-3-27b-it', @@ -1088,7 +1232,17 @@ const GEMMA_3_27B_IT = { supports: { input: ['text', 'image'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1098,7 +1252,15 @@ const GEMMA_3_27B_IT = { normal: 0.16, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_3_4B_IT = { name: 'gemma-3-4b-it', @@ -1106,7 +1268,17 @@ const GEMMA_3_4B_IT = { supports: { input: ['text', 'image'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1116,7 +1288,15 @@ const GEMMA_3_4B_IT = { normal: 0.08, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_3N_E4B_IT = { name: 'gemma-3n-e4b-it', @@ -1124,7 +1304,17 @@ const GEMMA_3N_E4B_IT = { supports: { input: ['text'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1134,7 +1324,15 @@ const GEMMA_3N_E4B_IT = { normal: 0.04, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_4_26B_A4B_IT = { name: 'gemma-4-26b-a4b-it', @@ -1143,7 +1341,17 @@ const GEMMA_4_26B_A4B_IT = { supports: { input: ['image', 'text', 'video'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1153,7 +1361,15 @@ const GEMMA_4_26B_A4B_IT = { normal: 0.4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> const GEMMA_4_31B_IT = { name: 'gemma-4-31b-it', @@ -1162,7 +1378,17 @@ const GEMMA_4_31B_IT = { supports: { input: ['image', 'text', 'video'], output: ['text'], - capabilities: ['batch_api', 'caching', 'code_execution', 'file_search', 'function_calling', 'search_grounding', 'structured_output', 'thinking', 'url_context'], + capabilities: [ + 'batch_api', + 'caching', + 'code_execution', + 'file_search', + 'function_calling', + 'search_grounding', + 'structured_output', + 'thinking', + 'url_context', + ], }, pricing: { input: { @@ -1172,7 +1398,15 @@ const GEMMA_4_31B_IT = { normal: 0.4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions +> export const GEMINI_MODELS = [ GEMINI_3_1_PRO.name, @@ -1351,19 +1585,97 @@ export type GeminiChatModelProviderOptionsByName = { GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions - [GEMINI_2_0_FLASH_001.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMINI_2_0_FLASH_LITE_001.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMINI_2_5_PRO_PREVIEW.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMINI_2_5_PRO_PREVIEW_05_06.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_2_27B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_2_9B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_3_12B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_3_27B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_3_4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_3N_E4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_4_26B_A4B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions - [GEMMA_4_31B_IT.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions + [GEMINI_2_0_FLASH_001.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMINI_2_0_FLASH_LITE_001.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMINI_2_5_PRO_PREVIEW.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMINI_2_5_PRO_PREVIEW_05_06.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_2_27B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_2_9B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_3_12B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_3_27B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_3_4B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_3N_E4B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_4_26B_A4B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions + [GEMMA_4_31B_IT.name]: GeminiToolConfigOptions & + GeminiSafetyOptions & + GeminiCommonConfigOptions & + GeminiCachedContentOptions & + GeminiStructuredOutputOptions & + GeminiThinkingOptions & + GeminiThinkingAdvancedOptions } /** diff --git a/packages/typescript/ai-openai/src/model-meta.ts b/packages/typescript/ai-openai/src/model-meta.ts index 1c5f9b8c..4614b06c 100644 --- a/packages/typescript/ai-openai/src/model-meta.ts +++ b/packages/typescript/ai-openai/src/model-meta.ts @@ -1654,8 +1654,19 @@ const GPT_3_5_TURBO_0613 = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1665,7 +1676,14 @@ const GPT_3_5_TURBO_0613 = { normal: 2, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_3_5_TURBO_16K = { name: 'gpt-3.5-turbo-16k', @@ -1675,8 +1693,19 @@ const GPT_3_5_TURBO_16K = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1686,7 +1715,14 @@ const GPT_3_5_TURBO_16K = { normal: 4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_3_5_TURBO_INSTRUCT = { name: 'gpt-3.5-turbo-instruct', @@ -1696,8 +1732,19 @@ const GPT_3_5_TURBO_INSTRUCT = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1707,7 +1754,14 @@ const GPT_3_5_TURBO_INSTRUCT = { normal: 2, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4_0314 = { name: 'gpt-4-0314', @@ -1717,8 +1771,19 @@ const GPT_4_0314 = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1728,7 +1793,14 @@ const GPT_4_0314 = { normal: 60, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4_1106_PREVIEW = { name: 'gpt-4-1106-preview', @@ -1738,8 +1810,19 @@ const GPT_4_1106_PREVIEW = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1749,7 +1832,14 @@ const GPT_4_1106_PREVIEW = { normal: 30, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4_TURBO_PREVIEW = { name: 'gpt-4-turbo-preview', @@ -1759,8 +1849,19 @@ const GPT_4_TURBO_PREVIEW = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1770,7 +1871,14 @@ const GPT_4_TURBO_PREVIEW = { normal: 30, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4O_2024_05_13 = { name: 'gpt-4o-2024-05-13', @@ -1780,8 +1888,19 @@ const GPT_4O_2024_05_13 = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1791,7 +1910,14 @@ const GPT_4O_2024_05_13 = { normal: 15, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4O_2024_08_06 = { name: 'gpt-4o-2024-08-06', @@ -1801,8 +1927,19 @@ const GPT_4O_2024_08_06 = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1813,7 +1950,14 @@ const GPT_4O_2024_08_06 = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4O_2024_11_20 = { name: 'gpt-4o-2024-11-20', @@ -1823,8 +1967,19 @@ const GPT_4O_2024_11_20 = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1835,7 +1990,14 @@ const GPT_4O_2024_11_20 = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4O_AUDIO_PREVIEW = { name: 'gpt-4o-audio-preview', @@ -1845,8 +2007,19 @@ const GPT_4O_AUDIO_PREVIEW = { input: ['audio', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1856,7 +2029,14 @@ const GPT_4O_AUDIO_PREVIEW = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_4O_MINI_2024_07_18 = { name: 'gpt-4o-mini-2024-07-18', @@ -1866,8 +2046,19 @@ const GPT_4O_MINI_2024_07_18 = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1878,7 +2069,14 @@ const GPT_4O_MINI_2024_07_18 = { normal: 0.6, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_IMAGE = { name: 'gpt-5-image', @@ -1888,8 +2086,19 @@ const GPT_5_IMAGE = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1900,7 +2109,14 @@ const GPT_5_IMAGE = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_IMAGE_MINI = { name: 'gpt-5-image-mini', @@ -1910,8 +2126,19 @@ const GPT_5_IMAGE_MINI = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1922,7 +2149,14 @@ const GPT_5_IMAGE_MINI = { normal: 2, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_1_CODEX_MAX = { name: 'gpt-5.1-codex-max', @@ -1932,8 +2166,19 @@ const GPT_5_1_CODEX_MAX = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1944,7 +2189,14 @@ const GPT_5_1_CODEX_MAX = { normal: 10, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_2_CHAT = { name: 'gpt-5.2-chat', @@ -1954,8 +2206,19 @@ const GPT_5_2_CHAT = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1966,7 +2229,14 @@ const GPT_5_2_CHAT = { normal: 14, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_2_CODEX = { name: 'gpt-5.2-codex', @@ -1976,8 +2246,19 @@ const GPT_5_2_CODEX = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1988,7 +2269,14 @@ const GPT_5_2_CODEX = { normal: 14, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_3_CHAT = { name: 'gpt-5.3-chat', @@ -1998,8 +2286,19 @@ const GPT_5_3_CHAT = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2010,7 +2309,14 @@ const GPT_5_3_CHAT = { normal: 14, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_3_CODEX = { name: 'gpt-5.3-codex', @@ -2020,8 +2326,19 @@ const GPT_5_3_CODEX = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2032,7 +2349,14 @@ const GPT_5_3_CODEX = { normal: 14, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_4 = { name: 'gpt-5.4', @@ -2042,8 +2366,19 @@ const GPT_5_4 = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2054,7 +2389,14 @@ const GPT_5_4 = { normal: 15, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_4_MINI = { name: 'gpt-5.4-mini', @@ -2064,8 +2406,19 @@ const GPT_5_4_MINI = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2076,7 +2429,14 @@ const GPT_5_4_MINI = { normal: 4.5, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_4_NANO = { name: 'gpt-5.4-nano', @@ -2086,8 +2446,19 @@ const GPT_5_4_NANO = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2098,7 +2469,14 @@ const GPT_5_4_NANO = { normal: 1.25, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_4_PRO = { name: 'gpt-5.4-pro', @@ -2108,8 +2486,19 @@ const GPT_5_4_PRO = { input: ['text', 'image'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2119,7 +2508,14 @@ const GPT_5_4_PRO = { normal: 180, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_OSS_120B = { name: 'gpt-oss-120b', @@ -2128,8 +2524,19 @@ const GPT_OSS_120B = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2139,7 +2546,14 @@ const GPT_OSS_120B = { normal: 0.19, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_OSS_20B = { name: 'gpt-oss-20b', @@ -2149,8 +2563,19 @@ const GPT_OSS_20B = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2161,7 +2586,14 @@ const GPT_OSS_20B = { normal: 0.11, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_OSS_SAFEGUARD_20B = { name: 'gpt-oss-safeguard-20b', @@ -2171,8 +2603,19 @@ const GPT_OSS_SAFEGUARD_20B = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2183,7 +2626,14 @@ const GPT_OSS_SAFEGUARD_20B = { normal: 0.3, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const O3_MINI_HIGH = { name: 'o3-mini-high', @@ -2193,8 +2643,19 @@ const O3_MINI_HIGH = { input: ['text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2205,7 +2666,14 @@ const O3_MINI_HIGH = { normal: 4.4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const O4_MINI_HIGH = { name: 'o4-mini-high', @@ -2215,8 +2683,19 @@ const O4_MINI_HIGH = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -2227,7 +2706,14 @@ const O4_MINI_HIGH = { normal: 4.4, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> export const OPENAI_CHAT_MODELS = [ // Frontier models @@ -2558,33 +3044,168 @@ export type OpenAIChatModelProviderOptionsByName = { OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_3_5_TURBO_0613.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_3_5_TURBO_16K.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_3_5_TURBO_INSTRUCT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4_0314.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4_1106_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4_TURBO_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4O_2024_05_13.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4O_2024_08_06.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4O_2024_11_20.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4O_AUDIO_PREVIEW.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_4O_MINI_2024_07_18.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_IMAGE.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_IMAGE_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_1_CODEX_MAX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_2_CHAT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_2_CODEX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_3_CHAT.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_3_CODEX.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4_NANO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4_PRO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_OSS_120B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_OSS_20B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_OSS_SAFEGUARD_20B.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [O3_MINI_HIGH.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [O4_MINI_HIGH.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_3_5_TURBO_0613.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_3_5_TURBO_16K.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_3_5_TURBO_INSTRUCT.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4_0314.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4_1106_PREVIEW.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4_TURBO_PREVIEW.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4O_2024_05_13.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4O_2024_08_06.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4O_2024_11_20.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4O_AUDIO_PREVIEW.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_4O_MINI_2024_07_18.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_IMAGE.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_IMAGE_MINI.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_1_CODEX_MAX.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_2_CHAT.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_2_CODEX.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_3_CHAT.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_3_CODEX.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_4.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_4_MINI.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_4_NANO.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_4_PRO.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_OSS_120B.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_OSS_20B.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_OSS_SAFEGUARD_20B.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [O3_MINI_HIGH.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [O4_MINI_HIGH.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions } /** From e94c1c6474a4b897965cb89ab4e72da997bab778 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 10 Apr 2026 13:50:35 +0200 Subject: [PATCH 15/20] feat: add model age filtering and provider skip patterns - Skip deprecated/legacy model families per provider: - OpenAI: gpt-3.5-*, gpt-4-*, gpt-4o*, gpt-oss-*, chatgpt-* - Google: gemma-* (open-source, not Gemini API models) - Skip models created >30 days before last sync run - Track last run timestamp in scripts/.sync-models-last-run - Re-sync with filters: 5 models added (was 47 without filters) --- .changeset/sync-models-1775821757387.md | 8 + .github/workflows/sync-models.yml | 2 +- .../typescript/ai-gemini/src/model-meta.ts | 599 -------- packages/typescript/ai-grok/src/model-meta.ts | 86 -- .../typescript/ai-openai/src/model-meta.ts | 1281 +---------------- scripts/.sync-models-last-run | 1 + scripts/sync-provider-models.ts | 83 ++ 7 files changed, 116 insertions(+), 1944 deletions(-) create mode 100644 .changeset/sync-models-1775821757387.md create mode 100644 scripts/.sync-models-last-run diff --git a/.changeset/sync-models-1775821757387.md b/.changeset/sync-models-1775821757387.md new file mode 100644 index 00000000..84e913b4 --- /dev/null +++ b/.changeset/sync-models-1775821757387.md @@ -0,0 +1,8 @@ +--- +'@tanstack/ai-anthropic': patch +'@tanstack/ai-grok': patch +'@tanstack/ai-openai': patch +'@tanstack/ai-openrouter': patch +--- + +Update model metadata from OpenRouter API diff --git a/.github/workflows/sync-models.yml b/.github/workflows/sync-models.yml index 8fe72aad..ca71fe18 100644 --- a/.github/workflows/sync-models.yml +++ b/.github/workflows/sync-models.yml @@ -43,7 +43,7 @@ jobs: run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add packages/ scripts/openrouter.models.ts .changeset/ + git add packages/ scripts/openrouter.models.ts scripts/.sync-models-last-run .changeset/ git commit -m "chore: sync model metadata from OpenRouter" git push --force origin HEAD:automated/sync-models env: diff --git a/packages/typescript/ai-gemini/src/model-meta.ts b/packages/typescript/ai-gemini/src/model-meta.ts index 68a48a53..5b4c3b92 100644 --- a/packages/typescript/ai-gemini/src/model-meta.ts +++ b/packages/typescript/ai-gemini/src/model-meta.ts @@ -927,487 +927,6 @@ const VEO_2 = { [VEO_2.name]: VEO_2, } as const */ -const GEMINI_2_0_FLASH_001 = { - name: 'gemini-2.0-flash-001', - max_input_tokens: 1_048_576, - max_output_tokens: 8_192, - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMINI_2_0_FLASH_LITE_001 = { - name: 'gemini-2.0-flash-lite-001', - max_input_tokens: 1_048_576, - max_output_tokens: 8_192, - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.075, - }, - output: { - normal: 0.3, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMINI_2_5_PRO_PREVIEW = { - name: 'gemini-2.5-pro-preview', - max_input_tokens: 1_048_576, - max_output_tokens: 65_536, - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMINI_2_5_PRO_PREVIEW_05_06 = { - name: 'gemini-2.5-pro-preview-05-06', - max_input_tokens: 1_048_576, - max_output_tokens: 65_535, - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - name: 'gemini-3.1-pro-preview-customtools', - max_input_tokens: 1_048_576, - max_output_tokens: 65_536, - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 12, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_2_27B_IT = { - name: 'gemma-2-27b-it', - max_input_tokens: 8_192, - max_output_tokens: 2_048, - supports: { - input: ['text'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.65, - }, - output: { - normal: 0.65, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_2_9B_IT = { - name: 'gemma-2-9b-it', - max_input_tokens: 8_192, - supports: { - input: ['text'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.03, - }, - output: { - normal: 0.09, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_3_12B_IT = { - name: 'gemma-3-12b-it', - max_input_tokens: 131_072, - supports: { - input: ['text', 'image'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.04, - }, - output: { - normal: 0.13, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_3_27B_IT = { - name: 'gemma-3-27b-it', - max_input_tokens: 131_072, - max_output_tokens: 16_384, - supports: { - input: ['text', 'image'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.08, - }, - output: { - normal: 0.16, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_3_4B_IT = { - name: 'gemma-3-4b-it', - max_input_tokens: 131_072, - supports: { - input: ['text', 'image'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.04, - }, - output: { - normal: 0.08, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_3N_E4B_IT = { - name: 'gemma-3n-e4b-it', - max_input_tokens: 32_768, - supports: { - input: ['text'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.02, - }, - output: { - normal: 0.04, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_4_26B_A4B_IT = { - name: 'gemma-4-26b-a4b-it', - max_input_tokens: 262_144, - max_output_tokens: 262_144, - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.13, - }, - output: { - normal: 0.4, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - -const GEMMA_4_31B_IT = { - name: 'gemma-4-31b-it', - max_input_tokens: 262_144, - max_output_tokens: 131_072, - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - capabilities: [ - 'batch_api', - 'caching', - 'code_execution', - 'file_search', - 'function_calling', - 'search_grounding', - 'structured_output', - 'thinking', - 'url_context', - ], - }, - pricing: { - input: { - normal: 0.14, - }, - output: { - normal: 0.4, - }, - }, -} as const satisfies ModelMeta< - GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions -> - export const GEMINI_MODELS = [ GEMINI_3_1_PRO.name, GEMINI_3_PRO.name, @@ -1420,20 +939,6 @@ export const GEMINI_MODELS = [ GEMINI_2_5_FLASH_LITE_PREVIEW.name, GEMINI_2_FLASH.name, GEMINI_2_FLASH_LITE.name, - - GEMINI_2_0_FLASH_001.name, - GEMINI_2_0_FLASH_LITE_001.name, - GEMINI_2_5_PRO_PREVIEW.name, - GEMINI_2_5_PRO_PREVIEW_05_06.name, - GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name, - GEMMA_2_27B_IT.name, - GEMMA_2_9B_IT.name, - GEMMA_3_12B_IT.name, - GEMMA_3_27B_IT.name, - GEMMA_3_4B_IT.name, - GEMMA_3N_E4B_IT.name, - GEMMA_4_26B_A4B_IT.name, - GEMMA_4_31B_IT.name, ] as const export type GeminiModels = (typeof GEMINI_MODELS)[number] @@ -1585,97 +1090,6 @@ export type GeminiChatModelProviderOptionsByName = { GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions - [GEMINI_2_0_FLASH_001.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMINI_2_0_FLASH_LITE_001.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMINI_2_5_PRO_PREVIEW.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMINI_2_5_PRO_PREVIEW_05_06.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_2_27B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_2_9B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_3_12B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_3_27B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_3_4B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_3N_E4B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_4_26B_A4B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions - [GEMMA_4_31B_IT.name]: GeminiToolConfigOptions & - GeminiSafetyOptions & - GeminiCommonConfigOptions & - GeminiCachedContentOptions & - GeminiStructuredOutputOptions & - GeminiThinkingOptions & - GeminiThinkingAdvancedOptions } /** @@ -1706,17 +1120,4 @@ export type GeminiModelInputModalitiesByName = { [GEMINI_2_5_FLASH_PREVIEW.name]: typeof GEMINI_2_5_FLASH_PREVIEW.supports.input [GEMINI_2_FLASH.name]: typeof GEMINI_2_FLASH.supports.input [GEMINI_2_FLASH_LITE.name]: typeof GEMINI_2_FLASH_LITE.supports.input - [GEMINI_2_0_FLASH_001.name]: typeof GEMINI_2_0_FLASH_001.supports.input - [GEMINI_2_0_FLASH_LITE_001.name]: typeof GEMINI_2_0_FLASH_LITE_001.supports.input - [GEMINI_2_5_PRO_PREVIEW.name]: typeof GEMINI_2_5_PRO_PREVIEW.supports.input - [GEMINI_2_5_PRO_PREVIEW_05_06.name]: typeof GEMINI_2_5_PRO_PREVIEW_05_06.supports.input - [GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.name]: typeof GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.supports.input - [GEMMA_2_27B_IT.name]: typeof GEMMA_2_27B_IT.supports.input - [GEMMA_2_9B_IT.name]: typeof GEMMA_2_9B_IT.supports.input - [GEMMA_3_12B_IT.name]: typeof GEMMA_3_12B_IT.supports.input - [GEMMA_3_27B_IT.name]: typeof GEMMA_3_27B_IT.supports.input - [GEMMA_3_4B_IT.name]: typeof GEMMA_3_4B_IT.supports.input - [GEMMA_3N_E4B_IT.name]: typeof GEMMA_3N_E4B_IT.supports.input - [GEMMA_4_26B_A4B_IT.name]: typeof GEMMA_4_26B_A4B_IT.supports.input - [GEMMA_4_31B_IT.name]: typeof GEMMA_4_31B_IT.supports.input } diff --git a/packages/typescript/ai-grok/src/model-meta.ts b/packages/typescript/ai-grok/src/model-meta.ts index f8126081..1b1e0f82 100644 --- a/packages/typescript/ai-grok/src/model-meta.ts +++ b/packages/typescript/ai-grok/src/model-meta.ts @@ -213,84 +213,6 @@ const GROK_2_IMAGE = { * Grok Chat Models * Based on xAI's available models as of 2025 */ -const GROK_3_BETA = { - name: 'grok-3-beta', - context_window: 131_072, - supports: { - input: ['text'], - output: ['text'], - capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], - }, - pricing: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, -} as const satisfies ModelMeta - -const GROK_3_MINI_BETA = { - name: 'grok-3-mini-beta', - context_window: 131_072, - supports: { - input: ['text'], - output: ['text'], - capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], - }, - pricing: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, -} as const satisfies ModelMeta - -const GROK_4_FAST = { - name: 'grok-4-fast', - context_window: 2_000_000, - max_output_tokens: 30_000, - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], - }, - pricing: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, -} as const satisfies ModelMeta - -const GROK_4_1_FAST = { - name: 'grok-4.1-fast', - context_window: 2_000_000, - max_output_tokens: 30_000, - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - capabilities: ['reasoning', 'structured_outputs', 'tool_calling'], - }, - pricing: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, -} as const satisfies ModelMeta - const GROK_4_20 = { name: 'grok-4.20', context_window: 2_000_000, @@ -340,10 +262,6 @@ export const GROK_CHAT_MODELS = [ GROK_3_MINI.name, GROK_2_VISION.name, - GROK_3_BETA.name, - GROK_3_MINI_BETA.name, - GROK_4_FAST.name, - GROK_4_1_FAST.name, GROK_4_20.name, GROK_4_20_MULTI_AGENT.name, ] as const @@ -370,10 +288,6 @@ export type GrokModelInputModalitiesByName = { [GROK_3.name]: typeof GROK_3.supports.input [GROK_3_MINI.name]: typeof GROK_3_MINI.supports.input [GROK_2_VISION.name]: typeof GROK_2_VISION.supports.input - [GROK_3_BETA.name]: typeof GROK_3_BETA.supports.input - [GROK_3_MINI_BETA.name]: typeof GROK_3_MINI_BETA.supports.input - [GROK_4_FAST.name]: typeof GROK_4_FAST.supports.input - [GROK_4_1_FAST.name]: typeof GROK_4_1_FAST.supports.input [GROK_4_20.name]: typeof GROK_4_20.supports.input [GROK_4_20_MULTI_AGENT.name]: typeof GROK_4_20_MULTI_AGENT.supports.input } diff --git a/packages/typescript/ai-openai/src/model-meta.ts b/packages/typescript/ai-openai/src/model-meta.ts index 4614b06c..745fc3ab 100644 --- a/packages/typescript/ai-openai/src/model-meta.ts +++ b/packages/typescript/ai-openai/src/model-meta.ts @@ -1646,1074 +1646,49 @@ const TTS_1_HD = { > */ // Chat/text completion models (based on endpoints: "chat" or "chat-completions") -const GPT_3_5_TURBO_0613 = { - name: 'gpt-3.5-turbo-0613', - context_window: 4_095, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1, - }, - output: { - normal: 2, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_3_5_TURBO_16K = { - name: 'gpt-3.5-turbo-16k', - context_window: 16_385, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 3, - }, - output: { - normal: 4, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_3_5_TURBO_INSTRUCT = { - name: 'gpt-3.5-turbo-instruct', - context_window: 4_095, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.5, - }, - output: { - normal: 2, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4_0314 = { - name: 'gpt-4-0314', - context_window: 8_191, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 30, - }, - output: { - normal: 60, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4_1106_PREVIEW = { - name: 'gpt-4-1106-preview', - context_window: 128_000, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 10, - }, - output: { - normal: 30, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4_TURBO_PREVIEW = { - name: 'gpt-4-turbo-preview', - context_window: 128_000, - max_output_tokens: 4_096, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 10, - }, - output: { - normal: 30, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4O_2024_05_13 = { - name: 'gpt-4o-2024-05-13', - context_window: 128_000, - max_output_tokens: 4_096, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 5, - }, - output: { - normal: 15, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4O_2024_08_06 = { - name: 'gpt-4o-2024-08-06', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4O_2024_11_20 = { - name: 'gpt-4o-2024-11-20', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4O_AUDIO_PREVIEW = { - name: 'gpt-4o-audio-preview', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['audio', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 2.5, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_4O_MINI_2024_07_18 = { - name: 'gpt-4o-mini-2024-07-18', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_IMAGE = { - name: 'gpt-5-image', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['image', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_IMAGE_MINI = { - name: 'gpt-5-image-mini', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['image', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_1_CODEX_MAX = { - name: 'gpt-5.1-codex-max', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_2_CHAT = { - name: 'gpt-5.2-chat', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['image', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_2_CODEX = { - name: 'gpt-5.2-codex', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_3_CHAT = { - name: 'gpt-5.3-chat', - context_window: 128_000, - max_output_tokens: 16_384, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_3_CODEX = { - name: 'gpt-5.3-codex', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_4 = { - name: 'gpt-5.4', - context_window: 1_050_000, - max_output_tokens: 128_000, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_4_MINI = { - name: 'gpt-5.4-mini', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['image', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_4_NANO = { - name: 'gpt-5.4-nano', - context_window: 400_000, - max_output_tokens: 128_000, - supports: { - input: ['image', 'text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_5_4_PRO = { - name: 'gpt-5.4-pro', - context_window: 1_050_000, - max_output_tokens: 128_000, - supports: { - input: ['text', 'image'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 30, - }, - output: { - normal: 180, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_OSS_120B = { - name: 'gpt-oss-120b', - context_window: 131_072, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.039, - }, - output: { - normal: 0.19, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_OSS_20B = { - name: 'gpt-oss-20b', - context_window: 131_072, - max_output_tokens: 131_072, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const GPT_OSS_SAFEGUARD_20B = { - name: 'gpt-oss-safeguard-20b', - context_window: 131_072, - max_output_tokens: 65_536, - supports: { - input: ['text'], - output: ['text'], - endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], - }, - pricing: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> - -const O3_MINI_HIGH = { - name: 'o3-mini-high', - context_window: 200_000, - max_output_tokens: 100_000, +const GPT_5_4_MINI = { + name: 'gpt-5.4-mini', + context_window: 400_000, + max_output_tokens: 128_000, supports: { - input: ['text'], + input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], }, pricing: { input: { - normal: 1.1, - cached: 0.55, + normal: 0.75, + cached: 0.075, }, output: { - normal: 4.4, + normal: 4.5, }, }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> +} as const satisfies ModelMeta -const O4_MINI_HIGH = { - name: 'o4-mini-high', - context_window: 200_000, - max_output_tokens: 100_000, +const GPT_5_4_NANO = { + name: 'gpt-5.4-nano', + context_window: 400_000, + max_output_tokens: 128_000, supports: { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: [ - 'streaming', - 'function_calling', - 'structured_outputs', - 'distillation', - ], - tools: [ - 'web_search', - 'file_search', - 'image_generation', - 'code_interpreter', - 'mcp', - ], + features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], + tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], }, pricing: { input: { - normal: 1.1, - cached: 0.275, + normal: 0.2, + cached: 0.02, }, output: { - normal: 4.4, + normal: 1.25, }, }, -} as const satisfies ModelMeta< - OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions -> +} as const satisfies ModelMeta export const OPENAI_CHAT_MODELS = [ // Frontier models @@ -2764,33 +1739,8 @@ export const OPENAI_CHAT_MODELS = [ O1.name, O1_PRO.name, - GPT_3_5_TURBO_0613.name, - GPT_3_5_TURBO_16K.name, - GPT_3_5_TURBO_INSTRUCT.name, - GPT_4_0314.name, - GPT_4_1106_PREVIEW.name, - GPT_4_TURBO_PREVIEW.name, - GPT_4O_2024_05_13.name, - GPT_4O_2024_08_06.name, - GPT_4O_2024_11_20.name, - GPT_4O_AUDIO_PREVIEW.name, - GPT_4O_MINI_2024_07_18.name, - GPT_5_IMAGE.name, - GPT_5_IMAGE_MINI.name, - GPT_5_1_CODEX_MAX.name, - GPT_5_2_CHAT.name, - GPT_5_2_CODEX.name, - GPT_5_3_CHAT.name, - GPT_5_3_CODEX.name, - GPT_5_4.name, GPT_5_4_MINI.name, GPT_5_4_NANO.name, - GPT_5_4_PRO.name, - GPT_OSS_120B.name, - GPT_OSS_20B.name, - GPT_OSS_SAFEGUARD_20B.name, - O3_MINI_HIGH.name, - O4_MINI_HIGH.name, ] as const export type OpenAIChatModel = (typeof OPENAI_CHAT_MODELS)[number] @@ -3044,168 +1994,8 @@ export type OpenAIChatModelProviderOptionsByName = { OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_3_5_TURBO_0613.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_3_5_TURBO_16K.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_3_5_TURBO_INSTRUCT.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4_0314.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4_1106_PREVIEW.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4_TURBO_PREVIEW.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4O_2024_05_13.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4O_2024_08_06.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4O_2024_11_20.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4O_AUDIO_PREVIEW.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_4O_MINI_2024_07_18.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_IMAGE.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_IMAGE_MINI.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_1_CODEX_MAX.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_2_CHAT.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_2_CODEX.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_3_CHAT.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_3_CODEX.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_4.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_4_MINI.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_4_NANO.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_5_4_PRO.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_OSS_120B.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_OSS_20B.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [GPT_OSS_SAFEGUARD_20B.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [O3_MINI_HIGH.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions - [O4_MINI_HIGH.name]: OpenAIBaseOptions & - OpenAIReasoningOptions & - OpenAIStructuredOutputOptions & - OpenAIToolsOptions & - OpenAIStreamingOptions & - OpenAIMetadataOptions + [GPT_5_4_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4_NANO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions } /** @@ -3261,31 +2051,6 @@ export type OpenAIModelInputModalitiesByName = { [O3_MINI.name]: typeof O3_MINI.supports.input [GPT_4O_SEARCH_PREVIEW.name]: typeof GPT_4O_SEARCH_PREVIEW.supports.input [GPT_4O_MINI_SEARCH_PREVIEW.name]: typeof GPT_4O_MINI_SEARCH_PREVIEW.supports.input - [GPT_3_5_TURBO_0613.name]: typeof GPT_3_5_TURBO_0613.supports.input - [GPT_3_5_TURBO_16K.name]: typeof GPT_3_5_TURBO_16K.supports.input - [GPT_3_5_TURBO_INSTRUCT.name]: typeof GPT_3_5_TURBO_INSTRUCT.supports.input - [GPT_4_0314.name]: typeof GPT_4_0314.supports.input - [GPT_4_1106_PREVIEW.name]: typeof GPT_4_1106_PREVIEW.supports.input - [GPT_4_TURBO_PREVIEW.name]: typeof GPT_4_TURBO_PREVIEW.supports.input - [GPT_4O_2024_05_13.name]: typeof GPT_4O_2024_05_13.supports.input - [GPT_4O_2024_08_06.name]: typeof GPT_4O_2024_08_06.supports.input - [GPT_4O_2024_11_20.name]: typeof GPT_4O_2024_11_20.supports.input - [GPT_4O_AUDIO_PREVIEW.name]: typeof GPT_4O_AUDIO_PREVIEW.supports.input - [GPT_4O_MINI_2024_07_18.name]: typeof GPT_4O_MINI_2024_07_18.supports.input - [GPT_5_IMAGE.name]: typeof GPT_5_IMAGE.supports.input - [GPT_5_IMAGE_MINI.name]: typeof GPT_5_IMAGE_MINI.supports.input - [GPT_5_1_CODEX_MAX.name]: typeof GPT_5_1_CODEX_MAX.supports.input - [GPT_5_2_CHAT.name]: typeof GPT_5_2_CHAT.supports.input - [GPT_5_2_CODEX.name]: typeof GPT_5_2_CODEX.supports.input - [GPT_5_3_CHAT.name]: typeof GPT_5_3_CHAT.supports.input - [GPT_5_3_CODEX.name]: typeof GPT_5_3_CODEX.supports.input - [GPT_5_4.name]: typeof GPT_5_4.supports.input [GPT_5_4_MINI.name]: typeof GPT_5_4_MINI.supports.input [GPT_5_4_NANO.name]: typeof GPT_5_4_NANO.supports.input - [GPT_5_4_PRO.name]: typeof GPT_5_4_PRO.supports.input - [GPT_OSS_120B.name]: typeof GPT_OSS_120B.supports.input - [GPT_OSS_20B.name]: typeof GPT_OSS_20B.supports.input - [GPT_OSS_SAFEGUARD_20B.name]: typeof GPT_OSS_SAFEGUARD_20B.supports.input - [O3_MINI_HIGH.name]: typeof O3_MINI_HIGH.supports.input - [O4_MINI_HIGH.name]: typeof O4_MINI_HIGH.supports.input } diff --git a/scripts/.sync-models-last-run b/scripts/.sync-models-last-run new file mode 100644 index 00000000..90641a2c --- /dev/null +++ b/scripts/.sync-models-last-run @@ -0,0 +1 @@ +1775821757 diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index a8b91e63..b94da683 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -24,6 +24,10 @@ const ROOT = resolve(__dirname, '..') // Provider configuration // --------------------------------------------------------------------------- +/** Seconds in 30 days — models older than this before the last sync are skipped */ +const MAX_MODEL_AGE_SECONDS = 30 * 24 * 60 * 60 +const LAST_RUN_FILE = resolve(ROOT, 'scripts/.sync-models-last-run') + interface ProviderConfig { /** npm package name for changeset */ packageName: string @@ -50,6 +54,8 @@ interface ProviderConfig { hasBothNameAndId: boolean /** Whether the provider options type is a mapped type (skip insertion) */ providerOptionsIsMappedType: boolean + /** Model ID patterns to always skip (matched against stripped ID) */ + skipPatterns: Array } const PROVIDER_MAP: Record = { @@ -72,6 +78,13 @@ const PROVIDER_MAP: Record = { 'OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions', hasBothNameAndId: false, providerOptionsIsMappedType: false, + skipPatterns: [ + 'gpt-3.5-', // Legacy GPT-3.5 models + 'gpt-4-', // Legacy GPT-4 base models (not 4.1+) + 'gpt-4o', // GPT-4o variants (4o, 4o-mini, 4o-audio, etc.) + 'gpt-oss-', // Open-source/experimental models + 'chatgpt-', // ChatGPT branded models + ], }, 'anthropic/': { packageName: '@tanstack/ai-anthropic', @@ -93,6 +106,7 @@ const PROVIDER_MAP: Record = { 'AnthropicContainerOptions & AnthropicContextManagementOptions & AnthropicMCPOptions & AnthropicServiceTierOptions & AnthropicStopSequencesOptions & AnthropicThinkingOptions & AnthropicToolChoiceOptions & AnthropicSamplingOptions', hasBothNameAndId: true, providerOptionsIsMappedType: false, + skipPatterns: [], }, 'google/': { packageName: '@tanstack/ai-gemini', @@ -111,6 +125,9 @@ const PROVIDER_MAP: Record = { 'GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions & GeminiThinkingAdvancedOptions', hasBothNameAndId: false, providerOptionsIsMappedType: false, + skipPatterns: [ + 'gemma-', // Gemma open-source models (not Gemini API models) + ], }, 'x-ai/': { packageName: '@tanstack/ai-grok', @@ -127,6 +144,7 @@ const PROVIDER_MAP: Record = { referenceProviderOptionsEntry: 'GrokProviderOptions', hasBothNameAndId: false, providerOptionsIsMappedType: true, + skipPatterns: [], }, } @@ -271,6 +289,49 @@ function isNonChatModel(strippedId: string): boolean { return NON_CHAT_MODEL_PREFIXES.some((p) => strippedId.startsWith(p)) } +/** + * Check if a model should be skipped based on provider-specific patterns. + */ +function matchesSkipPattern( + strippedId: string, + patterns: Array, +): boolean { + return patterns.some((p) => strippedId.startsWith(p)) +} + +/** + * Read the last sync run timestamp. Returns epoch seconds, or null if no previous run. + */ +async function readLastRunTimestamp(): Promise { + try { + const content = await readFile(LAST_RUN_FILE, 'utf-8') + const ts = parseInt(content.trim(), 10) + return isNaN(ts) ? null : ts + } catch { + return null + } +} + +/** + * Write the current timestamp as the last sync run. + */ +async function writeLastRunTimestamp(): Promise { + const now = Math.floor(Date.now() / 1000) + await writeFile(LAST_RUN_FILE, String(now) + '\n', 'utf-8') +} + +/** + * Check if a model is too old to sync. Models created more than 30 days + * before the last sync run are considered deprecated/legacy and skipped. + */ +function isModelTooOld( + model: OpenRouterModel, + cutoffTimestamp: number, +): boolean { + if (!model.created) return false // No date = don't skip + return model.created < cutoffTimestamp +} + // --------------------------------------------------------------------------- // Model constant generation // --------------------------------------------------------------------------- @@ -443,6 +504,15 @@ async function main() { let totalAdded = 0 const changedPackages = new Set() + // Determine age cutoff: skip models created >30 days before last run + const lastRun = await readLastRunTimestamp() + const now = Math.floor(Date.now() / 1000) + const cutoffTimestamp = (lastRun ?? now) - MAX_MODEL_AGE_SECONDS + const cutoffDate = new Date(cutoffTimestamp * 1000).toISOString().split('T')[0] + console.log( + `Model age cutoff: ${cutoffDate} (skipping models created before this date)`, + ) + for (const [prefix, config] of Object.entries(PROVIDER_MAP)) { console.log(`\nProcessing provider: ${prefix}`) @@ -491,6 +561,16 @@ async function main() { continue } + // Skip provider-specific patterns (deprecated/legacy model families) + if (matchesSkipPattern(strippedId, config.skipPatterns)) { + continue + } + + // Skip models that are too old (created >30 days before last sync) + if (isModelTooOld(model, cutoffTimestamp)) { + continue + } + // Normalize for comparison to handle dots-vs-dashes naming differences if ( !existingIds.has(normalizeId(strippedId)) && @@ -587,6 +667,9 @@ async function main() { console.log(`\nDone. Added ${totalAdded} new models total.`) + // Record this run's timestamp for future age-based filtering + await writeLastRunTimestamp() + // Create changeset if any models were added if (totalAdded > 0) { await createChangeset(changedPackages) From 0e5344748b5c4e0f7c06f3be123fa1d25fb29996 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 11:52:09 +0000 Subject: [PATCH 16/20] ci: apply automated fixes --- .../typescript/ai-openai/src/model-meta.ts | 62 ++++++++++++++++--- scripts/sync-provider-models.ts | 16 ++--- 2 files changed, 63 insertions(+), 15 deletions(-) diff --git a/packages/typescript/ai-openai/src/model-meta.ts b/packages/typescript/ai-openai/src/model-meta.ts index 745fc3ab..3b6d5748 100644 --- a/packages/typescript/ai-openai/src/model-meta.ts +++ b/packages/typescript/ai-openai/src/model-meta.ts @@ -1654,8 +1654,19 @@ const GPT_5_4_MINI = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1666,7 +1677,14 @@ const GPT_5_4_MINI = { normal: 4.5, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> const GPT_5_4_NANO = { name: 'gpt-5.4-nano', @@ -1676,8 +1694,19 @@ const GPT_5_4_NANO = { input: ['image', 'text'], output: ['text'], endpoints: ['chat', 'chat-completions'], - features: ['streaming', 'function_calling', 'structured_outputs', 'distillation'], - tools: ['web_search', 'file_search', 'image_generation', 'code_interpreter', 'mcp'], + features: [ + 'streaming', + 'function_calling', + 'structured_outputs', + 'distillation', + ], + tools: [ + 'web_search', + 'file_search', + 'image_generation', + 'code_interpreter', + 'mcp', + ], }, pricing: { input: { @@ -1688,7 +1717,14 @@ const GPT_5_4_NANO = { normal: 1.25, }, }, -} as const satisfies ModelMeta +} as const satisfies ModelMeta< + OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions +> export const OPENAI_CHAT_MODELS = [ // Frontier models @@ -1994,8 +2030,18 @@ export type OpenAIChatModelProviderOptionsByName = { OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4_MINI.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions - [GPT_5_4_NANO.name]: OpenAIBaseOptions & OpenAIReasoningOptions & OpenAIStructuredOutputOptions & OpenAIToolsOptions & OpenAIStreamingOptions & OpenAIMetadataOptions + [GPT_5_4_MINI.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions + [GPT_5_4_NANO.name]: OpenAIBaseOptions & + OpenAIReasoningOptions & + OpenAIStructuredOutputOptions & + OpenAIToolsOptions & + OpenAIStreamingOptions & + OpenAIMetadataOptions } /** diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index b94da683..28480dc4 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -79,11 +79,11 @@ const PROVIDER_MAP: Record = { hasBothNameAndId: false, providerOptionsIsMappedType: false, skipPatterns: [ - 'gpt-3.5-', // Legacy GPT-3.5 models - 'gpt-4-', // Legacy GPT-4 base models (not 4.1+) - 'gpt-4o', // GPT-4o variants (4o, 4o-mini, 4o-audio, etc.) - 'gpt-oss-', // Open-source/experimental models - 'chatgpt-', // ChatGPT branded models + 'gpt-3.5-', // Legacy GPT-3.5 models + 'gpt-4-', // Legacy GPT-4 base models (not 4.1+) + 'gpt-4o', // GPT-4o variants (4o, 4o-mini, 4o-audio, etc.) + 'gpt-oss-', // Open-source/experimental models + 'chatgpt-', // ChatGPT branded models ], }, 'anthropic/': { @@ -126,7 +126,7 @@ const PROVIDER_MAP: Record = { hasBothNameAndId: false, providerOptionsIsMappedType: false, skipPatterns: [ - 'gemma-', // Gemma open-source models (not Gemini API models) + 'gemma-', // Gemma open-source models (not Gemini API models) ], }, 'x-ai/': { @@ -508,7 +508,9 @@ async function main() { const lastRun = await readLastRunTimestamp() const now = Math.floor(Date.now() / 1000) const cutoffTimestamp = (lastRun ?? now) - MAX_MODEL_AGE_SECONDS - const cutoffDate = new Date(cutoffTimestamp * 1000).toISOString().split('T')[0] + const cutoffDate = new Date(cutoffTimestamp * 1000) + .toISOString() + .split('T')[0] console.log( `Model age cutoff: ${cutoffDate} (skipping models created before this date)`, ) From b7c7ba2bbe766023890f400e7d61eb5c5ff6ab1b Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 10 Apr 2026 14:29:27 +0200 Subject: [PATCH 17/20] fix: reuse existing sync-models changeset instead of creating duplicates --- .changeset/sync-models-1775817980896.md | 9 ----- .changeset/sync-models-1775821757387.md | 8 ----- scripts/sync-provider-models.ts | 47 +++++++++++++++++++------ 3 files changed, 36 insertions(+), 28 deletions(-) delete mode 100644 .changeset/sync-models-1775817980896.md delete mode 100644 .changeset/sync-models-1775821757387.md diff --git a/.changeset/sync-models-1775817980896.md b/.changeset/sync-models-1775817980896.md deleted file mode 100644 index 34862bcd..00000000 --- a/.changeset/sync-models-1775817980896.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-anthropic': patch -'@tanstack/ai-gemini': patch -'@tanstack/ai-grok': patch -'@tanstack/ai-openai': patch -'@tanstack/ai-openrouter': patch ---- - -Update model metadata from OpenRouter API diff --git a/.changeset/sync-models-1775821757387.md b/.changeset/sync-models-1775821757387.md deleted file mode 100644 index 84e913b4..00000000 --- a/.changeset/sync-models-1775821757387.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@tanstack/ai-anthropic': patch -'@tanstack/ai-grok': patch -'@tanstack/ai-openai': patch -'@tanstack/ai-openrouter': patch ---- - -Update model metadata from OpenRouter API diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 28480dc4..09041187 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -679,27 +679,52 @@ async function main() { } /** - * Create a changeset file for all affected packages. + * Create or update the sync-models changeset file. + * If one already exists, merges the package lists. Otherwise creates a new one. * Always includes @tanstack/ai-openrouter since the convert script regenerates it. */ async function createChangeset(changedPackages: Set) { - // Always include openrouter (fully regenerated by the convert script) changedPackages.add('@tanstack/ai-openrouter') const changesetDir = resolve(ROOT, '.changeset') - const timestamp = Date.now() - const changesetFile = resolve(changesetDir, `sync-models-${timestamp}.md`) + const { readdir } = await import('node:fs/promises') + const files = await readdir(changesetDir) + const existing = files.find( + (f) => f.startsWith('sync-models') && f.endsWith('.md'), + ) + + if (existing) { + const existingPath = resolve(changesetDir, existing) + const existingContent = await readFile(existingPath, 'utf-8') + + // Merge existing packages into the set + const pkgRegex = /'([^']+)':\s*patch/g + let match + while ((match = pkgRegex.exec(existingContent)) !== null) { + changedPackages.add(match[1]!) + } + + const content = buildChangesetContent(changedPackages) + await writeFile(existingPath, content, 'utf-8') + console.log(`\nChangeset updated: ${existingPath}`) + } else { + const changesetFile = resolve(changesetDir, 'sync-models.md') + const content = buildChangesetContent(changedPackages) + await writeFile(changesetFile, content, 'utf-8') + console.log(`\nChangeset created: ${changesetFile}`) + } - const packageLines = Array.from(changedPackages) + console.log( + ` Packages: ${Array.from(changedPackages).sort().join(', ')}`, + ) +} + +function buildChangesetContent(packages: Set): string { + const packageLines = Array.from(packages) .sort() .map((pkg) => `'${pkg}': patch`) .join('\n') - - const content = `---\n${packageLines}\n---\n\nUpdate model metadata from OpenRouter API\n` - - await writeFile(changesetFile, content, 'utf-8') - console.log(`\nChangeset created: ${changesetFile}`) - console.log(` Packages: ${Array.from(changedPackages).sort().join(', ')}`) + return `---\n${packageLines}\n---\n\nUpdate model metadata from OpenRouter API\n` } main().catch((err) => { From 19d65523ab29410d98243b1f1818ec527781f755 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 12:30:58 +0000 Subject: [PATCH 18/20] ci: apply automated fixes --- scripts/sync-provider-models.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/sync-provider-models.ts b/scripts/sync-provider-models.ts index 09041187..a325cbf2 100644 --- a/scripts/sync-provider-models.ts +++ b/scripts/sync-provider-models.ts @@ -714,9 +714,7 @@ async function createChangeset(changedPackages: Set) { console.log(`\nChangeset created: ${changesetFile}`) } - console.log( - ` Packages: ${Array.from(changedPackages).sort().join(', ')}`, - ) + console.log(` Packages: ${Array.from(changedPackages).sort().join(', ')}`) } function buildChangesetContent(packages: Set): string { From 94dac91ef8d5e17f6272bcad9842aeab688bb4e4 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 10 Apr 2026 14:32:02 +0200 Subject: [PATCH 19/20] chore: sync model metadata from OpenRouter API --- .changeset/sync-models.md | 9 + .../ai-openrouter/src/model-meta.ts | 25560 ++++++---------- scripts/.sync-models-last-run | 2 +- scripts/openrouter.models.ts | 1228 +- 4 files changed, 9113 insertions(+), 17686 deletions(-) create mode 100644 .changeset/sync-models.md diff --git a/.changeset/sync-models.md b/.changeset/sync-models.md new file mode 100644 index 00000000..34862bcd --- /dev/null +++ b/.changeset/sync-models.md @@ -0,0 +1,9 @@ +--- +'@tanstack/ai-anthropic': patch +'@tanstack/ai-gemini': patch +'@tanstack/ai-grok': patch +'@tanstack/ai-openai': patch +'@tanstack/ai-openrouter': patch +--- + +Update model metadata from OpenRouter API diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index 02b23ddf..40834e2f 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,16898 +1,8674 @@ -import type { - OpenRouterBaseOptions, - OpenRouterCommonOptions, -} from './text/text-provider-options' -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, -} as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, -} as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'verbosity', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { - id: 'anthropic/claude-opus-4.6-fast', - name: 'Anthropic: Claude Opus 4.6 (Fast)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 40.5, - }, - output: { - normal: 150, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - 'verbosity', - ], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_LARGE_THINKING = { - id: 'arcee-ai/trinity-large-thinking', - name: 'Arcee AI: Trinity Large Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_TRINITY_MINI_FREE = { - id: 'arcee-ai/trinity-mini:free', - name: 'Arcee AI: Trinity Mini (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, -} as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, -} as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, -} as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, -} as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, -} as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_26B_A4B_IT = { - id: 'google/gemma-4-26b-a4b-it', - name: 'Google: Gemma 4 26B A4B ', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { - id: 'google/gemma-4-26b-a4b-it:free', - name: 'Google: Gemma 4 26B A4B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_31B_IT = { - id: 'google/gemma-4-31b-it', - name: 'Google: Gemma 4 31B', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const GOOGLE_GEMMA_4_31B_IT_FREE = { - id: 'google/gemma-4-31b-it:free', - name: 'Google: Gemma 4 31B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_LYRIA_3_CLIP_PREVIEW = { - id: 'google/lyria-3-clip-preview', - name: 'Google: Lyria 3 Clip Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GOOGLE_LYRIA_3_PRO_PREVIEW = { - id: 'google/lyria-3-pro-preview', - name: 'Google: Lyria 3 Pro Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, -} as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0.0290000007, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.118, - cached: 0.059, - }, - output: { - normal: 0.99, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - ], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, -} as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'parallelToolCalls', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3827, - cached: 0.19135, - }, - output: { - normal: 1.72, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, -} as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, -} as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'toolChoice', - ], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, -} as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'temperature', - 'topK', - 'topP', - 'webSearchOptions', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, -} as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, -} as const -const QWEN_QWEN3_6_PLUS = { - id: 'qwen/qwen3.6-plus', - name: 'Qwen: Qwen3.6 Plus', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.325, - cached: 0, - }, - output: { - normal: 1.95, - }, - }, - image: 0, - }, -} as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, -} as const -const REKAAI_REKA_EDGE = { - id: 'rekaai/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const REKAAI_REKA_FLASH_3 = { - id: 'rekaai/reka-flash-3', - name: 'Reka Flash 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, -} as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'maxCompletionTokens', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, -} as const -const STEPFUN_STEP_3_5_FLASH_FREE = { - id: 'stepfun/step-3.5-flash:free', - name: 'StepFun: Step 3.5 Flash (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'stop', - 'temperature', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, -} as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'reasoning', - 'responseFormat', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'topK', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, -} as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, -} as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'topA', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, -} as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - ], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, -} as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'logprobs', - 'maxCompletionTokens', - 'presencePenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20 = { - id: 'x-ai/grok-4.20', - name: 'xAI: Grok 4.20', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_4_20_MULTI_AGENT = { - id: 'x-ai/grok-4.20-multi-agent', - name: 'xAI: Grok 4.20 Multi-Agent', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'temperature', - 'topLogprobs', - 'topP', - ], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, -} as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'logprobs', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topLogprobs', - 'topP', - ], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, -} as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'responseFormat', - 'stop', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5_1 = { - id: 'z-ai/glm-5.1', - name: 'Z.ai: GLM 5.1', - supports: { - input: ['text'], - output: ['text'], - supports: [ - 'frequencyPenalty', - 'includeReasoning', - 'logitBias', - 'logprobs', - 'maxCompletionTokens', - 'minP', - 'presencePenalty', - 'reasoning', - 'repetitionPenalty', - 'responseFormat', - 'seed', - 'stop', - 'temperature', - 'toolChoice', - 'topK', - 'topLogprobs', - 'topP', - ], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 1.26, - cached: 0, - }, - output: { - normal: 3.96, - }, - }, - image: 0, - }, -} as const -const Z_AI_GLM_5V_TURBO = { - id: 'z-ai/glm-5v-turbo', - name: 'Z.ai: GLM 5V Turbo', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: [ - 'includeReasoning', - 'maxCompletionTokens', - 'reasoning', - 'responseFormat', - 'temperature', - 'toolChoice', - 'topP', - ], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, -} as const +import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' + +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, + } as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, + } as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, + } as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, + } as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, + } as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, + } as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, + } as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, + } as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0.03, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, + } as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, + } as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, + } as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, + } as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, + } as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, + } as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, + } as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, + } as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, + } as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, + } as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, + } as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, + } as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, + } as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, + } as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, + } as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, + } as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, + } as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, + } as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, + } as const -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'topP' - > - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & - Pick - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & - OpenRouterBaseOptions - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - | 'verbosity' - > - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - | 'verbosity' - > - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' - > - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [ARCEE_AI_TRINITY_MINI_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topP' - > - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' - > - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' - > - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MANCER_WEAVER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & - Pick - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - > - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & - Pick - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'parallelToolCalls' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & - Pick - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & - Pick - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' - > - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' - > - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'toolChoice' - > - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - > - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [OPENAI_O1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - > - [OPENAI_O3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'toolChoice' - > - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - | 'webSearchOptions' - > - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'temperature' - | 'topK' - | 'topP' - | 'webSearchOptions' - > - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topP' - > - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & - Pick - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'maxCompletionTokens' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [STEPFUN_STEP_3_5_FLASH_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'stop' - | 'temperature' - | 'topP' - > - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'topK' - | 'topP' - > - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'topA' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - > - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' - > - [X_AI_GROK_3.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'logprobs' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'temperature' - | 'topLogprobs' - | 'topP' - > - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'logprobs' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topLogprobs' - | 'topP' - > - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'responseFormat' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' - > - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'temperature' - | 'toolChoice' - | 'topP' - > - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topP' - > - [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'frequencyPenalty' - | 'includeReasoning' - | 'logitBias' - | 'logprobs' - | 'maxCompletionTokens' - | 'minP' - | 'presencePenalty' - | 'reasoning' - | 'repetitionPenalty' - | 'responseFormat' - | 'seed' - | 'stop' - | 'temperature' - | 'toolChoice' - | 'topK' - | 'topLogprobs' - | 'topP' - > - [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - | 'includeReasoning' - | 'maxCompletionTokens' - | 'reasoning' - | 'responseFormat' - | 'temperature' - | 'toolChoice' - | 'topP' - > + +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; + [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; } -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' - > - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'> - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> - [ARCEE_AI_TRINITY_MINI_FREE.id]: ReadonlyArray<'text'> - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< - 'document' | 'image' | 'text' | 'audio' - > - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'document' | 'audio' | 'video' - > - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< - 'text' | 'image' | 'video' | 'document' | 'audio' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< - 'audio' | 'document' | 'image' | 'text' | 'video' - > - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< - 'text' | 'audio' | 'image' | 'video' | 'document' - > - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'> - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'> - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> - [MANCER_WEAVER.id]: ReadonlyArray<'text'> - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< - 'image' | 'text' | 'video' - > - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< - 'text' | 'image' | 'document' - > - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< - 'document' | 'image' | 'text' - > - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> - [OPENROUTER_AUTO.id]: ReadonlyArray< - 'text' | 'image' | 'audio' | 'document' | 'video' - > - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> - [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> - [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'> - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> - [STEPFUN_STEP_3_5_FLASH_FREE.id]: ReadonlyArray<'text'> - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> - [X_AI_GROK_3.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'> - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'> - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'> - [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'> + +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; + [MANCER_WEAVER.id]: ReadonlyArray<'text'>; + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; } export const OPENROUTER_CHAT_MODELS = [ @@ -16932,7 +8708,6 @@ export const OPENROUTER_CHAT_MODELS = [ ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id, ARCEE_AI_TRINITY_LARGE_THINKING.id, ARCEE_AI_TRINITY_MINI.id, - ARCEE_AI_TRINITY_MINI_FREE.id, ARCEE_AI_VIRTUOSO_LARGE.id, BAIDU_ERNIE_4_5_21B_A3B.id, BAIDU_ERNIE_4_5_21B_A3B_THINKING.id, @@ -17209,7 +8984,6 @@ export const OPENROUTER_CHAT_MODELS = [ SAO10K_L3_1_EURYALE_70B.id, SAO10K_L3_3_EURYALE_70B.id, STEPFUN_STEP_3_5_FLASH.id, - STEPFUN_STEP_3_5_FLASH_FREE.id, SWITCHPOINT_ROUTER.id, TENCENT_HUNYUAN_A13B_INSTRUCT.id, THEDRUMMER_CYDONIA_24B_V4_1.id, diff --git a/scripts/.sync-models-last-run b/scripts/.sync-models-last-run index 90641a2c..f5f09687 100644 --- a/scripts/.sync-models-last-run +++ b/scripts/.sync-models-last-run @@ -1 +1 @@ -1775821757 +1775824278 diff --git a/scripts/openrouter.models.ts b/scripts/openrouter.models.ts index db5f8595..4041c3a2 100644 --- a/scripts/openrouter.models.ts +++ b/scripts/openrouter.models.ts @@ -41,8 +41,7 @@ export const models: Array = [ hugging_face_id: 'ai21labs/AI21-Jamba-Large-1.7', name: 'AI21: Jamba Large 1.7', created: 1754669020, - description: - 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', + description: 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', context_length: 256000, architecture: { modality: 'text->text', @@ -77,8 +76,7 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-1.0', created: 1738697557, - description: - 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', + description: 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', context_length: 131072, architecture: { modality: 'text->text', @@ -111,8 +109,7 @@ export const models: Array = [ hugging_face_id: 'FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview', name: 'AionLabs: Aion-1.0-Mini', created: 1738697107, - description: - 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', + description: 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', context_length: 131072, architecture: { modality: 'text->text', @@ -145,8 +142,7 @@ export const models: Array = [ hugging_face_id: null, name: 'AionLabs: Aion-2.0', created: 1771881306, - description: - 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', + description: 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', context_length: 131072, architecture: { modality: 'text->text', @@ -180,8 +176,7 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-RP 1.0 (8B)', created: 1738696718, - description: - 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', + description: 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', context_length: 32768, architecture: { modality: 'text->text', @@ -200,7 +195,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'alfredpros/codellama-7b-instruct-solidity', @@ -208,8 +207,7 @@ export const models: Array = [ hugging_face_id: 'AlfredPros/CodeLlama-7b-Instruct-Solidity', name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', created: 1744641874, - description: - 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', + description: 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', context_length: 4096, architecture: { modality: 'text->text', @@ -247,8 +245,7 @@ export const models: Array = [ hugging_face_id: 'Alibaba-NLP/Tongyi-DeepResearch-30B-A3B', name: 'Tongyi DeepResearch 30B A3B', created: 1758210804, - description: - "Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It's optimized for long-horizon, deep information-seeking tasks...", + description: 'Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It\'s optimized for long-horizon, deep information-seeking tasks...', context_length: 131072, architecture: { modality: 'text->text', @@ -294,8 +291,7 @@ export const models: Array = [ hugging_face_id: 'allenai/OLMo-2-0325-32B-Instruct', name: 'AllenAI: Olmo 2 32B Instruct', created: 1741988556, - description: - 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', + description: 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', context_length: 128000, architecture: { modality: 'text->text', @@ -314,7 +310,8 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [], + supported_parameters: [ + ], }, { id: 'allenai/olmo-3-32b-think', @@ -322,8 +319,7 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3-32B-Think', name: 'AllenAI: Olmo 3 32B Think', created: 1763758276, - description: - 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', + description: 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', context_length: 65536, architecture: { modality: 'text->text', @@ -365,8 +361,7 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3.1-32B-Instruct', name: 'AllenAI: Olmo 3.1 32B Instruct', created: 1767728554, - description: - 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', + description: 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', context_length: 65536, architecture: { modality: 'text->text', @@ -408,8 +403,7 @@ export const models: Array = [ hugging_face_id: 'alpindale/goliath-120b', name: 'Goliath 120B', created: 1699574400, - description: - 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', + description: 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', context_length: 6144, architecture: { modality: 'text->text', @@ -452,8 +446,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova 2 Lite', created: 1764696672, - description: - 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', + description: 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', context_length: 1000000, architecture: { modality: 'text+image+file+video->text', @@ -490,8 +483,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Lite 1.0', created: 1733437363, - description: - 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', + description: 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -525,8 +517,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Micro 1.0', created: 1733437237, - description: - 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', + description: 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', context_length: 128000, architecture: { modality: 'text->text', @@ -560,8 +551,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Premier 1.0', created: 1761950332, - description: - 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', + description: 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -596,8 +586,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Pro 1.0', created: 1733436303, - description: - 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', + description: 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -631,8 +620,7 @@ export const models: Array = [ hugging_face_id: 'anthracite-org/magnum-v4-72b', name: 'Magnum v4 72B', created: 1729555200, - description: - 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', + description: 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', context_length: 16384, architecture: { modality: 'text->text', @@ -675,8 +663,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3 Haiku', created: 1710288000, - description: - "Claude 3 Haiku is Anthropic's fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal", + description: 'Claude 3 Haiku is Anthropic\'s fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal', context_length: 200000, architecture: { modality: 'text+image->text', @@ -713,8 +700,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3.5 Haiku', created: 1730678400, - description: - 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', + description: 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -752,8 +738,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet', created: 1740422110, - description: - 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -793,8 +778,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet (thinking)', created: 1740422110, - description: - 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -833,8 +817,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Haiku 4.5', created: 1760547638, - description: - 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', + description: 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -876,8 +859,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4', created: 1747931245, - description: - 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', + description: 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -917,8 +899,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.1', created: 1754411591, - description: - 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', + description: 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -960,8 +941,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.5', created: 1764010580, - description: - 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', + description: 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -1003,8 +983,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.6', created: 1770219050, - description: - 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', + description: 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1028,6 +1007,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -1047,8 +1027,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude Opus 4.6 (Fast)', created: 1775592472, - description: - "Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic's docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode", + description: 'Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic\'s docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1090,8 +1069,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4', created: 1747930371, - description: - 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', + description: 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -1131,8 +1109,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.5', created: 1759161676, - description: - 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', + description: 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', context_length: 1000000, architecture: { modality: 'text+image+file->text', @@ -1174,8 +1151,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.6', created: 1771342990, - description: - "Sonnet 4.6 is Anthropic's most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...", + description: 'Sonnet 4.6 is Anthropic\'s most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1199,6 +1175,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -1218,8 +1195,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Coder Large', created: 1746478663, - description: - 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', + description: 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', context_length: 32768, architecture: { modality: 'text->text', @@ -1257,8 +1233,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Maestro Reasoning', created: 1746481269, - description: - "Maestro Reasoning is Arcee's flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...", + description: 'Maestro Reasoning is Arcee\'s flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...', context_length: 131072, architecture: { modality: 'text->text', @@ -1296,8 +1271,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Spotlight', created: 1746481552, - description: - 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', + description: 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -1335,8 +1309,7 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Preview', name: 'Arcee AI: Trinity Large Preview (free)', created: 1769552670, - description: - 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', + description: 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', context_length: 131000, architecture: { modality: 'text->text', @@ -1371,8 +1344,7 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Thinking', name: 'Arcee AI: Trinity Large Thinking', created: 1775058318, - description: - 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', + description: 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', context_length: 262144, architecture: { modality: 'text->text', @@ -1416,8 +1388,7 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini', created: 1764601720, - description: - 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', + description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1449,53 +1420,13 @@ export const models: Array = [ 'top_p', ], }, - { - id: 'arcee-ai/trinity-mini:free', - canonical_slug: 'arcee-ai/trinity-mini-20251201', - hugging_face_id: 'arcee-ai/Trinity-Mini', - name: 'Arcee AI: Trinity Mini (free)', - created: 1764601720, - description: - 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', - context_length: 131072, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0', - completion: '0', - }, - top_provider: { - context_length: 131072, - max_completion_tokens: null, - is_moderated: false, - }, - per_request_limits: null, - supported_parameters: [ - 'include_reasoning', - 'max_tokens', - 'reasoning', - 'response_format', - 'structured_outputs', - 'temperature', - 'tool_choice', - 'tools', - 'top_k', - 'top_p', - ], - }, { id: 'arcee-ai/virtuoso-large', canonical_slug: 'arcee-ai/virtuoso-large', hugging_face_id: '', name: 'Arcee AI: Virtuoso Large', created: 1746478885, - description: - "Virtuoso‑Large is Arcee's top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...", + description: 'Virtuoso‑Large is Arcee\'s top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...', context_length: 131072, architecture: { modality: 'text->text', @@ -1535,8 +1466,7 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-PT', name: 'Baidu: ERNIE 4.5 21B A3B', created: 1755034167, - description: - 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', + description: 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', context_length: 120000, architecture: { modality: 'text->text', @@ -1575,8 +1505,7 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-Thinking', name: 'Baidu: ERNIE 4.5 21B A3B Thinking', created: 1760048887, - description: - "ERNIE-4.5-21B-A3B-Thinking is Baidu's upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.", + description: 'ERNIE-4.5-21B-A3B-Thinking is Baidu\'s upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.', context_length: 131072, architecture: { modality: 'text->text', @@ -1615,8 +1544,7 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-300B-A47B-PT', name: 'Baidu: ERNIE 4.5 300B A47B ', created: 1751300139, - description: - 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', + description: 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', context_length: 123000, architecture: { modality: 'text->text', @@ -1655,8 +1583,7 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-28B-A3B-PT', name: 'Baidu: ERNIE 4.5 VL 28B A3B', created: 1755032836, - description: - 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', + description: 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', context_length: 30000, architecture: { modality: 'text+image->text', @@ -1697,8 +1624,7 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-424B-A47B-PT', name: 'Baidu: ERNIE 4.5 VL 424B A47B ', created: 1751300903, - description: - 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', + description: 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', context_length: 123000, architecture: { modality: 'text+image->text', @@ -1737,8 +1663,7 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6', created: 1766504997, - description: - 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', + description: 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1777,8 +1702,7 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6 Flash', created: 1766505011, - description: - 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', + description: 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1817,8 +1741,7 @@ export const models: Array = [ hugging_face_id: null, name: 'ByteDance Seed: Seed-2.0-Lite', created: 1773157231, - description: - 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', + description: 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1857,8 +1780,7 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed-2.0-Mini', created: 1772131107, - description: - 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', + description: 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1897,8 +1819,7 @@ export const models: Array = [ hugging_face_id: 'ByteDance-Seed/UI-TARS-1.5-7B', name: 'ByteDance: UI-TARS 7B ', created: 1753205056, - description: - 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', + description: 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -1936,8 +1857,7 @@ export const models: Array = [ hugging_face_id: 'cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition', name: 'Venice: Uncensored (free)', created: 1752094966, - description: - 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', + description: 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', context_length: 32768, architecture: { modality: 'text->text', @@ -1974,8 +1894,7 @@ export const models: Array = [ hugging_face_id: 'CohereForAI/c4ai-command-a-03-2025', name: 'Cohere: Command A', created: 1741894342, - description: - 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', + description: 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', context_length: 256000, architecture: { modality: 'text->text', @@ -2013,8 +1932,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R (08-2024)', created: 1724976000, - description: - 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', + description: 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', context_length: 128000, architecture: { modality: 'text->text', @@ -2054,8 +1972,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R+ (08-2024)', created: 1724976000, - description: - 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', + description: 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', context_length: 128000, architecture: { modality: 'text->text', @@ -2095,8 +2012,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Cohere: Command R7B (12-2024)', created: 1734158152, - description: - 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', + description: 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2134,8 +2050,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Deep Cogito: Cogito v2.1 671B', created: 1763071233, - description: - 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', + description: 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2177,8 +2092,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3', name: 'DeepSeek: DeepSeek V3', created: 1735241320, - description: - 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', + description: 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', context_length: 163840, architecture: { modality: 'text->text', @@ -2219,8 +2133,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3-0324', name: 'DeepSeek: DeepSeek V3 0324', created: 1742824755, - description: - 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', + description: 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', context_length: 163840, architecture: { modality: 'text->text', @@ -2267,8 +2180,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1', name: 'DeepSeek: DeepSeek V3.1', created: 1755779628, - description: - 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', + description: 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', context_length: 32768, architecture: { modality: 'text->text', @@ -2315,8 +2227,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1', name: 'DeepSeek: R1', created: 1737381095, - description: - "DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass....", + description: 'DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active in an inference pass....', context_length: 64000, architecture: { modality: 'text->text', @@ -2338,6 +2249,7 @@ export const models: Array = [ supported_parameters: [ 'frequency_penalty', 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'reasoning', @@ -2357,8 +2269,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-0528', name: 'DeepSeek: R1 0528', created: 1748455170, - description: - "May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active...", + description: 'May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active...', context_length: 163840, architecture: { modality: 'text->text', @@ -2404,8 +2315,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Llama-70B', name: 'DeepSeek: R1 Distill Llama 70B', created: 1737663169, - description: - 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', + description: 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -2446,8 +2356,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', name: 'DeepSeek: R1 Distill Qwen 32B', created: 1738194830, - description: - "DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI's o1-mini across various benchmarks, achieving new...", + description: 'DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI\'s o1-mini across various benchmarks, achieving new...', context_length: 32768, architecture: { modality: 'text->text', @@ -2487,8 +2396,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1-Terminus', name: 'DeepSeek: DeepSeek V3.1 Terminus', created: 1758548275, - description: - "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model's original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model's...", + description: 'DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model\'s original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model\'s...', context_length: 163840, architecture: { modality: 'text->text', @@ -2534,8 +2442,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2', name: 'DeepSeek: DeepSeek V3.2', created: 1764594642, - description: - 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2583,8 +2490,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Exp', name: 'DeepSeek: DeepSeek V3.2 Exp', created: 1759150481, - description: - 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2629,8 +2535,7 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Speciale', name: 'DeepSeek: DeepSeek V3.2 Speciale', created: 1764594837, - description: - 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', + description: 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', context_length: 163840, architecture: { modality: 'text->text', @@ -2674,8 +2579,7 @@ export const models: Array = [ hugging_face_id: 'EleutherAI/llemma_7b', name: 'EleutherAI: Llemma 7b', created: 1744643225, - description: - 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', + description: 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', context_length: 4096, architecture: { modality: 'text->text', @@ -2713,8 +2617,7 @@ export const models: Array = [ hugging_face_id: 'EssentialAI/rnj-1-instruct', name: 'EssentialAI: Rnj 1 Instruct', created: 1765094847, - description: - 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', + description: 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', context_length: 32768, architecture: { modality: 'text->text', @@ -2756,8 +2659,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash', created: 1738769413, - description: - 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', + description: 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2799,8 +2701,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash Lite', created: 1740506212, - description: - 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', + description: 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2840,8 +2741,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash', created: 1750172488, - description: - 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', + description: 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2885,8 +2785,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', created: 1759870431, - description: - 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', + description: 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', context_length: 32768, architecture: { modality: 'text+image->text+image', @@ -2926,8 +2825,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite', created: 1753200276, - description: - 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2971,8 +2869,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', created: 1758819686, - description: - 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3016,8 +2913,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro', created: 1750169544, - description: - 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3061,8 +2957,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 06-05', created: 1749137257, - description: - 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio->text', @@ -3106,8 +3001,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 05-06', created: 1746578513, - description: - 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3151,8 +3045,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3 Flash Preview', created: 1765987078, - description: - 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', + description: 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3196,8 +3089,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', created: 1763653797, - description: - 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', + description: 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3239,8 +3131,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', created: 1772119558, - description: - 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', + description: 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3277,8 +3168,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Flash Lite Preview', created: 1772512673, - description: - "Gemini 3.1 Flash Lite Preview is Google's high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...", + description: 'Gemini 3.1 Flash Lite Preview is Google\'s high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3322,8 +3212,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Pro Preview', created: 1771509627, - description: - 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', + description: 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3367,8 +3256,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Gemini 3.1 Pro Preview Custom Tools', created: 1772045923, - description: - 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', + description: 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3412,8 +3300,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-27b-it', name: 'Google: Gemma 2 27B', created: 1720828800, - description: - 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', + description: 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3449,8 +3336,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-9b-it', name: 'Google: Gemma 2 9B', created: 1719532800, - description: - 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', + description: 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3485,8 +3371,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B', created: 1741902625, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3527,8 +3412,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B (free)', created: 1741902625, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3561,8 +3445,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B', created: 1741756359, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3603,8 +3486,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B (free)', created: 1741756359, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3638,8 +3520,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B', created: 1741905510, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3678,8 +3559,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B (free)', created: 1741905510, - description: - 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3713,8 +3593,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E2B-it', name: 'Google: Gemma 3n 2B (free)', created: 1752074904, - description: - 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', + description: 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', context_length: 8192, architecture: { modality: 'text->text', @@ -3747,8 +3626,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B', created: 1747776824, - description: - 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 32768, architecture: { modality: 'text->text', @@ -3786,8 +3664,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B (free)', created: 1747776824, - description: - 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 8192, architecture: { modality: 'text->text', @@ -3820,8 +3697,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B ', created: 1775227989, - description: - 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3867,8 +3743,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B (free)', created: 1775227989, - description: - 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3905,8 +3780,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B', created: 1775148486, - description: - "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", + description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3952,8 +3826,7 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B (free)', created: 1775148486, - description: - "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", + description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3990,8 +3863,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Clip Preview', created: 1774907255, - description: - "30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate...", + description: '30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate...', context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -4024,8 +3896,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Pro Preview', created: 1774907286, - description: - "Full-length songs are priced at $0.08 per song. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...", + description: 'Full-length songs are priced at $0.08 per song. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...', context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -4058,8 +3929,7 @@ export const models: Array = [ hugging_face_id: 'Gryphe/MythoMax-L2-13b', name: 'MythoMax 13B', created: 1688256000, - description: - 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', + description: 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', context_length: 4096, architecture: { modality: 'text->text', @@ -4103,8 +3973,7 @@ export const models: Array = [ hugging_face_id: 'ibm-granite/granite-4.0-h-micro', name: 'IBM: Granite 4.0 Micro', created: 1760927695, - description: - 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', + description: 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', context_length: 131000, architecture: { modality: 'text->text', @@ -4140,8 +4009,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury', created: 1750973026, - description: - 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', + description: 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', context_length: 128000, architecture: { modality: 'text->text', @@ -4177,8 +4045,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Inception: Mercury 2', created: 1772636275, - description: - 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', + description: 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', context_length: 128000, architecture: { modality: 'text->text', @@ -4216,8 +4083,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury Coder', created: 1746033880, - description: - 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', + description: 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', context_length: 128000, architecture: { modality: 'text->text', @@ -4253,8 +4119,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Pi', created: 1728604800, - description: - "Inflection 3 Pi powers Inflection's [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...", + description: 'Inflection 3 Pi powers Inflection\'s [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...', context_length: 8000, architecture: { modality: 'text->text', @@ -4273,7 +4138,12 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + 'top_p', + ], }, { id: 'inflection/inflection-3-productivity', @@ -4281,8 +4151,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Productivity', created: 1728604800, - description: - 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', + description: 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', context_length: 8000, architecture: { modality: 'text->text', @@ -4301,7 +4170,12 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + 'top_p', + ], }, { id: 'kwaipilot/kat-coder-pro-v2', @@ -4309,8 +4183,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Kwaipilot: KAT-Coder-Pro V2', created: 1774649310, - description: - 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', + description: 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', context_length: 256000, architecture: { modality: 'text->text', @@ -4354,8 +4227,7 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2-24B-A2B', name: 'LiquidAI: LFM2-24B-A2B', created: 1772048711, - description: - 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', + description: 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', context_length: 32768, architecture: { modality: 'text->text', @@ -4393,8 +4265,7 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Instruct', name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', created: 1768927521, - description: - 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', + description: 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', context_length: 32768, architecture: { modality: 'text->text', @@ -4432,8 +4303,7 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Thinking', name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', created: 1768927527, - description: - 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', + description: 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', context_length: 32768, architecture: { modality: 'text->text', @@ -4473,8 +4343,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Mancer: Weaver (alpha)', created: 1690934400, - description: - "An attempt to recreate Claude-style verbosity, but don't expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.", + description: 'An attempt to recreate Claude-style verbosity, but don\'t expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.', context_length: 8000, architecture: { modality: 'text->text', @@ -4517,8 +4386,7 @@ export const models: Array = [ hugging_face_id: 'meituan-longcat/LongCat-Flash-Chat', name: 'Meituan: LongCat Flash Chat', created: 1757427658, - description: - 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', + description: 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', context_length: 131072, architecture: { modality: 'text->text', @@ -4562,8 +4430,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-70B-Instruct', name: 'Meta: Llama 3 70B Instruct', created: 1713398400, - description: - "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", + description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 8192, architecture: { modality: 'text->text', @@ -4600,8 +4467,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-8B-Instruct', name: 'Meta: Llama 3 8B Instruct', created: 1713398400, - description: - "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", + description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 8192, architecture: { modality: 'text->text', @@ -4643,8 +4509,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-70B-Instruct', name: 'Meta: Llama 3.1 70B Instruct', created: 1721692800, - description: - "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...", + description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...', context_length: 131072, architecture: { modality: 'text->text', @@ -4685,8 +4550,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-8B-Instruct', name: 'Meta: Llama 3.1 8B Instruct', created: 1721692800, - description: - "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...", + description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...', context_length: 16384, architecture: { modality: 'text->text', @@ -4730,8 +4594,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-11B-Vision-Instruct', name: 'Meta: Llama 3.2 11B Vision Instruct', created: 1727222400, - description: - 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', + description: 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -4770,8 +4633,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-1B-Instruct', name: 'Meta: Llama 3.2 1B Instruct', created: 1727222400, - description: - 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', + description: 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', context_length: 60000, architecture: { modality: 'text->text', @@ -4807,8 +4669,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct', created: 1727222400, - description: - 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 80000, architecture: { modality: 'text->text', @@ -4844,8 +4705,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct (free)', created: 1727222400, - description: - 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 131072, architecture: { modality: 'text->text', @@ -4880,8 +4740,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct', created: 1733506137, - description: - 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 131072, architecture: { modality: 'text->text', @@ -4926,8 +4785,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct (free)', created: 1733506137, - description: - 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 65536, architecture: { modality: 'text->text', @@ -4964,8 +4822,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Maverick-17B-128E-Instruct', name: 'Meta: Llama 4 Maverick', created: 1743881822, - description: - 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', + description: 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', context_length: 1048576, architecture: { modality: 'text+image->text', @@ -5008,8 +4865,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Scout-17B-16E-Instruct', name: 'Meta: Llama 4 Scout', created: 1743881519, - description: - 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', + description: 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', context_length: 327680, architecture: { modality: 'text+image->text', @@ -5051,8 +4907,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-3-8B', name: 'Llama Guard 3 8B', created: 1739401318, - description: - 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', + description: 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', context_length: 131072, architecture: { modality: 'text->text', @@ -5088,8 +4943,7 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-4-12B', name: 'Meta: Llama Guard 4 12B', created: 1745975193, - description: - 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', + description: 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', context_length: 163840, architecture: { modality: 'text+image->text', @@ -5129,8 +4983,7 @@ export const models: Array = [ hugging_face_id: 'microsoft/phi-4', name: 'Microsoft: Phi 4', created: 1736489872, - description: - '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', + description: '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', context_length: 16384, architecture: { modality: 'text->text', @@ -5172,8 +5025,7 @@ export const models: Array = [ hugging_face_id: 'microsoft/WizardLM-2-8x22B', name: 'WizardLM-2 8x22B', created: 1713225600, - description: - "WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...", + description: 'WizardLM-2 8x22B is Microsoft AI\'s most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...', context_length: 65535, architecture: { modality: 'text->text', @@ -5210,8 +5062,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-Text-01', name: 'MiniMax: MiniMax-01', created: 1736915462, - description: - 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', + description: 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', context_length: 1000192, architecture: { modality: 'text+image->text', @@ -5230,7 +5081,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'minimax/minimax-m1', @@ -5238,8 +5093,7 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M1', created: 1750200414, - description: - 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', + description: 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', context_length: 1000000, architecture: { modality: 'text->text', @@ -5280,8 +5134,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2', name: 'MiniMax: MiniMax M2', created: 1761252093, - description: - 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', + description: 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', context_length: 196608, architecture: { modality: 'text->text', @@ -5327,8 +5180,7 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M2-her', created: 1769177239, - description: - 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', + description: 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', context_length: 65536, architecture: { modality: 'text->text', @@ -5348,7 +5200,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'temperature', 'top_p'], + supported_parameters: [ + 'max_tokens', + 'temperature', + 'top_p', + ], }, { id: 'minimax/minimax-m2.1', @@ -5356,8 +5212,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.1', name: 'MiniMax: MiniMax M2.1', created: 1766454997, - description: - 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', + description: 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', context_length: 196608, architecture: { modality: 'text->text', @@ -5367,13 +5222,13 @@ export const models: Array = [ instruct_type: null, }, pricing: { - prompt: '0.00000027', + prompt: '0.00000029', completion: '0.00000095', - input_cache_read: '0.0000000290000007', + input_cache_read: '0.00000003', }, top_provider: { context_length: 196608, - max_completion_tokens: null, + max_completion_tokens: 196608, is_moderated: false, }, per_request_limits: null, @@ -5405,8 +5260,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5', created: 1770908502, - description: - 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5456,8 +5310,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5 (free)', created: 1770908502, - description: - 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5493,8 +5346,7 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.7', name: 'MiniMax: MiniMax M2.7', created: 1773836697, - description: - 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', + description: 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', context_length: 204800, architecture: { modality: 'text->text', @@ -5531,8 +5383,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Codestral 2508', created: 1754079630, - description: - "Mistral's cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)", + description: 'Mistral\'s cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)', context_length: 256000, architecture: { modality: 'text->text', @@ -5572,8 +5423,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-2-123B-Instruct-2512', name: 'Mistral: Devstral 2 2512', created: 1765285419, - description: - 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', + description: 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', context_length: 262144, architecture: { modality: 'text->text', @@ -5613,8 +5463,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Devstral Medium', created: 1752161321, - description: - 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', + description: 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', context_length: 131072, architecture: { modality: 'text->text', @@ -5654,8 +5503,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-Small-2507', name: 'Mistral: Devstral Small 1.1', created: 1752160751, - description: - 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', + description: 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', context_length: 131072, architecture: { modality: 'text->text', @@ -5695,8 +5543,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-14B-Instruct-2512', name: 'Mistral: Ministral 3 14B 2512', created: 1764681735, - description: - 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', + description: 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5739,8 +5586,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-3B-Instruct-2512', name: 'Mistral: Ministral 3 3B 2512', created: 1764681560, - description: - 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', + description: 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5783,8 +5629,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-8B-Instruct-2512', name: 'Mistral: Ministral 3 8B 2512', created: 1764681654, - description: - 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', + description: 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5827,8 +5672,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-7B-Instruct-v0.1', name: 'Mistral: Mistral 7B Instruct v0.1', created: 1695859200, - description: - 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', + description: 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', context_length: 2824, architecture: { modality: 'text->text', @@ -5864,8 +5708,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral Large', created: 1708905600, - description: - "This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", + description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version `mistral-large-2407`). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', context_length: 128000, architecture: { modality: 'text->text', @@ -5905,8 +5748,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2407', created: 1731978415, - description: - "This is Mistral AI's flagship model, Mistral Large 2 (version mistral-large-2407). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", + description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version mistral-large-2407). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', context_length: 131072, architecture: { modality: 'text->text', @@ -5946,8 +5788,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2411', created: 1731978685, - description: - 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', + description: 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', context_length: 131072, architecture: { modality: 'text->text', @@ -5987,8 +5828,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Large 3 2512', created: 1764624472, - description: - 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', + description: 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -6028,8 +5868,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3', created: 1746627341, - description: - 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', + description: 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6069,8 +5908,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3.1', created: 1755095639, - description: - 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', + description: 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6110,8 +5948,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Nemo-Instruct-2407', name: 'Mistral: Mistral Nemo', created: 1721347200, - description: - 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', + description: 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', context_length: 131072, architecture: { modality: 'text->text', @@ -6153,8 +5990,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Saba', created: 1739803239, - description: - 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', + description: 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', context_length: 32768, architecture: { modality: 'text->text', @@ -6194,8 +6030,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-24B-Instruct-2501', name: 'Mistral: Mistral Small 3', created: 1738255409, - description: - 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', + description: 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', context_length: 32768, architecture: { modality: 'text->text', @@ -6234,8 +6069,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-4-119B-2603', name: 'Mistral: Mistral Small 4', created: 1773695685, - description: - 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', + description: 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -6268,6 +6102,7 @@ export const models: Array = [ 'temperature', 'tool_choice', 'tools', + 'top_k', 'top_p', ], }, @@ -6277,8 +6112,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.1-24B-Instruct-2503', name: 'Mistral: Mistral Small 3.1 24B', created: 1742238937, - description: - 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', + description: 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6318,8 +6152,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.2-24B-Instruct-2506', name: 'Mistral: Mistral Small 3.2 24B', created: 1750443016, - description: - 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', + description: 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -6362,8 +6195,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral: Mistral Small Creative', created: 1765908653, - description: - 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', + description: 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', context_length: 32768, architecture: { modality: 'text->text', @@ -6383,7 +6215,10 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['tool_choice', 'tools'], + supported_parameters: [ + 'tool_choice', + 'tools', + ], }, { id: 'mistralai/mixtral-8x22b-instruct', @@ -6391,8 +6226,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x22B-Instruct-v0.1', name: 'Mistral: Mixtral 8x22B Instruct', created: 1713312000, - description: - "Mistral's official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...", + description: 'Mistral\'s official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...', context_length: 65536, architecture: { modality: 'text->text', @@ -6432,8 +6266,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x7B-Instruct-v0.1', name: 'Mistral: Mixtral 8x7B Instruct', created: 1702166400, - description: - 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', + description: 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', context_length: 32768, architecture: { modality: 'text->text', @@ -6475,8 +6308,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Pixtral Large 2411', created: 1731977388, - description: - 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', + description: 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6516,8 +6348,7 @@ export const models: Array = [ hugging_face_id: 'mistralai/Voxtral-Small-24B-2507', name: 'Mistral: Voxtral Small 24B 2507', created: 1761835144, - description: - 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', + description: 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', context_length: 32000, architecture: { modality: 'text+audio->text', @@ -6558,8 +6389,7 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct', name: 'MoonshotAI: Kimi K2 0711', created: 1752263252, - description: - 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', + description: 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -6598,8 +6428,7 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct-0905', name: 'MoonshotAI: Kimi K2 0905', created: 1757021147, - description: - 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', + description: 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', context_length: 262144, architecture: { modality: 'text->text', @@ -6644,8 +6473,7 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Thinking', name: 'MoonshotAI: Kimi K2 Thinking', created: 1762440622, - description: - 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', + description: 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', context_length: 262144, architecture: { modality: 'text->text', @@ -6690,8 +6518,7 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2.5', name: 'MoonshotAI: Kimi K2.5', created: 1769487076, - description: - "Kimi K2.5 is Moonshot AI's native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...", + description: 'Kimi K2.5 is Moonshot AI\'s native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -6740,8 +6567,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Fast', created: 1751910002, - description: - "Morph's fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...", + description: 'Morph\'s fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...', context_length: 81920, architecture: { modality: 'text->text', @@ -6760,7 +6586,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'stop', 'temperature'], + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + ], }, { id: 'morph/morph-v3-large', @@ -6768,8 +6598,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Large', created: 1751910858, - description: - "Morph's high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...", + description: 'Morph\'s high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...', context_length: 262144, architecture: { modality: 'text->text', @@ -6788,7 +6617,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'stop', 'temperature'], + supported_parameters: [ + 'max_tokens', + 'stop', + 'temperature', + ], }, { id: 'nex-agi/deepseek-v3.1-nex-n1', @@ -6796,8 +6629,7 @@ export const models: Array = [ hugging_face_id: 'nex-agi/DeepSeek-V3.1-Nex-N1', name: 'Nex AGI: DeepSeek V3.1 Nex N1', created: 1765204393, - description: - 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', + description: 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -6833,8 +6665,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-2-Pro-Llama-3-8B', name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', created: 1716768000, - description: - 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', + description: 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', context_length: 8192, architecture: { modality: 'text->text', @@ -6873,8 +6704,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct', created: 1723766400, - description: - 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6913,8 +6743,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct (free)', created: 1723766400, - description: - 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6949,8 +6778,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-70B', name: 'Nous: Hermes 3 70B Instruct', created: 1723939200, - description: - 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6989,8 +6817,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-405B', name: 'Nous: Hermes 4 405B', created: 1756235463, - description: - 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', + description: 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', context_length: 131072, architecture: { modality: 'text->text', @@ -7028,8 +6855,7 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-70B', name: 'Nous: Hermes 4 70B', created: 1756236182, - description: - 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', + description: 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', context_length: 131072, architecture: { modality: 'text->text', @@ -7067,8 +6893,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF', name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', created: 1728950400, - description: - "NVIDIA's Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...", + description: 'NVIDIA\'s Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...', context_length: 131072, architecture: { modality: 'text->text', @@ -7109,8 +6934,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', created: 1744115059, - description: - 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', + description: 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', context_length: 131072, architecture: { modality: 'text->text', @@ -7149,8 +6973,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_3-Nemotron-Super-49B-v1_5', name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', created: 1760101395, - description: - 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', + description: 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7193,8 +7016,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B', created: 1765731275, - description: - 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 262144, architecture: { modality: 'text->text', @@ -7237,8 +7059,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', created: 1765731275, - description: - 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 256000, architecture: { modality: 'text->text', @@ -7274,8 +7095,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super', created: 1773245239, - description: - 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7319,8 +7139,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super (free)', created: 1773245239, - description: - 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7358,8 +7177,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL', created: 1761675565, - description: - 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -7400,8 +7218,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', created: 1761675565, - description: - 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 128000, architecture: { modality: 'text+image+video->text', @@ -7437,8 +7254,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2', created: 1757106807, - description: - 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7481,8 +7297,7 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2 (free)', created: 1757106807, - description: - 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 128000, architecture: { modality: 'text->text', @@ -7520,8 +7335,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo', created: 1685232000, - description: - "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", + description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', context_length: 16385, architecture: { modality: 'text->text', @@ -7563,8 +7377,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo (older v0613)', created: 1706140800, - description: - "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", + description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -7587,7 +7400,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', - 'max_tokens', + 'max_completion_tokens', 'presence_penalty', 'response_format', 'seed', @@ -7606,8 +7419,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo 16k', created: 1693180800, - description: - 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', + description: 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', context_length: 16385, architecture: { modality: 'text->text', @@ -7630,6 +7442,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -7649,8 +7462,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo Instruct', created: 1695859200, - description: - 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', + description: 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -7690,8 +7502,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4', created: 1685232000, - description: - "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...", + description: 'OpenAI\'s flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...', context_length: 8191, architecture: { modality: 'text->text', @@ -7714,6 +7525,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -7733,8 +7545,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 (older v0314)', created: 1685232000, - description: - 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', + description: 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', context_length: 8191, architecture: { modality: 'text->text', @@ -7776,8 +7587,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo (older v1106)', created: 1699228800, - description: - 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', + description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', context_length: 128000, architecture: { modality: 'text->text', @@ -7819,8 +7629,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo', created: 1712620800, - description: - 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', + description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', context_length: 128000, architecture: { modality: 'text+image->text', @@ -7862,8 +7671,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo Preview', created: 1706140800, - description: - 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', + description: 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', context_length: 128000, architecture: { modality: 'text->text', @@ -7905,8 +7713,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1', created: 1744651385, - description: - 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', + description: 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7928,6 +7735,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -7944,8 +7752,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Mini', created: 1744651381, - description: - 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', + description: 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7967,6 +7774,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -7983,8 +7791,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Nano', created: 1744651369, - description: - 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', + description: 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -8006,6 +7813,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -8022,8 +7830,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o', created: 1715558400, - description: - 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8047,6 +7854,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -8067,8 +7875,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-05-13)', created: 1715558400, - description: - 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8091,6 +7898,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -8111,8 +7919,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-08-06)', created: 1722902400, - description: - 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', + description: 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8136,6 +7943,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -8156,8 +7964,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o (2024-11-20)', created: 1732127594, - description: - 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', + description: 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8201,8 +8008,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Audio', created: 1755233061, - description: - 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', + description: 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -8245,8 +8051,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini', created: 1721260800, - description: - "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", + description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8270,6 +8075,7 @@ export const models: Array = [ 'frequency_penalty', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'presence_penalty', 'response_format', @@ -8290,8 +8096,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini (2024-07-18)', created: 1721260800, - description: - "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", + description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8335,8 +8140,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o-mini Search Preview', created: 1741818122, - description: - 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8369,8 +8173,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Search Preview', created: 1741817949, - description: - 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8403,8 +8206,7 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (extended)', created: 1715558400, - description: - 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8447,8 +8249,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5', created: 1754587413, - description: - 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', + description: 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8471,6 +8272,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8486,8 +8288,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Chat', created: 1754587837, - description: - 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', + description: 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8521,8 +8322,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Codex', created: 1758643403, - description: - 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8559,8 +8359,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image', created: 1760447986, - description: - "[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI's GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1's superior instruction following,...", + description: '[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI\'s GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1\'s superior instruction following,...', context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8606,8 +8405,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image Mini', created: 1760624583, - description: - "GPT-5 Image Mini combines OpenAI's advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...", + description: 'GPT-5 Image Mini combines OpenAI\'s advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...', context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8653,8 +8451,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Mini', created: 1754587407, - description: - 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', + description: 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8677,6 +8474,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8692,8 +8490,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Nano', created: 1754587402, - description: - 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', + description: 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8716,6 +8513,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8731,8 +8529,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Pro', created: 1759776663, - description: - 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', + description: 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8769,8 +8566,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1', created: 1763060305, - description: - 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', + description: 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8793,6 +8589,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8808,8 +8605,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1 Chat', created: 1763060302, - description: - 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8831,6 +8627,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -8845,8 +8642,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex', created: 1763060298, - description: - 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8868,6 +8664,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8883,8 +8680,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Max', created: 1764878934, - description: - 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', + description: 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8907,6 +8703,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8922,8 +8719,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Mini', created: 1763057820, - description: - 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', + description: 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8945,6 +8741,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8960,8 +8757,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2', created: 1765389775, - description: - 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', + description: 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8984,6 +8780,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -8999,8 +8796,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Chat', created: 1765389783, - description: - 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -9022,6 +8818,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -9036,8 +8833,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2-Codex', created: 1768409315, - description: - 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -9060,6 +8856,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9075,8 +8872,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Pro', created: 1765389780, - description: - 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', + description: 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9113,8 +8909,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3 Chat', created: 1772564061, - description: - "GPT-5.3 Chat is an update to ChatGPT's most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...", + description: 'GPT-5.3 Chat is an update to ChatGPT\'s most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -9136,6 +8931,7 @@ export const models: Array = [ }, per_request_limits: null, supported_parameters: [ + 'max_completion_tokens', 'max_tokens', 'response_format', 'seed', @@ -9150,8 +8946,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3-Codex', created: 1771959164, - description: - 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', + description: 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9174,6 +8969,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9189,8 +8985,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4', created: 1772734352, - description: - 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', + description: 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9213,6 +9008,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9228,8 +9024,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Mini', created: 1773748178, - description: - 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', + description: 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9252,6 +9047,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9267,8 +9063,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Nano', created: 1773748187, - description: - 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', + description: 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9291,6 +9086,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9306,8 +9102,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Pro', created: 1772734366, - description: - "GPT-5.4 Pro is OpenAI's most advanced model, building on GPT-5.4's unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...", + description: 'GPT-5.4 Pro is OpenAI\'s most advanced model, building on GPT-5.4\'s unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9329,6 +9124,7 @@ export const models: Array = [ per_request_limits: null, supported_parameters: [ 'include_reasoning', + 'max_completion_tokens', 'max_tokens', 'reasoning', 'response_format', @@ -9344,8 +9140,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio', created: 1768862569, - description: - "The gpt-audio model is OpenAI's first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...", + description: 'The gpt-audio model is OpenAI\'s first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9388,8 +9183,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio Mini', created: 1768859419, - description: - 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', + description: 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9432,8 +9226,7 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b', created: 1754414231, - description: - 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9481,8 +9274,7 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b (free)', created: 1754414231, - description: - 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9518,8 +9310,7 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b', created: 1754414229, - description: - 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9568,8 +9359,7 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b (free)', created: 1754414229, - description: - 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9605,8 +9395,7 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-safeguard-20b', name: 'OpenAI: gpt-oss-safeguard-20b', created: 1761752836, - description: - 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', + description: 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', context_length: 131072, architecture: { modality: 'text->text', @@ -9645,8 +9434,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1', created: 1734459999, - description: - 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', + description: 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9683,8 +9471,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1-pro', created: 1742423211, - description: - 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', + description: 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9718,8 +9505,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3', created: 1744823457, - description: - 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', + description: 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9757,8 +9543,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Deep Research', created: 1760129661, - description: - "o3-deep-research is OpenAI's advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", + description: 'o3-deep-research is OpenAI\'s advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9804,8 +9589,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini', created: 1738351721, - description: - 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', + description: 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9842,8 +9626,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini High', created: 1739372611, - description: - 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', + description: 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9880,8 +9663,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Pro', created: 1749598352, - description: - 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', + description: 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9918,8 +9700,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini', created: 1744820942, - description: - 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', + description: 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9957,8 +9738,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini Deep Research', created: 1760129642, - description: - "o4-mini-deep-research is OpenAI's faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", + description: 'o4-mini-deep-research is OpenAI\'s faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -10004,8 +9784,7 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini High', created: 1744824212, - description: - 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', + description: 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -10043,8 +9822,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Auto Router', created: 1699401600, - description: - 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', + description: 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', context_length: 2000000, architecture: { modality: 'text+image+file+audio+video->text+image', @@ -10068,6 +9846,7 @@ export const models: Array = [ 'include_reasoning', 'logit_bias', 'logprobs', + 'max_completion_tokens', 'max_tokens', 'min_p', 'presence_penalty', @@ -10093,8 +9872,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Body Builder (beta)', created: 1764903653, - description: - 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', + description: 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', context_length: 128000, architecture: { modality: 'text->text', @@ -10113,7 +9891,8 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [], + supported_parameters: [ + ], }, { id: 'openrouter/free', @@ -10121,8 +9900,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Free Models Router', created: 1769917427, - description: - 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', + description: 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -10166,8 +9944,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar', created: 1738013808, - description: - 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', + description: 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', context_length: 127072, architecture: { modality: 'text+image->text', @@ -10203,8 +9980,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Deep Research', created: 1741311246, - description: - 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', + description: 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', context_length: 128000, architecture: { modality: 'text->text', @@ -10243,8 +10019,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro', created: 1741312423, - description: - 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', + description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -10280,8 +10055,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro Search', created: 1761854366, - description: - "Exclusively available on the OpenRouter API, Sonar Pro's new Pro Search mode is Perplexity's most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...", + description: 'Exclusively available on the OpenRouter API, Sonar Pro\'s new Pro Search mode is Perplexity\'s most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -10320,8 +10094,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Reasoning Pro', created: 1741313308, - description: - 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', + description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10359,8 +10132,7 @@ export const models: Array = [ hugging_face_id: 'PrimeIntellect/INTELLECT-3-FP8', name: 'Prime Intellect: INTELLECT-3', created: 1764212534, - description: - 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', + description: 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', context_length: 131072, architecture: { modality: 'text->text', @@ -10401,8 +10173,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-72B-Instruct', name: 'Qwen2.5 72B Instruct', created: 1726704000, - description: - 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10443,8 +10214,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-7B-Instruct', name: 'Qwen: Qwen2.5 7B Instruct', created: 1729036800, - description: - 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10486,8 +10256,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-32B-Instruct', name: 'Qwen2.5 Coder 32B Instruct', created: 1731368400, - description: - 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', + description: 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', context_length: 32768, architecture: { modality: 'text->text', @@ -10523,8 +10292,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Max ', created: 1738402289, - description: - "Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It's a large-scale MoE model that has been pretrained on over 20 trillion...", + description: 'Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It\'s a large-scale MoE model that has been pretrained on over 20 trillion...', context_length: 32768, architecture: { modality: 'text->text', @@ -10561,8 +10329,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Plus', created: 1738409840, - description: - 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', + description: 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10599,8 +10366,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728', created: 1757347599, - description: - 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10637,8 +10403,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728 (thinking)', created: 1757347599, - description: - 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10677,8 +10442,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Turbo', created: 1738410974, - description: - 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', + description: 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', context_length: 131072, architecture: { modality: 'text->text', @@ -10715,8 +10479,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Max', created: 1738434304, - description: - 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', + description: 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10752,8 +10515,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Plus', created: 1738731255, - description: - "Qwen's Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...", + description: 'Qwen\'s Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10788,8 +10550,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-7B-Instruct', name: 'Qwen: Qwen2.5 Coder 7B Instruct', created: 1744734887, - description: - 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', + description: 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', context_length: 32768, architecture: { modality: 'text->text', @@ -10826,8 +10587,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-32B-Instruct', name: 'Qwen: Qwen2.5 VL 32B Instruct', created: 1742839838, - description: - 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', + description: 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10866,8 +10626,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-72B-Instruct', name: 'Qwen: Qwen2.5 VL 72B Instruct', created: 1738410311, - description: - 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', + description: 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', context_length: 32768, architecture: { modality: 'text+image->text', @@ -10907,8 +10666,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-14B', name: 'Qwen: Qwen3 14B', created: 1745876478, - description: - 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -10954,8 +10712,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B', name: 'Qwen: Qwen3 235B A22B', created: 1745875757, - description: - 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', + description: 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -10993,8 +10750,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Instruct-2507', name: 'Qwen: Qwen3 235B A22B Instruct 2507', created: 1753119555, - description: - 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', + description: 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', context_length: 262144, architecture: { modality: 'text->text', @@ -11042,8 +10798,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Thinking-2507', name: 'Qwen: Qwen3 235B A22B Thinking 2507', created: 1753449557, - description: - 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', + description: 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', context_length: 131072, architecture: { modality: 'text->text', @@ -11088,8 +10843,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B', name: 'Qwen: Qwen3 30B A3B', created: 1745878604, - description: - 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', + description: 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', context_length: 40960, architecture: { modality: 'text->text', @@ -11135,8 +10889,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Instruct-2507', name: 'Qwen: Qwen3 30B A3B Instruct 2507', created: 1753806965, - description: - 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', + description: 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', context_length: 262144, architecture: { modality: 'text->text', @@ -11179,8 +10932,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Thinking-2507', name: 'Qwen: Qwen3 30B A3B Thinking 2507', created: 1756399192, - description: - 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', + description: 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', context_length: 131072, architecture: { modality: 'text->text', @@ -11226,8 +10978,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-32B', name: 'Qwen: Qwen3 32B', created: 1745875945, - description: - 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -11273,8 +11024,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-8B', name: 'Qwen: Qwen3 8B', created: 1745876632, - description: - 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', + description: 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', context_length: 40960, architecture: { modality: 'text->text', @@ -11320,8 +11070,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B', created: 1753230546, - description: - 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262144, architecture: { modality: 'text->text', @@ -11365,8 +11114,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', name: 'Qwen: Qwen3 Coder 30B A3B Instruct', created: 1753972379, - description: - 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', + description: 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', context_length: 160000, architecture: { modality: 'text->text', @@ -11407,8 +11155,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Flash', created: 1758115536, - description: - "Qwen3 Coder Flash is Alibaba's fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...", + description: 'Qwen3 Coder Flash is Alibaba\'s fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...', context_length: 1000000, architecture: { modality: 'text->text', @@ -11445,8 +11192,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-Next', name: 'Qwen: Qwen3 Coder Next', created: 1770164101, - description: - 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', + description: 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', context_length: 262144, architecture: { modality: 'text->text', @@ -11490,8 +11236,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Plus', created: 1758662707, - description: - "Qwen3 Coder Plus is Alibaba's proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...", + description: 'Qwen3 Coder Plus is Alibaba\'s proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...', context_length: 1000000, architecture: { modality: 'text->text', @@ -11529,8 +11274,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B (free)', created: 1753230546, - description: - 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262000, architecture: { modality: 'text->text', @@ -11567,8 +11311,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Max', created: 1758662808, - description: - 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', + description: 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', context_length: 262144, architecture: { modality: 'text->text', @@ -11605,8 +11348,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3 Max Thinking', created: 1770671901, - description: - 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', + description: 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', context_length: 262144, architecture: { modality: 'text->text', @@ -11645,8 +11387,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct', created: 1757612213, - description: - 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11689,8 +11430,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', created: 1757612213, - description: - 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11729,8 +11469,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Thinking', name: 'Qwen: Qwen3 Next 80B A3B Thinking', created: 1757612284, - description: - 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', + description: 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', context_length: 131072, architecture: { modality: 'text->text', @@ -11775,8 +11514,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Instruct', name: 'Qwen: Qwen3 VL 235B A22B Instruct', created: 1758668687, - description: - 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', + description: 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -11820,8 +11558,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Thinking', name: 'Qwen: Qwen3 VL 235B A22B Thinking', created: 1758668690, - description: - 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', + description: 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11864,8 +11601,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Instruct', name: 'Qwen: Qwen3 VL 30B A3B Instruct', created: 1759794476, - description: - 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', + description: 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11908,8 +11644,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Thinking', name: 'Qwen: Qwen3 VL 30B A3B Thinking', created: 1759794479, - description: - 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', + description: 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11952,8 +11687,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-32B-Instruct', name: 'Qwen: Qwen3 VL 32B Instruct', created: 1761231332, - description: - 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', + description: 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11989,8 +11723,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Instruct', name: 'Qwen: Qwen3 VL 8B Instruct', created: 1760463308, - description: - 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', + description: 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -12033,8 +11766,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Thinking', name: 'Qwen: Qwen3 VL 8B Thinking', created: 1760463746, - description: - 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', + description: 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -12073,8 +11805,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-122B-A10B', name: 'Qwen: Qwen3.5-122B-A10B', created: 1772053789, - description: - 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', + description: 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -12121,8 +11852,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-27B', name: 'Qwen: Qwen3.5-27B', created: 1772053810, - description: - 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', + description: 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -12169,8 +11899,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-35B-A3B', name: 'Qwen: Qwen3.5-35B-A3B', created: 1772053822, - description: - 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', + description: 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -12217,8 +11946,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-397B-A17B', name: 'Qwen: Qwen3.5 397B A17B', created: 1771223018, - description: - 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', + description: 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -12263,8 +11991,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-9B', name: 'Qwen: Qwen3.5-9B', created: 1773152396, - description: - 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', + description: 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', context_length: 256000, architecture: { modality: 'text+image+video->text', @@ -12310,8 +12037,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3.5-Flash', created: 1772053776, - description: - 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', + description: 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12350,8 +12076,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.5 Plus 2026-02-15', created: 1771229416, - description: - 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', + description: 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12390,8 +12115,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.6 Plus', created: 1775133557, - description: - 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', + description: 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12430,8 +12154,7 @@ export const models: Array = [ hugging_face_id: 'Qwen/QwQ-32B', name: 'Qwen: QwQ 32B', created: 1741208814, - description: - 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', + description: 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', context_length: 131072, architecture: { modality: 'text->text', @@ -12467,8 +12190,7 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-edge-2603', name: 'Reka Edge', created: 1774026965, - description: - 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', + description: 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', context_length: 16384, architecture: { modality: 'text+image+video->text', @@ -12507,8 +12229,7 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-flash-3', name: 'Reka Flash 3', created: 1741812813, - description: - 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', + description: 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', context_length: 65536, architecture: { modality: 'text->text', @@ -12546,8 +12267,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Relace: Relace Apply 3', created: 1758891572, - description: - 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', + description: 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', context_length: 256000, architecture: { modality: 'text->text', @@ -12566,7 +12286,11 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: ['max_tokens', 'seed', 'stop'], + supported_parameters: [ + 'max_tokens', + 'seed', + 'stop', + ], }, { id: 'relace/relace-search', @@ -12574,8 +12298,7 @@ export const models: Array = [ hugging_face_id: null, name: 'Relace: Relace Search', created: 1765213560, - description: - 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', + description: 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', context_length: 256000, architecture: { modality: 'text->text', @@ -12610,8 +12333,7 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-70B-Euryale-v2.1', name: 'Sao10k: Llama 3 Euryale 70B v2.1', created: 1718668800, - description: - 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', + description: 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', context_length: 8192, architecture: { modality: 'text->text', @@ -12650,8 +12372,7 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-8B-Lunaris-v1', name: 'Sao10K: Llama 3 8B Lunaris', created: 1723507200, - description: - "Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It's a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....", + description: 'Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It\'s a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....', context_length: 8192, architecture: { modality: 'text->text', @@ -12691,8 +12412,7 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Hanami-x1', name: 'Sao10K: Llama 3.1 70B Hanami x1', created: 1736302854, - description: - "This is [Sao10K](/sao10k)'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).", + description: 'This is [Sao10K](/sao10k)\'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).', context_length: 16000, architecture: { modality: 'text->text', @@ -12731,8 +12451,7 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Euryale-v2.2', name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', created: 1724803200, - description: - 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', + description: 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12773,8 +12492,7 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.3-70B-Euryale-v2.3', name: 'Sao10K: Llama 3.3 Euryale 70B', created: 1734535928, - description: - 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', + description: 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12816,8 +12534,7 @@ export const models: Array = [ hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash', created: 1769728337, - description: - "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....", + description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', context_length: 262144, architecture: { modality: 'text->text', @@ -12854,51 +12571,13 @@ export const models: Array = [ 'top_p', ], }, - { - id: 'stepfun/step-3.5-flash:free', - canonical_slug: 'stepfun/step-3.5-flash', - hugging_face_id: 'stepfun-ai/Step-3.5-Flash', - name: 'StepFun: Step 3.5 Flash (free)', - created: 1769728337, - description: - "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....", - context_length: 256000, - architecture: { - modality: 'text->text', - input_modalities: ['text'], - output_modalities: ['text'], - tokenizer: 'Other', - instruct_type: null, - }, - pricing: { - prompt: '0', - completion: '0', - }, - top_provider: { - context_length: 256000, - max_completion_tokens: 256000, - is_moderated: false, - }, - per_request_limits: null, - supported_parameters: [ - 'frequency_penalty', - 'include_reasoning', - 'max_tokens', - 'reasoning', - 'stop', - 'temperature', - 'tools', - 'top_p', - ], - }, { id: 'switchpoint/router', canonical_slug: 'switchpoint/router', hugging_face_id: '', name: 'Switchpoint Router', created: 1752272899, - description: - "Switchpoint AI's router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...", + description: 'Switchpoint AI\'s router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...', context_length: 131072, architecture: { modality: 'text->text', @@ -12934,8 +12613,7 @@ export const models: Array = [ hugging_face_id: 'tencent/Hunyuan-A13B-Instruct', name: 'Tencent: Hunyuan A13B Instruct', created: 1751987664, - description: - 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', + description: 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', context_length: 131072, architecture: { modality: 'text->text', @@ -12971,8 +12649,7 @@ export const models: Array = [ hugging_face_id: 'thedrummer/cydonia-24b-v4.1', name: 'TheDrummer: Cydonia 24B V4.1', created: 1758931878, - description: - 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', + description: 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', context_length: 131072, architecture: { modality: 'text->text', @@ -13010,8 +12687,7 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Rocinante-12B-v1.1', name: 'TheDrummer: Rocinante 12B', created: 1727654400, - description: - 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', + description: 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', context_length: 32768, architecture: { modality: 'text->text', @@ -13056,8 +12732,7 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Skyfall-36B-v2', name: 'TheDrummer: Skyfall 36B V2', created: 1741636566, - description: - 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', + description: 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', context_length: 32768, architecture: { modality: 'text->text', @@ -13095,8 +12770,7 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/UnslopNemo-12B-v4.1', name: 'TheDrummer: UnslopNemo 12B', created: 1731103448, - description: - 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', + description: 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', context_length: 32768, architecture: { modality: 'text->text', @@ -13138,8 +12812,7 @@ export const models: Array = [ hugging_face_id: 'tngtech/DeepSeek-TNG-R1T2-Chimera', name: 'TNG: DeepSeek R1T2 Chimera', created: 1751986985, - description: - 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', + description: 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', context_length: 163840, architecture: { modality: 'text->text', @@ -13183,8 +12856,7 @@ export const models: Array = [ hugging_face_id: 'Undi95/ReMM-SLERP-L2-13B', name: 'ReMM SLERP 13B', created: 1689984000, - description: - 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', + description: 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', context_length: 6144, architecture: { modality: 'text->text', @@ -13228,8 +12900,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Upstage: Solar Pro 3', created: 1769481200, - description: - "Solar Pro 3 is Upstage's powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...", + description: 'Solar Pro 3 is Upstage\'s powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...', context_length: 128000, architecture: { modality: 'text->text', @@ -13266,8 +12937,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Writer: Palmyra X5', created: 1769003823, - description: - "Palmyra X5 is Writer's most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...", + description: 'Palmyra X5 is Writer\'s most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...', context_length: 1040000, architecture: { modality: 'text->text', @@ -13300,8 +12970,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3', created: 1749582908, - description: - "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", + description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', context_length: 131072, architecture: { modality: 'text->text', @@ -13344,8 +13013,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Beta', created: 1744240068, - description: - "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", + description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', context_length: 131072, architecture: { modality: 'text->text', @@ -13387,8 +13055,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini', created: 1749583245, - description: - 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', + description: 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', context_length: 131072, architecture: { modality: 'text->text', @@ -13431,8 +13098,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini Beta', created: 1744240195, - description: - 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', + description: 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', context_length: 131072, architecture: { modality: 'text->text', @@ -13474,8 +13140,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4', created: 1752087689, - description: - "Grok 4 is xAI's latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...", + description: 'Grok 4 is xAI\'s latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...', context_length: 256000, architecture: { modality: 'text+image+file->text', @@ -13517,8 +13182,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4 Fast', created: 1758240090, - description: - "Grok 4 Fast is xAI's latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...", + description: 'Grok 4 Fast is xAI\'s latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13560,8 +13224,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.1 Fast', created: 1763587502, - description: - "Grok 4.1 Fast is xAI's best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...", + description: 'Grok 4.1 Fast is xAI\'s best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13603,8 +13266,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20', created: 1774979019, - description: - "Grok 4.20 is xAI's newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...", + description: 'Grok 4.20 is xAI\'s newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13646,8 +13308,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20 Multi-Agent', created: 1774979158, - description: - 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', + description: 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13687,8 +13348,7 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok Code Fast 1', created: 1756238927, - description: - 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', + description: 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', context_length: 256000, architecture: { modality: 'text->text', @@ -13731,8 +13391,7 @@ export const models: Array = [ hugging_face_id: 'XiaomiMiMo/MiMo-V2-Flash', name: 'Xiaomi: MiMo-V2-Flash', created: 1765731308, - description: - 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', + description: 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', context_length: 262144, architecture: { modality: 'text->text', @@ -13778,8 +13437,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Omni', created: 1773863703, - description: - 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', + description: 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', context_length: 262144, architecture: { modality: 'text+image+audio+video->text', @@ -13819,8 +13477,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Pro', created: 1773863643, - description: - "MiMo-V2-Pro is Xiaomi's flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...", + description: 'MiMo-V2-Pro is Xiaomi\'s flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...', context_length: 1048576, architecture: { modality: 'text->text', @@ -13860,8 +13517,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 4 32B ', created: 1753376617, - description: - 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', + description: 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', context_length: 128000, architecture: { modality: 'text->text', @@ -13894,8 +13550,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5', name: 'Z.ai: GLM 4.5', created: 1753471347, - description: - 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', + description: 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', context_length: 131072, architecture: { modality: 'text->text', @@ -13939,8 +13594,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air', created: 1753471258, - description: - 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -13984,8 +13638,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air (free)', created: 1753471258, - description: - 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -14020,8 +13673,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5V', name: 'Z.ai: GLM 4.5V', created: 1754922288, - description: - 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', + description: 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', context_length: 65536, architecture: { modality: 'text+image->text', @@ -14063,8 +13715,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6', name: 'Z.ai: GLM 4.6', created: 1759235576, - description: - 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', + description: 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', context_length: 204800, architecture: { modality: 'text->text', @@ -14109,8 +13760,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6V', name: 'Z.ai: GLM 4.6V', created: 1765207462, - description: - 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', + description: 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -14154,8 +13804,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7', name: 'Z.ai: GLM 4.7', created: 1766378014, - description: - 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', + description: 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', context_length: 202752, architecture: { modality: 'text->text', @@ -14203,8 +13852,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7-Flash', name: 'Z.ai: GLM 4.7 Flash', created: 1768833913, - description: - 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', + description: 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', context_length: 202752, architecture: { modality: 'text->text', @@ -14249,8 +13897,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5', name: 'Z.ai: GLM 5', created: 1770829182, - description: - 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', + description: 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', context_length: 80000, architecture: { modality: 'text->text', @@ -14297,8 +13944,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5 Turbo', created: 1773583573, - description: - 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', + description: 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', context_length: 202752, architecture: { modality: 'text->text', @@ -14343,8 +13989,7 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5.1', name: 'Z.ai: GLM 5.1', created: 1775578025, - description: - 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', + description: 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', context_length: 202752, architecture: { modality: 'text->text', @@ -14391,8 +14036,7 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5V Turbo', created: 1775061458, - description: - 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', + description: 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', context_length: 202752, architecture: { modality: 'text+image+video->text', @@ -14422,5 +14066,5 @@ export const models: Array = [ 'tools', 'top_p', ], - }, + } ] From 1ec4c4022e1a7cb1ad2e46b071e66f5bd332bdfa Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 12:33:35 +0000 Subject: [PATCH 20/20] ci: apply automated fixes --- .../ai-openrouter/src/model-meta.ts | 25558 ++++++++++------ scripts/openrouter.models.ts | 1113 +- 2 files changed, 17603 insertions(+), 9068 deletions(-) diff --git a/packages/typescript/ai-openrouter/src/model-meta.ts b/packages/typescript/ai-openrouter/src/model-meta.ts index 40834e2f..350abe35 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1,8674 +1,16898 @@ +import type { + OpenRouterBaseOptions, + OpenRouterCommonOptions, +} from './text/text-provider-options' -import type { OpenRouterBaseOptions, OpenRouterCommonOptions } from './text/text-provider-options' - -const AI21_JAMBA_LARGE_1_7 = { - id: 'ai21/jamba-large-1.7', - name: 'AI21: Jamba Large 1.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0 = { - id: 'aion-labs/aion-1.0', - name: 'AionLabs: Aion-1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 4, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_1_0_MINI = { - id: 'aion-labs/aion-1.0-mini', - name: 'AionLabs: Aion-1.0-Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 1.4, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_2_0 = { - id: 'aion-labs/aion-2.0', - name: 'AionLabs: Aion-2.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0.2, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const AION_LABS_AION_RP_LLAMA_3_1_8B = { - id: 'aion-labs/aion-rp-llama-3.1-8b', - name: 'AionLabs: Aion-RP 1.0 (8B)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { - id: 'alfredpros/codellama-7b-instruct-solidity', - name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { - id: 'alibaba/tongyi-deepresearch-30b-a3b', - name: 'Tongyi DeepResearch 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.09, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { - id: 'allenai/olmo-2-0325-32b-instruct', - name: 'AllenAI: Olmo 2 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_32B_THINK = { - id: 'allenai/olmo-3-32b-think', - name: 'AllenAI: Olmo 3 32B Think', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const ALLENAI_OLMO_3_1_32B_INSTRUCT = { - id: 'allenai/olmo-3.1-32b-instruct', - name: 'AllenAI: Olmo 3.1 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const ALPINDALE_GOLIATH_120B = { - id: 'alpindale/goliath-120b', - name: 'Goliath 120B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 3.75, - cached: 0, - }, - output: { - normal: 7.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_2_LITE_V1 = { - id: 'amazon/nova-2-lite-v1', - name: 'Amazon: Nova 2 Lite', - supports: { - input: ['text', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_LITE_V1 = { - id: 'amazon/nova-lite-v1', - name: 'Amazon: Nova Lite 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_MICRO_V1 = { - id: 'amazon/nova-micro-v1', - name: 'Amazon: Nova Micro 1.0', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.035, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PREMIER_V1 = { - id: 'amazon/nova-premier-v1', - name: 'Amazon: Nova Premier 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.625, - }, - output: { - normal: 12.5, - }, - }, - image: 0, - }, - } as const -const AMAZON_NOVA_PRO_V1 = { - id: 'amazon/nova-pro-v1', - name: 'Amazon: Nova Pro 1.0', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 300000, - max_output_tokens: 5120, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 3.2, - }, - }, - image: 0, - }, - } as const -const ANTHRACITE_ORG_MAGNUM_V4_72B = { - id: 'anthracite-org/magnum-v4-72b', - name: 'Magnum v4 72B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_HAIKU = { - id: 'anthropic/claude-3-haiku', - name: 'Anthropic: Claude 3 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.32999999999999996, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_5_HAIKU = { - id: 'anthropic/claude-3.5-haiku', - name: 'Anthropic: Claude 3.5 Haiku', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.8, - cached: 1.08, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET = { - id: 'anthropic/claude-3.7-sonnet', - name: 'Anthropic: Claude 3.7 Sonnet', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { - id: 'anthropic/claude-3.7-sonnet:thinking', - name: 'Anthropic: Claude 3.7 Sonnet (thinking)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_HAIKU_4_5 = { - id: 'anthropic/claude-haiku-4.5', - name: 'Anthropic: Claude Haiku 4.5', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 1, - cached: 1.35, - }, - output: { - normal: 5, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4 = { - id: 'anthropic/claude-opus-4', - name: 'Anthropic: Claude Opus 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_1 = { - id: 'anthropic/claude-opus-4.1', - name: 'Anthropic: Claude Opus 4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 15, - cached: 20.25, - }, - output: { - normal: 75, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_5 = { - id: 'anthropic/claude-opus-4.5', - name: 'Anthropic: Claude Opus 4.5', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'verbosity'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6 = { - id: 'anthropic/claude-opus-4.6', - name: 'Anthropic: Claude Opus 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 5, - cached: 6.75, - }, - output: { - normal: 25, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { - id: 'anthropic/claude-opus-4.6-fast', - name: 'Anthropic: Claude Opus 4.6 (Fast)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 40.5, - }, - output: { - normal: 150, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4 = { - id: 'anthropic/claude-sonnet-4', - name: 'Anthropic: Claude Sonnet 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_5 = { - id: 'anthropic/claude-sonnet-4.5', - name: 'Anthropic: Claude Sonnet 4.5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ANTHROPIC_CLAUDE_SONNET_4_6 = { - id: 'anthropic/claude-sonnet-4.6', - name: 'Anthropic: Claude Sonnet 4.6', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP', 'verbosity'], - }, - context_window: 1000000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 3, - cached: 4.05, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_CODER_LARGE = { - id: 'arcee-ai/coder-large', - name: 'Arcee AI: Coder Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_MAESTRO_REASONING = { - id: 'arcee-ai/maestro-reasoning', - name: 'Arcee AI: Maestro Reasoning', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 3.3, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_SPOTLIGHT = { - id: 'arcee-ai/spotlight', - name: 'Arcee AI: Spotlight', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65537, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { - id: 'arcee-ai/trinity-large-preview:free', - name: 'Arcee AI: Trinity Large Preview (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_LARGE_THINKING = { - id: 'arcee-ai/trinity-large-thinking', - name: 'Arcee AI: Trinity Large Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_TRINITY_MINI = { - id: 'arcee-ai/trinity-mini', - name: 'Arcee AI: Trinity Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.045, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const ARCEE_AI_VIRTUOSO_LARGE = { - id: 'arcee-ai/virtuoso-large', - name: 'Arcee AI: Virtuoso Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B = { - id: 'baidu/ernie-4.5-21b-a3b', - name: 'Baidu: ERNIE 4.5 21B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 120000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { - id: 'baidu/ernie-4.5-21b-a3b-thinking', - name: 'Baidu: ERNIE 4.5 21B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_300B_A47B = { - id: 'baidu/ernie-4.5-300b-a47b', - name: 'Baidu: ERNIE 4.5 300B A47B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 12000, - pricing: { - text: { - input: { - normal: 0.28, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_28B_A3B = { - id: 'baidu/ernie-4.5-vl-28b-a3b', - name: 'Baidu: ERNIE 4.5 VL 28B A3B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 30000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.56, - }, - }, - image: 0, - }, - } as const -const BAIDU_ERNIE_4_5_VL_424B_A47B = { - id: 'baidu/ernie-4.5-vl-424b-a47b', - name: 'Baidu: ERNIE 4.5 VL 424B A47B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 123000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.42, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6 = { - id: 'bytedance-seed/seed-1.6', - name: 'ByteDance Seed: Seed 1.6', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_1_6_FLASH = { - id: 'bytedance-seed/seed-1.6-flash', - name: 'ByteDance Seed: Seed 1.6 Flash', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_LITE = { - id: 'bytedance-seed/seed-2.0-lite', - name: 'ByteDance Seed: Seed-2.0-Lite', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_SEED_SEED_2_0_MINI = { - id: 'bytedance-seed/seed-2.0-mini', - name: 'ByteDance Seed: Seed-2.0-Mini', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const BYTEDANCE_UI_TARS_1_5_7B = { - id: 'bytedance/ui-tars-1.5-7b', - name: 'ByteDance: UI-TARS 7B ', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { - id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', - name: 'Venice: Uncensored (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_A = { - id: 'cohere/command-a', - name: 'Cohere: Command A', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_08_2024 = { - id: 'cohere/command-r-08-2024', - name: 'Cohere: Command R (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R_PLUS_08_2024 = { - id: 'cohere/command-r-plus-08-2024', - name: 'Cohere: Command R+ (08-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const COHERE_COMMAND_R7B_12_2024 = { - id: 'cohere/command-r7b-12-2024', - name: 'Cohere: Command R7B (12-2024)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4000, - pricing: { - text: { - input: { - normal: 0.0375, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const DEEPCOGITO_COGITO_V2_1_671B = { - id: 'deepcogito/cogito-v2.1-671b', - name: 'Deep Cogito: Cogito v2.1 671B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT = { - id: 'deepseek/deepseek-chat', - name: 'DeepSeek: DeepSeek V3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.32, - cached: 0, - }, - output: { - normal: 0.89, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { - id: 'deepseek/deepseek-chat-v3-0324', - name: 'DeepSeek: DeepSeek V3 0324', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.135, - }, - output: { - normal: 0.77, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { - id: 'deepseek/deepseek-chat-v3.1', - name: 'DeepSeek: DeepSeek V3.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 7168, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1 = { - id: 'deepseek/deepseek-r1', - name: 'DeepSeek: R1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 64000, - max_output_tokens: 16000, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_0528 = { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek: R1 0528', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0.225, - }, - output: { - normal: 2.15, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek: R1 Distill Llama 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.7, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek: R1 Distill Qwen 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { - id: 'deepseek/deepseek-v3.1-terminus', - name: 'DeepSeek: DeepSeek V3.1 Terminus', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.21, - cached: 0.1300000002, - }, - output: { - normal: 0.79, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2 = { - id: 'deepseek/deepseek-v3.2', - name: 'DeepSeek: DeepSeek V3.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.13, - }, - output: { - normal: 0.38, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_EXP = { - id: 'deepseek/deepseek-v3.2-exp', - name: 'DeepSeek: DeepSeek V3.2 Exp', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.27, - cached: 0, - }, - output: { - normal: 0.41, - }, - }, - image: 0, - }, - } as const -const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { - id: 'deepseek/deepseek-v3.2-speciale', - name: 'DeepSeek: DeepSeek V3.2 Speciale', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.2, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ELEUTHERAI_LLEMMA_7B = { - id: 'eleutherai/llemma_7b', - name: 'EleutherAI: Llemma 7b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const ESSENTIALAI_RNJ_1_INSTRUCT = { - id: 'essentialai/rnj-1-instruct', - name: 'EssentialAI: Rnj 1 Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_001 = { - id: 'google/gemini-2.0-flash-001', - name: 'Google: Gemini 2.0 Flash', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1083333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { - id: 'google/gemini-2.0-flash-lite-001', - name: 'Google: Gemini 2.0 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 7.5e-8, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH = { - id: 'google/gemini-2.5-flash', - name: 'Google: Gemini 2.5 Flash', - supports: { - input: ['document', 'image', 'text', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { - id: 'google/gemini-2.5-flash-image', - name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.1133333333, - }, - output: { - normal: 2.5, - }, - }, - image: 3e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE = { - id: 'google/gemini-2.5-flash-lite', - name: 'Google: Gemini 2.5 Flash Lite', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { - id: 'google/gemini-2.5-flash-lite-preview-09-2025', - name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.0933333333, - }, - output: { - normal: 0.4, - }, - }, - image: 1e-7, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO = { - id: 'google/gemini-2.5-pro', - name: 'Google: Gemini 2.5 Pro', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { - id: 'google/gemini-2.5-pro-preview', - name: 'Google: Gemini 2.5 Pro Preview 06-05', - supports: { - input: ['document', 'image', 'text', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { - id: 'google/gemini-2.5-pro-preview-05-06', - name: 'Google: Gemini 2.5 Pro Preview 05-06', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.5, - }, - output: { - normal: 10, - }, - }, - image: 0.00000125, - }, - } as const -const GOOGLE_GEMINI_3_FLASH_PREVIEW = { - id: 'google/gemini-3-flash-preview', - name: 'Google: Gemini 3 Flash Preview', - supports: { - input: ['text', 'image', 'document', 'audio', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.13333333330000002, - }, - output: { - normal: 3, - }, - }, - image: 5e-7, - }, - } as const -const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { - id: 'google/gemini-3-pro-image-preview', - name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { - id: 'google/gemini-3.1-flash-image-preview', - name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', - supports: { - input: ['image', 'text'], - output: ['image', 'text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { - id: 'google/gemini-3.1-flash-lite-preview', - name: 'Google: Gemini 3.1 Flash Lite Preview', - supports: { - input: ['text', 'image', 'video', 'document', 'audio'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.1083333333, - }, - output: { - normal: 1.5, - }, - }, - image: 2.5e-7, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { - id: 'google/gemini-3.1-pro-preview', - name: 'Google: Gemini 3.1 Pro Preview', - supports: { - input: ['audio', 'document', 'image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { - id: 'google/gemini-3.1-pro-preview-customtools', - name: 'Google: Gemini 3.1 Pro Preview Custom Tools', - supports: { - input: ['text', 'audio', 'image', 'video', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.575, - }, - output: { - normal: 12, - }, - }, - image: 0.000002, - }, - } as const -const GOOGLE_GEMMA_2_27B_IT = { - id: 'google/gemma-2-27b-it', - name: 'Google: Gemma 2 27B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_2_9B_IT = { - id: 'google/gemma-2-9b-it', - name: 'Google: Gemma 2 9B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT = { - id: 'google/gemma-3-12b-it', - name: 'Google: Gemma 3 12B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_12B_IT_FREE = { - id: 'google/gemma-3-12b-it:free', - name: 'Google: Gemma 3 12B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT = { - id: 'google/gemma-3-27b-it', - name: 'Google: Gemma 3 27B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_27B_IT_FREE = { - id: 'google/gemma-3-27b-it:free', - name: 'Google: Gemma 3 27B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT = { - id: 'google/gemma-3-4b-it', - name: 'Google: Gemma 3 4B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3_4B_IT_FREE = { - id: 'google/gemma-3-4b-it:free', - name: 'Google: Gemma 3 4B (free)', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'stop', 'temperature', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E2B_IT_FREE = { - id: 'google/gemma-3n-e2b-it:free', - name: 'Google: Gemma 3n 2B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT = { - id: 'google/gemma-3n-e4b-it', - name: 'Google: Gemma 3n 4B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_3N_E4B_IT_FREE = { - id: 'google/gemma-3n-e4b-it:free', - name: 'Google: Gemma 3n 4B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 8192, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT = { - id: 'google/gemma-4-26b-a4b-it', - name: 'Google: Gemma 4 26B A4B ', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { - id: 'google/gemma-4-26b-a4b-it:free', - name: 'Google: Gemma 4 26B A4B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT = { - id: 'google/gemma-4-31b-it', - name: 'Google: Gemma 4 31B', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const GOOGLE_GEMMA_4_31B_IT_FREE = { - id: 'google/gemma-4-31b-it:free', - name: 'Google: Gemma 4 31B (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_CLIP_PREVIEW = { - id: 'google/lyria-3-clip-preview', - name: 'Google: Lyria 3 Clip Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GOOGLE_LYRIA_3_PRO_PREVIEW = { - id: 'google/lyria-3-pro-preview', - name: 'Google: Lyria 3 Pro Preview', - supports: { - input: ['text', 'image'], - output: ['text', 'audio'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const GRYPHE_MYTHOMAX_L2_13B = { - id: 'gryphe/mythomax-l2-13b', - name: 'MythoMax 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 4096, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const IBM_GRANITE_GRANITE_4_0_H_MICRO = { - id: 'ibm-granite/granite-4.0-h-micro', - name: 'IBM: Granite 4.0 Micro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.017, - cached: 0, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY = { - id: 'inception/mercury', - name: 'Inception: Mercury', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_2 = { - id: 'inception/mercury-2', - name: 'Inception: Mercury 2', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 50000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INCEPTION_MERCURY_CODER = { - id: 'inception/mercury-coder', - name: 'Inception: Mercury Coder', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 32000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PI = { - id: 'inflection/inflection-3-pi', - name: 'Inflection: Inflection 3 Pi', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const INFLECTION_INFLECTION_3_PRODUCTIVITY = { - id: 'inflection/inflection-3-productivity', - name: 'Inflection: Inflection 3 Productivity', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], - }, - context_window: 8000, - max_output_tokens: 1024, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const KWAIPILOT_KAT_CODER_PRO_V2 = { - id: 'kwaipilot/kat-coder-pro-v2', - name: 'Kwaipilot: KAT-Coder-Pro V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 256000, - max_output_tokens: 80000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_24B_A2B = { - id: 'liquid/lfm-2-24b-a2b', - name: 'LiquidAI: LFM2-24B-A2B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.12, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { - id: 'liquid/lfm-2.5-1.2b-instruct:free', - name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { - id: 'liquid/lfm-2.5-1.2b-thinking:free', - name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MANCER_WEAVER = { - id: 'mancer/weaver', - name: 'Mancer: Weaver (alpha)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 8000, - max_output_tokens: 2000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MEITUAN_LONGCAT_FLASH_CHAT = { - id: 'meituan/longcat-flash-chat', - name: 'Meituan: LongCat Flash Chat', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.2, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3-70b-instruct', - name: 'Meta: Llama 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.51, - cached: 0, - }, - output: { - normal: 0.74, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_8B_INSTRUCT = { - id: 'meta-llama/llama-3-8b-instruct', - name: 'Meta: Llama 3 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { - id: 'meta-llama/llama-3.1-70b-instruct', - name: 'Meta: Llama 3.1 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { - id: 'meta-llama/llama-3.1-8b-instruct', - name: 'Meta: Llama 3.1 8B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { - id: 'meta-llama/llama-3.2-11b-vision-instruct', - name: 'Meta: Llama 3.2 11B Vision Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.049, - cached: 0, - }, - output: { - normal: 0.049, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { - id: 'meta-llama/llama-3.2-1b-instruct', - name: 'Meta: Llama 3.2 1B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 60000, - pricing: { - text: { - input: { - normal: 0.027, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { - id: 'meta-llama/llama-3.2-3b-instruct', - name: 'Meta: Llama 3.2 3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 80000, - pricing: { - text: { - input: { - normal: 0.051, - cached: 0, - }, - output: { - normal: 0.34, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.2-3b-instruct:free', - name: 'Meta: Llama 3.2 3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Meta: Llama 3.3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.32, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { - id: 'meta-llama/llama-3.3-70b-instruct:free', - name: 'Meta: Llama 3.3 70B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_MAVERICK = { - id: 'meta-llama/llama-4-maverick', - name: 'Meta: Llama 4 Maverick', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_4_SCOUT = { - id: 'meta-llama/llama-4-scout', - name: 'Meta: Llama 4 Scout', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 327680, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_3_8B = { - id: 'meta-llama/llama-guard-3-8b', - name: 'Llama Guard 3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.06, - }, - }, - image: 0, - }, - } as const -const META_LLAMA_LLAMA_GUARD_4_12B = { - id: 'meta-llama/llama-guard-4-12b', - name: 'Meta: Llama Guard 4 12B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 163840, - pricing: { - text: { - input: { - normal: 0.18, - cached: 0, - }, - output: { - normal: 0.18, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_PHI_4 = { - id: 'microsoft/phi-4', - name: 'Microsoft: Phi 4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const MICROSOFT_WIZARDLM_2_8X22B = { - id: 'microsoft/wizardlm-2-8x22b', - name: 'WizardLM-2 8x22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65535, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 0.62, - cached: 0, - }, - output: { - normal: 0.62, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_01 = { - id: 'minimax/minimax-01', - name: 'MiniMax: MiniMax-01', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 1000192, - max_output_tokens: 1000192, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M1 = { - id: 'minimax/minimax-m1', - name: 'MiniMax: MiniMax M1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 40000, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2 = { - id: 'minimax/minimax-m2', - name: 'MiniMax: MiniMax M2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.255, - cached: 0.03, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_HER = { - id: 'minimax/minimax-m2-her', - name: 'MiniMax: MiniMax M2-her', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'topP'], - }, - context_window: 65536, - max_output_tokens: 2048, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_1 = { - id: 'minimax/minimax-m2.1', - name: 'MiniMax: MiniMax M2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0.29, - cached: 0.03, - }, - output: { - normal: 0.95, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5 = { - id: 'minimax/minimax-m2.5', - name: 'MiniMax: MiniMax M2.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 196608, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.118, - cached: 0.059, - }, - output: { - normal: 0.99, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_5_FREE = { - id: 'minimax/minimax-m2.5:free', - name: 'MiniMax: MiniMax M2.5 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature'], - }, - context_window: 196608, - max_output_tokens: 196608, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const MINIMAX_MINIMAX_M2_7 = { - id: 'minimax/minimax-m2.7', - name: 'MiniMax: MiniMax M2.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 204800, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.06, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_CODESTRAL_2508 = { - id: 'mistralai/codestral-2508', - name: 'Mistral: Codestral 2508', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.03, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_2512 = { - id: 'mistralai/devstral-2512', - name: 'Mistral: Devstral 2 2512', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_MEDIUM = { - id: 'mistralai/devstral-medium', - name: 'Mistral: Devstral Medium', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_DEVSTRAL_SMALL = { - id: 'mistralai/devstral-small', - name: 'Mistral: Devstral Small 1.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_14B_2512 = { - id: 'mistralai/ministral-14b-2512', - name: 'Mistral: Ministral 3 14B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_3B_2512 = { - id: 'mistralai/ministral-3b-2512', - name: 'Mistral: Ministral 3 3B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MINISTRAL_8B_2512 = { - id: 'mistralai/ministral-8b-2512', - name: 'Mistral: Ministral 3 8B 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { - id: 'mistralai/mistral-7b-instruct-v0.1', - name: 'Mistral: Mistral 7B Instruct v0.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 2824, - pricing: { - text: { - input: { - normal: 0.11, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE = { - id: 'mistralai/mistral-large', - name: 'Mistral Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2407 = { - id: 'mistralai/mistral-large-2407', - name: 'Mistral Large 2407', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2411 = { - id: 'mistralai/mistral-large-2411', - name: 'Mistral Large 2411', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_LARGE_2512 = { - id: 'mistralai/mistral-large-2512', - name: 'Mistral: Mistral Large 3 2512', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0.05, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3 = { - id: 'mistralai/mistral-medium-3', - name: 'Mistral: Mistral Medium 3', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_MEDIUM_3_1 = { - id: 'mistralai/mistral-medium-3.1', - name: 'Mistral: Mistral Medium 3.1', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.04, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_NEMO = { - id: 'mistralai/mistral-nemo', - name: 'Mistral: Mistral Nemo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.02, - cached: 0, - }, - output: { - normal: 0.04, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SABA = { - id: 'mistralai/mistral-saba', - name: 'Mistral: Saba', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { - id: 'mistralai/mistral-small-24b-instruct-2501', - name: 'Mistral: Mistral Small 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.08, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_2603 = { - id: 'mistralai/mistral-small-2603', - name: 'Mistral: Mistral Small 4', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.1-24b-instruct', - name: 'Mistral: Mistral Small 3.1 24B', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { - id: 'mistralai/mistral-small-3.2-24b-instruct', - name: 'Mistral: Mistral Small 3.2 24B', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MISTRAL_SMALL_CREATIVE = { - id: 'mistralai/mistral-small-creative', - name: 'Mistral: Mistral Small Creative', - supports: { - input: ['text'], - output: ['text'], - supports: ['toolChoice'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { - id: 'mistralai/mixtral-8x22b-instruct', - name: 'Mistral: Mixtral 8x22B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 65536, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { - id: 'mistralai/mixtral-8x7b-instruct', - name: 'Mistral: Mixtral 8x7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.54, - cached: 0, - }, - output: { - normal: 0.54, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_PIXTRAL_LARGE_2411 = { - id: 'mistralai/pixtral-large-2411', - name: 'Mistral: Pixtral Large 2411', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { - id: 'mistralai/voxtral-small-24b-2507', - name: 'Mistral: Voxtral Small 24B 2507', - supports: { - input: ['text', 'audio'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.01, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2 = { - id: 'moonshotai/kimi-k2', - name: 'MoonshotAI: Kimi K2 0711', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.57, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_0905 = { - id: 'moonshotai/kimi-k2-0905', - name: 'MoonshotAI: Kimi K2 0905', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_THINKING = { - id: 'moonshotai/kimi-k2-thinking', - name: 'MoonshotAI: Kimi K2 Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.5, - }, - }, - image: 0, - }, - } as const -const MOONSHOTAI_KIMI_K2_5 = { - id: 'moonshotai/kimi-k2.5', - name: 'MoonshotAI: Kimi K2.5', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'parallelToolCalls', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.3827, - cached: 0.19135, - }, - output: { - normal: 1.72, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_FAST = { - id: 'morph/morph-v3-fast', - name: 'Morph: Morph V3 Fast', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 81920, - max_output_tokens: 38000, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const MORPH_MORPH_V3_LARGE = { - id: 'morph/morph-v3-large', - name: 'Morph: Morph V3 Large', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature'], - }, - context_window: 262144, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.9, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { - id: 'nex-agi/deepseek-v3.1-nex-n1', - name: 'Nex AGI: DeepSeek V3.1 Nex N1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.135, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { - id: 'nousresearch/hermes-2-pro-llama-3-8b', - name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.14, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { - id: 'nousresearch/hermes-3-llama-3.1-405b', - name: 'Nous: Hermes 3 405B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { - id: 'nousresearch/hermes-3-llama-3.1-405b:free', - name: 'Nous: Hermes 3 405B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { - id: 'nousresearch/hermes-3-llama-3.1-70b', - name: 'Nous: Hermes 3 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_405B = { - id: 'nousresearch/hermes-4-405b', - name: 'Nous: Hermes 4 405B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const NOUSRESEARCH_HERMES_4_70B = { - id: 'nousresearch/hermes-4-70b', - name: 'Nous: Hermes 4 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { - id: 'nvidia/llama-3.1-nemotron-70b-instruct', - name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0, - }, - output: { - normal: 1.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { - id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', - name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { - id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', - name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { - id: 'nvidia/nemotron-3-nano-30b-a3b', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { - id: 'nvidia/nemotron-3-nano-30b-a3b:free', - name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { - id: 'nvidia/nemotron-3-super-120b-a12b', - name: 'NVIDIA: Nemotron 3 Super', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.1, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { - id: 'nvidia/nemotron-3-super-120b-a12b:free', - name: 'NVIDIA: Nemotron 3 Super (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { - id: 'nvidia/nemotron-nano-12b-v2-vl', - name: 'NVIDIA: Nemotron Nano 12B 2 VL', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { - id: 'nvidia/nemotron-nano-12b-v2-vl:free', - name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2 = { - id: 'nvidia/nemotron-nano-9b-v2', - name: 'NVIDIA: Nemotron Nano 9B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.16, - }, - }, - image: 0, - }, - } as const -const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { - id: 'nvidia/nemotron-nano-9b-v2:free', - name: 'NVIDIA: Nemotron Nano 9B V2 (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO = { - id: 'openai/gpt-3.5-turbo', - name: 'OpenAI: GPT-3.5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.5, - cached: 0, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_0613 = { - id: 'openai/gpt-3.5-turbo-0613', - name: 'OpenAI: GPT-3.5 Turbo (older v0613)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_16K = { - id: 'openai/gpt-3.5-turbo-16k', - name: 'OpenAI: GPT-3.5 Turbo 16k', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 16385, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_3_5_TURBO_INSTRUCT = { - id: 'openai/gpt-3.5-turbo-instruct', - name: 'OpenAI: GPT-3.5 Turbo Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 4095, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 1.5, - cached: 0, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4 = { - id: 'openai/gpt-4', - name: 'OpenAI: GPT-4', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_0314 = { - id: 'openai/gpt-4-0314', - name: 'OpenAI: GPT-4 (older v0314)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 8191, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1106_PREVIEW = { - id: 'openai/gpt-4-1106-preview', - name: 'OpenAI: GPT-4 Turbo (older v1106)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO = { - id: 'openai/gpt-4-turbo', - name: 'OpenAI: GPT-4 Turbo', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_TURBO_PREVIEW = { - id: 'openai/gpt-4-turbo-preview', - name: 'OpenAI: GPT-4 Turbo Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 10, - cached: 0, - }, - output: { - normal: 30, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1 = { - id: 'openai/gpt-4.1', - name: 'OpenAI: GPT-4.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_MINI = { - id: 'openai/gpt-4.1-mini', - name: 'OpenAI: GPT-4.1 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.1, - }, - output: { - normal: 1.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4_1_NANO = { - id: 'openai/gpt-4.1-nano', - name: 'OpenAI: GPT-4.1 Nano', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1047576, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0.025, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O = { - id: 'openai/gpt-4o', - name: 'OpenAI: GPT-4o', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_05_13 = { - id: 'openai/gpt-4o-2024-05-13', - name: 'OpenAI: GPT-4o (2024-05-13)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 5, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_08_06 = { - id: 'openai/gpt-4o-2024-08-06', - name: 'OpenAI: GPT-4o (2024-08-06)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_2024_11_20 = { - id: 'openai/gpt-4o-2024-11-20', - name: 'OpenAI: GPT-4o (2024-11-20)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_AUDIO_PREVIEW = { - id: 'openai/gpt-4o-audio-preview', - name: 'OpenAI: GPT-4o Audio', - supports: { - input: ['audio', 'text'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI = { - id: 'openai/gpt-4o-mini', - name: 'OpenAI: GPT-4o-mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_2024_07_18 = { - id: 'openai/gpt-4o-mini-2024-07-18', - name: 'OpenAI: GPT-4o-mini (2024-07-18)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.075, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-mini-search-preview', - name: 'OpenAI: GPT-4o-mini Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_SEARCH_PREVIEW = { - id: 'openai/gpt-4o-search-preview', - name: 'OpenAI: GPT-4o Search Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_4O_EXTENDED = { - id: 'openai/gpt-4o:extended', - name: 'OpenAI: GPT-4o (extended)', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - max_output_tokens: 64000, - pricing: { - text: { - input: { - normal: 6, - cached: 0, - }, - output: { - normal: 18, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5 = { - id: 'openai/gpt-5', - name: 'OpenAI: GPT-5', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CHAT = { - id: 'openai/gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'seed'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_CODEX = { - id: 'openai/gpt-5-codex', - name: 'OpenAI: GPT-5 Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE = { - id: 'openai/gpt-5-image', - name: 'OpenAI: GPT-5 Image', - supports: { - input: ['image', 'text', 'document'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 10, - cached: 1.25, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_IMAGE_MINI = { - id: 'openai/gpt-5-image-mini', - name: 'OpenAI: GPT-5 Image Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['image', 'text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_MINI = { - id: 'openai/gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_NANO = { - id: 'openai/gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.005, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_PRO = { - id: 'openai/gpt-5-pro', - name: 'OpenAI: GPT-5 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 15, - cached: 0, - }, - output: { - normal: 120, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1 = { - id: 'openai/gpt-5.1', - name: 'OpenAI: GPT-5.1', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CHAT = { - id: 'openai/gpt-5.1-chat', - name: 'OpenAI: GPT-5.1 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX = { - id: 'openai/gpt-5.1-codex', - name: 'OpenAI: GPT-5.1-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MAX = { - id: 'openai/gpt-5.1-codex-max', - name: 'OpenAI: GPT-5.1-Codex-Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.25, - cached: 0.125, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_1_CODEX_MINI = { - id: 'openai/gpt-5.1-codex-mini', - name: 'OpenAI: GPT-5.1-Codex-Mini', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 0.25, - cached: 0.025, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2 = { - id: 'openai/gpt-5.2', - name: 'OpenAI: GPT-5.2', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CHAT = { - id: 'openai/gpt-5.2-chat', - name: 'OpenAI: GPT-5.2 Chat', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_CODEX = { - id: 'openai/gpt-5.2-codex', - name: 'OpenAI: GPT-5.2-Codex', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_2_PRO = { - id: 'openai/gpt-5.2-pro', - name: 'OpenAI: GPT-5.2 Pro', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 21, - cached: 0, - }, - output: { - normal: 168, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CHAT = { - id: 'openai/gpt-5.3-chat', - name: 'OpenAI: GPT-5.3 Chat', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['maxCompletionTokens', 'maxCompletionTokens', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_3_CODEX = { - id: 'openai/gpt-5.3-codex', - name: 'OpenAI: GPT-5.3-Codex', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1.75, - cached: 0.175, - }, - output: { - normal: 14, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4 = { - id: 'openai/gpt-5.4', - name: 'OpenAI: GPT-5.4', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0.25, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_MINI = { - id: 'openai/gpt-5.4-mini', - name: 'OpenAI: GPT-5.4 Mini', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.75, - cached: 0.075, - }, - output: { - normal: 4.5, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_NANO = { - id: 'openai/gpt-5.4-nano', - name: 'OpenAI: GPT-5.4 Nano', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 400000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_5_4_PRO = { - id: 'openai/gpt-5.4-pro', - name: 'OpenAI: GPT-5.4 Pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 1050000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 30, - cached: 0, - }, - output: { - normal: 180, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO = { - id: 'openai/gpt-audio', - name: 'OpenAI: GPT Audio', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 2.5, - cached: 0, - }, - output: { - normal: 10, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_AUDIO_MINI = { - id: 'openai/gpt-audio-mini', - name: 'OpenAI: GPT Audio Mini', - supports: { - input: ['text', 'audio'], - output: ['text', 'audio'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 128000, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 2.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B = { - id: 'openai/gpt-oss-120b', - name: 'OpenAI: gpt-oss-120b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.039, - cached: 0, - }, - output: { - normal: 0.19, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_120B_FREE = { - id: 'openai/gpt-oss-120b:free', - name: 'OpenAI: gpt-oss-120b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B = { - id: 'openai/gpt-oss-20b', - name: 'OpenAI: gpt-oss-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0.015, - }, - output: { - normal: 0.11, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_20B_FREE = { - id: 'openai/gpt-oss-20b:free', - name: 'OpenAI: gpt-oss-20b (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'toolChoice'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const OPENAI_GPT_OSS_SAFEGUARD_20B = { - id: 'openai/gpt-oss-safeguard-20b', - name: 'OpenAI: gpt-oss-safeguard-20b', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.075, - cached: 0.037, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1 = { - id: 'openai/o1', - name: 'OpenAI: o1', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 15, - cached: 7.5, - }, - output: { - normal: 60, - }, - }, - image: 0, - }, - } as const -const OPENAI_O1_PRO = { - id: 'openai/o1-pro', - name: 'OpenAI: o1-pro', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 150, - cached: 0, - }, - output: { - normal: 600, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3 = { - id: 'openai/o3', - name: 'OpenAI: o3', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_DEEP_RESEARCH = { - id: 'openai/o3-deep-research', - name: 'OpenAI: o3 Deep Research', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 10, - cached: 2.5, - }, - output: { - normal: 40, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI = { - id: 'openai/o3-mini', - name: 'OpenAI: o3 Mini', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_MINI_HIGH = { - id: 'openai/o3-mini-high', - name: 'OpenAI: o3 Mini High', - supports: { - input: ['text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.55, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O3_PRO = { - id: 'openai/o3-pro', - name: 'OpenAI: o3 Pro', - supports: { - input: ['text', 'document', 'image'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 20, - cached: 0, - }, - output: { - normal: 80, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI = { - id: 'openai/o4-mini', - name: 'OpenAI: o4 Mini', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_DEEP_RESEARCH = { - id: 'openai/o4-mini-deep-research', - name: 'OpenAI: o4 Mini Deep Research', - supports: { - input: ['document', 'image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.5, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const OPENAI_O4_MINI_HIGH = { - id: 'openai/o4-mini-high', - name: 'OpenAI: o4 Mini High', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'toolChoice'], - }, - context_window: 200000, - max_output_tokens: 100000, - pricing: { - text: { - input: { - normal: 1.1, - cached: 0.275, - }, - output: { - normal: 4.4, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_AUTO = { - id: 'openrouter/auto', - name: 'Auto Router', - supports: { - input: ['text', 'image', 'audio', 'document', 'video'], - output: ['text', 'image'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP', 'webSearchOptions'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_BODYBUILDER = { - id: 'openrouter/bodybuilder', - name: 'Body Builder (beta)', - supports: { - input: ['text'], - output: ['text'], - supports: [], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: -1000000, - cached: 0, - }, - output: { - normal: -1000000, - }, - }, - image: 0, - }, - } as const -const OPENROUTER_FREE = { - id: 'openrouter/free', - name: 'Free Models Router', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 200000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR = { - id: 'perplexity/sonar', - name: 'Perplexity: Sonar', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 127072, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_DEEP_RESEARCH = { - id: 'perplexity/sonar-deep-research', - name: 'Perplexity: Sonar Deep Research', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO = { - id: 'perplexity/sonar-pro', - name: 'Perplexity: Sonar Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_PRO_SEARCH = { - id: 'perplexity/sonar-pro-search', - name: 'Perplexity: Sonar Pro Search', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 200000, - max_output_tokens: 8000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const PERPLEXITY_SONAR_REASONING_PRO = { - id: 'perplexity/sonar-reasoning-pro', - name: 'Perplexity: Sonar Reasoning Pro', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'temperature', 'topK', 'topP', 'webSearchOptions'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 2, - cached: 0, - }, - output: { - normal: 8, - }, - }, - image: 0, - }, - } as const -const PRIME_INTELLECT_INTELLECT_3 = { - id: 'prime-intellect/intellect-3', - name: 'Prime Intellect: INTELLECT-3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_72B_INSTRUCT = { - id: 'qwen/qwen-2.5-72b-instruct', - name: 'Qwen2.5 72B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0, - }, - output: { - normal: 0.39, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_7B_INSTRUCT = { - id: 'qwen/qwen-2.5-7b-instruct', - name: 'Qwen: Qwen2.5 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { - id: 'qwen/qwen-2.5-coder-32b-instruct', - name: 'Qwen2.5 Coder 32B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.66, - cached: 0, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_MAX = { - id: 'qwen/qwen-max', - name: 'Qwen: Qwen-Max ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 32768, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.04, - cached: 0.208, - }, - output: { - normal: 4.16, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS = { - id: 'qwen/qwen-plus', - name: 'Qwen: Qwen-Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0.052, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28 = { - id: 'qwen/qwen-plus-2025-07-28', - name: 'Qwen: Qwen Plus 0728', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_PLUS_2025_07_28_THINKING = { - id: 'qwen/qwen-plus-2025-07-28:thinking', - name: 'Qwen: Qwen Plus 0728 (thinking)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_TURBO = { - id: 'qwen/qwen-turbo', - name: 'Qwen: Qwen-Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.0325, - cached: 0.0065, - }, - output: { - normal: 0.13, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_MAX = { - id: 'qwen/qwen-vl-max', - name: 'Qwen: Qwen VL Max', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.52, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN_VL_PLUS = { - id: 'qwen/qwen-vl-plus', - name: 'Qwen: Qwen VL Plus', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.1365, - cached: 0.0273, - }, - output: { - normal: 0.4095, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { - id: 'qwen/qwen2.5-coder-7b-instruct', - name: 'Qwen: Qwen2.5 Coder 7B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - pricing: { - text: { - input: { - normal: 0.03, - cached: 0, - }, - output: { - normal: 0.09, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_32B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-32b-instruct', - name: 'Qwen: Qwen2.5 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN2_5_VL_72B_INSTRUCT = { - id: 'qwen/qwen2.5-vl-72b-instruct', - name: 'Qwen: Qwen2.5 VL 72B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.8, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_14B = { - id: 'qwen/qwen3-14b', - name: 'Qwen: Qwen3 14B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B = { - id: 'qwen/qwen3-235b-a22b', - name: 'Qwen: Qwen3 235B A22B', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.455, - cached: 0, - }, - output: { - normal: 1.82, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_2507 = { - id: 'qwen/qwen3-235b-a22b-2507', - name: 'Qwen: Qwen3 235B A22B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.071, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_235B_A22B_THINKING_2507 = { - id: 'qwen/qwen3-235b-a22b-thinking-2507', - name: 'Qwen: Qwen3 235B A22B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.1495, - cached: 0, - }, - output: { - normal: 1.495, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B = { - id: 'qwen/qwen3-30b-a3b', - name: 'Qwen: Qwen3 30B A3B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.28, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { - id: 'qwen/qwen3-30b-a3b-instruct-2507', - name: 'Qwen: Qwen3 30B A3B Instruct 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_30B_A3B_THINKING_2507 = { - id: 'qwen/qwen3-30b-a3b-thinking-2507', - name: 'Qwen: Qwen3 30B A3B Thinking 2507', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.08, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_32B = { - id: 'qwen/qwen3-32b', - name: 'Qwen: Qwen3 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 40960, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0.04, - }, - output: { - normal: 0.24, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_8B = { - id: 'qwen/qwen3-8b', - name: 'Qwen: Qwen3 8B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 40960, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0.05, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER = { - id: 'qwen/qwen3-coder', - name: 'Qwen: Qwen3 Coder 480B A35B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.22, - cached: 0.022, - }, - output: { - normal: 1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-coder-30b-a3b-instruct', - name: 'Qwen: Qwen3 Coder 30B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 160000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.07, - cached: 0, - }, - output: { - normal: 0.27, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FLASH = { - id: 'qwen/qwen3-coder-flash', - name: 'Qwen: Qwen3 Coder Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0.039, - }, - output: { - normal: 0.975, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_NEXT = { - id: 'qwen/qwen3-coder-next', - name: 'Qwen: Qwen3 Coder Next', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.12, - cached: 0.06, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_PLUS = { - id: 'qwen/qwen3-coder-plus', - name: 'Qwen: Qwen3 Coder Plus', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0.13, - }, - output: { - normal: 3.25, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_CODER_FREE = { - id: 'qwen/qwen3-coder:free', - name: 'Qwen: Qwen3 Coder 480B A35B (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262000, - max_output_tokens: 262000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX = { - id: 'qwen/qwen3-max', - name: 'Qwen: Qwen3 Max', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0.156, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_MAX_THINKING = { - id: 'qwen/qwen3-max-thinking', - name: 'Qwen: Qwen3 Max Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.78, - cached: 0, - }, - output: { - normal: 3.9, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { - id: 'qwen/qwen3-next-80b-a3b-instruct', - name: 'Qwen: Qwen3 Next 80B A3B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { - id: 'qwen/qwen3-next-80b-a3b-instruct:free', - name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { - id: 'qwen/qwen3-next-80b-a3b-thinking', - name: 'Qwen: Qwen3 Next 80B A3B Thinking', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.0975, - cached: 0, - }, - output: { - normal: 0.78, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { - id: 'qwen/qwen3-vl-235b-a22b-instruct', - name: 'Qwen: Qwen3 VL 235B A22B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.11, - }, - output: { - normal: 0.88, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_235B_A22B_THINKING = { - id: 'qwen/qwen3-vl-235b-a22b-thinking', - name: 'Qwen: Qwen3 VL 235B A22B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.6, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { - id: 'qwen/qwen3-vl-30b-a3b-instruct', - name: 'Qwen: Qwen3 VL 30B A3B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 0.52, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_30B_A3B_THINKING = { - id: 'qwen/qwen3-vl-30b-a3b-thinking', - name: 'Qwen: Qwen3 VL 30B A3B Thinking', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_32B_INSTRUCT = { - id: 'qwen/qwen3-vl-32b-instruct', - name: 'Qwen: Qwen3 VL 32B Instruct', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.104, - cached: 0, - }, - output: { - normal: 0.416, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_INSTRUCT = { - id: 'qwen/qwen3-vl-8b-instruct', - name: 'Qwen: Qwen3 VL 8B Instruct', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.08, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_VL_8B_THINKING = { - id: 'qwen/qwen3-vl-8b-thinking', - name: 'Qwen: Qwen3 VL 8B Thinking', - supports: { - input: ['image', 'text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.117, - cached: 0, - }, - output: { - normal: 1.365, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_122B_A10B = { - id: 'qwen/qwen3.5-122b-a10b', - name: 'Qwen: Qwen3.5-122B-A10B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 2.08, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_27B = { - id: 'qwen/qwen3.5-27b', - name: 'Qwen: Qwen3.5-27B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.195, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_35B_A3B = { - id: 'qwen/qwen3.5-35b-a3b', - name: 'Qwen: Qwen3.5-35B-A3B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1625, - cached: 0, - }, - output: { - normal: 1.3, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_397B_A17B = { - id: 'qwen/qwen3.5-397b-a17b', - name: 'Qwen: Qwen3.5 397B A17B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 2.34, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_9B = { - id: 'qwen/qwen3.5-9b', - name: 'Qwen: Qwen3.5-9B', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.05, - cached: 0, - }, - output: { - normal: 0.15, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_FLASH_02_23 = { - id: 'qwen/qwen3.5-flash-02-23', - name: 'Qwen: Qwen3.5-Flash', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.065, - cached: 0, - }, - output: { - normal: 0.26, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_5_PLUS_02_15 = { - id: 'qwen/qwen3.5-plus-02-15', - name: 'Qwen: Qwen3.5 Plus 2026-02-15', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.26, - cached: 0, - }, - output: { - normal: 1.56, - }, - }, - image: 0, - }, - } as const -const QWEN_QWEN3_6_PLUS = { - id: 'qwen/qwen3.6-plus', - name: 'Qwen: Qwen3.6 Plus', - supports: { - input: ['text', 'image', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1000000, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.325, - cached: 0, - }, - output: { - normal: 1.95, - }, - }, - image: 0, - }, - } as const -const QWEN_QWQ_32B = { - id: 'qwen/qwq-32b', - name: 'Qwen: QwQ 32B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.58, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_EDGE = { - id: 'rekaai/reka-edge', - name: 'Reka Edge', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 16384, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const REKAAI_REKA_FLASH_3 = { - id: 'rekaai/reka-flash-3', - name: 'Reka Flash 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.2, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_APPLY_3 = { - id: 'relace/relace-apply-3', - name: 'Relace: Relace Apply 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 1.25, - }, - }, - image: 0, - }, - } as const -const RELACE_RELACE_SEARCH = { - id: 'relace/relace-search', - name: 'Relace: Relace Search', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 256000, - max_output_tokens: 128000, - pricing: { - text: { - input: { - normal: 1, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_EURYALE_70B = { - id: 'sao10k/l3-euryale-70b', - name: 'Sao10k: Llama 3 Euryale 70B v2.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 8192, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 1.48, - cached: 0, - }, - output: { - normal: 1.48, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_LUNARIS_8B = { - id: 'sao10k/l3-lunaris-8b', - name: 'Sao10K: Llama 3 8B Lunaris', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 8192, - pricing: { - text: { - input: { - normal: 0.04, - cached: 0, - }, - output: { - normal: 0.05, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_70B_HANAMI_X1 = { - id: 'sao10k/l3.1-70b-hanami-x1', - name: 'Sao10K: Llama 3.1 70B Hanami x1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 16000, - pricing: { - text: { - input: { - normal: 3, - cached: 0, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_1_EURYALE_70B = { - id: 'sao10k/l3.1-euryale-70b', - name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const SAO10K_L3_3_EURYALE_70B = { - id: 'sao10k/l3.3-euryale-70b', - name: 'Sao10K: Llama 3.3 Euryale 70B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 131072, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.65, - cached: 0, - }, - output: { - normal: 0.75, - }, - }, - image: 0, - }, - } as const -const STEPFUN_STEP_3_5_FLASH = { - id: 'stepfun/step-3.5-flash', - name: 'StepFun: Step 3.5 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.3, - }, - }, - image: 0, - }, - } as const -const SWITCHPOINT_ROUTER = { - id: 'switchpoint/router', - name: 'Switchpoint Router', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.85, - cached: 0, - }, - output: { - normal: 3.4, - }, - }, - image: 0, - }, - } as const -const TENCENT_HUNYUAN_A13B_INSTRUCT = { - id: 'tencent/hunyuan-a13b-instruct', - name: 'Tencent: Hunyuan A13B Instruct', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'reasoning', 'responseFormat', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.14, - cached: 0, - }, - output: { - normal: 0.57, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_CYDONIA_24B_V4_1 = { - id: 'thedrummer/cydonia-24b-v4.1', - name: 'TheDrummer: Cydonia 24B V4.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_ROCINANTE_12B = { - id: 'thedrummer/rocinante-12b', - name: 'TheDrummer: Rocinante 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.17, - cached: 0, - }, - output: { - normal: 0.43, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_SKYFALL_36B_V2 = { - id: 'thedrummer/skyfall-36b-v2', - name: 'TheDrummer: Skyfall 36B V2', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.55, - cached: 0, - }, - output: { - normal: 0.8, - }, - }, - image: 0, - }, - } as const -const THEDRUMMER_UNSLOPNEMO_12B = { - id: 'thedrummer/unslopnemo-12b', - name: 'TheDrummer: UnslopNemo 12B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 32768, - max_output_tokens: 32768, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { - id: 'tngtech/deepseek-r1t2-chimera', - name: 'TNG: DeepSeek R1T2 Chimera', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 163840, - max_output_tokens: 163840, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.15, - }, - output: { - normal: 1.1, - }, - }, - image: 0, - }, - } as const -const UNDI95_REMM_SLERP_L2_13B = { - id: 'undi95/remm-slerp-l2-13b', - name: 'ReMM SLERP 13B', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'topA', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 6144, - max_output_tokens: 4096, - pricing: { - text: { - input: { - normal: 0.45, - cached: 0, - }, - output: { - normal: 0.65, - }, - }, - image: 0, - }, - } as const -const UPSTAGE_SOLAR_PRO_3 = { - id: 'upstage/solar-pro-3', - name: 'Upstage: Solar Pro 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0.015, - }, - output: { - normal: 0.6, - }, - }, - image: 0, - }, - } as const -const WRITER_PALMYRA_X5 = { - id: 'writer/palmyra-x5', - name: 'Writer: Palmyra X5', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], - }, - context_window: 1040000, - max_output_tokens: 8192, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3 = { - id: 'x-ai/grok-3', - name: 'xAI: Grok 3', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_BETA = { - id: 'x-ai/grok-3-beta', - name: 'xAI: Grok 3 Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'logprobs', 'maxCompletionTokens', 'presencePenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI = { - id: 'x-ai/grok-3-mini', - name: 'xAI: Grok 3 Mini', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_3_MINI_BETA = { - id: 'x-ai/grok-3-mini-beta', - name: 'xAI: Grok 3 Mini Beta', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0.075, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4 = { - id: 'x-ai/grok-4', - name: 'xAI: Grok 4', - supports: { - input: ['image', 'text', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - pricing: { - text: { - input: { - normal: 3, - cached: 0.75, - }, - output: { - normal: 15, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_FAST = { - id: 'x-ai/grok-4-fast', - name: 'xAI: Grok 4 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_1_FAST = { - id: 'x-ai/grok-4.1-fast', - name: 'xAI: Grok 4.1 Fast', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - max_output_tokens: 30000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.05, - }, - output: { - normal: 0.5, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20 = { - id: 'x-ai/grok-4.20', - name: 'xAI: Grok 4.20', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_4_20_MULTI_AGENT = { - id: 'x-ai/grok-4.20-multi-agent', - name: 'xAI: Grok 4.20 Multi-Agent', - supports: { - input: ['text', 'image', 'document'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'temperature', 'topLogprobs', 'topP'], - }, - context_window: 2000000, - pricing: { - text: { - input: { - normal: 2, - cached: 0.2, - }, - output: { - normal: 6, - }, - }, - image: 0, - }, - } as const -const X_AI_GROK_CODE_FAST_1 = { - id: 'x-ai/grok-code-fast-1', - name: 'xAI: Grok Code Fast 1', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'logprobs', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topLogprobs', 'topP'], - }, - context_window: 256000, - max_output_tokens: 10000, - pricing: { - text: { - input: { - normal: 0.2, - cached: 0.02, - }, - output: { - normal: 1.5, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_FLASH = { - id: 'xiaomi/mimo-v2-flash', - name: 'Xiaomi: MiMo-V2-Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.09, - cached: 0.045, - }, - output: { - normal: 0.29, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_OMNI = { - id: 'xiaomi/mimo-v2-omni', - name: 'Xiaomi: MiMo-V2-Omni', - supports: { - input: ['text', 'audio', 'image', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 262144, - max_output_tokens: 65536, - pricing: { - text: { - input: { - normal: 0.4, - cached: 0.08, - }, - output: { - normal: 2, - }, - }, - image: 0, - }, - } as const -const XIAOMI_MIMO_V2_PRO = { - id: 'xiaomi/mimo-v2-pro', - name: 'Xiaomi: MiMo-V2-Pro', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'responseFormat', 'stop', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 1048576, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1, - cached: 0.2, - }, - output: { - normal: 3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_32B = { - id: 'z-ai/glm-4-32b', - name: 'Z.ai: GLM 4 32B ', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 128000, - pricing: { - text: { - input: { - normal: 0.1, - cached: 0, - }, - output: { - normal: 0.1, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5 = { - id: 'z-ai/glm-4.5', - name: 'Z.ai: GLM 4.5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 2.2, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR = { - id: 'z-ai/glm-4.5-air', - name: 'Z.ai: GLM 4.5 Air', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 98304, - pricing: { - text: { - input: { - normal: 0.13, - cached: 0.025, - }, - output: { - normal: 0.85, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5_AIR_FREE = { - id: 'z-ai/glm-4.5-air:free', - name: 'Z.ai: GLM 4.5 Air (free)', - supports: { - input: ['text'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 131072, - max_output_tokens: 96000, - pricing: { - text: { - input: { - normal: 0, - cached: 0, - }, - output: { - normal: 0, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_5V = { - id: 'z-ai/glm-4.5v', - name: 'Z.ai: GLM 4.5V', - supports: { - input: ['text', 'image'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 65536, - max_output_tokens: 16384, - pricing: { - text: { - input: { - normal: 0.6, - cached: 0.11, - }, - output: { - normal: 1.8, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6 = { - id: 'z-ai/glm-4.6', - name: 'Z.ai: GLM 4.6', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 204800, - max_output_tokens: 204800, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0, - }, - output: { - normal: 1.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_6V = { - id: 'z-ai/glm-4.6v', - name: 'Z.ai: GLM 4.6V', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 131072, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.3, - cached: 0, - }, - output: { - normal: 0.9, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7 = { - id: 'z-ai/glm-4.7', - name: 'Z.ai: GLM 4.7', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - max_output_tokens: 65535, - pricing: { - text: { - input: { - normal: 0.39, - cached: 0.195, - }, - output: { - normal: 1.75, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_4_7_FLASH = { - id: 'z-ai/glm-4.7-flash', - name: 'Z.ai: GLM 4.7 Flash', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 0.06, - cached: 0.0100000002, - }, - output: { - normal: 0.4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5 = { - id: 'z-ai/glm-5', - name: 'Z.ai: GLM 5', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 80000, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 0.72, - cached: 0, - }, - output: { - normal: 2.3, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_TURBO = { - id: 'z-ai/glm-5-turbo', - name: 'Z.ai: GLM 5 Turbo', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5_1 = { - id: 'z-ai/glm-5.1', - name: 'Z.ai: GLM 5.1', - supports: { - input: ['text'], - output: ['text'], - supports: ['frequencyPenalty', 'includeReasoning', 'logitBias', 'logprobs', 'maxCompletionTokens', 'minP', 'presencePenalty', 'reasoning', 'repetitionPenalty', 'responseFormat', 'seed', 'stop', 'temperature', 'toolChoice', 'topK', 'topLogprobs', 'topP'], - }, - context_window: 202752, - pricing: { - text: { - input: { - normal: 1.26, - cached: 0, - }, - output: { - normal: 3.96, - }, - }, - image: 0, - }, - } as const -const Z_AI_GLM_5V_TURBO = { - id: 'z-ai/glm-5v-turbo', - name: 'Z.ai: GLM 5V Turbo', - supports: { - input: ['image', 'text', 'video'], - output: ['text'], - supports: ['includeReasoning', 'maxCompletionTokens', 'reasoning', 'responseFormat', 'temperature', 'toolChoice', 'topP'], - }, - context_window: 202752, - max_output_tokens: 131072, - pricing: { - text: { - input: { - normal: 1.2, - cached: 0.24, - }, - output: { - normal: 4, - }, - }, - image: 0, - }, - } as const +const AI21_JAMBA_LARGE_1_7 = { + id: 'ai21/jamba-large-1.7', + name: 'AI21: Jamba Large 1.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0 = { + id: 'aion-labs/aion-1.0', + name: 'AionLabs: Aion-1.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 4, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_1_0_MINI = { + id: 'aion-labs/aion-1.0-mini', + name: 'AionLabs: Aion-1.0-Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 1.4, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_2_0 = { + id: 'aion-labs/aion-2.0', + name: 'AionLabs: Aion-2.0', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0.2, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const AION_LABS_AION_RP_LLAMA_3_1_8B = { + id: 'aion-labs/aion-rp-llama-3.1-8b', + name: 'AionLabs: Aion-RP 1.0 (8B)', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = { + id: 'alfredpros/codellama-7b-instruct-solidity', + name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = { + id: 'alibaba/tongyi-deepresearch-30b-a3b', + name: 'Tongyi DeepResearch 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.09, + }, + output: { + normal: 0.45, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_2_0325_32B_INSTRUCT = { + id: 'allenai/olmo-2-0325-32b-instruct', + name: 'AllenAI: Olmo 2 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_32B_THINK = { + id: 'allenai/olmo-3-32b-think', + name: 'AllenAI: Olmo 3 32B Think', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const ALLENAI_OLMO_3_1_32B_INSTRUCT = { + id: 'allenai/olmo-3.1-32b-instruct', + name: 'AllenAI: Olmo 3.1 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const ALPINDALE_GOLIATH_120B = { + id: 'alpindale/goliath-120b', + name: 'Goliath 120B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 3.75, + cached: 0, + }, + output: { + normal: 7.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_2_LITE_V1 = { + id: 'amazon/nova-2-lite-v1', + name: 'Amazon: Nova 2 Lite', + supports: { + input: ['text', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_LITE_V1 = { + id: 'amazon/nova-lite-v1', + name: 'Amazon: Nova Lite 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_MICRO_V1 = { + id: 'amazon/nova-micro-v1', + name: 'Amazon: Nova Micro 1.0', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 128000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.035, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PREMIER_V1 = { + id: 'amazon/nova-premier-v1', + name: 'Amazon: Nova Premier 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1000000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.625, + }, + output: { + normal: 12.5, + }, + }, + image: 0, + }, +} as const +const AMAZON_NOVA_PRO_V1 = { + id: 'amazon/nova-pro-v1', + name: 'Amazon: Nova Pro 1.0', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 300000, + max_output_tokens: 5120, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 3.2, + }, + }, + image: 0, + }, +} as const +const ANTHRACITE_ORG_MAGNUM_V4_72B = { + id: 'anthracite-org/magnum-v4-72b', + name: 'Magnum v4 72B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_HAIKU = { + id: 'anthropic/claude-3-haiku', + name: 'Anthropic: Claude 3 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.32999999999999996, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_5_HAIKU = { + id: 'anthropic/claude-3.5-haiku', + name: 'Anthropic: Claude 3.5 Haiku', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.8, + cached: 1.08, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET = { + id: 'anthropic/claude-3.7-sonnet', + name: 'Anthropic: Claude 3.7 Sonnet', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = { + id: 'anthropic/claude-3.7-sonnet:thinking', + name: 'Anthropic: Claude 3.7 Sonnet (thinking)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_HAIKU_4_5 = { + id: 'anthropic/claude-haiku-4.5', + name: 'Anthropic: Claude Haiku 4.5', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 1, + cached: 1.35, + }, + output: { + normal: 5, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4 = { + id: 'anthropic/claude-opus-4', + name: 'Anthropic: Claude Opus 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_1 = { + id: 'anthropic/claude-opus-4.1', + name: 'Anthropic: Claude Opus 4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 15, + cached: 20.25, + }, + output: { + normal: 75, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_5 = { + id: 'anthropic/claude-opus-4.5', + name: 'Anthropic: Claude Opus 4.5', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'verbosity', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6 = { + id: 'anthropic/claude-opus-4.6', + name: 'Anthropic: Claude Opus 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 5, + cached: 6.75, + }, + output: { + normal: 25, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_OPUS_4_6_FAST = { + id: 'anthropic/claude-opus-4.6-fast', + name: 'Anthropic: Claude Opus 4.6 (Fast)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 40.5, + }, + output: { + normal: 150, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4 = { + id: 'anthropic/claude-sonnet-4', + name: 'Anthropic: Claude Sonnet 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_5 = { + id: 'anthropic/claude-sonnet-4.5', + name: 'Anthropic: Claude Sonnet 4.5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ANTHROPIC_CLAUDE_SONNET_4_6 = { + id: 'anthropic/claude-sonnet-4.6', + name: 'Anthropic: Claude Sonnet 4.6', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + 'verbosity', + ], + }, + context_window: 1000000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 3, + cached: 4.05, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_CODER_LARGE = { + id: 'arcee-ai/coder-large', + name: 'Arcee AI: Coder Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_MAESTRO_REASONING = { + id: 'arcee-ai/maestro-reasoning', + name: 'Arcee AI: Maestro Reasoning', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 3.3, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_SPOTLIGHT = { + id: 'arcee-ai/spotlight', + name: 'Arcee AI: Spotlight', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65537, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE = { + id: 'arcee-ai/trinity-large-preview:free', + name: 'Arcee AI: Trinity Large Preview (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_LARGE_THINKING = { + id: 'arcee-ai/trinity-large-thinking', + name: 'Arcee AI: Trinity Large Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_TRINITY_MINI = { + id: 'arcee-ai/trinity-mini', + name: 'Arcee AI: Trinity Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.045, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const ARCEE_AI_VIRTUOSO_LARGE = { + id: 'arcee-ai/virtuoso-large', + name: 'Arcee AI: Virtuoso Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B = { + id: 'baidu/ernie-4.5-21b-a3b', + name: 'Baidu: ERNIE 4.5 21B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 120000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_21B_A3B_THINKING = { + id: 'baidu/ernie-4.5-21b-a3b-thinking', + name: 'Baidu: ERNIE 4.5 21B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_300B_A47B = { + id: 'baidu/ernie-4.5-300b-a47b', + name: 'Baidu: ERNIE 4.5 300B A47B ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 12000, + pricing: { + text: { + input: { + normal: 0.28, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_28B_A3B = { + id: 'baidu/ernie-4.5-vl-28b-a3b', + name: 'Baidu: ERNIE 4.5 VL 28B A3B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 30000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.56, + }, + }, + image: 0, + }, +} as const +const BAIDU_ERNIE_4_5_VL_424B_A47B = { + id: 'baidu/ernie-4.5-vl-424b-a47b', + name: 'Baidu: ERNIE 4.5 VL 424B A47B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 123000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.42, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6 = { + id: 'bytedance-seed/seed-1.6', + name: 'ByteDance Seed: Seed 1.6', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_1_6_FLASH = { + id: 'bytedance-seed/seed-1.6-flash', + name: 'ByteDance Seed: Seed 1.6 Flash', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_LITE = { + id: 'bytedance-seed/seed-2.0-lite', + name: 'ByteDance Seed: Seed-2.0-Lite', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_SEED_SEED_2_0_MINI = { + id: 'bytedance-seed/seed-2.0-mini', + name: 'ByteDance Seed: Seed-2.0-Mini', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const BYTEDANCE_UI_TARS_1_5_7B = { + id: 'bytedance/ui-tars-1.5-7b', + name: 'ByteDance: UI-TARS 7B ', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition:free', + name: 'Venice: Uncensored (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_A = { + id: 'cohere/command-a', + name: 'Cohere: Command A', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_08_2024 = { + id: 'cohere/command-r-08-2024', + name: 'Cohere: Command R (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R_PLUS_08_2024 = { + id: 'cohere/command-r-plus-08-2024', + name: 'Cohere: Command R+ (08-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const COHERE_COMMAND_R7B_12_2024 = { + id: 'cohere/command-r7b-12-2024', + name: 'Cohere: Command R7B (12-2024)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4000, + pricing: { + text: { + input: { + normal: 0.0375, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const DEEPCOGITO_COGITO_V2_1_671B = { + id: 'deepcogito/cogito-v2.1-671b', + name: 'Deep Cogito: Cogito v2.1 671B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT = { + id: 'deepseek/deepseek-chat', + name: 'DeepSeek: DeepSeek V3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.32, + cached: 0, + }, + output: { + normal: 0.89, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = { + id: 'deepseek/deepseek-chat-v3-0324', + name: 'DeepSeek: DeepSeek V3 0324', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.135, + }, + output: { + normal: 0.77, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_CHAT_V3_1 = { + id: 'deepseek/deepseek-chat-v3.1', + name: 'DeepSeek: DeepSeek V3.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 7168, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1 = { + id: 'deepseek/deepseek-r1', + name: 'DeepSeek: R1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 64000, + max_output_tokens: 16000, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_0528 = { + id: 'deepseek/deepseek-r1-0528', + name: 'DeepSeek: R1 0528', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0.225, + }, + output: { + normal: 2.15, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = { + id: 'deepseek/deepseek-r1-distill-llama-70b', + name: 'DeepSeek: R1 Distill Llama 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.7, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = { + id: 'deepseek/deepseek-r1-distill-qwen-32b', + name: 'DeepSeek: R1 Distill Qwen 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = { + id: 'deepseek/deepseek-v3.1-terminus', + name: 'DeepSeek: DeepSeek V3.1 Terminus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.21, + cached: 0.1300000002, + }, + output: { + normal: 0.79, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2 = { + id: 'deepseek/deepseek-v3.2', + name: 'DeepSeek: DeepSeek V3.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.13, + }, + output: { + normal: 0.38, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_EXP = { + id: 'deepseek/deepseek-v3.2-exp', + name: 'DeepSeek: DeepSeek V3.2 Exp', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.27, + cached: 0, + }, + output: { + normal: 0.41, + }, + }, + image: 0, + }, +} as const +const DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = { + id: 'deepseek/deepseek-v3.2-speciale', + name: 'DeepSeek: DeepSeek V3.2 Speciale', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.2, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ELEUTHERAI_LLEMMA_7B = { + id: 'eleutherai/llemma_7b', + name: 'EleutherAI: Llemma 7b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const ESSENTIALAI_RNJ_1_INSTRUCT = { + id: 'essentialai/rnj-1-instruct', + name: 'EssentialAI: Rnj 1 Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_001 = { + id: 'google/gemini-2.0-flash-001', + name: 'Google: Gemini 2.0 Flash', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1083333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_0_FLASH_LITE_001 = { + id: 'google/gemini-2.0-flash-lite-001', + name: 'Google: Gemini 2.0 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 7.5e-8, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH = { + id: 'google/gemini-2.5-flash', + name: 'Google: Gemini 2.5 Flash', + supports: { + input: ['document', 'image', 'text', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_IMAGE = { + id: 'google/gemini-2.5-flash-image', + name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.1133333333, + }, + output: { + normal: 2.5, + }, + }, + image: 3e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE = { + id: 'google/gemini-2.5-flash-lite', + name: 'Google: Gemini 2.5 Flash Lite', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = { + id: 'google/gemini-2.5-flash-lite-preview-09-2025', + name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.0933333333, + }, + output: { + normal: 0.4, + }, + }, + image: 1e-7, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO = { + id: 'google/gemini-2.5-pro', + name: 'Google: Gemini 2.5 Pro', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW = { + id: 'google/gemini-2.5-pro-preview', + name: 'Google: Gemini 2.5 Pro Preview 06-05', + supports: { + input: ['document', 'image', 'text', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = { + id: 'google/gemini-2.5-pro-preview-05-06', + name: 'Google: Gemini 2.5 Pro Preview 05-06', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.5, + }, + output: { + normal: 10, + }, + }, + image: 0.00000125, + }, +} as const +const GOOGLE_GEMINI_3_FLASH_PREVIEW = { + id: 'google/gemini-3-flash-preview', + name: 'Google: Gemini 3 Flash Preview', + supports: { + input: ['text', 'image', 'document', 'audio', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.13333333330000002, + }, + output: { + normal: 3, + }, + }, + image: 5e-7, + }, +} as const +const GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = { + id: 'google/gemini-3-pro-image-preview', + name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW = { + id: 'google/gemini-3.1-flash-image-preview', + name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', + supports: { + input: ['image', 'text'], + output: ['image', 'text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW = { + id: 'google/gemini-3.1-flash-lite-preview', + name: 'Google: Gemini 3.1 Flash Lite Preview', + supports: { + input: ['text', 'image', 'video', 'document', 'audio'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.1083333333, + }, + output: { + normal: 1.5, + }, + }, + image: 2.5e-7, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW = { + id: 'google/gemini-3.1-pro-preview', + name: 'Google: Gemini 3.1 Pro Preview', + supports: { + input: ['audio', 'document', 'image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS = { + id: 'google/gemini-3.1-pro-preview-customtools', + name: 'Google: Gemini 3.1 Pro Preview Custom Tools', + supports: { + input: ['text', 'audio', 'image', 'video', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.575, + }, + output: { + normal: 12, + }, + }, + image: 0.000002, + }, +} as const +const GOOGLE_GEMMA_2_27B_IT = { + id: 'google/gemma-2-27b-it', + name: 'Google: Gemma 2 27B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_2_9B_IT = { + id: 'google/gemma-2-9b-it', + name: 'Google: Gemma 2 9B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT = { + id: 'google/gemma-3-12b-it', + name: 'Google: Gemma 3 12B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_12B_IT_FREE = { + id: 'google/gemma-3-12b-it:free', + name: 'Google: Gemma 3 12B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop', 'temperature', 'topP'], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT = { + id: 'google/gemma-3-27b-it', + name: 'Google: Gemma 3 27B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_27B_IT_FREE = { + id: 'google/gemma-3-27b-it:free', + name: 'Google: Gemma 3 27B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT = { + id: 'google/gemma-3-4b-it', + name: 'Google: Gemma 3 4B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3_4B_IT_FREE = { + id: 'google/gemma-3-4b-it:free', + name: 'Google: Gemma 3 4B (free)', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E2B_IT_FREE = { + id: 'google/gemma-3n-e2b-it:free', + name: 'Google: Gemma 3n 2B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT = { + id: 'google/gemma-3n-e4b-it', + name: 'Google: Gemma 3n 4B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_3N_E4B_IT_FREE = { + id: 'google/gemma-3n-e4b-it:free', + name: 'Google: Gemma 3n 4B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT = { + id: 'google/gemma-4-26b-a4b-it', + name: 'Google: Gemma 4 26B A4B ', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_26B_A4B_IT_FREE = { + id: 'google/gemma-4-26b-a4b-it:free', + name: 'Google: Gemma 4 26B A4B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT = { + id: 'google/gemma-4-31b-it', + name: 'Google: Gemma 4 31B', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const GOOGLE_GEMMA_4_31B_IT_FREE = { + id: 'google/gemma-4-31b-it:free', + name: 'Google: Gemma 4 31B (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_CLIP_PREVIEW = { + id: 'google/lyria-3-clip-preview', + name: 'Google: Lyria 3 Clip Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GOOGLE_LYRIA_3_PRO_PREVIEW = { + id: 'google/lyria-3-pro-preview', + name: 'Google: Lyria 3 Pro Preview', + supports: { + input: ['text', 'image'], + output: ['text', 'audio'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const GRYPHE_MYTHOMAX_L2_13B = { + id: 'gryphe/mythomax-l2-13b', + name: 'MythoMax 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4096, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const IBM_GRANITE_GRANITE_4_0_H_MICRO = { + id: 'ibm-granite/granite-4.0-h-micro', + name: 'IBM: Granite 4.0 Micro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131000, + pricing: { + text: { + input: { + normal: 0.017, + cached: 0, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY = { + id: 'inception/mercury', + name: 'Inception: Mercury', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_2 = { + id: 'inception/mercury-2', + name: 'Inception: Mercury 2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 50000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INCEPTION_MERCURY_CODER = { + id: 'inception/mercury-coder', + name: 'Inception: Mercury Coder', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 32000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PI = { + id: 'inflection/inflection-3-pi', + name: 'Inflection: Inflection 3 Pi', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const INFLECTION_INFLECTION_3_PRODUCTIVITY = { + id: 'inflection/inflection-3-productivity', + name: 'Inflection: Inflection 3 Productivity', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topP'], + }, + context_window: 8000, + max_output_tokens: 1024, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const KWAIPILOT_KAT_CODER_PRO_V2 = { + id: 'kwaipilot/kat-coder-pro-v2', + name: 'Kwaipilot: KAT-Coder-Pro V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 80000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_24B_A2B = { + id: 'liquid/lfm-2-24b-a2b', + name: 'LiquidAI: LFM2-24B-A2B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.12, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = { + id: 'liquid/lfm-2.5-1.2b-instruct:free', + name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const LIQUID_LFM_2_5_1_2B_THINKING_FREE = { + id: 'liquid/lfm-2.5-1.2b-thinking:free', + name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MANCER_WEAVER = { + id: 'mancer/weaver', + name: 'Mancer: Weaver (alpha)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8000, + max_output_tokens: 2000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MEITUAN_LONGCAT_FLASH_CHAT = { + id: 'meituan/longcat-flash-chat', + name: 'Meituan: LongCat Flash Chat', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.2, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3-70b-instruct', + name: 'Meta: Llama 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.51, + cached: 0, + }, + output: { + normal: 0.74, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_8B_INSTRUCT = { + id: 'meta-llama/llama-3-8b-instruct', + name: 'Meta: Llama 3 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_70B_INSTRUCT = { + id: 'meta-llama/llama-3.1-70b-instruct', + name: 'Meta: Llama 3.1 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_1_8B_INSTRUCT = { + id: 'meta-llama/llama-3.1-8b-instruct', + name: 'Meta: Llama 3.1 8B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = { + id: 'meta-llama/llama-3.2-11b-vision-instruct', + name: 'Meta: Llama 3.2 11B Vision Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.049, + cached: 0, + }, + output: { + normal: 0.049, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_1B_INSTRUCT = { + id: 'meta-llama/llama-3.2-1b-instruct', + name: 'Meta: Llama 3.2 1B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 60000, + pricing: { + text: { + input: { + normal: 0.027, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT = { + id: 'meta-llama/llama-3.2-3b-instruct', + name: 'Meta: Llama 3.2 3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 80000, + pricing: { + text: { + input: { + normal: 0.051, + cached: 0, + }, + output: { + normal: 0.34, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.2-3b-instruct:free', + name: 'Meta: Llama 3.2 3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT = { + id: 'meta-llama/llama-3.3-70b-instruct', + name: 'Meta: Llama 3.3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.32, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = { + id: 'meta-llama/llama-3.3-70b-instruct:free', + name: 'Meta: Llama 3.3 70B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_MAVERICK = { + id: 'meta-llama/llama-4-maverick', + name: 'Meta: Llama 4 Maverick', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_4_SCOUT = { + id: 'meta-llama/llama-4-scout', + name: 'Meta: Llama 4 Scout', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 327680, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_3_8B = { + id: 'meta-llama/llama-guard-3-8b', + name: 'Llama Guard 3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.06, + }, + }, + image: 0, + }, +} as const +const META_LLAMA_LLAMA_GUARD_4_12B = { + id: 'meta-llama/llama-guard-4-12b', + name: 'Meta: Llama Guard 4 12B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 163840, + pricing: { + text: { + input: { + normal: 0.18, + cached: 0, + }, + output: { + normal: 0.18, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_PHI_4 = { + id: 'microsoft/phi-4', + name: 'Microsoft: Phi 4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const MICROSOFT_WIZARDLM_2_8X22B = { + id: 'microsoft/wizardlm-2-8x22b', + name: 'WizardLM-2 8x22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65535, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 0.62, + cached: 0, + }, + output: { + normal: 0.62, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_01 = { + id: 'minimax/minimax-01', + name: 'MiniMax: MiniMax-01', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 1000192, + max_output_tokens: 1000192, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M1 = { + id: 'minimax/minimax-m1', + name: 'MiniMax: MiniMax M1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 40000, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2 = { + id: 'minimax/minimax-m2', + name: 'MiniMax: MiniMax M2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.255, + cached: 0.03, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_HER = { + id: 'minimax/minimax-m2-her', + name: 'MiniMax: MiniMax M2-her', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'topP'], + }, + context_window: 65536, + max_output_tokens: 2048, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_1 = { + id: 'minimax/minimax-m2.1', + name: 'MiniMax: MiniMax M2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0.29, + cached: 0.03, + }, + output: { + normal: 0.95, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5 = { + id: 'minimax/minimax-m2.5', + name: 'MiniMax: MiniMax M2.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 196608, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.118, + cached: 0.059, + }, + output: { + normal: 0.99, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_5_FREE = { + id: 'minimax/minimax-m2.5:free', + name: 'MiniMax: MiniMax M2.5 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + ], + }, + context_window: 196608, + max_output_tokens: 196608, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const MINIMAX_MINIMAX_M2_7 = { + id: 'minimax/minimax-m2.7', + name: 'MiniMax: MiniMax M2.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.06, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_CODESTRAL_2508 = { + id: 'mistralai/codestral-2508', + name: 'Mistral: Codestral 2508', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.03, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_2512 = { + id: 'mistralai/devstral-2512', + name: 'Mistral: Devstral 2 2512', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_MEDIUM = { + id: 'mistralai/devstral-medium', + name: 'Mistral: Devstral Medium', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_DEVSTRAL_SMALL = { + id: 'mistralai/devstral-small', + name: 'Mistral: Devstral Small 1.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_14B_2512 = { + id: 'mistralai/ministral-14b-2512', + name: 'Mistral: Ministral 3 14B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_3B_2512 = { + id: 'mistralai/ministral-3b-2512', + name: 'Mistral: Ministral 3 3B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MINISTRAL_8B_2512 = { + id: 'mistralai/ministral-8b-2512', + name: 'Mistral: Ministral 3 8B 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1 = { + id: 'mistralai/mistral-7b-instruct-v0.1', + name: 'Mistral: Mistral 7B Instruct v0.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 2824, + pricing: { + text: { + input: { + normal: 0.11, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE = { + id: 'mistralai/mistral-large', + name: 'Mistral Large', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2407 = { + id: 'mistralai/mistral-large-2407', + name: 'Mistral Large 2407', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2411 = { + id: 'mistralai/mistral-large-2411', + name: 'Mistral Large 2411', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_LARGE_2512 = { + id: 'mistralai/mistral-large-2512', + name: 'Mistral: Mistral Large 3 2512', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0.05, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3 = { + id: 'mistralai/mistral-medium-3', + name: 'Mistral: Mistral Medium 3', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_MEDIUM_3_1 = { + id: 'mistralai/mistral-medium-3.1', + name: 'Mistral: Mistral Medium 3.1', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.04, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_NEMO = { + id: 'mistralai/mistral-nemo', + name: 'Mistral: Mistral Nemo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.02, + cached: 0, + }, + output: { + normal: 0.04, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SABA = { + id: 'mistralai/mistral-saba', + name: 'Mistral: Saba', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = { + id: 'mistralai/mistral-small-24b-instruct-2501', + name: 'Mistral: Mistral Small 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.08, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_2603 = { + id: 'mistralai/mistral-small-2603', + name: 'Mistral: Mistral Small 4', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.1-24b-instruct', + name: 'Mistral: Mistral Small 3.1 24B', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = { + id: 'mistralai/mistral-small-3.2-24b-instruct', + name: 'Mistral: Mistral Small 3.2 24B', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MISTRAL_SMALL_CREATIVE = { + id: 'mistralai/mistral-small-creative', + name: 'Mistral: Mistral Small Creative', + supports: { + input: ['text'], + output: ['text'], + supports: ['toolChoice'], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X22B_INSTRUCT = { + id: 'mistralai/mixtral-8x22b-instruct', + name: 'Mistral: Mixtral 8x22B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 65536, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_MIXTRAL_8X7B_INSTRUCT = { + id: 'mistralai/mixtral-8x7b-instruct', + name: 'Mistral: Mixtral 8x7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.54, + cached: 0, + }, + output: { + normal: 0.54, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_PIXTRAL_LARGE_2411 = { + id: 'mistralai/pixtral-large-2411', + name: 'Mistral: Pixtral Large 2411', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const MISTRALAI_VOXTRAL_SMALL_24B_2507 = { + id: 'mistralai/voxtral-small-24b-2507', + name: 'Mistral: Voxtral Small 24B 2507', + supports: { + input: ['text', 'audio'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.01, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2 = { + id: 'moonshotai/kimi-k2', + name: 'MoonshotAI: Kimi K2 0711', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.57, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_0905 = { + id: 'moonshotai/kimi-k2-0905', + name: 'MoonshotAI: Kimi K2 0905', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_THINKING = { + id: 'moonshotai/kimi-k2-thinking', + name: 'MoonshotAI: Kimi K2 Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.5, + }, + }, + image: 0, + }, +} as const +const MOONSHOTAI_KIMI_K2_5 = { + id: 'moonshotai/kimi-k2.5', + name: 'MoonshotAI: Kimi K2.5', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'parallelToolCalls', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.3827, + cached: 0.19135, + }, + output: { + normal: 1.72, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_FAST = { + id: 'morph/morph-v3-fast', + name: 'Morph: Morph V3 Fast', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 81920, + max_output_tokens: 38000, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const MORPH_MORPH_V3_LARGE = { + id: 'morph/morph-v3-large', + name: 'Morph: Morph V3 Large', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature'], + }, + context_window: 262144, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.9, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = { + id: 'nex-agi/deepseek-v3.1-nex-n1', + name: 'Nex AGI: DeepSeek V3.1 Nex N1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.135, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = { + id: 'nousresearch/hermes-2-pro-llama-3-8b', + name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.14, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = { + id: 'nousresearch/hermes-3-llama-3.1-405b', + name: 'Nous: Hermes 3 405B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = { + id: 'nousresearch/hermes-3-llama-3.1-405b:free', + name: 'Nous: Hermes 3 405B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = { + id: 'nousresearch/hermes-3-llama-3.1-70b', + name: 'Nous: Hermes 3 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_405B = { + id: 'nousresearch/hermes-4-405b', + name: 'Nous: Hermes 4 405B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const NOUSRESEARCH_HERMES_4_70B = { + id: 'nousresearch/hermes-4-70b', + name: 'Nous: Hermes 4 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0, + }, + output: { + normal: 1.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B = { + id: 'nvidia/nemotron-3-nano-30b-a3b', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = { + id: 'nvidia/nemotron-3-nano-30b-a3b:free', + name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B = { + id: 'nvidia/nemotron-3-super-120b-a12b', + name: 'NVIDIA: Nemotron 3 Super', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.1, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE = { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + name: 'NVIDIA: Nemotron 3 Super (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL = { + id: 'nvidia/nemotron-nano-12b-v2-vl', + name: 'NVIDIA: Nemotron Nano 12B 2 VL', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = { + id: 'nvidia/nemotron-nano-12b-v2-vl:free', + name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2 = { + id: 'nvidia/nemotron-nano-9b-v2', + name: 'NVIDIA: Nemotron Nano 9B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.16, + }, + }, + image: 0, + }, +} as const +const NVIDIA_NEMOTRON_NANO_9B_V2_FREE = { + id: 'nvidia/nemotron-nano-9b-v2:free', + name: 'NVIDIA: Nemotron Nano 9B V2 (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO = { + id: 'openai/gpt-3.5-turbo', + name: 'OpenAI: GPT-3.5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.5, + cached: 0, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_0613 = { + id: 'openai/gpt-3.5-turbo-0613', + name: 'OpenAI: GPT-3.5 Turbo (older v0613)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_16K = { + id: 'openai/gpt-3.5-turbo-16k', + name: 'OpenAI: GPT-3.5 Turbo 16k', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 16385, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_3_5_TURBO_INSTRUCT = { + id: 'openai/gpt-3.5-turbo-instruct', + name: 'OpenAI: GPT-3.5 Turbo Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 4095, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 1.5, + cached: 0, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4 = { + id: 'openai/gpt-4', + name: 'OpenAI: GPT-4', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_0314 = { + id: 'openai/gpt-4-0314', + name: 'OpenAI: GPT-4 (older v0314)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 8191, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1106_PREVIEW = { + id: 'openai/gpt-4-1106-preview', + name: 'OpenAI: GPT-4 Turbo (older v1106)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO = { + id: 'openai/gpt-4-turbo', + name: 'OpenAI: GPT-4 Turbo', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_TURBO_PREVIEW = { + id: 'openai/gpt-4-turbo-preview', + name: 'OpenAI: GPT-4 Turbo Preview', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 10, + cached: 0, + }, + output: { + normal: 30, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1 = { + id: 'openai/gpt-4.1', + name: 'OpenAI: GPT-4.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_MINI = { + id: 'openai/gpt-4.1-mini', + name: 'OpenAI: GPT-4.1 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.1, + }, + output: { + normal: 1.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4_1_NANO = { + id: 'openai/gpt-4.1-nano', + name: 'OpenAI: GPT-4.1 Nano', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1047576, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0.025, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O = { + id: 'openai/gpt-4o', + name: 'OpenAI: GPT-4o', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_05_13 = { + id: 'openai/gpt-4o-2024-05-13', + name: 'OpenAI: GPT-4o (2024-05-13)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 5, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_08_06 = { + id: 'openai/gpt-4o-2024-08-06', + name: 'OpenAI: GPT-4o (2024-08-06)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_2024_11_20 = { + id: 'openai/gpt-4o-2024-11-20', + name: 'OpenAI: GPT-4o (2024-11-20)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_AUDIO_PREVIEW = { + id: 'openai/gpt-4o-audio-preview', + name: 'OpenAI: GPT-4o Audio', + supports: { + input: ['audio', 'text'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI = { + id: 'openai/gpt-4o-mini', + name: 'OpenAI: GPT-4o-mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_2024_07_18 = { + id: 'openai/gpt-4o-mini-2024-07-18', + name: 'OpenAI: GPT-4o-mini (2024-07-18)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.075, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_MINI_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-mini-search-preview', + name: 'OpenAI: GPT-4o-mini Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_SEARCH_PREVIEW = { + id: 'openai/gpt-4o-search-preview', + name: 'OpenAI: GPT-4o Search Preview', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'webSearchOptions'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_4O_EXTENDED = { + id: 'openai/gpt-4o:extended', + name: 'OpenAI: GPT-4o (extended)', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + max_output_tokens: 64000, + pricing: { + text: { + input: { + normal: 6, + cached: 0, + }, + output: { + normal: 18, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5 = { + id: 'openai/gpt-5', + name: 'OpenAI: GPT-5', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CHAT = { + id: 'openai/gpt-5-chat', + name: 'OpenAI: GPT-5 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: ['maxCompletionTokens', 'responseFormat', 'seed'], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_CODEX = { + id: 'openai/gpt-5-codex', + name: 'OpenAI: GPT-5 Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE = { + id: 'openai/gpt-5-image', + name: 'OpenAI: GPT-5 Image', + supports: { + input: ['image', 'text', 'document'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 10, + cached: 1.25, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_IMAGE_MINI = { + id: 'openai/gpt-5-image-mini', + name: 'OpenAI: GPT-5 Image Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['image', 'text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_MINI = { + id: 'openai/gpt-5-mini', + name: 'OpenAI: GPT-5 Mini', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_NANO = { + id: 'openai/gpt-5-nano', + name: 'OpenAI: GPT-5 Nano', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.005, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_PRO = { + id: 'openai/gpt-5-pro', + name: 'OpenAI: GPT-5 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 15, + cached: 0, + }, + output: { + normal: 120, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1 = { + id: 'openai/gpt-5.1', + name: 'OpenAI: GPT-5.1', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CHAT = { + id: 'openai/gpt-5.1-chat', + name: 'OpenAI: GPT-5.1 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX = { + id: 'openai/gpt-5.1-codex', + name: 'OpenAI: GPT-5.1-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MAX = { + id: 'openai/gpt-5.1-codex-max', + name: 'OpenAI: GPT-5.1-Codex-Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.25, + cached: 0.125, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_1_CODEX_MINI = { + id: 'openai/gpt-5.1-codex-mini', + name: 'OpenAI: GPT-5.1-Codex-Mini', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 0.25, + cached: 0.025, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2 = { + id: 'openai/gpt-5.2', + name: 'OpenAI: GPT-5.2', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CHAT = { + id: 'openai/gpt-5.2-chat', + name: 'OpenAI: GPT-5.2 Chat', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_CODEX = { + id: 'openai/gpt-5.2-codex', + name: 'OpenAI: GPT-5.2-Codex', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_2_PRO = { + id: 'openai/gpt-5.2-pro', + name: 'OpenAI: GPT-5.2 Pro', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 21, + cached: 0, + }, + output: { + normal: 168, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CHAT = { + id: 'openai/gpt-5.3-chat', + name: 'OpenAI: GPT-5.3 Chat', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'maxCompletionTokens', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_3_CODEX = { + id: 'openai/gpt-5.3-codex', + name: 'OpenAI: GPT-5.3-Codex', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1.75, + cached: 0.175, + }, + output: { + normal: 14, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4 = { + id: 'openai/gpt-5.4', + name: 'OpenAI: GPT-5.4', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0.25, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_MINI = { + id: 'openai/gpt-5.4-mini', + name: 'OpenAI: GPT-5.4 Mini', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.75, + cached: 0.075, + }, + output: { + normal: 4.5, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_NANO = { + id: 'openai/gpt-5.4-nano', + name: 'OpenAI: GPT-5.4 Nano', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 400000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_5_4_PRO = { + id: 'openai/gpt-5.4-pro', + name: 'OpenAI: GPT-5.4 Pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 1050000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 30, + cached: 0, + }, + output: { + normal: 180, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO = { + id: 'openai/gpt-audio', + name: 'OpenAI: GPT Audio', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 2.5, + cached: 0, + }, + output: { + normal: 10, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_AUDIO_MINI = { + id: 'openai/gpt-audio-mini', + name: 'OpenAI: GPT Audio Mini', + supports: { + input: ['text', 'audio'], + output: ['text', 'audio'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 128000, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 2.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B = { + id: 'openai/gpt-oss-120b', + name: 'OpenAI: gpt-oss-120b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.039, + cached: 0, + }, + output: { + normal: 0.19, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_120B_FREE = { + id: 'openai/gpt-oss-120b:free', + name: 'OpenAI: gpt-oss-120b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B = { + id: 'openai/gpt-oss-20b', + name: 'OpenAI: gpt-oss-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0.015, + }, + output: { + normal: 0.11, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_20B_FREE = { + id: 'openai/gpt-oss-20b:free', + name: 'OpenAI: gpt-oss-20b (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const OPENAI_GPT_OSS_SAFEGUARD_20B = { + id: 'openai/gpt-oss-safeguard-20b', + name: 'OpenAI: gpt-oss-safeguard-20b', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.075, + cached: 0.037, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1 = { + id: 'openai/o1', + name: 'OpenAI: o1', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 15, + cached: 7.5, + }, + output: { + normal: 60, + }, + }, + image: 0, + }, +} as const +const OPENAI_O1_PRO = { + id: 'openai/o1-pro', + name: 'OpenAI: o1-pro', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 150, + cached: 0, + }, + output: { + normal: 600, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3 = { + id: 'openai/o3', + name: 'OpenAI: o3', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_DEEP_RESEARCH = { + id: 'openai/o3-deep-research', + name: 'OpenAI: o3 Deep Research', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 10, + cached: 2.5, + }, + output: { + normal: 40, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI = { + id: 'openai/o3-mini', + name: 'OpenAI: o3 Mini', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_MINI_HIGH = { + id: 'openai/o3-mini-high', + name: 'OpenAI: o3 Mini High', + supports: { + input: ['text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.55, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O3_PRO = { + id: 'openai/o3-pro', + name: 'OpenAI: o3 Pro', + supports: { + input: ['text', 'document', 'image'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 20, + cached: 0, + }, + output: { + normal: 80, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI = { + id: 'openai/o4-mini', + name: 'OpenAI: o4 Mini', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_DEEP_RESEARCH = { + id: 'openai/o4-mini-deep-research', + name: 'OpenAI: o4 Mini Deep Research', + supports: { + input: ['document', 'image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.5, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const OPENAI_O4_MINI_HIGH = { + id: 'openai/o4-mini-high', + name: 'OpenAI: o4 Mini High', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'toolChoice', + ], + }, + context_window: 200000, + max_output_tokens: 100000, + pricing: { + text: { + input: { + normal: 1.1, + cached: 0.275, + }, + output: { + normal: 4.4, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_AUTO = { + id: 'openrouter/auto', + name: 'Auto Router', + supports: { + input: ['text', 'image', 'audio', 'document', 'video'], + output: ['text', 'image'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_BODYBUILDER = { + id: 'openrouter/bodybuilder', + name: 'Body Builder (beta)', + supports: { + input: ['text'], + output: ['text'], + supports: [], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: -1000000, + cached: 0, + }, + output: { + normal: -1000000, + }, + }, + image: 0, + }, +} as const +const OPENROUTER_FREE = { + id: 'openrouter/free', + name: 'Free Models Router', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 200000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR = { + id: 'perplexity/sonar', + name: 'Perplexity: Sonar', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 127072, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_DEEP_RESEARCH = { + id: 'perplexity/sonar-deep-research', + name: 'Perplexity: Sonar Deep Research', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO = { + id: 'perplexity/sonar-pro', + name: 'Perplexity: Sonar Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_PRO_SEARCH = { + id: 'perplexity/sonar-pro-search', + name: 'Perplexity: Sonar Pro Search', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 200000, + max_output_tokens: 8000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const PERPLEXITY_SONAR_REASONING_PRO = { + id: 'perplexity/sonar-reasoning-pro', + name: 'Perplexity: Sonar Reasoning Pro', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'temperature', + 'topK', + 'topP', + 'webSearchOptions', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 2, + cached: 0, + }, + output: { + normal: 8, + }, + }, + image: 0, + }, +} as const +const PRIME_INTELLECT_INTELLECT_3 = { + id: 'prime-intellect/intellect-3', + name: 'Prime Intellect: INTELLECT-3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_72B_INSTRUCT = { + id: 'qwen/qwen-2.5-72b-instruct', + name: 'Qwen2.5 72B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0, + }, + output: { + normal: 0.39, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_7B_INSTRUCT = { + id: 'qwen/qwen-2.5-7b-instruct', + name: 'Qwen: Qwen2.5 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_2_5_CODER_32B_INSTRUCT = { + id: 'qwen/qwen-2.5-coder-32b-instruct', + name: 'Qwen2.5 Coder 32B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.66, + cached: 0, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_MAX = { + id: 'qwen/qwen-max', + name: 'Qwen: Qwen-Max ', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.04, + cached: 0.208, + }, + output: { + normal: 4.16, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS = { + id: 'qwen/qwen-plus', + name: 'Qwen: Qwen-Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0.052, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28 = { + id: 'qwen/qwen-plus-2025-07-28', + name: 'Qwen: Qwen Plus 0728', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_PLUS_2025_07_28_THINKING = { + id: 'qwen/qwen-plus-2025-07-28:thinking', + name: 'Qwen: Qwen Plus 0728 (thinking)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_TURBO = { + id: 'qwen/qwen-turbo', + name: 'Qwen: Qwen-Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.0325, + cached: 0.0065, + }, + output: { + normal: 0.13, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_MAX = { + id: 'qwen/qwen-vl-max', + name: 'Qwen: Qwen VL Max', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.52, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN_VL_PLUS = { + id: 'qwen/qwen-vl-plus', + name: 'Qwen: Qwen VL Plus', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.1365, + cached: 0.0273, + }, + output: { + normal: 0.4095, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_CODER_7B_INSTRUCT = { + id: 'qwen/qwen2.5-coder-7b-instruct', + name: 'Qwen: Qwen2.5 Coder 7B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + pricing: { + text: { + input: { + normal: 0.03, + cached: 0, + }, + output: { + normal: 0.09, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_32B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-32b-instruct', + name: 'Qwen: Qwen2.5 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN2_5_VL_72B_INSTRUCT = { + id: 'qwen/qwen2.5-vl-72b-instruct', + name: 'Qwen: Qwen2.5 VL 72B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.8, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_14B = { + id: 'qwen/qwen3-14b', + name: 'Qwen: Qwen3 14B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B = { + id: 'qwen/qwen3-235b-a22b', + name: 'Qwen: Qwen3 235B A22B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.455, + cached: 0, + }, + output: { + normal: 1.82, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_2507 = { + id: 'qwen/qwen3-235b-a22b-2507', + name: 'Qwen: Qwen3 235B A22B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.071, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_235B_A22B_THINKING_2507 = { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + name: 'Qwen: Qwen3 235B A22B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.1495, + cached: 0, + }, + output: { + normal: 1.495, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B = { + id: 'qwen/qwen3-30b-a3b', + name: 'Qwen: Qwen3 30B A3B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.28, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_INSTRUCT_2507 = { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + name: 'Qwen: Qwen3 30B A3B Instruct 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_30B_A3B_THINKING_2507 = { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + name: 'Qwen: Qwen3 30B A3B Thinking 2507', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.08, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_32B = { + id: 'qwen/qwen3-32b', + name: 'Qwen: Qwen3 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 40960, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0.04, + }, + output: { + normal: 0.24, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_8B = { + id: 'qwen/qwen3-8b', + name: 'Qwen: Qwen3 8B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 40960, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0.05, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER = { + id: 'qwen/qwen3-coder', + name: 'Qwen: Qwen3 Coder 480B A35B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.22, + cached: 0.022, + }, + output: { + normal: 1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + name: 'Qwen: Qwen3 Coder 30B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 160000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.07, + cached: 0, + }, + output: { + normal: 0.27, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FLASH = { + id: 'qwen/qwen3-coder-flash', + name: 'Qwen: Qwen3 Coder Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0.039, + }, + output: { + normal: 0.975, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_NEXT = { + id: 'qwen/qwen3-coder-next', + name: 'Qwen: Qwen3 Coder Next', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.12, + cached: 0.06, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_PLUS = { + id: 'qwen/qwen3-coder-plus', + name: 'Qwen: Qwen3 Coder Plus', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0.13, + }, + output: { + normal: 3.25, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_CODER_FREE = { + id: 'qwen/qwen3-coder:free', + name: 'Qwen: Qwen3 Coder 480B A35B (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262000, + max_output_tokens: 262000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX = { + id: 'qwen/qwen3-max', + name: 'Qwen: Qwen3 Max', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0.156, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_MAX_THINKING = { + id: 'qwen/qwen3-max-thinking', + name: 'Qwen: Qwen3 Max Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.78, + cached: 0, + }, + output: { + normal: 3.9, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = { + id: 'qwen/qwen3-next-80b-a3b-instruct', + name: 'Qwen: Qwen3 Next 80B A3B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = { + id: 'qwen/qwen3-next-80b-a3b-instruct:free', + name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_NEXT_80B_A3B_THINKING = { + id: 'qwen/qwen3-next-80b-a3b-thinking', + name: 'Qwen: Qwen3 Next 80B A3B Thinking', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.0975, + cached: 0, + }, + output: { + normal: 0.78, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_INSTRUCT = { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + name: 'Qwen: Qwen3 VL 235B A22B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.11, + }, + output: { + normal: 0.88, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_235B_A22B_THINKING = { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + name: 'Qwen: Qwen3 VL 235B A22B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.6, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_INSTRUCT = { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + name: 'Qwen: Qwen3 VL 30B A3B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 0.52, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_30B_A3B_THINKING = { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + name: 'Qwen: Qwen3 VL 30B A3B Thinking', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_32B_INSTRUCT = { + id: 'qwen/qwen3-vl-32b-instruct', + name: 'Qwen: Qwen3 VL 32B Instruct', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.104, + cached: 0, + }, + output: { + normal: 0.416, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_INSTRUCT = { + id: 'qwen/qwen3-vl-8b-instruct', + name: 'Qwen: Qwen3 VL 8B Instruct', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.08, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_VL_8B_THINKING = { + id: 'qwen/qwen3-vl-8b-thinking', + name: 'Qwen: Qwen3 VL 8B Thinking', + supports: { + input: ['image', 'text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.117, + cached: 0, + }, + output: { + normal: 1.365, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_122B_A10B = { + id: 'qwen/qwen3.5-122b-a10b', + name: 'Qwen: Qwen3.5-122B-A10B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 2.08, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_27B = { + id: 'qwen/qwen3.5-27b', + name: 'Qwen: Qwen3.5-27B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.195, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_35B_A3B = { + id: 'qwen/qwen3.5-35b-a3b', + name: 'Qwen: Qwen3.5-35B-A3B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1625, + cached: 0, + }, + output: { + normal: 1.3, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_397B_A17B = { + id: 'qwen/qwen3.5-397b-a17b', + name: 'Qwen: Qwen3.5 397B A17B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 2.34, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_9B = { + id: 'qwen/qwen3.5-9b', + name: 'Qwen: Qwen3.5-9B', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.05, + cached: 0, + }, + output: { + normal: 0.15, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_FLASH_02_23 = { + id: 'qwen/qwen3.5-flash-02-23', + name: 'Qwen: Qwen3.5-Flash', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.065, + cached: 0, + }, + output: { + normal: 0.26, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_5_PLUS_02_15 = { + id: 'qwen/qwen3.5-plus-02-15', + name: 'Qwen: Qwen3.5 Plus 2026-02-15', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.26, + cached: 0, + }, + output: { + normal: 1.56, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_6_PLUS = { + id: 'qwen/qwen3.6-plus', + name: 'Qwen: Qwen3.6 Plus', + supports: { + input: ['text', 'image', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.325, + cached: 0, + }, + output: { + normal: 1.95, + }, + }, + image: 0, + }, +} as const +const QWEN_QWQ_32B = { + id: 'qwen/qwq-32b', + name: 'Qwen: QwQ 32B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0, + }, + output: { + normal: 0.58, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_EDGE = { + id: 'rekaai/reka-edge', + name: 'Reka Edge', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 16384, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const REKAAI_REKA_FLASH_3 = { + id: 'rekaai/reka-flash-3', + name: 'Reka Flash 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.2, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_APPLY_3 = { + id: 'relace/relace-apply-3', + name: 'Relace: Relace Apply 3', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'seed', 'stop'], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 1.25, + }, + }, + image: 0, + }, +} as const +const RELACE_RELACE_SEARCH = { + id: 'relace/relace-search', + name: 'Relace: Relace Search', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'maxCompletionTokens', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 128000, + pricing: { + text: { + input: { + normal: 1, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_EURYALE_70B = { + id: 'sao10k/l3-euryale-70b', + name: 'Sao10k: Llama 3 Euryale 70B v2.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 8192, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 1.48, + cached: 0, + }, + output: { + normal: 1.48, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_LUNARIS_8B = { + id: 'sao10k/l3-lunaris-8b', + name: 'Sao10K: Llama 3 8B Lunaris', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 8192, + pricing: { + text: { + input: { + normal: 0.04, + cached: 0, + }, + output: { + normal: 0.05, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_70B_HANAMI_X1 = { + id: 'sao10k/l3.1-70b-hanami-x1', + name: 'Sao10K: Llama 3.1 70B Hanami x1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 16000, + pricing: { + text: { + input: { + normal: 3, + cached: 0, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_1_EURYALE_70B = { + id: 'sao10k/l3.1-euryale-70b', + name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const SAO10K_L3_3_EURYALE_70B = { + id: 'sao10k/l3.3-euryale-70b', + name: 'Sao10K: Llama 3.3 Euryale 70B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.65, + cached: 0, + }, + output: { + normal: 0.75, + }, + }, + image: 0, + }, +} as const +const STEPFUN_STEP_3_5_FLASH = { + id: 'stepfun/step-3.5-flash', + name: 'StepFun: Step 3.5 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.3, + }, + }, + image: 0, + }, +} as const +const SWITCHPOINT_ROUTER = { + id: 'switchpoint/router', + name: 'Switchpoint Router', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.85, + cached: 0, + }, + output: { + normal: 3.4, + }, + }, + image: 0, + }, +} as const +const TENCENT_HUNYUAN_A13B_INSTRUCT = { + id: 'tencent/hunyuan-a13b-instruct', + name: 'Tencent: Hunyuan A13B Instruct', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'reasoning', + 'responseFormat', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.14, + cached: 0, + }, + output: { + normal: 0.57, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_CYDONIA_24B_V4_1 = { + id: 'thedrummer/cydonia-24b-v4.1', + name: 'TheDrummer: Cydonia 24B V4.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_ROCINANTE_12B = { + id: 'thedrummer/rocinante-12b', + name: 'TheDrummer: Rocinante 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.17, + cached: 0, + }, + output: { + normal: 0.43, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_SKYFALL_36B_V2 = { + id: 'thedrummer/skyfall-36b-v2', + name: 'TheDrummer: Skyfall 36B V2', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'topK', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.55, + cached: 0, + }, + output: { + normal: 0.8, + }, + }, + image: 0, + }, +} as const +const THEDRUMMER_UNSLOPNEMO_12B = { + id: 'thedrummer/unslopnemo-12b', + name: 'TheDrummer: UnslopNemo 12B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 32768, + max_output_tokens: 32768, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const TNGTECH_DEEPSEEK_R1T2_CHIMERA = { + id: 'tngtech/deepseek-r1t2-chimera', + name: 'TNG: DeepSeek R1T2 Chimera', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 163840, + max_output_tokens: 163840, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.15, + }, + output: { + normal: 1.1, + }, + }, + image: 0, + }, +} as const +const UNDI95_REMM_SLERP_L2_13B = { + id: 'undi95/remm-slerp-l2-13b', + name: 'ReMM SLERP 13B', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'topA', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 6144, + max_output_tokens: 4096, + pricing: { + text: { + input: { + normal: 0.45, + cached: 0, + }, + output: { + normal: 0.65, + }, + }, + image: 0, + }, +} as const +const UPSTAGE_SOLAR_PRO_3 = { + id: 'upstage/solar-pro-3', + name: 'Upstage: Solar Pro 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + ], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.15, + cached: 0.015, + }, + output: { + normal: 0.6, + }, + }, + image: 0, + }, +} as const +const WRITER_PALMYRA_X5 = { + id: 'writer/palmyra-x5', + name: 'Writer: Palmyra X5', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'stop', 'temperature', 'topK', 'topP'], + }, + context_window: 1040000, + max_output_tokens: 8192, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3 = { + id: 'x-ai/grok-3', + name: 'xAI: Grok 3', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_BETA = { + id: 'x-ai/grok-3-beta', + name: 'xAI: Grok 3 Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI = { + id: 'x-ai/grok-3-mini', + name: 'xAI: Grok 3 Mini', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_3_MINI_BETA = { + id: 'x-ai/grok-3-mini-beta', + name: 'xAI: Grok 3 Mini Beta', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0.075, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4 = { + id: 'x-ai/grok-4', + name: 'xAI: Grok 4', + supports: { + input: ['image', 'text', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + pricing: { + text: { + input: { + normal: 3, + cached: 0.75, + }, + output: { + normal: 15, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_FAST = { + id: 'x-ai/grok-4-fast', + name: 'xAI: Grok 4 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_1_FAST = { + id: 'x-ai/grok-4.1-fast', + name: 'xAI: Grok 4.1 Fast', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + max_output_tokens: 30000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.05, + }, + output: { + normal: 0.5, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20 = { + id: 'x-ai/grok-4.20', + name: 'xAI: Grok 4.20', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_4_20_MULTI_AGENT = { + id: 'x-ai/grok-4.20-multi-agent', + name: 'xAI: Grok 4.20 Multi-Agent', + supports: { + input: ['text', 'image', 'document'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'topLogprobs', + 'topP', + ], + }, + context_window: 2000000, + pricing: { + text: { + input: { + normal: 2, + cached: 0.2, + }, + output: { + normal: 6, + }, + }, + image: 0, + }, +} as const +const X_AI_GROK_CODE_FAST_1 = { + id: 'x-ai/grok-code-fast-1', + name: 'xAI: Grok Code Fast 1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'logprobs', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 256000, + max_output_tokens: 10000, + pricing: { + text: { + input: { + normal: 0.2, + cached: 0.02, + }, + output: { + normal: 1.5, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_FLASH = { + id: 'xiaomi/mimo-v2-flash', + name: 'Xiaomi: MiMo-V2-Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.09, + cached: 0.045, + }, + output: { + normal: 0.29, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_OMNI = { + id: 'xiaomi/mimo-v2-omni', + name: 'Xiaomi: MiMo-V2-Omni', + supports: { + input: ['text', 'audio', 'image', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 262144, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 0.4, + cached: 0.08, + }, + output: { + normal: 2, + }, + }, + image: 0, + }, +} as const +const XIAOMI_MIMO_V2_PRO = { + id: 'xiaomi/mimo-v2-pro', + name: 'Xiaomi: MiMo-V2-Pro', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'stop', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 1048576, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1, + cached: 0.2, + }, + output: { + normal: 3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_32B = { + id: 'z-ai/glm-4-32b', + name: 'Z.ai: GLM 4 32B ', + supports: { + input: ['text'], + output: ['text'], + supports: ['maxCompletionTokens', 'temperature', 'toolChoice', 'topP'], + }, + context_window: 128000, + pricing: { + text: { + input: { + normal: 0.1, + cached: 0, + }, + output: { + normal: 0.1, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5 = { + id: 'z-ai/glm-4.5', + name: 'Z.ai: GLM 4.5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 2.2, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR = { + id: 'z-ai/glm-4.5-air', + name: 'Z.ai: GLM 4.5 Air', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 98304, + pricing: { + text: { + input: { + normal: 0.13, + cached: 0.025, + }, + output: { + normal: 0.85, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5_AIR_FREE = { + id: 'z-ai/glm-4.5-air:free', + name: 'Z.ai: GLM 4.5 Air (free)', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 96000, + pricing: { + text: { + input: { + normal: 0, + cached: 0, + }, + output: { + normal: 0, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_5V = { + id: 'z-ai/glm-4.5v', + name: 'Z.ai: GLM 4.5V', + supports: { + input: ['text', 'image'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 65536, + max_output_tokens: 16384, + pricing: { + text: { + input: { + normal: 0.6, + cached: 0.11, + }, + output: { + normal: 1.8, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6 = { + id: 'z-ai/glm-4.6', + name: 'Z.ai: GLM 4.6', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 204800, + max_output_tokens: 204800, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0, + }, + output: { + normal: 1.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_6V = { + id: 'z-ai/glm-4.6v', + name: 'Z.ai: GLM 4.6V', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 131072, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.3, + cached: 0, + }, + output: { + normal: 0.9, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7 = { + id: 'z-ai/glm-4.7', + name: 'Z.ai: GLM 4.7', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 65535, + pricing: { + text: { + input: { + normal: 0.39, + cached: 0.195, + }, + output: { + normal: 1.75, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_4_7_FLASH = { + id: 'z-ai/glm-4.7-flash', + name: 'Z.ai: GLM 4.7 Flash', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 0.06, + cached: 0.0100000002, + }, + output: { + normal: 0.4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5 = { + id: 'z-ai/glm-5', + name: 'Z.ai: GLM 5', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 80000, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 0.72, + cached: 0, + }, + output: { + normal: 2.3, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_TURBO = { + id: 'z-ai/glm-5-turbo', + name: 'Z.ai: GLM 5 Turbo', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5_1 = { + id: 'z-ai/glm-5.1', + name: 'Z.ai: GLM 5.1', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'frequencyPenalty', + 'includeReasoning', + 'logitBias', + 'logprobs', + 'maxCompletionTokens', + 'minP', + 'presencePenalty', + 'reasoning', + 'repetitionPenalty', + 'responseFormat', + 'seed', + 'stop', + 'temperature', + 'toolChoice', + 'topK', + 'topLogprobs', + 'topP', + ], + }, + context_window: 202752, + pricing: { + text: { + input: { + normal: 1.26, + cached: 0, + }, + output: { + normal: 3.96, + }, + }, + image: 0, + }, +} as const +const Z_AI_GLM_5V_TURBO = { + id: 'z-ai/glm-5v-turbo', + name: 'Z.ai: GLM 5V Turbo', + supports: { + input: ['image', 'text', 'video'], + output: ['text'], + supports: [ + 'includeReasoning', + 'maxCompletionTokens', + 'reasoning', + 'responseFormat', + 'temperature', + 'toolChoice', + 'topP', + ], + }, + context_window: 202752, + max_output_tokens: 131072, + pricing: { + text: { + input: { + normal: 1.2, + cached: 0.24, + }, + output: { + normal: 4, + }, + }, + image: 0, + }, +} as const - -export type OpenRouterModelOptionsByName = { - [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & Pick; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & Pick; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & Pick; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & Pick; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & Pick; - [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & Pick; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & Pick; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & Pick; - [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & Pick; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & Pick; - [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & Pick; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & Pick; - [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & Pick; - [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & Pick; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & Pick; - [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & Pick; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & Pick; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & Pick; - [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & Pick; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & Pick; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & Pick; - [MANCER_WEAVER.id]: OpenRouterCommonOptions & Pick; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & Pick; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & Pick; - [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & Pick; - [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & Pick; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & Pick; - [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & Pick; - [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & Pick; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & Pick; - [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & Pick; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & Pick; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & Pick; - [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions; - [OPENROUTER_FREE.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & Pick; - [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & Pick; - [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & Pick; - [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick; - [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & Pick; - [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & Pick; - [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & Pick; - [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & Pick; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & Pick; - [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & Pick; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & Pick; - [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & Pick; - [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & Pick; - [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & Pick; - [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & Pick; - [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & Pick; - [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & Pick; +export type OpenRouterModelOptionsByName = { + [AI21_JAMBA_LARGE_1_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [AION_LABS_AION_1_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_1_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_2_0.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'topP' + > + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: OpenRouterCommonOptions & + Pick + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: OpenRouterCommonOptions & + OpenRouterBaseOptions + [ALLENAI_OLMO_3_32B_THINK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ALPINDALE_GOLIATH_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [AMAZON_NOVA_2_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [AMAZON_NOVA_LITE_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_MICRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PREMIER_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [AMAZON_NOVA_PRO_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + | 'verbosity' + > + [ANTHROPIC_CLAUDE_SONNET_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + | 'verbosity' + > + [ARCEE_AI_CODER_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_MAESTRO_REASONING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_SPOTLIGHT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topK' | 'topP' + > + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [ARCEE_AI_TRINITY_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [ARCEE_AI_VIRTUOSO_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_300B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [BYTEDANCE_UI_TARS_1_5_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_A.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R_PLUS_08_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [COHERE_COMMAND_R7B_12_2024.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPCOGITO_COGITO_V2_1_671B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_0528.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ELEUTHERAI_LLEMMA_7B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_2_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_2_9B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'seed' | 'stop' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topP' + > + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' | 'temperature' | 'topP' + > + [GRYPHE_MYTHOMAX_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [INCEPTION_MERCURY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INCEPTION_MERCURY_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [INFLECTION_INFLECTION_3_PI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topP' + > + [KWAIPILOT_KAT_CODER_PRO_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_24B_A2B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MANCER_WEAVER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MEITUAN_LONGCAT_FLASH_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_MAVERICK.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_4_SCOUT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [META_LLAMA_LLAMA_GUARD_4_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MICROSOFT_PHI_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MICROSOFT_WIZARDLM_2_8X22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_01.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MINIMAX_MINIMAX_M2_HER.id]: OpenRouterCommonOptions & + Pick + [MINIMAX_MINIMAX_M2_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MINIMAX_MINIMAX_M2_5_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + > + [MINIMAX_MINIMAX_M2_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_CODESTRAL_2508.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_MEDIUM.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_DEVSTRAL_SMALL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MINISTRAL_14B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_3B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MINISTRAL_8B_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2407.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_LARGE_2512.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_NEMO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SABA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_2603.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: OpenRouterCommonOptions & + Pick + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MISTRALAI_PIXTRAL_LARGE_2411.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [MOONSHOTAI_KIMI_K2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_0905.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [MOONSHOTAI_KIMI_K2_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'parallelToolCalls' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [MORPH_MORPH_V3_FAST.id]: OpenRouterCommonOptions & + Pick + [MORPH_MORPH_V3_LARGE.id]: OpenRouterCommonOptions & + Pick + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_405B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NOUSRESEARCH_HERMES_4_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_0613.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_16K.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_0314.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1106_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_TURBO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4_1_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_GPT_4O.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_05_13.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_08_06.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_2024_11_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_4O_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_2024_07_18.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'webSearchOptions' + > + [OPENAI_GPT_4O_EXTENDED.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENAI_GPT_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'responseFormat' | 'seed' + > + [OPENAI_GPT_5_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_IMAGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_IMAGE_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_5_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_1_CODEX_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_3_CHAT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_3_CODEX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_NANO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_5_4_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_GPT_AUDIO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_AUDIO_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_120B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [OPENAI_GPT_OSS_20B_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + > + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [OPENAI_O1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O1_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + > + [OPENAI_O3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O3_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [OPENAI_O4_MINI_HIGH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'toolChoice' + > + [OPENROUTER_AUTO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + | 'webSearchOptions' + > + [OPENROUTER_BODYBUILDER.id]: OpenRouterCommonOptions & OpenRouterBaseOptions + [OPENROUTER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [PERPLEXITY_SONAR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_PRO_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PERPLEXITY_SONAR_REASONING_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'temperature' + | 'topK' + | 'topP' + | 'webSearchOptions' + > + [PRIME_INTELLECT_INTELLECT_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN_VL_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topP' + > + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_14B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_NEXT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_CODER_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_CODER_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_MAX_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_VL_8B_THINKING.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_122B_A10B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_27B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_35B_A3B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_397B_A17B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [QWEN_QWEN3_5_9B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [QWEN_QWEN3_5_FLASH_02_23.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_5_PLUS_02_15.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWEN3_6_PLUS.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [QWEN_QWQ_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [REKAAI_REKA_FLASH_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [RELACE_RELACE_APPLY_3.id]: OpenRouterCommonOptions & + Pick + [RELACE_RELACE_SEARCH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'maxCompletionTokens' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [SAO10K_L3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_LUNARIS_8B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_70B_HANAMI_X1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [SAO10K_L3_1_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SAO10K_L3_3_EURYALE_70B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [STEPFUN_STEP_3_5_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [SWITCHPOINT_ROUTER.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_CYDONIA_24B_V4_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_ROCINANTE_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [THEDRUMMER_SKYFALL_36B_V2.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'topK' + | 'topP' + > + [THEDRUMMER_UNSLOPNEMO_12B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [UNDI95_REMM_SLERP_L2_13B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'topA' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [UPSTAGE_SOLAR_PRO_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + > + [WRITER_PALMYRA_X5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'stop' | 'temperature' | 'topK' | 'topP' + > + [X_AI_GROK_3.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_3_MINI_BETA.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_1_FAST.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_4_20_MULTI_AGENT.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'topLogprobs' + | 'topP' + > + [X_AI_GROK_CODE_FAST_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'logprobs' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > + [XIAOMI_MIMO_V2_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [XIAOMI_MIMO_V2_OMNI.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [XIAOMI_MIMO_V2_PRO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_32B.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + 'maxCompletionTokens' | 'temperature' | 'toolChoice' | 'topP' + > + [Z_AI_GLM_4_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_5_AIR_FREE.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'temperature' + | 'toolChoice' + | 'topP' + > + [Z_AI_GLM_4_5V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_6V.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_4_7.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_4_7_FLASH.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topP' + > + [Z_AI_GLM_5_1.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'frequencyPenalty' + | 'includeReasoning' + | 'logitBias' + | 'logprobs' + | 'maxCompletionTokens' + | 'minP' + | 'presencePenalty' + | 'reasoning' + | 'repetitionPenalty' + | 'responseFormat' + | 'seed' + | 'stop' + | 'temperature' + | 'toolChoice' + | 'topK' + | 'topLogprobs' + | 'topP' + > + [Z_AI_GLM_5V_TURBO.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'includeReasoning' + | 'maxCompletionTokens' + | 'reasoning' + | 'responseFormat' + | 'temperature' + | 'toolChoice' + | 'topP' + > } - -export type OpenRouterModelInputModalitiesByName = { - [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'>; - [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'>; - [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'>; - [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'>; - [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document'>; - [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'>; - [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'>; - [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'>; - [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'>; - [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'>; - [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'>; - [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'>; - [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'>; - [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'>; - [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'>; - [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'>; - [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'>; - [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'>; - [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_A.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'>; - [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'>; - [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'>; - [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'>; - [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'>; - [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray<'document' | 'image' | 'text' | 'audio'>; - [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'document' | 'audio' | 'video'>; - [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'>; - [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray<'text' | 'image' | 'video' | 'document' | 'audio'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray<'audio' | 'document' | 'image' | 'text' | 'video'>; - [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video' | 'document'>; - [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'>; - [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'>; - [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'>; - [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'>; - [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'>; - [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'>; - [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'>; - [MANCER_WEAVER.id]: ReadonlyArray<'text'>; - [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'>; - [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'>; - [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'>; - [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'>; - [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'>; - [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'>; - [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'>; - [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'>; - [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'>; - [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'>; - [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'>; - [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'>; - [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'>; - [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'>; - [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'>; - [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'>; - [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'>; - [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'>; - [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'>; - [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'>; - [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'>; - [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'>; - [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'>; - [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'>; - [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'>; - [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'>; - [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'>; - [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray<'document' | 'image' | 'text'>; - [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [OPENROUTER_AUTO.id]: ReadonlyArray<'text' | 'image' | 'audio' | 'document' | 'video'>; - [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'>; - [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'>; - [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'>; - [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'>; - [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'>; - [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'>; - [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'>; - [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'>; - [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'>; - [QWEN_QWQ_32B.id]: ReadonlyArray<'text'>; - [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'>; - [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'>; - [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'>; - [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'>; - [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'>; - [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'>; - [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'>; - [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'>; - [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'>; - [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'>; - [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'>; - [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'>; - [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'>; - [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'>; - [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'>; - [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'>; - [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'>; - [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'>; - [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'>; - [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'>; - [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'>; - [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'>; - [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'>; - [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'>; - [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'>; +export type OpenRouterModelInputModalitiesByName = { + [AI21_JAMBA_LARGE_1_7.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_1_0_MINI.id]: ReadonlyArray<'text'> + [AION_LABS_AION_2_0.id]: ReadonlyArray<'text'> + [AION_LABS_AION_RP_LLAMA_3_1_8B.id]: ReadonlyArray<'text'> + [ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY.id]: ReadonlyArray<'text'> + [ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_2_0325_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_32B_THINK.id]: ReadonlyArray<'text'> + [ALLENAI_OLMO_3_1_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [ALPINDALE_GOLIATH_120B.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_2_LITE_V1.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' + > + [AMAZON_NOVA_LITE_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_MICRO_V1.id]: ReadonlyArray<'text'> + [AMAZON_NOVA_PREMIER_V1.id]: ReadonlyArray<'text' | 'image'> + [AMAZON_NOVA_PRO_V1.id]: ReadonlyArray<'text' | 'image'> + [ANTHRACITE_ORG_MAGNUM_V4_72B.id]: ReadonlyArray<'text'> + [ANTHROPIC_CLAUDE_3_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_5_HAIKU.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_3_7_SONNET.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_3_7_SONNET_THINKING.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [ANTHROPIC_CLAUDE_HAIKU_4_5.id]: ReadonlyArray<'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_OPUS_4_5.id]: ReadonlyArray<'document' | 'image' | 'text'> + [ANTHROPIC_CLAUDE_OPUS_4_6.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_OPUS_4_6_FAST.id]: ReadonlyArray<'text' | 'image'> + [ANTHROPIC_CLAUDE_SONNET_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [ANTHROPIC_CLAUDE_SONNET_4_6.id]: ReadonlyArray<'text' | 'image'> + [ARCEE_AI_CODER_LARGE.id]: ReadonlyArray<'text'> + [ARCEE_AI_MAESTRO_REASONING.id]: ReadonlyArray<'text'> + [ARCEE_AI_SPOTLIGHT.id]: ReadonlyArray<'image' | 'text'> + [ARCEE_AI_TRINITY_LARGE_PREVIEW_FREE.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> + [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> + [ARCEE_AI_VIRTUOSO_LARGE.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_21B_A3B_THINKING.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_300B_A47B.id]: ReadonlyArray<'text'> + [BAIDU_ERNIE_4_5_VL_28B_A3B.id]: ReadonlyArray<'text' | 'image'> + [BAIDU_ERNIE_4_5_VL_424B_A47B.id]: ReadonlyArray<'image' | 'text'> + [BYTEDANCE_SEED_SEED_1_6.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_1_6_FLASH.id]: ReadonlyArray<'image' | 'text' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_LITE.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_SEED_SEED_2_0_MINI.id]: ReadonlyArray<'text' | 'image' | 'video'> + [BYTEDANCE_UI_TARS_1_5_7B.id]: ReadonlyArray<'image' | 'text'> + [COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_A.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R_PLUS_08_2024.id]: ReadonlyArray<'text'> + [COHERE_COMMAND_R7B_12_2024.id]: ReadonlyArray<'text'> + [DEEPCOGITO_COGITO_V2_1_671B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_0324.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_CHAT_V3_1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_0528.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_1_TERMINUS.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_EXP.id]: ReadonlyArray<'text'> + [DEEPSEEK_DEEPSEEK_V3_2_SPECIALE.id]: ReadonlyArray<'text'> + [ELEUTHERAI_LLEMMA_7B.id]: ReadonlyArray<'text'> + [ESSENTIALAI_RNJ_1_INSTRUCT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMINI_2_0_FLASH_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_0_FLASH_LITE_001.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_IMAGE.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_2_5_FLASH_LITE.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW.id]: ReadonlyArray< + 'document' | 'image' | 'text' | 'audio' + > + [GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_FLASH_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'document' | 'audio' | 'video' + > + [GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_IMAGE_PREVIEW.id]: ReadonlyArray<'image' | 'text'> + [GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW.id]: ReadonlyArray< + 'text' | 'image' | 'video' | 'document' | 'audio' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW.id]: ReadonlyArray< + 'audio' | 'document' | 'image' | 'text' | 'video' + > + [GOOGLE_GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS.id]: ReadonlyArray< + 'text' | 'audio' | 'image' | 'video' | 'document' + > + [GOOGLE_GEMMA_2_27B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_2_9B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3_12B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_12B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_27B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3_4B_IT_FREE.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_GEMMA_3N_E2B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_3N_E4B_IT_FREE.id]: ReadonlyArray<'text'> + [GOOGLE_GEMMA_4_26B_A4B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_26B_A4B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_GEMMA_4_31B_IT_FREE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [GOOGLE_LYRIA_3_CLIP_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GOOGLE_LYRIA_3_PRO_PREVIEW.id]: ReadonlyArray<'text' | 'image'> + [GRYPHE_MYTHOMAX_L2_13B.id]: ReadonlyArray<'text'> + [IBM_GRANITE_GRANITE_4_0_H_MICRO.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_2.id]: ReadonlyArray<'text'> + [INCEPTION_MERCURY_CODER.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PI.id]: ReadonlyArray<'text'> + [INFLECTION_INFLECTION_3_PRODUCTIVITY.id]: ReadonlyArray<'text'> + [KWAIPILOT_KAT_CODER_PRO_V2.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_24B_A2B.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [LIQUID_LFM_2_5_1_2B_THINKING_FREE.id]: ReadonlyArray<'text'> + [MANCER_WEAVER.id]: ReadonlyArray<'text'> + [MEITUAN_LONGCAT_FLASH_CHAT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_1_8B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_3_2_1B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_4_MAVERICK.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_4_SCOUT.id]: ReadonlyArray<'text' | 'image'> + [META_LLAMA_LLAMA_GUARD_3_8B.id]: ReadonlyArray<'text'> + [META_LLAMA_LLAMA_GUARD_4_12B.id]: ReadonlyArray<'image' | 'text'> + [MICROSOFT_PHI_4.id]: ReadonlyArray<'text'> + [MICROSOFT_WIZARDLM_2_8X22B.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_01.id]: ReadonlyArray<'text' | 'image'> + [MINIMAX_MINIMAX_M1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_HER.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_1.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_5_FREE.id]: ReadonlyArray<'text'> + [MINIMAX_MINIMAX_M2_7.id]: ReadonlyArray<'text'> + [MISTRALAI_CODESTRAL_2508.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_2512.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_MEDIUM.id]: ReadonlyArray<'text'> + [MISTRALAI_DEVSTRAL_SMALL.id]: ReadonlyArray<'text'> + [MISTRALAI_MINISTRAL_14B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_3B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MINISTRAL_8B_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_7B_INSTRUCT_V0_1.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2407.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2411.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_LARGE_2512.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_MEDIUM_3_1.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_NEMO.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SABA.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501.id]: ReadonlyArray<'text'> + [MISTRALAI_MISTRAL_SMALL_2603.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [MISTRALAI_MISTRAL_SMALL_CREATIVE.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X22B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_MIXTRAL_8X7B_INSTRUCT.id]: ReadonlyArray<'text'> + [MISTRALAI_PIXTRAL_LARGE_2411.id]: ReadonlyArray<'text' | 'image'> + [MISTRALAI_VOXTRAL_SMALL_24B_2507.id]: ReadonlyArray<'text' | 'audio'> + [MOONSHOTAI_KIMI_K2.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_0905.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_THINKING.id]: ReadonlyArray<'text'> + [MOONSHOTAI_KIMI_K2_5.id]: ReadonlyArray<'text' | 'image'> + [MORPH_MORPH_V3_FAST.id]: ReadonlyArray<'text'> + [MORPH_MORPH_V3_LARGE.id]: ReadonlyArray<'text'> + [NEX_AGI_DEEPSEEK_V3_1_NEX_N1.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_405B.id]: ReadonlyArray<'text'> + [NOUSRESEARCH_HERMES_4_70B.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1.id]: ReadonlyArray<'text'> + [NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_3_SUPER_120B_A12B_FREE.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL.id]: ReadonlyArray<'image' | 'text' | 'video'> + [NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE.id]: ReadonlyArray< + 'image' | 'text' | 'video' + > + [NVIDIA_NEMOTRON_NANO_9B_V2.id]: ReadonlyArray<'text'> + [NVIDIA_NEMOTRON_NANO_9B_V2_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_0613.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_16K.id]: ReadonlyArray<'text'> + [OPENAI_GPT_3_5_TURBO_INSTRUCT.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_0314.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1106_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_TURBO.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_4_TURBO_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4_1_NANO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_4O.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_05_13.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_08_06.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_2024_11_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_AUDIO_PREVIEW.id]: ReadonlyArray<'audio' | 'text'> + [OPENAI_GPT_4O_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_4O_MINI_2024_07_18.id]: ReadonlyArray< + 'text' | 'image' | 'document' + > + [OPENAI_GPT_4O_MINI_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_SEARCH_PREVIEW.id]: ReadonlyArray<'text'> + [OPENAI_GPT_4O_EXTENDED.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_IMAGE.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_IMAGE_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_MINI.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_NANO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_1_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_1_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MAX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_1_CODEX_MINI.id]: ReadonlyArray<'image' | 'text'> + [OPENAI_GPT_5_2.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CHAT.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_2_CODEX.id]: ReadonlyArray<'text' | 'image'> + [OPENAI_GPT_5_2_PRO.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_GPT_5_3_CHAT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_3_CODEX.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_5_4_MINI.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_NANO.id]: ReadonlyArray<'document' | 'image' | 'text'> + [OPENAI_GPT_5_4_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_GPT_AUDIO.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_AUDIO_MINI.id]: ReadonlyArray<'text' | 'audio'> + [OPENAI_GPT_OSS_120B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_120B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_20B_FREE.id]: ReadonlyArray<'text'> + [OPENAI_GPT_OSS_SAFEGUARD_20B.id]: ReadonlyArray<'text'> + [OPENAI_O1.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O1_PRO.id]: ReadonlyArray<'text' | 'image' | 'document'> + [OPENAI_O3.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_DEEP_RESEARCH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O3_MINI.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_MINI_HIGH.id]: ReadonlyArray<'text' | 'document'> + [OPENAI_O3_PRO.id]: ReadonlyArray<'text' | 'document' | 'image'> + [OPENAI_O4_MINI.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENAI_O4_MINI_DEEP_RESEARCH.id]: ReadonlyArray< + 'document' | 'image' | 'text' + > + [OPENAI_O4_MINI_HIGH.id]: ReadonlyArray<'image' | 'text' | 'document'> + [OPENROUTER_AUTO.id]: ReadonlyArray< + 'text' | 'image' | 'audio' | 'document' | 'video' + > + [OPENROUTER_BODYBUILDER.id]: ReadonlyArray<'text'> + [OPENROUTER_FREE.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_DEEP_RESEARCH.id]: ReadonlyArray<'text'> + [PERPLEXITY_SONAR_PRO.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_PRO_SEARCH.id]: ReadonlyArray<'text' | 'image'> + [PERPLEXITY_SONAR_REASONING_PRO.id]: ReadonlyArray<'text' | 'image'> + [PRIME_INTELLECT_INTELLECT_3.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_72B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_2_5_CODER_32B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28.id]: ReadonlyArray<'text'> + [QWEN_QWEN_PLUS_2025_07_28_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN_TURBO.id]: ReadonlyArray<'text'> + [QWEN_QWEN_VL_MAX.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN_VL_PLUS.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_CODER_7B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN2_5_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN2_5_VL_72B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_14B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_235B_A22B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_INSTRUCT_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_30B_A3B_THINKING_2507.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_32B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_8B.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FLASH.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_NEXT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_PLUS.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_CODER_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_MAX_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_NEXT_80B_A3B_THINKING.id]: ReadonlyArray<'text'> + [QWEN_QWEN3_VL_235B_A22B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_235B_A22B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_30B_A3B_THINKING.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_32B_INSTRUCT.id]: ReadonlyArray<'text' | 'image'> + [QWEN_QWEN3_VL_8B_INSTRUCT.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_VL_8B_THINKING.id]: ReadonlyArray<'image' | 'text'> + [QWEN_QWEN3_5_122B_A10B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_27B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_35B_A3B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_397B_A17B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_9B.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_FLASH_02_23.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_5_PLUS_02_15.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWQ_32B.id]: ReadonlyArray<'text'> + [REKAAI_REKA_EDGE.id]: ReadonlyArray<'image' | 'text' | 'video'> + [REKAAI_REKA_FLASH_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_APPLY_3.id]: ReadonlyArray<'text'> + [RELACE_RELACE_SEARCH.id]: ReadonlyArray<'text'> + [SAO10K_L3_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_LUNARIS_8B.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_70B_HANAMI_X1.id]: ReadonlyArray<'text'> + [SAO10K_L3_1_EURYALE_70B.id]: ReadonlyArray<'text'> + [SAO10K_L3_3_EURYALE_70B.id]: ReadonlyArray<'text'> + [STEPFUN_STEP_3_5_FLASH.id]: ReadonlyArray<'text'> + [SWITCHPOINT_ROUTER.id]: ReadonlyArray<'text'> + [TENCENT_HUNYUAN_A13B_INSTRUCT.id]: ReadonlyArray<'text'> + [THEDRUMMER_CYDONIA_24B_V4_1.id]: ReadonlyArray<'text'> + [THEDRUMMER_ROCINANTE_12B.id]: ReadonlyArray<'text'> + [THEDRUMMER_SKYFALL_36B_V2.id]: ReadonlyArray<'text'> + [THEDRUMMER_UNSLOPNEMO_12B.id]: ReadonlyArray<'text'> + [TNGTECH_DEEPSEEK_R1T2_CHIMERA.id]: ReadonlyArray<'text'> + [UNDI95_REMM_SLERP_L2_13B.id]: ReadonlyArray<'text'> + [UPSTAGE_SOLAR_PRO_3.id]: ReadonlyArray<'text'> + [WRITER_PALMYRA_X5.id]: ReadonlyArray<'text'> + [X_AI_GROK_3.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI.id]: ReadonlyArray<'text'> + [X_AI_GROK_3_MINI_BETA.id]: ReadonlyArray<'text'> + [X_AI_GROK_4.id]: ReadonlyArray<'image' | 'text' | 'document'> + [X_AI_GROK_4_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_1_FAST.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_4_20_MULTI_AGENT.id]: ReadonlyArray<'text' | 'image' | 'document'> + [X_AI_GROK_CODE_FAST_1.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_FLASH.id]: ReadonlyArray<'text'> + [XIAOMI_MIMO_V2_OMNI.id]: ReadonlyArray<'text' | 'audio' | 'image' | 'video'> + [XIAOMI_MIMO_V2_PRO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_32B.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5_AIR_FREE.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_5V.id]: ReadonlyArray<'text' | 'image'> + [Z_AI_GLM_4_6.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_6V.id]: ReadonlyArray<'image' | 'text' | 'video'> + [Z_AI_GLM_4_7.id]: ReadonlyArray<'text'> + [Z_AI_GLM_4_7_FLASH.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_TURBO.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5_1.id]: ReadonlyArray<'text'> + [Z_AI_GLM_5V_TURBO.id]: ReadonlyArray<'image' | 'text' | 'video'> } export const OPENROUTER_CHAT_MODELS = [ diff --git a/scripts/openrouter.models.ts b/scripts/openrouter.models.ts index 4041c3a2..08787e91 100644 --- a/scripts/openrouter.models.ts +++ b/scripts/openrouter.models.ts @@ -41,7 +41,8 @@ export const models: Array = [ hugging_face_id: 'ai21labs/AI21-Jamba-Large-1.7', name: 'AI21: Jamba Large 1.7', created: 1754669020, - description: 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', + description: + 'Jamba Large 1.7 is the latest model in the Jamba open family, offering improvements in grounding, instruction-following, and overall efficiency. Built on a hybrid SSM-Transformer architecture with a 256K context...', context_length: 256000, architecture: { modality: 'text->text', @@ -76,7 +77,8 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-1.0', created: 1738697557, - description: 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', + description: + 'Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree...', context_length: 131072, architecture: { modality: 'text->text', @@ -109,7 +111,8 @@ export const models: Array = [ hugging_face_id: 'FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview', name: 'AionLabs: Aion-1.0-Mini', created: 1738697107, - description: 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', + description: + 'Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant...', context_length: 131072, architecture: { modality: 'text->text', @@ -142,7 +145,8 @@ export const models: Array = [ hugging_face_id: null, name: 'AionLabs: Aion-2.0', created: 1771881306, - description: 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', + description: + 'Aion-2.0 is a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling. It is particularly strong at introducing tension, crises, and conflict into stories, making narratives feel more engaging....', context_length: 131072, architecture: { modality: 'text->text', @@ -176,7 +180,8 @@ export const models: Array = [ hugging_face_id: '', name: 'AionLabs: Aion-RP 1.0 (8B)', created: 1738696718, - description: 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', + description: + 'Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each other’s responses. It is a fine-tuned base model...', context_length: 32768, architecture: { modality: 'text->text', @@ -195,11 +200,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'alfredpros/codellama-7b-instruct-solidity', @@ -207,7 +208,8 @@ export const models: Array = [ hugging_face_id: 'AlfredPros/CodeLlama-7b-Instruct-Solidity', name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity', created: 1744641874, - description: 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', + description: + 'A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.', context_length: 4096, architecture: { modality: 'text->text', @@ -245,7 +247,8 @@ export const models: Array = [ hugging_face_id: 'Alibaba-NLP/Tongyi-DeepResearch-30B-A3B', name: 'Tongyi DeepResearch 30B A3B', created: 1758210804, - description: 'Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It\'s optimized for long-horizon, deep information-seeking tasks...', + description: + "Tongyi DeepResearch is an agentic large language model developed by Tongyi Lab, with 30 billion total parameters activating only 3 billion per token. It's optimized for long-horizon, deep information-seeking tasks...", context_length: 131072, architecture: { modality: 'text->text', @@ -291,7 +294,8 @@ export const models: Array = [ hugging_face_id: 'allenai/OLMo-2-0325-32B-Instruct', name: 'AllenAI: Olmo 2 32B Instruct', created: 1741988556, - description: 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', + description: + 'OLMo-2 32B Instruct is a supervised instruction-finetuned variant of the OLMo-2 32B March 2025 base model. It excels in complex reasoning and instruction-following tasks across diverse benchmarks such as GSM8K,...', context_length: 128000, architecture: { modality: 'text->text', @@ -310,8 +314,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - ], + supported_parameters: [], }, { id: 'allenai/olmo-3-32b-think', @@ -319,7 +322,8 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3-32B-Think', name: 'AllenAI: Olmo 3 32B Think', created: 1763758276, - description: 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', + description: + 'Olmo 3 32B Think is a large-scale, 32-billion-parameter model purpose-built for deep reasoning, complex logic chains and advanced instruction-following scenarios. Its capacity enables strong performance on demanding evaluation tasks and...', context_length: 65536, architecture: { modality: 'text->text', @@ -361,7 +365,8 @@ export const models: Array = [ hugging_face_id: 'allenai/Olmo-3.1-32B-Instruct', name: 'AllenAI: Olmo 3.1 32B Instruct', created: 1767728554, - description: 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', + description: + 'Olmo 3.1 32B Instruct is a large-scale, 32-billion-parameter instruction-tuned language model engineered for high-performance conversational AI, multi-turn dialogue, and practical instruction following. As part of the Olmo 3.1 family, this...', context_length: 65536, architecture: { modality: 'text->text', @@ -403,7 +408,8 @@ export const models: Array = [ hugging_face_id: 'alpindale/goliath-120b', name: 'Goliath 120B', created: 1699574400, - description: 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', + description: + 'A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale. Credits to - [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge...', context_length: 6144, architecture: { modality: 'text->text', @@ -446,7 +452,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova 2 Lite', created: 1764696672, - description: 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', + description: + 'Nova 2 Lite is a fast, cost-effective reasoning model for everyday workloads that can process text, images, and videos to generate text. Nova 2 Lite demonstrates standout capabilities in processing...', context_length: 1000000, architecture: { modality: 'text+image+file+video->text', @@ -483,7 +490,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Lite 1.0', created: 1733437363, - description: 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', + description: + 'Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -517,7 +525,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Micro 1.0', created: 1733437237, - description: 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', + description: + 'Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length...', context_length: 128000, architecture: { modality: 'text->text', @@ -551,7 +560,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Premier 1.0', created: 1761950332, - description: 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', + description: + 'Amazon Nova Premier is the most capable of Amazon’s multimodal models for complex reasoning tasks and for use as the best teacher for distilling custom models.', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -586,7 +596,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Amazon: Nova Pro 1.0', created: 1733436303, - description: 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', + description: + 'Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December...', context_length: 300000, architecture: { modality: 'text+image->text', @@ -620,7 +631,8 @@ export const models: Array = [ hugging_face_id: 'anthracite-org/magnum-v4-72b', name: 'Magnum v4 72B', created: 1729555200, - description: 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', + description: + 'This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).\n\nThe model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).', context_length: 16384, architecture: { modality: 'text->text', @@ -663,7 +675,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3 Haiku', created: 1710288000, - description: 'Claude 3 Haiku is Anthropic\'s fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal', + description: + "Claude 3 Haiku is Anthropic's fastest and most compact model for\nnear-instant responsiveness. Quick and accurate targeted performance.\n\nSee the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)\n\n#multimodal", context_length: 200000, architecture: { modality: 'text+image->text', @@ -700,7 +713,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude 3.5 Haiku', created: 1730678400, - description: 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', + description: + 'Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -738,7 +752,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet', created: 1740422110, - description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: + 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -778,7 +793,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude 3.7 Sonnet (thinking)', created: 1740422110, - description: 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', + description: + 'Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -817,7 +833,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Haiku 4.5', created: 1760547638, - description: 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', + description: + 'Claude Haiku 4.5 is Anthropic’s fastest and most efficient model, delivering near-frontier intelligence at a fraction of the cost and latency of larger Claude models. Matching Claude Sonnet 4’s performance...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -859,7 +876,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4', created: 1747931245, - description: 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', + description: + 'Claude Opus 4 is benchmarked as the world’s best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -899,7 +917,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.1', created: 1754411591, - description: 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', + description: + 'Claude Opus 4.1 is an updated version of Anthropic’s flagship model, offering improved performance in coding, reasoning, and agentic tasks. It achieves 74.5% on SWE-bench Verified and shows notable gains...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -941,7 +960,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.5', created: 1764010580, - description: 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', + description: + 'Claude Opus 4.5 is Anthropic’s frontier reasoning model optimized for complex software engineering, agentic workflows, and long-horizon computer use. It offers strong multimodal capabilities, competitive performance across real-world coding and...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -983,7 +1003,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Opus 4.6', created: 1770219050, - description: 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', + description: + 'Opus 4.6 is Anthropic’s strongest model for coding and long-running professional tasks. It is built for agents that operate across entire workflows rather than single prompts, making it especially effective...', context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1027,7 +1048,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Anthropic: Claude Opus 4.6 (Fast)', created: 1775592472, - description: 'Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic\'s docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode', + description: + "Fast-mode variant of [Opus 4.6](/anthropic/claude-opus-4.6) - identical capabilities with higher output speed at premium 6x pricing.\n\nLearn more in Anthropic's docs: https://platform.claude.com/docs/en/build-with-claude/fast-mode", context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1069,7 +1091,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4', created: 1747930371, - description: 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', + description: + 'Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%),...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -1109,7 +1132,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.5', created: 1759161676, - description: 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', + description: + 'Claude Sonnet 4.5 is Anthropic’s most advanced Sonnet model to date, optimized for real-world agents and coding workflows. It delivers state-of-the-art performance on coding benchmarks such as SWE-bench Verified, with...', context_length: 1000000, architecture: { modality: 'text+image+file->text', @@ -1151,7 +1175,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Anthropic: Claude Sonnet 4.6', created: 1771342990, - description: 'Sonnet 4.6 is Anthropic\'s most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...', + description: + "Sonnet 4.6 is Anthropic's most capable Sonnet-class model yet, with frontier performance across coding, agents, and professional work. It excels at iterative development, complex codebase navigation, end-to-end project management with...", context_length: 1000000, architecture: { modality: 'text+image->text', @@ -1195,7 +1220,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Coder Large', created: 1746478663, - description: 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', + description: + 'Coder‑Large is a 32 B‑parameter offspring of Qwen 2.5‑Instruct that has been further trained on permissively‑licensed GitHub, CodeSearchNet and synthetic bug‑fix corpora. It supports a 32k context window, enabling multi‑file...', context_length: 32768, architecture: { modality: 'text->text', @@ -1233,7 +1259,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Maestro Reasoning', created: 1746481269, - description: 'Maestro Reasoning is Arcee\'s flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...', + description: + "Maestro Reasoning is Arcee's flagship analysis model: a 32 B‑parameter derivative of Qwen 2.5‑32 B tuned with DPO and chain‑of‑thought RL for step‑by‑step logic. Compared to the earlier 7 B...", context_length: 131072, architecture: { modality: 'text->text', @@ -1271,7 +1298,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Spotlight', created: 1746481552, - description: 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', + description: + 'Spotlight is a 7‑billion‑parameter vision‑language model derived from Qwen 2.5‑VL and fine‑tuned by Arcee AI for tight image‑text grounding tasks. It offers a 32 k‑token context window, enabling rich multimodal...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -1309,7 +1337,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Preview', name: 'Arcee AI: Trinity Large Preview (free)', created: 1769552670, - description: 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', + description: + 'Trinity-Large-Preview is a frontier-scale open-weight language model from Arcee, built as a 400B-parameter sparse Mixture-of-Experts with 13B active parameters per token using 4-of-256 expert routing. It excels in creative writing,...', context_length: 131000, architecture: { modality: 'text->text', @@ -1344,7 +1373,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Large-Thinking', name: 'Arcee AI: Trinity Large Thinking', created: 1775058318, - description: 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', + description: + 'Trinity Large Thinking is a powerful open source reasoning model from the team at Arcee AI. It shows strong performance in PinchBench, agentic workloads, and reasoning tasks. Launch video: https://youtu.be/Gc82AXLa0Rg?si=4RLn6WBz33qT--B7', context_length: 262144, architecture: { modality: 'text->text', @@ -1388,7 +1418,8 @@ export const models: Array = [ hugging_face_id: 'arcee-ai/Trinity-Mini', name: 'Arcee AI: Trinity Mini', created: 1764601720, - description: 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', + description: + 'Trinity Mini is a 26B-parameter (3B active) sparse mixture-of-experts language model featuring 128 experts with 8 active per token. Engineered for efficient reasoning over long contexts (131k) with robust function...', context_length: 131072, architecture: { modality: 'text->text', @@ -1426,7 +1457,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Arcee AI: Virtuoso Large', created: 1746478885, - description: 'Virtuoso‑Large is Arcee\'s top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...', + description: + "Virtuoso‑Large is Arcee's top‑tier general‑purpose LLM at 72 B parameters, tuned to tackle cross‑domain reasoning, creative writing and enterprise QA. Unlike many 70 B peers, it retains the 128 k...", context_length: 131072, architecture: { modality: 'text->text', @@ -1466,7 +1498,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-PT', name: 'Baidu: ERNIE 4.5 21B A3B', created: 1755034167, - description: 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', + description: + 'A sophisticated text-based Mixture-of-Experts (MoE) model featuring 21B total parameters with 3B activated per token, delivering exceptional multimodal understanding and generation through heterogeneous MoE structures and modality-isolated routing. Supporting an...', context_length: 120000, architecture: { modality: 'text->text', @@ -1505,7 +1538,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-21B-A3B-Thinking', name: 'Baidu: ERNIE 4.5 21B A3B Thinking', created: 1760048887, - description: 'ERNIE-4.5-21B-A3B-Thinking is Baidu\'s upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.', + description: + "ERNIE-4.5-21B-A3B-Thinking is Baidu's upgraded lightweight MoE model, refined to boost reasoning depth and quality for top-tier performance in logical puzzles, math, science, coding, text generation, and expert-level academic benchmarks.", context_length: 131072, architecture: { modality: 'text->text', @@ -1544,7 +1578,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-300B-A47B-PT', name: 'Baidu: ERNIE 4.5 300B A47B ', created: 1751300139, - description: 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', + description: + 'ERNIE-4.5-300B-A47B is a 300B parameter Mixture-of-Experts (MoE) language model developed by Baidu as part of the ERNIE 4.5 series. It activates 47B parameters per token and supports text generation in...', context_length: 123000, architecture: { modality: 'text->text', @@ -1583,7 +1618,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-28B-A3B-PT', name: 'Baidu: ERNIE 4.5 VL 28B A3B', created: 1755032836, - description: 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', + description: + 'A powerful multimodal Mixture-of-Experts chat model featuring 28B total parameters with 3B activated per token, delivering exceptional text and vision understanding through its innovative heterogeneous MoE structure with modality-isolated routing....', context_length: 30000, architecture: { modality: 'text+image->text', @@ -1624,7 +1660,8 @@ export const models: Array = [ hugging_face_id: 'baidu/ERNIE-4.5-VL-424B-A47B-PT', name: 'Baidu: ERNIE 4.5 VL 424B A47B ', created: 1751300903, - description: 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', + description: + 'ERNIE-4.5-VL-424B-A47B is a multimodal Mixture-of-Experts (MoE) model from Baidu’s ERNIE 4.5 series, featuring 424B total parameters with 47B active per token. It is trained jointly on text and image data...', context_length: 123000, architecture: { modality: 'text+image->text', @@ -1663,7 +1700,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6', created: 1766504997, - description: 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', + description: + 'Seed 1.6 is a general-purpose model released by the ByteDance Seed team. It incorporates multimodal capabilities and adaptive deep thinking with a 256K context window.', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1702,7 +1740,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed 1.6 Flash', created: 1766505011, - description: 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', + description: + 'Seed 1.6 Flash is an ultra-fast multimodal deep thinking model by ByteDance Seed, supporting both text and visual understanding. It features a 256k context window and can generate outputs of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1741,7 +1780,8 @@ export const models: Array = [ hugging_face_id: null, name: 'ByteDance Seed: Seed-2.0-Lite', created: 1773157231, - description: 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', + description: + 'Seed-2.0-Lite is a versatile, cost‑efficient enterprise workhorse that delivers strong multimodal and agent capabilities while offering noticeably lower latency, making it a practical default choice for most production workloads across...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1780,7 +1820,8 @@ export const models: Array = [ hugging_face_id: '', name: 'ByteDance Seed: Seed-2.0-Mini', created: 1772131107, - description: 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', + description: + 'Seed-2.0-mini targets latency-sensitive, high-concurrency, and cost-sensitive scenarios, emphasizing fast response and flexible inference deployment. It delivers performance comparable to ByteDance-Seed-1.6, supports 256k context, four reasoning effort modes (minimal/low/medium/high), multimodal understanding,...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -1819,7 +1860,8 @@ export const models: Array = [ hugging_face_id: 'ByteDance-Seed/UI-TARS-1.5-7B', name: 'ByteDance: UI-TARS 7B ', created: 1753205056, - description: 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', + description: + 'UI-TARS-1.5 is a multimodal vision-language agent optimized for GUI-based environments, including desktop interfaces, web browsers, mobile systems, and games. Built by ByteDance, it builds upon the UI-TARS framework with reinforcement...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -1857,7 +1899,8 @@ export const models: Array = [ hugging_face_id: 'cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition', name: 'Venice: Uncensored (free)', created: 1752094966, - description: 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', + description: + 'Venice Uncensored Dolphin Mistral 24B Venice Edition is a fine-tuned variant of Mistral-Small-24B-Instruct-2501, developed by dphn.ai in collaboration with Venice.ai. This model is designed as an “uncensored” instruct-tuned LLM, preserving...', context_length: 32768, architecture: { modality: 'text->text', @@ -1894,7 +1937,8 @@ export const models: Array = [ hugging_face_id: 'CohereForAI/c4ai-command-a-03-2025', name: 'Cohere: Command A', created: 1741894342, - description: 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', + description: + 'Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases. Compared to other leading proprietary...', context_length: 256000, architecture: { modality: 'text->text', @@ -1932,7 +1976,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R (08-2024)', created: 1724976000, - description: 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', + description: + 'command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and...', context_length: 128000, architecture: { modality: 'text->text', @@ -1972,7 +2017,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Cohere: Command R+ (08-2024)', created: 1724976000, - description: 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', + description: + 'command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint...', context_length: 128000, architecture: { modality: 'text->text', @@ -2012,7 +2058,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Cohere: Command R7B (12-2024)', created: 1734158152, - description: 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', + description: + 'Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2050,7 +2097,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Deep Cogito: Cogito v2.1 671B', created: 1763071233, - description: 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', + description: + 'Cogito v2.1 671B MoE represents one of the strongest open models globally, matching performance of frontier closed and open models. This model is trained using self play with reinforcement learning...', context_length: 128000, architecture: { modality: 'text->text', @@ -2092,7 +2140,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3', name: 'DeepSeek: DeepSeek V3', created: 1735241320, - description: 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', + description: + 'DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations...', context_length: 163840, architecture: { modality: 'text->text', @@ -2133,7 +2182,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3-0324', name: 'DeepSeek: DeepSeek V3 0324', created: 1742824755, - description: 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', + description: + 'DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team. It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well...', context_length: 163840, architecture: { modality: 'text->text', @@ -2180,7 +2230,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1', name: 'DeepSeek: DeepSeek V3.1', created: 1755779628, - description: 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', + description: + 'DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both thinking and non-thinking modes via prompt templates. It extends the DeepSeek-V3 base with a two-phase long-context...', context_length: 32768, architecture: { modality: 'text->text', @@ -2227,7 +2278,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1', name: 'DeepSeek: R1', created: 1737381095, - description: 'DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active in an inference pass....', + description: + "DeepSeek R1 is here: Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass....", context_length: 64000, architecture: { modality: 'text->text', @@ -2269,7 +2321,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-0528', name: 'DeepSeek: R1 0528', created: 1748455170, - description: 'May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It\'s 671B parameters in size, with 37B active...', + description: + "May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active...", context_length: 163840, architecture: { modality: 'text->text', @@ -2315,7 +2368,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Llama-70B', name: 'DeepSeek: R1 Distill Llama 70B', created: 1737663169, - description: 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', + description: + 'DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -2356,7 +2410,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', name: 'DeepSeek: R1 Distill Qwen 32B', created: 1738194830, - description: 'DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI\'s o1-mini across various benchmarks, achieving new...', + description: + "DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI's o1-mini across various benchmarks, achieving new...", context_length: 32768, architecture: { modality: 'text->text', @@ -2396,7 +2451,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.1-Terminus', name: 'DeepSeek: DeepSeek V3.1 Terminus', created: 1758548275, - description: 'DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model\'s original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model\'s...', + description: + "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintains the model's original capabilities while addressing issues reported by users, including language consistency and agent capabilities, further optimizing the model's...", context_length: 163840, architecture: { modality: 'text->text', @@ -2442,7 +2498,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2', name: 'DeepSeek: DeepSeek V3.2', created: 1764594642, - description: 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: + 'DeepSeek-V3.2 is a large language model designed to harmonize high computational efficiency with strong reasoning and agentic tool-use performance. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2490,7 +2547,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Exp', name: 'DeepSeek: DeepSeek V3.2 Exp', created: 1759150481, - description: 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', + description: + 'DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate step between V3.1 and future architectures. It introduces DeepSeek Sparse Attention (DSA), a fine-grained sparse attention mechanism...', context_length: 163840, architecture: { modality: 'text->text', @@ -2535,7 +2593,8 @@ export const models: Array = [ hugging_face_id: 'deepseek-ai/DeepSeek-V3.2-Speciale', name: 'DeepSeek: DeepSeek V3.2 Speciale', created: 1764594837, - description: 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', + description: + 'DeepSeek-V3.2-Speciale is a high-compute variant of DeepSeek-V3.2 optimized for maximum reasoning and agentic performance. It builds on DeepSeek Sparse Attention (DSA) for efficient long-context processing, then scales post-training reinforcement learning...', context_length: 163840, architecture: { modality: 'text->text', @@ -2579,7 +2638,8 @@ export const models: Array = [ hugging_face_id: 'EleutherAI/llemma_7b', name: 'EleutherAI: Llemma 7b', created: 1744643225, - description: 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', + description: + 'Llemma 7B is a language model for mathematics. It was initialized with Code Llama 7B weights, and trained on the Proof-Pile-2 for 200B tokens. Llemma models are particularly strong at...', context_length: 4096, architecture: { modality: 'text->text', @@ -2617,7 +2677,8 @@ export const models: Array = [ hugging_face_id: 'EssentialAI/rnj-1-instruct', name: 'EssentialAI: Rnj 1 Instruct', created: 1765094847, - description: 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', + description: + 'Rnj-1 is an 8B-parameter, dense, open-weight model family developed by Essential AI and trained from scratch with a focus on programming, math, and scientific reasoning. The model demonstrates strong performance...', context_length: 32768, architecture: { modality: 'text->text', @@ -2659,7 +2720,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash', created: 1738769413, - description: 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', + description: + 'Gemini Flash 2.0 offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5). It...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2701,7 +2763,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.0 Flash Lite', created: 1740506212, - description: 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', + description: + 'Gemini 2.0 Flash Lite offers a significantly faster time to first token (TTFT) compared to [Gemini Flash 1.5](/google/gemini-flash-1.5), while maintaining quality on par with larger models like [Gemini Pro 1.5](/google/gemini-pro-1.5),...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2741,7 +2804,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash', created: 1750172488, - description: 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', + description: + 'Gemini 2.5 Flash is Google\'s state-of-the-art workhorse model, specifically designed for advanced reasoning, coding, mathematics, and scientific tasks. It includes built-in "thinking" capabilities, enabling it to provide responses with greater...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2785,7 +2849,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana (Gemini 2.5 Flash Image)', created: 1759870431, - description: 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', + description: + 'Gemini 2.5 Flash Image, a.k.a. "Nano Banana," is now generally available. It is a state of the art image generation model with contextual understanding. It is capable of image generation,...', context_length: 32768, architecture: { modality: 'text+image->text+image', @@ -2825,7 +2890,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite', created: 1753200276, - description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: + 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2869,7 +2935,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Flash Lite Preview 09-2025', created: 1758819686, - description: 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', + description: + 'Gemini 2.5 Flash-Lite is a lightweight reasoning model in the Gemini 2.5 family, optimized for ultra-low latency and cost efficiency. It offers improved throughput, faster token generation, and better performance...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2913,7 +2980,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro', created: 1750169544, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -2957,7 +3025,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 06-05', created: 1749137257, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio->text', @@ -3001,7 +3070,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 2.5 Pro Preview 05-06', created: 1746578513, - description: 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', + description: + 'Gemini 2.5 Pro is Google’s state-of-the-art AI model designed for advanced reasoning, coding, mathematics, and scientific tasks. It employs “thinking” capabilities, enabling it to reason through responses with enhanced accuracy...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3045,7 +3115,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3 Flash Preview', created: 1765987078, - description: 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', + description: + 'Gemini 3 Flash Preview is a high speed, high value thinking model designed for agentic workflows, multi turn chat, and coding assistance. It delivers near Pro level reasoning and tool...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3089,7 +3160,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', created: 1763653797, - description: 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', + description: + 'Nano Banana Pro is Google’s most advanced image-generation and editing model, built on Gemini 3 Pro. It extends the original Nano Banana with significantly improved multimodal reasoning, real-world grounding, and...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3131,7 +3203,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', created: 1772119558, - description: 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', + description: + 'Gemini 3.1 Flash Image Preview, a.k.a. "Nano Banana 2," is Google’s latest state of the art image generation and editing model, delivering Pro-level visual quality at Flash speed. It combines...', context_length: 65536, architecture: { modality: 'text+image->text+image', @@ -3168,7 +3241,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Flash Lite Preview', created: 1772512673, - description: 'Gemini 3.1 Flash Lite Preview is Google\'s high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...', + description: + "Gemini 3.1 Flash Lite Preview is Google's high-efficiency model optimized for high-volume use cases. It outperforms Gemini 2.5 Flash Lite on overall quality and approaches Gemini 2.5 Flash performance across...", context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3212,7 +3286,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Google: Gemini 3.1 Pro Preview', created: 1771509627, - description: 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', + description: + 'Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineering performance, improved agentic reliability, and more efficient token usage across complex workflows. Building on the multimodal foundation...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3256,7 +3331,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Gemini 3.1 Pro Preview Custom Tools', created: 1772045923, - description: 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', + description: + 'Gemini 3.1 Pro Preview Custom Tools is a variant of Gemini 3.1 Pro that improves tool selection behavior by preventing overuse of a general bash tool when more efficient third-party...', context_length: 1048576, architecture: { modality: 'text+image+file+audio+video->text', @@ -3300,7 +3376,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-27b-it', name: 'Google: Gemma 2 27B', created: 1720828800, - description: 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', + description: + 'Gemma 2 27B by Google is an open model built from the same research and technology used to create the [Gemini models](/models?q=gemini). Gemma models are well-suited for a variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3336,7 +3413,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-2-9b-it', name: 'Google: Gemma 2 9B', created: 1719532800, - description: 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', + description: + 'Gemma 2 9B by Google is an advanced, open-source language model that sets a new standard for efficiency and performance in its size class. Designed for a wide variety of...', context_length: 8192, architecture: { modality: 'text->text', @@ -3371,7 +3449,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B', created: 1741902625, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3412,7 +3491,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-12b-it', name: 'Google: Gemma 3 12B (free)', created: 1741902625, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3445,7 +3525,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B', created: 1741756359, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3486,7 +3567,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-27b-it', name: 'Google: Gemma 3 27B (free)', created: 1741756359, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3520,7 +3602,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B', created: 1741905510, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -3559,7 +3642,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3-4b-it', name: 'Google: Gemma 3 4B (free)', created: 1741905510, - description: 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', + description: + 'Gemma 3 introduces multimodality, supporting vision-language input and text outputs. It handles context windows up to 128k tokens, understands over 140 languages, and offers improved math, reasoning, and chat capabilities,...', context_length: 32768, architecture: { modality: 'text+image->text', @@ -3593,7 +3677,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E2B-it', name: 'Google: Gemma 3n 2B (free)', created: 1752074904, - description: 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', + description: + 'Gemma 3n E2B IT is a multimodal, instruction-tuned model developed by Google DeepMind, designed to operate efficiently at an effective parameter size of 2B while leveraging a 6B architecture. Based...', context_length: 8192, architecture: { modality: 'text->text', @@ -3626,7 +3711,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B', created: 1747776824, - description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: + 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 32768, architecture: { modality: 'text->text', @@ -3664,7 +3750,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-3n-E4B-it', name: 'Google: Gemma 3n 4B (free)', created: 1747776824, - description: 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', + description: + 'Gemma 3n E4B-it is optimized for efficient execution on mobile and low-resource devices, such as phones, laptops, and tablets. It supports multimodal inputs—including text, visual data, and audio—enabling diverse tasks...', context_length: 8192, architecture: { modality: 'text->text', @@ -3697,7 +3784,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B ', created: 1775227989, - description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: + 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3743,7 +3831,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-26B-A4B-it', name: 'Google: Gemma 4 26B A4B (free)', created: 1775227989, - description: 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', + description: + 'Gemma 4 26B A4B IT is an instruction-tuned Mixture-of-Experts (MoE) model from Google DeepMind. Despite 25.2B total parameters, only 3.8B activate per token during inference — delivering near-31B quality at...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3780,7 +3869,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B', created: 1775148486, - description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + description: + "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3826,7 +3916,8 @@ export const models: Array = [ hugging_face_id: 'google/gemma-4-31B-it', name: 'Google: Gemma 4 31B (free)', created: 1775148486, - description: 'Gemma 4 31B Instruct is Google DeepMind\'s 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...', + description: + "Gemma 4 31B Instruct is Google DeepMind's 30.7B dense multimodal model supporting text and image input with text output. Features a 256K token context window, configurable thinking/reasoning mode, native function...", context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -3863,7 +3954,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Clip Preview', created: 1774907255, - description: '30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate...', + description: + "30 second duration clips are priced at $0.04 per clip. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate...", context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -3896,7 +3988,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Google: Lyria 3 Pro Preview', created: 1774907286, - description: 'Full-length songs are priced at $0.08 per song. Lyria 3 is Google\'s family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...', + description: + "Full-length songs are priced at $0.08 per song. Lyria 3 is Google's family of music generation models, available through the Gemini API. With Lyria 3, you can generate high-quality, 48kHz...", context_length: 1048576, architecture: { modality: 'text+image->text+audio', @@ -3929,7 +4022,8 @@ export const models: Array = [ hugging_face_id: 'Gryphe/MythoMax-L2-13b', name: 'MythoMax 13B', created: 1688256000, - description: 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', + description: + 'One of the highest performing and most popular fine-tunes of Llama 2 13B, with rich descriptions and roleplay. #merge', context_length: 4096, architecture: { modality: 'text->text', @@ -3973,7 +4067,8 @@ export const models: Array = [ hugging_face_id: 'ibm-granite/granite-4.0-h-micro', name: 'IBM: Granite 4.0 Micro', created: 1760927695, - description: 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', + description: + 'Granite-4.0-H-Micro is a 3B parameter from the Granite 4 family of models. These models are the latest in a series of models released by IBM. They are fine-tuned for long...', context_length: 131000, architecture: { modality: 'text->text', @@ -4009,7 +4104,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury', created: 1750973026, - description: 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', + description: + 'Mercury is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like GPT-4.1 Nano and Claude...', context_length: 128000, architecture: { modality: 'text->text', @@ -4045,7 +4141,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inception: Mercury 2', created: 1772636275, - description: 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', + description: + 'Mercury 2 is an extremely fast reasoning LLM, and the first reasoning diffusion LLM (dLLM). Instead of generating tokens sequentially, Mercury 2 produces and refines multiple tokens in parallel, achieving...', context_length: 128000, architecture: { modality: 'text->text', @@ -4083,7 +4180,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Inception: Mercury Coder', created: 1746033880, - description: 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', + description: + 'Mercury Coder is the first diffusion large language model (dLLM). Applying a breakthrough discrete diffusion approach, the model runs 5-10x faster than even speed optimized models like Claude 3.5 Haiku...', context_length: 128000, architecture: { modality: 'text->text', @@ -4119,7 +4217,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Pi', created: 1728604800, - description: 'Inflection 3 Pi powers Inflection\'s [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...', + description: + "Inflection 3 Pi powers Inflection's [Pi](https://pi.ai) chatbot, including backstory, emotional intelligence, productivity, and safety. It has access to recent news, and excels in scenarios like customer support and roleplay. Pi...", context_length: 8000, architecture: { modality: 'text->text', @@ -4138,12 +4237,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], }, { id: 'inflection/inflection-3-productivity', @@ -4151,7 +4245,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Inflection: Inflection 3 Productivity', created: 1728604800, - description: 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', + description: + 'Inflection 3 Productivity is optimized for following instructions. It is better for tasks requiring JSON output or precise adherence to provided guidelines. It has access to recent news. For emotional...', context_length: 8000, architecture: { modality: 'text->text', @@ -4170,12 +4265,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature', 'top_p'], }, { id: 'kwaipilot/kat-coder-pro-v2', @@ -4183,7 +4273,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Kwaipilot: KAT-Coder-Pro V2', created: 1774649310, - description: 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', + description: + 'KAT-Coder-Pro V2 is the latest high-performance model in KwaiKAT’s KAT-Coder series, designed for complex enterprise-grade software engineering and SaaS integration. It builds on the agentic coding strengths of earlier versions,...', context_length: 256000, architecture: { modality: 'text->text', @@ -4227,7 +4318,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2-24B-A2B', name: 'LiquidAI: LFM2-24B-A2B', created: 1772048711, - description: 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', + description: + 'LFM2-24B-A2B is the largest model in the LFM2 family of hybrid architectures designed for efficient on-device deployment. Built as a 24B parameter Mixture-of-Experts model with only 2B active parameters per...', context_length: 32768, architecture: { modality: 'text->text', @@ -4265,7 +4357,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Instruct', name: 'LiquidAI: LFM2.5-1.2B-Instruct (free)', created: 1768927521, - description: 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', + description: + 'LFM2.5-1.2B-Instruct is a compact, high-performance instruction-tuned model built for fast on-device AI. It delivers strong chat quality in a 1.2B parameter footprint, with efficient edge inference and broad runtime support.', context_length: 32768, architecture: { modality: 'text->text', @@ -4303,7 +4396,8 @@ export const models: Array = [ hugging_face_id: 'LiquidAI/LFM2.5-1.2B-Thinking', name: 'LiquidAI: LFM2.5-1.2B-Thinking (free)', created: 1768927527, - description: 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', + description: + 'LFM2.5-1.2B-Thinking is a lightweight reasoning-focused model optimized for agentic tasks, data extraction, and RAG—while still running comfortably on edge devices. It supports long context (up to 32K tokens) and is...', context_length: 32768, architecture: { modality: 'text->text', @@ -4343,7 +4437,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mancer: Weaver (alpha)', created: 1690934400, - description: 'An attempt to recreate Claude-style verbosity, but don\'t expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.', + description: + "An attempt to recreate Claude-style verbosity, but don't expect the same level of coherence or memory. Meant for use in roleplay/narrative situations.", context_length: 8000, architecture: { modality: 'text->text', @@ -4386,7 +4481,8 @@ export const models: Array = [ hugging_face_id: 'meituan-longcat/LongCat-Flash-Chat', name: 'Meituan: LongCat Flash Chat', created: 1757427658, - description: 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', + description: + 'LongCat-Flash-Chat is a large-scale Mixture-of-Experts (MoE) model with 560B total parameters, of which 18.6B–31.3B (≈27B on average) are dynamically activated per input. It introduces a shortcut-connected MoE design to reduce...', context_length: 131072, architecture: { modality: 'text->text', @@ -4430,7 +4526,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-70B-Instruct', name: 'Meta: Llama 3 70B Instruct', created: 1713398400, - description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 70B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 8192, architecture: { modality: 'text->text', @@ -4467,7 +4564,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3-8B-Instruct', name: 'Meta: Llama 3 8B Instruct', created: 1713398400, - description: 'Meta\'s latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3) launched with a variety of sizes & flavors. This 8B instruct-tuned version was optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 8192, architecture: { modality: 'text->text', @@ -4509,7 +4607,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-70B-Instruct', name: 'Meta: Llama 3.1 70B Instruct', created: 1721692800, - description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...', + description: + "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 70B instruct-tuned version is optimized for high quality dialogue usecases. It has demonstrated strong...", context_length: 131072, architecture: { modality: 'text->text', @@ -4550,7 +4649,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Meta-Llama-3.1-8B-Instruct', name: 'Meta: Llama 3.1 8B Instruct', created: 1721692800, - description: 'Meta\'s latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...', + description: + "Meta's latest class of model (Llama 3.1) launched with a variety of sizes & flavors. This 8B instruct-tuned version is fast and efficient. It has demonstrated strong performance compared to...", context_length: 16384, architecture: { modality: 'text->text', @@ -4594,7 +4694,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-11B-Vision-Instruct', name: 'Meta: Llama 3.2 11B Vision Instruct', created: 1727222400, - description: 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', + description: + 'Llama 3.2 11B Vision is a multimodal model with 11 billion parameters, designed to handle tasks combining visual and textual data. It excels in tasks such as image captioning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -4633,7 +4734,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-1B-Instruct', name: 'Meta: Llama 3.2 1B Instruct', created: 1727222400, - description: 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', + description: + 'Llama 3.2 1B is a 1-billion-parameter language model focused on efficiently performing natural language tasks, such as summarization, dialogue, and multilingual text analysis. Its smaller size allows it to operate...', context_length: 60000, architecture: { modality: 'text->text', @@ -4669,7 +4771,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct', created: 1727222400, - description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: + 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 80000, architecture: { modality: 'text->text', @@ -4705,7 +4808,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.2-3B-Instruct', name: 'Meta: Llama 3.2 3B Instruct (free)', created: 1727222400, - description: 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', + description: + 'Llama 3.2 3B is a 3-billion-parameter multilingual large language model, optimized for advanced natural language processing tasks like dialogue generation, reasoning, and summarization. Designed with the latest transformer architecture, it...', context_length: 131072, architecture: { modality: 'text->text', @@ -4740,7 +4844,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct', created: 1733506137, - description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: + 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 131072, architecture: { modality: 'text->text', @@ -4785,7 +4890,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-3.3-70B-Instruct', name: 'Meta: Llama 3.3 70B Instruct (free)', created: 1733506137, - description: 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', + description: + 'The Meta Llama 3.3 multilingual large language model (LLM) is a pretrained and instruction tuned generative model in 70B (text in/text out). The Llama 3.3 instruction tuned text only model...', context_length: 65536, architecture: { modality: 'text->text', @@ -4822,7 +4928,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Maverick-17B-128E-Instruct', name: 'Meta: Llama 4 Maverick', created: 1743881822, - description: 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', + description: + 'Llama 4 Maverick 17B Instruct (128E) is a high-capacity multimodal language model from Meta, built on a mixture-of-experts (MoE) architecture with 128 experts and 17 billion active parameters per forward...', context_length: 1048576, architecture: { modality: 'text+image->text', @@ -4865,7 +4972,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-4-Scout-17B-16E-Instruct', name: 'Meta: Llama 4 Scout', created: 1743881519, - description: 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', + description: + 'Llama 4 Scout 17B Instruct (16E) is a mixture-of-experts (MoE) language model developed by Meta, activating 17 billion parameters out of a total of 109B. It supports native multimodal input...', context_length: 327680, architecture: { modality: 'text+image->text', @@ -4907,7 +5015,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-3-8B', name: 'Llama Guard 3 8B', created: 1739401318, - description: 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', + description: + 'Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification)...', context_length: 131072, architecture: { modality: 'text->text', @@ -4943,7 +5052,8 @@ export const models: Array = [ hugging_face_id: 'meta-llama/Llama-Guard-4-12B', name: 'Meta: Llama Guard 4 12B', created: 1745975193, - description: 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', + description: + 'Llama Guard 4 is a Llama 4 Scout-derived multimodal pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM...', context_length: 163840, architecture: { modality: 'text+image->text', @@ -4983,7 +5093,8 @@ export const models: Array = [ hugging_face_id: 'microsoft/phi-4', name: 'Microsoft: Phi 4', created: 1736489872, - description: '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', + description: + '[Microsoft Research](/microsoft) Phi-4 is designed to perform well in complex reasoning tasks and can operate efficiently in situations with limited memory or where quick responses are needed. At 14 billion...', context_length: 16384, architecture: { modality: 'text->text', @@ -5025,7 +5136,8 @@ export const models: Array = [ hugging_face_id: 'microsoft/WizardLM-2-8x22B', name: 'WizardLM-2 8x22B', created: 1713225600, - description: 'WizardLM-2 8x22B is Microsoft AI\'s most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...', + description: + "WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to leading proprietary models, and it consistently outperforms all existing state-of-the-art opensource models. It is...", context_length: 65535, architecture: { modality: 'text->text', @@ -5062,7 +5174,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-Text-01', name: 'MiniMax: MiniMax-01', created: 1736915462, - description: 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', + description: + 'MiniMax-01 is a combines MiniMax-Text-01 for text generation and MiniMax-VL-01 for image understanding. It has 456 billion parameters, with 45.9 billion parameters activated per inference, and can handle a context...', context_length: 1000192, architecture: { modality: 'text+image->text', @@ -5081,11 +5194,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'minimax/minimax-m1', @@ -5093,7 +5202,8 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M1', created: 1750200414, - description: 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', + description: + 'MiniMax-M1 is a large-scale, open-weight reasoning model designed for extended context and high-efficiency inference. It leverages a hybrid Mixture-of-Experts (MoE) architecture paired with a custom "lightning attention" mechanism, allowing it...', context_length: 1000000, architecture: { modality: 'text->text', @@ -5134,7 +5244,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2', name: 'MiniMax: MiniMax M2', created: 1761252093, - description: 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', + description: + 'MiniMax-M2 is a compact, high-efficiency large language model optimized for end-to-end coding and agentic workflows. With 10 billion activated parameters (230 billion total), it delivers near-frontier intelligence across general reasoning,...', context_length: 196608, architecture: { modality: 'text->text', @@ -5180,7 +5291,8 @@ export const models: Array = [ hugging_face_id: '', name: 'MiniMax: MiniMax M2-her', created: 1769177239, - description: 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', + description: + 'MiniMax M2-her is a dialogue-first large language model built for immersive roleplay, character-driven chat, and expressive multi-turn conversations. Designed to stay consistent in tone and personality, it supports rich message...', context_length: 65536, architecture: { modality: 'text->text', @@ -5200,11 +5312,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'temperature', - 'top_p', - ], + supported_parameters: ['max_tokens', 'temperature', 'top_p'], }, { id: 'minimax/minimax-m2.1', @@ -5212,7 +5320,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.1', name: 'MiniMax: MiniMax M2.1', created: 1766454997, - description: 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', + description: + 'MiniMax-M2.1 is a lightweight, state-of-the-art large language model optimized for coding, agentic workflows, and modern application development. With only 10 billion activated parameters, it delivers a major jump in real-world...', context_length: 196608, architecture: { modality: 'text->text', @@ -5260,7 +5369,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5', created: 1770908502, - description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: + 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5310,7 +5420,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.5', name: 'MiniMax: MiniMax M2.5 (free)', created: 1770908502, - description: 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', + description: + 'MiniMax-M2.5 is a SOTA large language model designed for real-world productivity. Trained in a diverse range of complex real-world digital working environments, M2.5 builds upon the coding expertise of M2.1...', context_length: 196608, architecture: { modality: 'text->text', @@ -5346,7 +5457,8 @@ export const models: Array = [ hugging_face_id: 'MiniMaxAI/MiniMax-M2.7', name: 'MiniMax: MiniMax M2.7', created: 1773836697, - description: 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', + description: + 'MiniMax-M2.7 is a next-generation large language model designed for autonomous, real-world productivity and continuous improvement. Built to actively participate in its own evolution, M2.7 integrates advanced agentic capabilities through multi-agent...', context_length: 204800, architecture: { modality: 'text->text', @@ -5383,7 +5495,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Codestral 2508', created: 1754079630, - description: 'Mistral\'s cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)', + description: + "Mistral's cutting-edge language model for coding released end of July 2025. Codestral specializes in low-latency, high-frequency tasks such as fill-in-the-middle (FIM), code correction and test generation.\n\n[Blog Post](https://mistral.ai/news/codestral-25-08)", context_length: 256000, architecture: { modality: 'text->text', @@ -5423,7 +5536,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-2-123B-Instruct-2512', name: 'Mistral: Devstral 2 2512', created: 1765285419, - description: 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', + description: + 'Devstral 2 is a state-of-the-art open-source model by Mistral AI specializing in agentic coding. It is a 123B-parameter dense transformer model supporting a 256K context window. Devstral 2 supports exploring...', context_length: 262144, architecture: { modality: 'text->text', @@ -5463,7 +5577,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Devstral Medium', created: 1752161321, - description: 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', + description: + 'Devstral Medium is a high-performance code generation and agentic reasoning model developed jointly by Mistral AI and All Hands AI. Positioned as a step up from Devstral Small, it achieves...', context_length: 131072, architecture: { modality: 'text->text', @@ -5503,7 +5618,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Devstral-Small-2507', name: 'Mistral: Devstral Small 1.1', created: 1752160751, - description: 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', + description: + 'Devstral Small 1.1 is a 24B parameter open-weight language model for software engineering agents, developed by Mistral AI in collaboration with All Hands AI. Finetuned from Mistral Small 3.1 and...', context_length: 131072, architecture: { modality: 'text->text', @@ -5543,7 +5659,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-14B-Instruct-2512', name: 'Mistral: Ministral 3 14B 2512', created: 1764681735, - description: 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', + description: + 'The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5586,7 +5703,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-3B-Instruct-2512', name: 'Mistral: Ministral 3 3B 2512', created: 1764681560, - description: 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', + description: + 'The smallest model in the Ministral 3 family, Ministral 3 3B is a powerful, efficient tiny language model with vision capabilities.', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5629,7 +5747,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Ministral-3-8B-Instruct-2512', name: 'Mistral: Ministral 3 8B 2512', created: 1764681654, - description: 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', + description: + 'A balanced model in the Ministral 3 family, Ministral 3 8B is a powerful, efficient tiny language model with vision capabilities.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5672,7 +5791,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-7B-Instruct-v0.1', name: 'Mistral: Mistral 7B Instruct v0.1', created: 1695859200, - description: 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', + description: + 'A 7.3B parameter model that outperforms Llama 2 13B on all benchmarks, with optimizations for speed and context length.', context_length: 2824, architecture: { modality: 'text->text', @@ -5708,7 +5828,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral Large', created: 1708905600, - description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version `mistral-large-2407`). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', + description: + "This is Mistral AI's flagship model, Mistral Large 2 (version `mistral-large-2407`). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", context_length: 128000, architecture: { modality: 'text->text', @@ -5748,7 +5869,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2407', created: 1731978415, - description: 'This is Mistral AI\'s flagship model, Mistral Large 2 (version mistral-large-2407). It\'s a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....', + description: + "This is Mistral AI's flagship model, Mistral Large 2 (version mistral-large-2407). It's a proprietary weights-available model and excels at reasoning, code, JSON, chat, and more. Read the launch announcement [here](https://mistral.ai/news/mistral-large-2407/)....", context_length: 131072, architecture: { modality: 'text->text', @@ -5788,7 +5910,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral Large 2411', created: 1731978685, - description: 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', + description: + 'Mistral Large 2 2411 is an update of [Mistral Large 2](/mistralai/mistral-large) released together with [Pixtral Large 2411](/mistralai/pixtral-large-2411) It provides a significant upgrade on the previous [Mistral Large 24.07](/mistralai/mistral-large-2407), with notable...', context_length: 131072, architecture: { modality: 'text->text', @@ -5828,7 +5951,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Large 3 2512', created: 1764624472, - description: 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', + description: + 'Mistral Large 3 2512 is Mistral’s most capable model to date, featuring a sparse mixture-of-experts architecture with 41B active parameters (675B total), and released under the Apache 2.0 license.', context_length: 262144, architecture: { modality: 'text+image->text', @@ -5868,7 +5992,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3', created: 1746627341, - description: 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', + description: + 'Mistral Medium 3 is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances state-of-the-art reasoning and multimodal performance with 8× lower cost...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5908,7 +6033,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Mistral Medium 3.1', created: 1755095639, - description: 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', + description: + 'Mistral Medium 3.1 is an updated version of Mistral Medium 3, which is a high-performance enterprise-grade language model designed to deliver frontier-level capabilities at significantly reduced operational cost. It balances...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -5948,7 +6074,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Nemo-Instruct-2407', name: 'Mistral: Mistral Nemo', created: 1721347200, - description: 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', + description: + 'A 12B parameter model with a 128k token context length built by Mistral in collaboration with NVIDIA. The model is multilingual, supporting English, French, German, Spanish, Italian, Portuguese, Chinese, Japanese,...', context_length: 131072, architecture: { modality: 'text->text', @@ -5990,7 +6117,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Saba', created: 1739803239, - description: 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', + description: + 'Mistral Saba is a 24B-parameter language model specifically designed for the Middle East and South Asia, delivering accurate and contextually relevant responses while maintaining efficient performance. Trained on curated regional...', context_length: 32768, architecture: { modality: 'text->text', @@ -6030,7 +6158,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-24B-Instruct-2501', name: 'Mistral: Mistral Small 3', created: 1738255409, - description: 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', + description: + 'Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...', context_length: 32768, architecture: { modality: 'text->text', @@ -6069,7 +6198,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-4-119B-2603', name: 'Mistral: Mistral Small 4', created: 1773695685, - description: 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', + description: + 'Mistral Small 4 is the next major release in the Mistral Small family, unifying the capabilities of several flagship Mistral models into a single system. It combines strong reasoning from...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -6112,7 +6242,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.1-24B-Instruct-2503', name: 'Mistral: Mistral Small 3.1 24B', created: 1742238937, - description: 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', + description: + 'Mistral Small 3.1 24B Instruct is an upgraded variant of Mistral Small 3 (2501), featuring 24 billion parameters with advanced multimodal capabilities. It provides state-of-the-art performance in text-based reasoning and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6152,7 +6283,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mistral-Small-3.2-24B-Instruct-2506', name: 'Mistral: Mistral Small 3.2 24B', created: 1750443016, - description: 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', + description: + 'Mistral-Small-3.2-24B-Instruct-2506 is an updated 24B parameter model from Mistral optimized for instruction following, repetition reduction, and improved function calling. Compared to the 3.1 release, version 3.2 significantly improves accuracy on...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -6195,7 +6327,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Mistral: Mistral Small Creative', created: 1765908653, - description: 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', + description: + 'Mistral Small Creative is an experimental small model designed for creative writing, narrative generation, roleplay and character-driven dialogue, general-purpose instruction following, and conversational agents.', context_length: 32768, architecture: { modality: 'text->text', @@ -6215,10 +6348,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'tool_choice', - 'tools', - ], + supported_parameters: ['tool_choice', 'tools'], }, { id: 'mistralai/mixtral-8x22b-instruct', @@ -6226,7 +6356,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x22B-Instruct-v0.1', name: 'Mistral: Mixtral 8x22B Instruct', created: 1713312000, - description: 'Mistral\'s official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...', + description: + "Mistral's official instruct fine-tuned version of [Mixtral 8x22B](/models/mistralai/mixtral-8x22b). It uses 39B active parameters out of 141B, offering unparalleled cost efficiency for its size. Its strengths include: - strong math, coding,...", context_length: 65536, architecture: { modality: 'text->text', @@ -6266,7 +6397,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Mixtral-8x7B-Instruct-v0.1', name: 'Mistral: Mixtral 8x7B Instruct', created: 1702166400, - description: 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', + description: + 'Mixtral 8x7B Instruct is a pretrained generative Sparse Mixture of Experts, by Mistral AI, for chat and instruction use. Incorporates 8 experts (feed-forward networks) for a total of 47 billion...', context_length: 32768, architecture: { modality: 'text->text', @@ -6308,7 +6440,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Mistral: Pixtral Large 2411', created: 1731977388, - description: 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', + description: + 'Pixtral Large is a 124B parameter, open-weight, multimodal model built on top of [Mistral Large 2](/mistralai/mistral-large-2411). The model is able to understand documents, charts and natural images. The model is...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -6348,7 +6481,8 @@ export const models: Array = [ hugging_face_id: 'mistralai/Voxtral-Small-24B-2507', name: 'Mistral: Voxtral Small 24B 2507', created: 1761835144, - description: 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', + description: + 'Voxtral Small is an enhancement of Mistral Small 3, incorporating state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation and audio understanding. Input audio...', context_length: 32000, architecture: { modality: 'text+audio->text', @@ -6389,7 +6523,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct', name: 'MoonshotAI: Kimi K2 0711', created: 1752263252, - description: 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', + description: + 'Kimi K2 Instruct is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32 billion active per forward pass. It is optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -6428,7 +6563,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Instruct-0905', name: 'MoonshotAI: Kimi K2 0905', created: 1757021147, - description: 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', + description: + 'Kimi K2 0905 is the September update of [Kimi K2 0711](moonshotai/kimi-k2). It is a large-scale Mixture-of-Experts (MoE) language model developed by Moonshot AI, featuring 1 trillion total parameters with 32...', context_length: 262144, architecture: { modality: 'text->text', @@ -6473,7 +6609,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2-Thinking', name: 'MoonshotAI: Kimi K2 Thinking', created: 1762440622, - description: 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', + description: + 'Kimi K2 Thinking is Moonshot AI’s most advanced open reasoning model to date, extending the K2 series into agentic, long-horizon reasoning. Built on the trillion-parameter Mixture-of-Experts (MoE) architecture introduced in...', context_length: 262144, architecture: { modality: 'text->text', @@ -6518,7 +6655,8 @@ export const models: Array = [ hugging_face_id: 'moonshotai/Kimi-K2.5', name: 'MoonshotAI: Kimi K2.5', created: 1769487076, - description: 'Kimi K2.5 is Moonshot AI\'s native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...', + description: + "Kimi K2.5 is Moonshot AI's native multimodal model, delivering state-of-the-art visual coding capability and a self-directed agent swarm paradigm. Built on Kimi K2 with continued pretraining over approximately 15T mixed...", context_length: 262144, architecture: { modality: 'text+image->text', @@ -6567,7 +6705,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Fast', created: 1751910002, - description: 'Morph\'s fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...', + description: + "Morph's fastest apply model for code edits. ~10,500 tokens/sec with 96% accuracy for rapid code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code} {edit_snippet}...", context_length: 81920, architecture: { modality: 'text->text', @@ -6586,11 +6725,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature'], }, { id: 'morph/morph-v3-large', @@ -6598,7 +6733,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Morph: Morph V3 Large', created: 1751910858, - description: 'Morph\'s high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...', + description: + "Morph's high-accuracy apply model for complex code edits. ~4,500 tokens/sec with 98% accuracy for precise code transformations. The model requires the prompt to be in the following format: {instruction} {initial_code}...", context_length: 262144, architecture: { modality: 'text->text', @@ -6617,11 +6753,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'stop', - 'temperature', - ], + supported_parameters: ['max_tokens', 'stop', 'temperature'], }, { id: 'nex-agi/deepseek-v3.1-nex-n1', @@ -6629,7 +6761,8 @@ export const models: Array = [ hugging_face_id: 'nex-agi/DeepSeek-V3.1-Nex-N1', name: 'Nex AGI: DeepSeek V3.1 Nex N1', created: 1765204393, - description: 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', + description: + 'DeepSeek V3.1 Nex-N1 is the flagship release of the Nex-N1 series — a post-trained model designed to highlight agent autonomy, tool use, and real-world productivity. Nex-N1 demonstrates competitive performance across...', context_length: 131072, architecture: { modality: 'text->text', @@ -6665,7 +6798,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-2-Pro-Llama-3-8B', name: 'NousResearch: Hermes 2 Pro - Llama-3 8B', created: 1716768000, - description: 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', + description: + 'Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced...', context_length: 8192, architecture: { modality: 'text->text', @@ -6704,7 +6838,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct', created: 1723766400, - description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6743,7 +6878,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-405B', name: 'Nous: Hermes 3 405B Instruct (free)', created: 1723766400, - description: 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over Hermes 2, including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6778,7 +6914,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-3-Llama-3.1-70B', name: 'Nous: Hermes 3 70B Instruct', created: 1723939200, - description: 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', + description: + 'Hermes 3 is a generalist language model with many improvements over [Hermes 2](/models/nousresearch/nous-hermes-2-mistral-7b-dpo), including advanced agentic capabilities, much better roleplaying, reasoning, multi-turn conversation, long context coherence, and improvements across the...', context_length: 131072, architecture: { modality: 'text->text', @@ -6817,7 +6954,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-405B', name: 'Nous: Hermes 4 405B', created: 1756235463, - description: 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', + description: + 'Hermes 4 is a large-scale reasoning model built on Meta-Llama-3.1-405B and released by Nous Research. It introduces a hybrid reasoning mode, where the model can choose to deliberate internally with...', context_length: 131072, architecture: { modality: 'text->text', @@ -6855,7 +6993,8 @@ export const models: Array = [ hugging_face_id: 'NousResearch/Hermes-4-70B', name: 'Nous: Hermes 4 70B', created: 1756236182, - description: 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', + description: + 'Hermes 4 70B is a hybrid reasoning model from Nous Research, built on Meta-Llama-3.1-70B. It introduces the same hybrid mode as the larger 405B release, allowing the model to either...', context_length: 131072, architecture: { modality: 'text->text', @@ -6893,7 +7032,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF', name: 'NVIDIA: Llama 3.1 Nemotron 70B Instruct', created: 1728950400, - description: 'NVIDIA\'s Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...', + description: + "NVIDIA's Llama 3.1 Nemotron 70B is a language model designed for generating precise and useful responses. Leveraging [Llama 3.1 70B](/models/meta-llama/llama-3.1-70b-instruct) architecture and Reinforcement Learning from Human Feedback (RLHF), it excels...", context_length: 131072, architecture: { modality: 'text->text', @@ -6934,7 +7074,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', name: 'NVIDIA: Llama 3.1 Nemotron Ultra 253B v1', created: 1744115059, - description: 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', + description: + 'Llama-3.1-Nemotron-Ultra-253B-v1 is a large language model (LLM) optimized for advanced reasoning, human-interactive chat, retrieval-augmented generation (RAG), and tool-calling tasks. Derived from Meta’s Llama-3.1-405B-Instruct, it has been significantly customized using Neural...', context_length: 131072, architecture: { modality: 'text->text', @@ -6973,7 +7114,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/Llama-3_3-Nemotron-Super-49B-v1_5', name: 'NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', created: 1760101395, - description: 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', + description: + 'Llama-3.3-Nemotron-Super-49B-v1.5 is a 49B-parameter, English-centric reasoning/chat model derived from Meta’s Llama-3.3-70B-Instruct with a 128K context. It’s post-trained for agentic workflows (RAG, tool calling) via SFT across math, code, science, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7016,7 +7158,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B', created: 1765731275, - description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: + 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 262144, architecture: { modality: 'text->text', @@ -7059,7 +7202,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16', name: 'NVIDIA: Nemotron 3 Nano 30B A3B (free)', created: 1765731275, - description: 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', + description: + 'NVIDIA Nemotron 3 Nano 30B A3B is a small language MoE model with highest compute efficiency and accuracy for developers to build specialized agentic AI systems. The model is fully...', context_length: 256000, architecture: { modality: 'text->text', @@ -7095,7 +7239,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super', created: 1773245239, - description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: + 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7139,7 +7284,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', name: 'NVIDIA: Nemotron 3 Super (free)', created: 1773245239, - description: 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', + description: + 'NVIDIA Nemotron 3 Super is a 120B-parameter open hybrid MoE model, activating just 12B parameters for maximum compute efficiency and accuracy in complex multi-agent applications. Built on a hybrid Mamba-Transformer...', context_length: 262144, architecture: { modality: 'text->text', @@ -7177,7 +7323,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL', created: 1761675565, - description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: + 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -7218,7 +7365,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16', name: 'NVIDIA: Nemotron Nano 12B 2 VL (free)', created: 1761675565, - description: 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', + description: + 'NVIDIA Nemotron Nano 2 VL is a 12-billion-parameter open multimodal reasoning model designed for video understanding and document intelligence. It introduces a hybrid Transformer-Mamba architecture, combining transformer-level accuracy with Mamba’s...', context_length: 128000, architecture: { modality: 'text+image+video->text', @@ -7254,7 +7402,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2', created: 1757106807, - description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: + 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 131072, architecture: { modality: 'text->text', @@ -7297,7 +7446,8 @@ export const models: Array = [ hugging_face_id: 'nvidia/NVIDIA-Nemotron-Nano-9B-v2', name: 'NVIDIA: Nemotron Nano 9B V2 (free)', created: 1757106807, - description: 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', + description: + 'NVIDIA-Nemotron-Nano-9B-v2 is a large language model (LLM) trained from scratch by NVIDIA, and designed as a unified model for both reasoning and non-reasoning tasks. It responds to user queries and...', context_length: 128000, architecture: { modality: 'text->text', @@ -7335,7 +7485,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo', created: 1685232000, - description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', + description: + "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", context_length: 16385, architecture: { modality: 'text->text', @@ -7377,7 +7528,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo (older v0613)', created: 1706140800, - description: 'GPT-3.5 Turbo is OpenAI\'s fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.', + description: + "GPT-3.5 Turbo is OpenAI's fastest model. It can understand and generate natural language or code, and is optimized for chat and traditional completion tasks.\n\nTraining data up to Sep 2021.", context_length: 4095, architecture: { modality: 'text->text', @@ -7419,7 +7571,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo 16k', created: 1693180800, - description: 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', + description: + 'This model offers four times the context length of gpt-3.5-turbo, allowing it to support approximately 20 pages of text in a single request at a higher cost. Training data: up...', context_length: 16385, architecture: { modality: 'text->text', @@ -7462,7 +7615,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-3.5 Turbo Instruct', created: 1695859200, - description: 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', + description: + 'This model is a variant of GPT-3.5 Turbo tuned for instructional prompts and omitting chat-related optimizations. Training data: up to Sep 2021.', context_length: 4095, architecture: { modality: 'text->text', @@ -7502,7 +7656,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4', created: 1685232000, - description: 'OpenAI\'s flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...', + description: + "OpenAI's flagship model, GPT-4 is a large-scale multimodal language model capable of solving difficult problems with greater accuracy than previous models due to its broader general knowledge and advanced reasoning...", context_length: 8191, architecture: { modality: 'text->text', @@ -7545,7 +7700,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 (older v0314)', created: 1685232000, - description: 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', + description: + 'GPT-4-0314 is the first version of GPT-4 released, with a context length of 8,192 tokens, and was supported until June 14. Training data: up to Sep 2021.', context_length: 8191, architecture: { modality: 'text->text', @@ -7587,7 +7743,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo (older v1106)', created: 1699228800, - description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', + description: + 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to April 2023.', context_length: 128000, architecture: { modality: 'text->text', @@ -7629,7 +7786,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo', created: 1712620800, - description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', + description: + 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling.\n\nTraining data: up to December 2023.', context_length: 128000, architecture: { modality: 'text+image->text', @@ -7671,7 +7829,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4 Turbo Preview', created: 1706140800, - description: 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', + description: + 'The preview GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Training data: up to Dec 2023. **Note:** heavily rate limited by OpenAI while...', context_length: 128000, architecture: { modality: 'text->text', @@ -7713,7 +7872,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1', created: 1744651385, - description: 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', + description: + 'GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world software engineering, and long-context reasoning. It supports a 1 million token context window and outperforms GPT-4o and...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7752,7 +7912,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Mini', created: 1744651381, - description: 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', + description: + 'GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially lower latency and cost. It retains a 1 million token context window and scores 45.1% on hard...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7791,7 +7952,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4.1 Nano', created: 1744651369, - description: 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', + description: + 'For tasks that demand low latency, GPT‑4.1 nano is the fastest and cheapest model in the GPT-4.1 series. It delivers exceptional performance at a small size with its 1 million...', context_length: 1047576, architecture: { modality: 'text+image+file->text', @@ -7830,7 +7992,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7875,7 +8038,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-05-13)', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7919,7 +8083,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (2024-08-06)', created: 1722902400, - description: 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', + description: + 'The 2024-08-06 version of GPT-4o offers improved performance in structured outputs, with the ability to supply a JSON schema in the respone_format. Read more [here](https://openai.com/index/introducing-structured-outputs-in-the-api/). GPT-4o ("o" for "omni") is...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -7964,7 +8129,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o (2024-11-20)', created: 1732127594, - description: 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', + description: + 'The 2024-11-20 version of GPT-4o offers a leveled-up creative writing ability with more natural, engaging, and tailored writing to improve relevance & readability. It’s also better at working with uploaded...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8008,7 +8174,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Audio', created: 1755233061, - description: 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', + description: + 'The gpt-4o-audio-preview model adds support for audio inputs as prompts. This enhancement allows the model to detect nuances within audio recordings and add depth to generated user experiences. Audio outputs...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -8051,7 +8218,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini', created: 1721260800, - description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', + description: + "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8096,7 +8264,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o-mini (2024-07-18)', created: 1721260800, - description: 'GPT-4o mini is OpenAI\'s newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...', + description: + "GPT-4o mini is OpenAI's newest model after [GPT-4 Omni](/models/openai/gpt-4o), supporting both text and image inputs with text outputs. As their most advanced small model, it is many multiples more affordable...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8140,7 +8309,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o-mini Search Preview', created: 1741818122, - description: 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: + 'GPT-4o mini Search Preview is a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8173,7 +8343,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-4o Search Preview', created: 1741817949, - description: 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', + description: + 'GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.', context_length: 128000, architecture: { modality: 'text->text', @@ -8206,7 +8377,8 @@ export const models: Array = [ hugging_face_id: null, name: 'OpenAI: GPT-4o (extended)', created: 1715558400, - description: 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', + description: + 'GPT-4o ("o" for "omni") is OpenAI\'s latest AI model, supporting both text and image inputs with text outputs. It maintains the intelligence level of [GPT-4 Turbo](/models/openai/gpt-4-turbo) while being twice as...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8249,7 +8421,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5', created: 1754587413, - description: 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', + description: + 'GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and accuracy...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8288,7 +8461,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Chat', created: 1754587837, - description: 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', + description: + 'GPT-5 Chat is designed for advanced, natural, multimodal, and context-aware conversations for enterprise applications.', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8322,7 +8496,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Codex', created: 1758643403, - description: 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8359,7 +8534,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image', created: 1760447986, - description: '[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI\'s GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1\'s superior instruction following,...', + description: + "[GPT-5](https://openrouter.ai/openai/gpt-5) Image combines OpenAI's GPT-5 model with state-of-the-art image generation capabilities. It offers major improvements in reasoning, code quality, and user experience while incorporating GPT Image 1's superior instruction following,...", context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8405,7 +8581,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Image Mini', created: 1760624583, - description: 'GPT-5 Image Mini combines OpenAI\'s advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...', + description: + "GPT-5 Image Mini combines OpenAI's advanced language capabilities, powered by [GPT-5 Mini](https://openrouter.ai/openai/gpt-5-mini), with GPT Image 1 Mini for efficient image generation. This natively multimodal model features superior instruction following, text...", context_length: 400000, architecture: { modality: 'text+image+file->text+image', @@ -8451,7 +8628,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Mini', created: 1754587407, - description: 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', + description: + 'GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks. It provides the same instruction-following and safety-tuning benefits as GPT-5, but with reduced latency and cost....', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8490,7 +8668,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Nano', created: 1754587402, - description: 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', + description: + 'GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer tools, rapid interactions, and ultra-low latency environments. While limited in reasoning depth compared to its larger...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8529,7 +8708,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5 Pro', created: 1759776663, - description: 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', + description: + 'GPT-5 Pro is OpenAI’s most advanced model, offering major improvements in reasoning, code quality, and user experience. It is optimized for complex tasks that require step-by-step reasoning, instruction following, and...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8566,7 +8746,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1', created: 1763060305, - description: 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', + description: + 'GPT-5.1 is the latest frontier-grade model in the GPT-5 series, offering stronger general-purpose reasoning, improved instruction adherence, and a more natural conversational style compared to GPT-5. It uses adaptive reasoning...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8605,7 +8786,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1 Chat', created: 1763060302, - description: 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: + 'GPT-5.1 Chat (AKA Instant is the fast, lightweight member of the 5.1 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8642,7 +8824,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex', created: 1763060298, - description: 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8680,7 +8863,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Max', created: 1764878934, - description: 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', + description: + 'GPT-5.1-Codex-Max is OpenAI’s latest agentic coding model, designed for long-running, high-context software development tasks. It is based on an updated version of the 5.1 reasoning stack and trained on agentic...', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8719,7 +8903,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.1-Codex-Mini', created: 1763057820, - description: 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', + description: + 'GPT-5.1-Codex-Mini is a smaller and faster version of GPT-5.1-Codex', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8757,7 +8942,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2', created: 1765389775, - description: 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', + description: + 'GPT-5.2 is the latest frontier-grade model in the GPT-5 series, offering stronger agentic and long context perfomance compared to GPT-5.1. It uses adaptive reasoning to allocate computation dynamically, responding quickly...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8796,7 +8982,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Chat', created: 1765389783, - description: 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', + description: + 'GPT-5.2 Chat (AKA Instant) is the fast, lightweight member of the 5.2 family, optimized for low-latency chat while retaining strong general intelligence. It uses adaptive reasoning to selectively “think” on...', context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8833,7 +9020,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2-Codex', created: 1768409315, - description: 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', + description: + 'GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and coding workflows. It is designed for both interactive development sessions and long, independent execution of complex engineering tasks....', context_length: 400000, architecture: { modality: 'text+image->text', @@ -8872,7 +9060,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.2 Pro', created: 1765389780, - description: 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', + description: + 'GPT-5.2 Pro is OpenAI’s most advanced model, offering major improvements in agentic coding and long context performance over GPT-5 Pro. It is optimized for complex tasks that require step-by-step reasoning,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8909,7 +9098,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3 Chat', created: 1772564061, - description: 'GPT-5.3 Chat is an update to ChatGPT\'s most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...', + description: + "GPT-5.3 Chat is an update to ChatGPT's most-used model that makes everyday conversations smoother, more useful, and more directly helpful. It delivers more accurate answers with better contextualization and significantly...", context_length: 128000, architecture: { modality: 'text+image+file->text', @@ -8946,7 +9136,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.3-Codex', created: 1771959164, - description: 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', + description: + 'GPT-5.3-Codex is OpenAI’s most advanced agentic coding model, combining the frontier software engineering performance of GPT-5.2-Codex with the broader reasoning and professional knowledge capabilities of GPT-5.2. It achieves state-of-the-art results...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -8985,7 +9176,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4', created: 1772734352, - description: 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', + description: + 'GPT-5.4 is OpenAI’s latest frontier model, unifying the Codex and GPT lines into a single system. It features a 1M+ token context window (922K input, 128K output) with support for...', context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9024,7 +9216,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Mini', created: 1773748178, - description: 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', + description: + 'GPT-5.4 mini brings the core capabilities of GPT-5.4 to a faster, more efficient model optimized for high-throughput workloads. It supports text and image inputs with strong performance across reasoning, coding,...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9063,7 +9256,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Nano', created: 1773748187, - description: 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', + description: + 'GPT-5.4 nano is the most lightweight and cost-efficient variant of the GPT-5.4 family, optimized for speed-critical and high-volume tasks. It supports text and image inputs and is designed for low-latency...', context_length: 400000, architecture: { modality: 'text+image+file->text', @@ -9102,7 +9296,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT-5.4 Pro', created: 1772734366, - description: 'GPT-5.4 Pro is OpenAI\'s most advanced model, building on GPT-5.4\'s unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...', + description: + "GPT-5.4 Pro is OpenAI's most advanced model, building on GPT-5.4's unified architecture with enhanced reasoning capabilities for complex, high-stakes tasks. It features a 1M+ token context window (922K input, 128K...", context_length: 1050000, architecture: { modality: 'text+image+file->text', @@ -9140,7 +9335,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio', created: 1768862569, - description: 'The gpt-audio model is OpenAI\'s first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...', + description: + "The gpt-audio model is OpenAI's first generally available audio model. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Audio is priced...", context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9183,7 +9379,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: GPT Audio Mini', created: 1768859419, - description: 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', + description: + 'A cost-efficient version of GPT Audio. The new snapshot features an upgraded decoder for more natural sounding voices and maintains better voice consistency. Input is priced at $0.60 per million...', context_length: 128000, architecture: { modality: 'text+audio->text+audio', @@ -9226,7 +9423,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b', created: 1754414231, - description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: + 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9274,7 +9472,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-120b', name: 'OpenAI: gpt-oss-120b (free)', created: 1754414231, - description: 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', + description: + 'gpt-oss-120b is an open-weight, 117B-parameter Mixture-of-Experts (MoE) language model from OpenAI designed for high-reasoning, agentic, and general-purpose production use cases. It activates 5.1B parameters per forward pass and is optimized...', context_length: 131072, architecture: { modality: 'text->text', @@ -9310,7 +9509,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b', created: 1754414229, - description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: + 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9359,7 +9559,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-20b', name: 'OpenAI: gpt-oss-20b (free)', created: 1754414229, - description: 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', + description: + 'gpt-oss-20b is an open-weight 21B parameter model released by OpenAI under the Apache 2.0 license. It uses a Mixture-of-Experts (MoE) architecture with 3.6B active parameters per forward pass, optimized for...', context_length: 131072, architecture: { modality: 'text->text', @@ -9395,7 +9596,8 @@ export const models: Array = [ hugging_face_id: 'openai/gpt-oss-safeguard-20b', name: 'OpenAI: gpt-oss-safeguard-20b', created: 1761752836, - description: 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', + description: + 'gpt-oss-safeguard-20b is a safety reasoning model from OpenAI built upon gpt-oss-20b. This open-weight, 21B-parameter Mixture-of-Experts (MoE) model offers lower latency for safety tasks like content classification, LLM filtering, and trust...', context_length: 131072, architecture: { modality: 'text->text', @@ -9434,7 +9636,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1', created: 1734459999, - description: 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', + description: + 'The latest and strongest model family from OpenAI, o1 is designed to spend more time thinking before responding. The o1 model series is trained with large-scale reinforcement learning to reason...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9471,7 +9674,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o1-pro', created: 1742423211, - description: 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', + description: + 'The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9505,7 +9709,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3', created: 1744823457, - description: 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', + description: + 'o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science, coding, and visual reasoning tasks. It also excels at technical writing and instruction-following....', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9543,7 +9748,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Deep Research', created: 1760129661, - description: 'o3-deep-research is OpenAI\'s advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', + description: + "o3-deep-research is OpenAI's advanced model for deep research, designed to tackle complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9589,7 +9795,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini', created: 1738351721, - description: 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', + description: + 'OpenAI o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and coding. This model supports the `reasoning_effort` parameter, which can be set to...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9626,7 +9833,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Mini High', created: 1739372611, - description: 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', + description: + 'OpenAI o3-mini-high is the same model as [o3-mini](/openai/o3-mini) with reasoning_effort set to high. o3-mini is a cost-efficient language model optimized for STEM reasoning tasks, particularly excelling in science, mathematics, and...', context_length: 200000, architecture: { modality: 'text+file->text', @@ -9663,7 +9871,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o3 Pro', created: 1749598352, - description: 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', + description: + 'The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9700,7 +9909,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini', created: 1744820942, - description: 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', + description: + 'OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining strong multimodal and agentic capabilities. It supports tool use and demonstrates competitive reasoning...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9738,7 +9948,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini Deep Research', created: 1760129642, - description: 'o4-mini-deep-research is OpenAI\'s faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the \'web_search\' tool which adds additional cost.', + description: + "o4-mini-deep-research is OpenAI's faster, more affordable deep research model—ideal for tackling complex, multi-step research tasks.\n\nNote: This model always uses the 'web_search' tool which adds additional cost.", context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9784,7 +9995,8 @@ export const models: Array = [ hugging_face_id: '', name: 'OpenAI: o4 Mini High', created: 1744824212, - description: 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', + description: + 'OpenAI o4-mini-high is the same model as [o4-mini](/openai/o4-mini) with reasoning_effort set to high. OpenAI o4-mini is a compact reasoning model in the o-series, optimized for fast, cost-efficient performance while retaining...', context_length: 200000, architecture: { modality: 'text+image+file->text', @@ -9822,7 +10034,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Auto Router', created: 1699401600, - description: 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', + description: + 'Your prompt will be processed by a meta-model and routed to one of dozens of models (see below), optimizing for the best possible output. To see which model was used,...', context_length: 2000000, architecture: { modality: 'text+image+file+audio+video->text+image', @@ -9872,7 +10085,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Body Builder (beta)', created: 1764903653, - description: 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', + description: + 'Transform your natural language requests into structured OpenRouter API request objects. Describe what you want to accomplish with AI models, and Body Builder will construct the appropriate API calls. Example:...', context_length: 128000, architecture: { modality: 'text->text', @@ -9891,8 +10105,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - ], + supported_parameters: [], }, { id: 'openrouter/free', @@ -9900,7 +10113,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Free Models Router', created: 1769917427, - description: 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', + description: + 'The simplest way to get free inference. openrouter/free is a router that selects free models at random from the models available on OpenRouter. The router smartly filters for models that...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -9944,7 +10158,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar', created: 1738013808, - description: 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', + description: + 'Sonar is lightweight, affordable, fast, and simple to use — now featuring citations and the ability to customize sources. It is designed for companies seeking to integrate lightweight question-and-answer features...', context_length: 127072, architecture: { modality: 'text+image->text', @@ -9980,7 +10195,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Deep Research', created: 1741311246, - description: 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', + description: + 'Sonar Deep Research is a research-focused model designed for multi-step retrieval, synthesis, and reasoning across complex topics. It autonomously searches, reads, and evaluates sources, refining its approach as it gathers...', context_length: 128000, architecture: { modality: 'text->text', @@ -10019,7 +10235,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro', created: 1741312423, - description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', + description: + 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) For enterprises seeking more advanced capabilities, the Sonar Pro API can handle in-depth, multi-step queries with added extensibility, like...', context_length: 200000, architecture: { modality: 'text+image->text', @@ -10055,7 +10272,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Pro Search', created: 1761854366, - description: 'Exclusively available on the OpenRouter API, Sonar Pro\'s new Pro Search mode is Perplexity\'s most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...', + description: + "Exclusively available on the OpenRouter API, Sonar Pro's new Pro Search mode is Perplexity's most advanced agentic search system. It is designed for deeper reasoning and analysis. Pricing is based...", context_length: 200000, architecture: { modality: 'text+image->text', @@ -10094,7 +10312,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Perplexity: Sonar Reasoning Pro', created: 1741313308, - description: 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', + description: + 'Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perplexity.ai/guides/pricing#detailed-pricing-breakdown-for-sonar-reasoning-pro-and-sonar-pro) Sonar Reasoning Pro is a premier reasoning model powered by DeepSeek R1 with Chain of Thought (CoT). Designed for...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10132,7 +10351,8 @@ export const models: Array = [ hugging_face_id: 'PrimeIntellect/INTELLECT-3-FP8', name: 'Prime Intellect: INTELLECT-3', created: 1764212534, - description: 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', + description: + 'INTELLECT-3 is a 106B-parameter Mixture-of-Experts model (12B active) post-trained from GLM-4.5-Air-Base using supervised fine-tuning (SFT) followed by large-scale reinforcement learning (RL). It offers state-of-the-art performance for its size across math,...', context_length: 131072, architecture: { modality: 'text->text', @@ -10173,7 +10393,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-72B-Instruct', name: 'Qwen2.5 72B Instruct', created: 1726704000, - description: 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: + 'Qwen2.5 72B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10214,7 +10435,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-7B-Instruct', name: 'Qwen: Qwen2.5 7B Instruct', created: 1729036800, - description: 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', + description: + 'Qwen2.5 7B is the latest series of Qwen large language models. Qwen2.5 brings the following improvements upon Qwen2: - Significantly more knowledge and has greatly improved capabilities in coding and...', context_length: 32768, architecture: { modality: 'text->text', @@ -10256,7 +10478,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-32B-Instruct', name: 'Qwen2.5 Coder 32B Instruct', created: 1731368400, - description: 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', + description: + 'Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). Qwen2.5-Coder brings the following improvements upon CodeQwen1.5: - Significantly improvements in **code generation**, **code reasoning**...', context_length: 32768, architecture: { modality: 'text->text', @@ -10292,7 +10515,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Max ', created: 1738402289, - description: 'Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It\'s a large-scale MoE model that has been pretrained on over 20 trillion...', + description: + "Qwen-Max, based on Qwen2.5, provides the best inference performance among [Qwen models](/qwen), especially for complex multi-step tasks. It's a large-scale MoE model that has been pretrained on over 20 trillion...", context_length: 32768, architecture: { modality: 'text->text', @@ -10329,7 +10553,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Plus', created: 1738409840, - description: 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', + description: + 'Qwen-Plus, based on the Qwen2.5 foundation model, is a 131K context model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10366,7 +10591,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728', created: 1757347599, - description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: + 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10403,7 +10629,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen Plus 0728 (thinking)', created: 1757347599, - description: 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', + description: + 'Qwen Plus 0728, based on the Qwen3 foundation model, is a 1 million context hybrid reasoning model with a balanced performance, speed, and cost combination.', context_length: 1000000, architecture: { modality: 'text->text', @@ -10442,7 +10669,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen-Turbo', created: 1738410974, - description: 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', + description: + 'Qwen-Turbo, based on Qwen2.5, is a 1M context model that provides fast speed and low cost, suitable for simple tasks.', context_length: 131072, architecture: { modality: 'text->text', @@ -10479,7 +10707,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Max', created: 1738434304, - description: 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', + description: + 'Qwen VL Max is a visual understanding model with 7500 tokens context length. It excels in delivering optimal performance for a broader spectrum of complex tasks.\n', context_length: 131072, architecture: { modality: 'text+image->text', @@ -10515,7 +10744,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen VL Plus', created: 1738731255, - description: 'Qwen\'s Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...', + description: + "Qwen's Enhanced Large Visual Language Model. Significantly upgraded for detailed recognition capabilities and text recognition abilities, supporting ultra-high pixel resolutions up to millions of pixels and extreme aspect ratios for...", context_length: 131072, architecture: { modality: 'text+image->text', @@ -10550,7 +10780,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-Coder-7B-Instruct', name: 'Qwen: Qwen2.5 Coder 7B Instruct', created: 1744734887, - description: 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', + description: + 'Qwen2.5-Coder-7B-Instruct is a 7B parameter instruction-tuned language model optimized for code-related tasks such as code generation, reasoning, and bug fixing. Based on the Qwen2.5 architecture, it incorporates enhancements like RoPE,...', context_length: 32768, architecture: { modality: 'text->text', @@ -10587,7 +10818,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-32B-Instruct', name: 'Qwen: Qwen2.5 VL 32B Instruct', created: 1742839838, - description: 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', + description: + 'Qwen2.5-VL-32B is a multimodal vision-language model fine-tuned through reinforcement learning for enhanced mathematical reasoning, structured outputs, and visual problem-solving capabilities. It excels at visual analysis tasks, including object recognition, textual...', context_length: 128000, architecture: { modality: 'text+image->text', @@ -10626,7 +10858,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen2.5-VL-72B-Instruct', name: 'Qwen: Qwen2.5 VL 72B Instruct', created: 1738410311, - description: 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', + description: + 'Qwen2.5-VL is proficient in recognizing common objects such as flowers, birds, fish, and insects. It is also highly capable of analyzing texts, charts, icons, graphics, and layouts within images.', context_length: 32768, architecture: { modality: 'text+image->text', @@ -10666,7 +10899,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-14B', name: 'Qwen: Qwen3 14B', created: 1745876478, - description: 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: + 'Qwen3-14B is a dense 14.8B parameter causal language model from the Qwen3 series, designed for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -10712,7 +10946,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B', name: 'Qwen: Qwen3 235B A22B', created: 1745875757, - description: 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', + description: + 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass. It supports seamless switching between a "thinking" mode for complex reasoning, math, and...', context_length: 131072, architecture: { modality: 'text->text', @@ -10750,7 +10985,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Instruct-2507', name: 'Qwen: Qwen3 235B A22B Instruct 2507', created: 1753119555, - description: 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', + description: + 'Qwen3-235B-A22B-Instruct-2507 is a multilingual, instruction-tuned mixture-of-experts language model based on the Qwen3-235B architecture, with 22B active parameters per forward pass. It is optimized for general-purpose text generation, including instruction following,...', context_length: 262144, architecture: { modality: 'text->text', @@ -10798,7 +11034,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-235B-A22B-Thinking-2507', name: 'Qwen: Qwen3 235B A22B Thinking 2507', created: 1753449557, - description: 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', + description: + 'Qwen3-235B-A22B-Thinking-2507 is a high-performance, open-weight Mixture-of-Experts (MoE) language model optimized for complex reasoning tasks. It activates 22B of its 235B parameters per forward pass and natively supports up to 262,144...', context_length: 131072, architecture: { modality: 'text->text', @@ -10843,7 +11080,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B', name: 'Qwen: Qwen3 30B A3B', created: 1745878604, - description: 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', + description: + 'Qwen3, the latest generation in the Qwen large language model series, features both dense and mixture-of-experts (MoE) architectures to excel in reasoning, multilingual support, and advanced agent tasks. Its unique...', context_length: 40960, architecture: { modality: 'text->text', @@ -10889,7 +11127,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Instruct-2507', name: 'Qwen: Qwen3 30B A3B Instruct 2507', created: 1753806965, - description: 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', + description: + 'Qwen3-30B-A3B-Instruct-2507 is a 30.5B-parameter mixture-of-experts language model from Qwen, with 3.3B active parameters per inference. It operates in non-thinking mode and is designed for high-quality instruction following, multilingual understanding, and...', context_length: 262144, architecture: { modality: 'text->text', @@ -10932,7 +11171,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-30B-A3B-Thinking-2507', name: 'Qwen: Qwen3 30B A3B Thinking 2507', created: 1756399192, - description: 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', + description: + 'Qwen3-30B-A3B-Thinking-2507 is a 30B parameter Mixture-of-Experts reasoning model optimized for complex tasks requiring extended multi-step thinking. The model is designed specifically for “thinking mode,” where internal reasoning traces are separated...', context_length: 131072, architecture: { modality: 'text->text', @@ -10978,7 +11218,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-32B', name: 'Qwen: Qwen3 32B', created: 1745875945, - description: 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', + description: + 'Qwen3-32B is a dense 32.8B parameter causal language model from the Qwen3 series, optimized for both complex reasoning and efficient dialogue. It supports seamless switching between a "thinking" mode for...', context_length: 40960, architecture: { modality: 'text->text', @@ -11024,7 +11265,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-8B', name: 'Qwen: Qwen3 8B', created: 1745876632, - description: 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', + description: + 'Qwen3-8B is a dense 8.2B parameter causal language model from the Qwen3 series, designed for both reasoning-heavy tasks and efficient dialogue. It supports seamless switching between "thinking" mode for math,...', context_length: 40960, architecture: { modality: 'text->text', @@ -11070,7 +11312,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B', created: 1753230546, - description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: + 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262144, architecture: { modality: 'text->text', @@ -11114,7 +11357,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', name: 'Qwen: Qwen3 Coder 30B A3B Instruct', created: 1753972379, - description: 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', + description: + 'Qwen3-Coder-30B-A3B-Instruct is a 30.5B parameter Mixture-of-Experts (MoE) model with 128 experts (8 active per forward pass), designed for advanced code generation, repository-scale understanding, and agentic tool use. Built on the...', context_length: 160000, architecture: { modality: 'text->text', @@ -11155,7 +11399,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Flash', created: 1758115536, - description: 'Qwen3 Coder Flash is Alibaba\'s fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...', + description: + "Qwen3 Coder Flash is Alibaba's fast and cost efficient version of their proprietary Qwen3 Coder Plus. It is a powerful coding agent model specializing in autonomous programming via tool calling...", context_length: 1000000, architecture: { modality: 'text->text', @@ -11192,7 +11437,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-Next', name: 'Qwen: Qwen3 Coder Next', created: 1770164101, - description: 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', + description: + 'Qwen3-Coder-Next is an open-weight causal language model optimized for coding agents and local development workflows. It uses a sparse MoE design with 80B total parameters and only 3B activated per...', context_length: 262144, architecture: { modality: 'text->text', @@ -11236,7 +11482,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Coder Plus', created: 1758662707, - description: 'Qwen3 Coder Plus is Alibaba\'s proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...', + description: + "Qwen3 Coder Plus is Alibaba's proprietary version of the Open Source Qwen3 Coder 480B A35B. It is a powerful coding agent model specializing in autonomous programming via tool calling and...", context_length: 1000000, architecture: { modality: 'text->text', @@ -11274,7 +11521,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', name: 'Qwen: Qwen3 Coder 480B A35B (free)', created: 1753230546, - description: 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', + description: + 'Qwen3-Coder-480B-A35B-Instruct is a Mixture-of-Experts (MoE) code generation model developed by the Qwen team. It is optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning over...', context_length: 262000, architecture: { modality: 'text->text', @@ -11311,7 +11559,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3 Max', created: 1758662808, - description: 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', + description: + 'Qwen3-Max is an updated release built on the Qwen3 series, offering major improvements in reasoning, instruction following, multilingual support, and long-tail knowledge coverage compared to the January 2025 version. It...', context_length: 262144, architecture: { modality: 'text->text', @@ -11348,7 +11597,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3 Max Thinking', created: 1770671901, - description: 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', + description: + 'Qwen3-Max-Thinking is the flagship reasoning model in the Qwen3 series, designed for high-stakes cognitive tasks that require deep, multi-step reasoning. By significantly scaling model capacity and reinforcement learning compute, it...', context_length: 262144, architecture: { modality: 'text->text', @@ -11387,7 +11637,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct', created: 1757612213, - description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: + 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11430,7 +11681,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', name: 'Qwen: Qwen3 Next 80B A3B Instruct (free)', created: 1757612213, - description: 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', + description: + 'Qwen3-Next-80B-A3B-Instruct is an instruction-tuned chat model in the Qwen3-Next series optimized for fast, stable responses without “thinking” traces. It targets complex tasks across reasoning, code generation, knowledge QA, and multilingual...', context_length: 262144, architecture: { modality: 'text->text', @@ -11469,7 +11721,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-Next-80B-A3B-Thinking', name: 'Qwen: Qwen3 Next 80B A3B Thinking', created: 1757612284, - description: 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', + description: + 'Qwen3-Next-80B-A3B-Thinking is a reasoning-first chat model in the Qwen3-Next line that outputs structured “thinking” traces by default. It’s designed for hard multi-step problems; math proofs, code synthesis/debugging, logic, and agentic...', context_length: 131072, architecture: { modality: 'text->text', @@ -11514,7 +11767,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Instruct', name: 'Qwen: Qwen3 VL 235B A22B Instruct', created: 1758668687, - description: 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', + description: + 'Qwen3-VL-235B-A22B Instruct is an open-weight multimodal model that unifies strong text generation with visual understanding across images and video. The Instruct model targets general vision-language use (VQA, document parsing, chart/table...', context_length: 262144, architecture: { modality: 'text+image->text', @@ -11558,7 +11812,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-235B-A22B-Thinking', name: 'Qwen: Qwen3 VL 235B A22B Thinking', created: 1758668690, - description: 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', + description: + 'Qwen3-VL-235B-A22B Thinking is a multimodal model that unifies strong text generation with visual understanding across images and video. The Thinking model is optimized for multimodal reasoning in STEM and math....', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11601,7 +11856,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Instruct', name: 'Qwen: Qwen3 VL 30B A3B Instruct', created: 1759794476, - description: 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', + description: + 'Qwen3-VL-30B-A3B-Instruct is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Instruct variant optimizes instruction-following for general multimodal tasks. It excels in perception...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11644,7 +11900,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-30B-A3B-Thinking', name: 'Qwen: Qwen3 VL 30B A3B Thinking', created: 1759794479, - description: 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', + description: + 'Qwen3-VL-30B-A3B-Thinking is a multimodal model that unifies strong text generation with visual understanding for images and videos. Its Thinking variant enhances reasoning in STEM, math, and complex tasks. It excels...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11687,7 +11944,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-32B-Instruct', name: 'Qwen: Qwen3 VL 32B Instruct', created: 1761231332, - description: 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', + description: + 'Qwen3-VL-32B-Instruct is a large-scale multimodal vision-language model designed for high-precision understanding and reasoning across text, images, and video. With 32 billion parameters, it combines deep visual perception with advanced text...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11723,7 +11981,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Instruct', name: 'Qwen: Qwen3 VL 8B Instruct', created: 1760463308, - description: 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', + description: + 'Qwen3-VL-8B-Instruct is a multimodal vision-language model from the Qwen3-VL series, built for high-fidelity understanding and reasoning across text, images, and video. It features improved multimodal fusion with Interleaved-MRoPE for long-horizon...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11766,7 +12025,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3-VL-8B-Thinking', name: 'Qwen: Qwen3 VL 8B Thinking', created: 1760463746, - description: 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', + description: + 'Qwen3-VL-8B-Thinking is the reasoning-optimized variant of the Qwen3-VL-8B multimodal model, designed for advanced visual and textual reasoning across complex scenes, documents, and temporal sequences. It integrates enhanced multimodal alignment and...', context_length: 131072, architecture: { modality: 'text+image->text', @@ -11805,7 +12065,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-122B-A10B', name: 'Qwen: Qwen3.5-122B-A10B', created: 1772053789, - description: 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', + description: + 'The Qwen3.5 122B-A10B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. In terms of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11852,7 +12113,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-27B', name: 'Qwen: Qwen3.5-27B', created: 1772053810, - description: 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', + description: + 'The Qwen3.5 27B native vision-language Dense model incorporates a linear attention mechanism, delivering fast response times while balancing inference speed and performance. Its overall capabilities are comparable to those of...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11899,7 +12161,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-35B-A3B', name: 'Qwen: Qwen3.5-35B-A3B', created: 1772053822, - description: 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', + description: + 'The Qwen3.5 Series 35B-A3B is a native vision-language model designed with a hybrid architecture that integrates linear attention mechanisms and a sparse mixture-of-experts model, achieving higher inference efficiency. Its overall...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11946,7 +12209,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-397B-A17B', name: 'Qwen: Qwen3.5 397B A17B', created: 1771223018, - description: 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', + description: + 'The Qwen3.5 series 397B-A17B native vision-language model is built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. It delivers...', context_length: 262144, architecture: { modality: 'text+image+video->text', @@ -11991,7 +12255,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/Qwen3.5-9B', name: 'Qwen: Qwen3.5-9B', created: 1773152396, - description: 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', + description: + 'Qwen3.5-9B is a multimodal foundation model from the Qwen3.5 family, designed to deliver strong reasoning, coding, and visual understanding in an efficient 9B-parameter architecture. It uses a unified vision-language design...', context_length: 256000, architecture: { modality: 'text+image+video->text', @@ -12037,7 +12302,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Qwen: Qwen3.5-Flash', created: 1772053776, - description: 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', + description: + 'The Qwen3.5 native vision-language Flash models are built on a hybrid architecture that integrates a linear attention mechanism with a sparse mixture-of-experts model, achieving higher inference efficiency. Compared to the...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12076,7 +12342,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.5 Plus 2026-02-15', created: 1771229416, - description: 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', + description: + 'The Qwen3.5 native vision-language series Plus models are built on a hybrid architecture that integrates linear attention mechanisms with sparse mixture-of-experts models, achieving higher inference efficiency. In a variety of...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12115,7 +12382,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Qwen: Qwen3.6 Plus', created: 1775133557, - description: 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', + description: + 'Qwen 3.6 Plus builds on a hybrid architecture that combines efficient linear attention with sparse mixture-of-experts routing, enabling strong scalability and high-performance inference. Compared to the 3.5 series, it delivers...', context_length: 1000000, architecture: { modality: 'text+image+video->text', @@ -12154,7 +12422,8 @@ export const models: Array = [ hugging_face_id: 'Qwen/QwQ-32B', name: 'Qwen: QwQ 32B', created: 1741208814, - description: 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', + description: + 'QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks,...', context_length: 131072, architecture: { modality: 'text->text', @@ -12190,7 +12459,8 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-edge-2603', name: 'Reka Edge', created: 1774026965, - description: 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', + description: + 'Reka Edge is an extremely efficient 7B multimodal vision-language model that accepts image/video+text inputs and generates text outputs. This model is optimized specifically to deliver industry-leading performance in image understanding,...', context_length: 16384, architecture: { modality: 'text+image+video->text', @@ -12229,7 +12499,8 @@ export const models: Array = [ hugging_face_id: 'RekaAI/reka-flash-3', name: 'Reka Flash 3', created: 1741812813, - description: 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', + description: + 'Reka Flash 3 is a general-purpose, instruction-tuned large language model with 21 billion parameters, developed by Reka. It excels at general chat, coding tasks, instruction-following, and function calling. Featuring a...', context_length: 65536, architecture: { modality: 'text->text', @@ -12267,7 +12538,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Relace: Relace Apply 3', created: 1758891572, - description: 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', + description: + 'Relace Apply 3 is a specialized code-patching LLM that merges AI-suggested edits straight into your source files. It can apply updates from GPT-4o, Claude, and others into your files at...', context_length: 256000, architecture: { modality: 'text->text', @@ -12286,11 +12558,7 @@ export const models: Array = [ is_moderated: false, }, per_request_limits: null, - supported_parameters: [ - 'max_tokens', - 'seed', - 'stop', - ], + supported_parameters: ['max_tokens', 'seed', 'stop'], }, { id: 'relace/relace-search', @@ -12298,7 +12566,8 @@ export const models: Array = [ hugging_face_id: null, name: 'Relace: Relace Search', created: 1765213560, - description: 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', + description: + 'The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase and return relevant files to the user request. In contrast to RAG, relace-search performs agentic...', context_length: 256000, architecture: { modality: 'text->text', @@ -12333,7 +12602,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-70B-Euryale-v2.1', name: 'Sao10k: Llama 3 Euryale 70B v2.1', created: 1718668800, - description: 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', + description: + 'Euryale 70B v2.1 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). - Better prompt adherence. - Better anatomy / spatial awareness. - Adapts much better to unique and custom...', context_length: 8192, architecture: { modality: 'text->text', @@ -12372,7 +12642,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3-8B-Lunaris-v1', name: 'Sao10K: Llama 3 8B Lunaris', created: 1723507200, - description: 'Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It\'s a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....', + description: + "Lunaris 8B is a versatile generalist and roleplaying model based on Llama 3. It's a strategic merge of multiple models, designed to balance creativity with improved logic and general knowledge....", context_length: 8192, architecture: { modality: 'text->text', @@ -12412,7 +12683,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Hanami-x1', name: 'Sao10K: Llama 3.1 70B Hanami x1', created: 1736302854, - description: 'This is [Sao10K](/sao10k)\'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).', + description: + "This is [Sao10K](/sao10k)'s experiment over [Euryale v2.2](/sao10k/l3.1-euryale-70b).", context_length: 16000, architecture: { modality: 'text->text', @@ -12451,7 +12723,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.1-70B-Euryale-v2.2', name: 'Sao10K: Llama 3.1 Euryale 70B v2.2', created: 1724803200, - description: 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', + description: + 'Euryale L3.1 70B v2.2 is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.1](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12492,7 +12765,8 @@ export const models: Array = [ hugging_face_id: 'Sao10K/L3.3-70B-Euryale-v2.3', name: 'Sao10K: Llama 3.3 Euryale 70B', created: 1734535928, - description: 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', + description: + 'Euryale L3.3 70B is a model focused on creative roleplay from [Sao10k](https://ko-fi.com/sao10k). It is the successor of [Euryale L3 70B v2.2](/models/sao10k/l3-euryale-70b).', context_length: 131072, architecture: { modality: 'text->text', @@ -12534,7 +12808,8 @@ export const models: Array = [ hugging_face_id: 'stepfun-ai/Step-3.5-Flash', name: 'StepFun: Step 3.5 Flash', created: 1769728337, - description: 'Step 3.5 Flash is StepFun\'s most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....', + description: + "Step 3.5 Flash is StepFun's most capable open-source foundation model. Built on a sparse Mixture of Experts (MoE) architecture, it selectively activates only 11B of its 196B parameters per token....", context_length: 262144, architecture: { modality: 'text->text', @@ -12577,7 +12852,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Switchpoint Router', created: 1752272899, - description: 'Switchpoint AI\'s router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...', + description: + "Switchpoint AI's router instantly analyzes your request and directs it to the optimal AI from an ever-evolving library. As the world of LLMs advances, our router gets smarter, ensuring you...", context_length: 131072, architecture: { modality: 'text->text', @@ -12613,7 +12889,8 @@ export const models: Array = [ hugging_face_id: 'tencent/Hunyuan-A13B-Instruct', name: 'Tencent: Hunyuan A13B Instruct', created: 1751987664, - description: 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', + description: + 'Hunyuan-A13B is a 13B active parameter Mixture-of-Experts (MoE) language model developed by Tencent, with a total parameter count of 80B and support for reasoning via Chain-of-Thought. It offers competitive benchmark...', context_length: 131072, architecture: { modality: 'text->text', @@ -12649,7 +12926,8 @@ export const models: Array = [ hugging_face_id: 'thedrummer/cydonia-24b-v4.1', name: 'TheDrummer: Cydonia 24B V4.1', created: 1758931878, - description: 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', + description: + 'Uncensored and creative writing model based on Mistral Small 3.2 24B with good recall, prompt adherence, and intelligence.', context_length: 131072, architecture: { modality: 'text->text', @@ -12687,7 +12965,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Rocinante-12B-v1.1', name: 'TheDrummer: Rocinante 12B', created: 1727654400, - description: 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', + description: + 'Rocinante 12B is designed for engaging storytelling and rich prose. Early testers have reported: - Expanded vocabulary with unique and expressive word choices - Enhanced creativity for vivid narratives -...', context_length: 32768, architecture: { modality: 'text->text', @@ -12732,7 +13011,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/Skyfall-36B-v2', name: 'TheDrummer: Skyfall 36B V2', created: 1741636566, - description: 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', + description: + 'Skyfall 36B v2 is an enhanced iteration of Mistral Small 2501, specifically fine-tuned for improved creativity, nuanced writing, role-playing, and coherent storytelling.', context_length: 32768, architecture: { modality: 'text->text', @@ -12770,7 +13050,8 @@ export const models: Array = [ hugging_face_id: 'TheDrummer/UnslopNemo-12B-v4.1', name: 'TheDrummer: UnslopNemo 12B', created: 1731103448, - description: 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', + description: + 'UnslopNemo v4.1 is the latest addition from the creator of Rocinante, designed for adventure writing and role-play scenarios.', context_length: 32768, architecture: { modality: 'text->text', @@ -12812,7 +13093,8 @@ export const models: Array = [ hugging_face_id: 'tngtech/DeepSeek-TNG-R1T2-Chimera', name: 'TNG: DeepSeek R1T2 Chimera', created: 1751986985, - description: 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', + description: + 'DeepSeek-TNG-R1T2-Chimera is the second-generation Chimera model from TNG Tech. It is a 671 B-parameter mixture-of-experts text-generation model assembled from DeepSeek-AI’s R1-0528, R1, and V3-0324 checkpoints with an Assembly-of-Experts merge. The...', context_length: 163840, architecture: { modality: 'text->text', @@ -12856,7 +13138,8 @@ export const models: Array = [ hugging_face_id: 'Undi95/ReMM-SLERP-L2-13B', name: 'ReMM SLERP 13B', created: 1689984000, - description: 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', + description: + 'A recreation trial of the original MythoMax-L2-B13 but with updated models. #merge', context_length: 6144, architecture: { modality: 'text->text', @@ -12900,7 +13183,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Upstage: Solar Pro 3', created: 1769481200, - description: 'Solar Pro 3 is Upstage\'s powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...', + description: + "Solar Pro 3 is Upstage's powerful Mixture-of-Experts (MoE) language model. With 102B total parameters and 12B active parameters per forward pass, it delivers exceptional performance while maintaining computational efficiency. Optimized...", context_length: 128000, architecture: { modality: 'text->text', @@ -12937,7 +13221,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Writer: Palmyra X5', created: 1769003823, - description: 'Palmyra X5 is Writer\'s most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...', + description: + "Palmyra X5 is Writer's most advanced model, purpose-built for building and scaling AI agents across the enterprise. It delivers industry-leading speed and efficiency on context windows up to 1 million...", context_length: 1040000, architecture: { modality: 'text->text', @@ -12970,7 +13255,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3', created: 1749582908, - description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', + description: + "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", context_length: 131072, architecture: { modality: 'text->text', @@ -13013,7 +13299,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Beta', created: 1744240068, - description: 'Grok 3 is the latest model from xAI. It\'s their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...', + description: + "Grok 3 is the latest model from xAI. It's their flagship model that excels at enterprise use cases like data extraction, coding, and text summarization. Possesses deep domain knowledge in...", context_length: 131072, architecture: { modality: 'text->text', @@ -13055,7 +13342,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini', created: 1749583245, - description: 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', + description: + 'A lightweight model that thinks before responding. Fast, smart, and great for logic-based tasks that do not require deep domain knowledge. The raw thinking traces are accessible.', context_length: 131072, architecture: { modality: 'text->text', @@ -13098,7 +13386,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 3 Mini Beta', created: 1744240195, - description: 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', + description: + 'Grok 3 Mini is a lightweight, smaller thinking model. Unlike traditional models that generate answers immediately, Grok 3 Mini thinks before responding. It’s ideal for reasoning-heavy tasks that don’t demand...', context_length: 131072, architecture: { modality: 'text->text', @@ -13140,7 +13429,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4', created: 1752087689, - description: 'Grok 4 is xAI\'s latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...', + description: + "Grok 4 is xAI's latest reasoning model with a 256k context window. It supports parallel tool calling, structured outputs, and both image and text inputs. Note that reasoning is not...", context_length: 256000, architecture: { modality: 'text+image+file->text', @@ -13182,7 +13472,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4 Fast', created: 1758240090, - description: 'Grok 4 Fast is xAI\'s latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...', + description: + "Grok 4 Fast is xAI's latest multimodal model with SOTA cost-efficiency and a 2M token context window. It comes in two flavors: non-reasoning and reasoning. Read more about the model...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13224,7 +13515,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.1 Fast', created: 1763587502, - description: 'Grok 4.1 Fast is xAI\'s best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...', + description: + "Grok 4.1 Fast is xAI's best agentic tool calling model that shines in real-world use cases like customer support and deep research. 2M context window. Reasoning can be enabled/disabled using...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13266,7 +13558,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20', created: 1774979019, - description: 'Grok 4.20 is xAI\'s newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...', + description: + "Grok 4.20 is xAI's newest flagship model with industry-leading speed and agentic tool calling capabilities. It combines the lowest hallucination rate on the market with strict prompt adherance, delivering consistently...", context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13308,7 +13601,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok 4.20 Multi-Agent', created: 1774979158, - description: 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', + description: + 'Grok 4.20 Multi-Agent is a variant of xAI’s Grok 4.20 designed for collaborative, agent-based workflows. Multiple agents operate in parallel to conduct deep research, coordinate tool use, and synthesize information...', context_length: 2000000, architecture: { modality: 'text+image+file->text', @@ -13348,7 +13642,8 @@ export const models: Array = [ hugging_face_id: '', name: 'xAI: Grok Code Fast 1', created: 1756238927, - description: 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', + description: + 'Grok Code Fast 1 is a speedy and economical reasoning model that excels at agentic coding. With reasoning traces visible in the response, developers can steer Grok Code for high-quality...', context_length: 256000, architecture: { modality: 'text->text', @@ -13391,7 +13686,8 @@ export const models: Array = [ hugging_face_id: 'XiaomiMiMo/MiMo-V2-Flash', name: 'Xiaomi: MiMo-V2-Flash', created: 1765731308, - description: 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', + description: + 'MiMo-V2-Flash is an open-source foundation language model developed by Xiaomi. It is a Mixture-of-Experts model with 309B total parameters and 15B active parameters, adopting hybrid attention architecture. MiMo-V2-Flash supports a...', context_length: 262144, architecture: { modality: 'text->text', @@ -13437,7 +13733,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Omni', created: 1773863703, - description: 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', + description: + 'MiMo-V2-Omni is a frontier omni-modal model that natively processes image, video, and audio inputs within a unified architecture. It combines strong multimodal perception with agentic capability - visual grounding, multi-step...', context_length: 262144, architecture: { modality: 'text+image+audio+video->text', @@ -13477,7 +13774,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Xiaomi: MiMo-V2-Pro', created: 1773863643, - description: 'MiMo-V2-Pro is Xiaomi\'s flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...', + description: + "MiMo-V2-Pro is Xiaomi's flagship foundation model, featuring over 1T total parameters and a 1M context length, deeply optimized for agentic scenarios. It is highly adaptable to general agent frameworks like...", context_length: 1048576, architecture: { modality: 'text->text', @@ -13517,7 +13815,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 4 32B ', created: 1753376617, - description: 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', + description: + 'GLM 4 32B is a cost-effective foundation language model. It can efficiently perform complex tasks and has significantly enhanced capabilities in tool use, online search, and code-related intelligent tasks. It...', context_length: 128000, architecture: { modality: 'text->text', @@ -13550,7 +13849,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5', name: 'Z.ai: GLM 4.5', created: 1753471347, - description: 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', + description: + 'GLM-4.5 is our latest flagship foundation model, purpose-built for agent-based applications. It leverages a Mixture-of-Experts (MoE) architecture and supports a context length of up to 128k tokens. GLM-4.5 delivers significantly...', context_length: 131072, architecture: { modality: 'text->text', @@ -13594,7 +13894,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air', created: 1753471258, - description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: + 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -13638,7 +13939,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5-Air', name: 'Z.ai: GLM 4.5 Air (free)', created: 1753471258, - description: 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', + description: + 'GLM-4.5-Air is the lightweight variant of our latest flagship model family, also purpose-built for agent-centric applications. Like GLM-4.5, it adopts the Mixture-of-Experts (MoE) architecture but with a more compact parameter...', context_length: 131072, architecture: { modality: 'text->text', @@ -13673,7 +13975,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.5V', name: 'Z.ai: GLM 4.5V', created: 1754922288, - description: 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', + description: + 'GLM-4.5V is a vision-language foundation model for multimodal agent applications. Built on a Mixture-of-Experts (MoE) architecture with 106B parameters and 12B activated parameters, it achieves state-of-the-art results in video understanding,...', context_length: 65536, architecture: { modality: 'text+image->text', @@ -13715,7 +14018,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6', name: 'Z.ai: GLM 4.6', created: 1759235576, - description: 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', + description: + 'Compared with GLM-4.5, this generation brings several key improvements: Longer context window: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex...', context_length: 204800, architecture: { modality: 'text->text', @@ -13760,7 +14064,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.6V', name: 'Z.ai: GLM 4.6V', created: 1765207462, - description: 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', + description: + 'GLM-4.6V is a large multimodal model designed for high-fidelity visual understanding and long-context reasoning across images, documents, and mixed media. It supports up to 128K tokens, processes complex page layouts...', context_length: 131072, architecture: { modality: 'text+image+video->text', @@ -13804,7 +14109,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7', name: 'Z.ai: GLM 4.7', created: 1766378014, - description: 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', + description: + 'GLM-4.7 is Z.ai’s latest flagship model, featuring upgrades in two key areas: enhanced programming capabilities and more stable multi-step reasoning/execution. It demonstrates significant improvements in executing complex agent tasks while...', context_length: 202752, architecture: { modality: 'text->text', @@ -13852,7 +14158,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-4.7-Flash', name: 'Z.ai: GLM 4.7 Flash', created: 1768833913, - description: 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', + description: + 'As a 30B-class SOTA model, GLM-4.7-Flash offers a new option that balances performance and efficiency. It is further optimized for agentic coding use cases, strengthening coding capabilities, long-horizon task planning,...', context_length: 202752, architecture: { modality: 'text->text', @@ -13897,7 +14204,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5', name: 'Z.ai: GLM 5', created: 1770829182, - description: 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', + description: + 'GLM-5 is Z.ai’s flagship open-source foundation model engineered for complex systems design and long-horizon agent workflows. Built for expert developers, it delivers production-grade performance on large-scale programming tasks, rivaling leading...', context_length: 80000, architecture: { modality: 'text->text', @@ -13944,7 +14252,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5 Turbo', created: 1773583573, - description: 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', + description: + 'GLM-5 Turbo is a new model from Z.ai designed for fast inference and strong performance in agent-driven environments such as OpenClaw scenarios. It is deeply optimized for real-world agent workflows...', context_length: 202752, architecture: { modality: 'text->text', @@ -13989,7 +14298,8 @@ export const models: Array = [ hugging_face_id: 'zai-org/GLM-5.1', name: 'Z.ai: GLM 5.1', created: 1775578025, - description: 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', + description: + 'GLM-5.1 delivers a major leap in coding capability, with particularly significant gains in handling long-horizon tasks. Unlike previous models built around minute-level interactions, GLM-5.1 can work independently and continuously on...', context_length: 202752, architecture: { modality: 'text->text', @@ -14036,7 +14346,8 @@ export const models: Array = [ hugging_face_id: '', name: 'Z.ai: GLM 5V Turbo', created: 1775061458, - description: 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', + description: + 'GLM-5V-Turbo is Z.ai’s first native multimodal agent foundation model, built for vision-based coding and agent-driven tasks. It natively handles image, video, and text inputs, excels at long-horizon planning, complex coding,...', context_length: 202752, architecture: { modality: 'text+image+video->text', @@ -14066,5 +14377,5 @@ export const models: Array = [ 'tools', 'top_p', ], - } + }, ]