diff --git a/.changeset/sync-models.md b/.changeset/sync-models.md new file mode 100644 index 000000000..63eef764c --- /dev/null +++ b/.changeset/sync-models.md @@ -0,0 +1,5 @@ +--- +'@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 55e1ac47c..bc273258a 100644 --- a/packages/typescript/ai-openrouter/src/model-meta.ts +++ b/packages/typescript/ai-openrouter/src/model-meta.ts @@ -1122,28 +1122,6 @@ const ARCEE_AI_SPOTLIGHT = { image: 0, }, } as const -const ARCEE_AI_TRINITY_LARGE_PREVIEW = { - id: 'arcee-ai/trinity-large-preview', - name: 'Arcee AI: Trinity Large Preview', - supports: { - input: ['text'], - output: ['text'], - supports: ['maxCompletionTokens', 'responseFormat', 'temperature', 'topP'], - }, - context_window: 131000, - pricing: { - text: { - input: { - normal: 0.15, - cached: 0, - }, - output: { - normal: 0.45, - }, - }, - image: 0, - }, -} as const const ARCEE_AI_TRINITY_LARGE_THINKING = { id: 'arcee-ai/trinity-large-thinking', name: 'Arcee AI: Trinity Large Thinking', @@ -9509,7 +9487,7 @@ const QWEN_QWEN3_5_122B_A10B = { ], }, context_window: 262144, - max_output_tokens: 65536, + max_output_tokens: 262144, pricing: { text: { input: { @@ -9789,11 +9767,11 @@ const QWEN_QWEN3_6_27B = { ], }, context_window: 262144, - max_output_tokens: 81920, + max_output_tokens: 262144, pricing: { text: { input: { - normal: 0.32, + normal: 0.3, cached: 0, }, output: { @@ -9826,11 +9804,12 @@ const QWEN_QWEN3_6_35B_A3B = { ], }, context_window: 262144, + max_output_tokens: 262144, pricing: { text: { input: { - normal: 0.149, - cached: 0, + normal: 0.15, + cached: 0.05, }, output: { normal: 1, @@ -9861,11 +9840,11 @@ const QWEN_QWEN3_6_FLASH = { pricing: { text: { input: { - normal: 0.1875, - cached: 0.234375, + normal: 0.12375, + cached: 0.1545, }, output: { - normal: 1.125, + normal: 0.7425, }, }, image: 0, @@ -9927,11 +9906,45 @@ const QWEN_QWEN3_6_PLUS = { pricing: { text: { input: { - normal: 0.325, - cached: 0.40625, + normal: 0.1794, + cached: 0.2236, + }, + output: { + normal: 1.07315, + }, + }, + image: 0, + }, +} as const +const QWEN_QWEN3_7_MAX = { + id: 'qwen/qwen3.7-max', + name: 'Qwen: Qwen3.7 Max', + supports: { + input: ['text'], + output: ['text'], + supports: [ + 'logprobs', + 'maxCompletionTokens', + 'presencePenalty', + 'reasoning', + 'responseFormat', + 'seed', + 'temperature', + 'toolChoice', + 'topLogprobs', + 'topP', + ], + }, + context_window: 1000000, + max_output_tokens: 65536, + pricing: { + text: { + input: { + normal: 2.5, + cached: 3.125, }, output: { - normal: 1.95, + normal: 7.5, }, }, image: 0, @@ -11251,16 +11264,15 @@ const Z_AI_GLM_5_1 = { 'topP', ], }, - context_window: 202800, - max_output_tokens: 202800, + context_window: 202752, pricing: { text: { input: { - normal: 0, - cached: 0, + normal: 0.98, + cached: 0.182, }, output: { - normal: 0, + normal: 3.08, }, }, image: 0, @@ -11663,11 +11675,6 @@ export type OpenRouterModelOptionsByName = { | 'temperature' | 'topP' > - [ARCEE_AI_TRINITY_LARGE_PREVIEW.id]: OpenRouterCommonOptions & - Pick< - OpenRouterBaseOptions, - 'maxCompletionTokens' | 'responseFormat' | 'temperature' | 'topP' - > [ARCEE_AI_TRINITY_LARGE_THINKING.id]: OpenRouterCommonOptions & Pick< OpenRouterBaseOptions, @@ -15045,6 +15052,20 @@ export type OpenRouterModelOptionsByName = { | 'toolChoice' | 'topP' > + [QWEN_QWEN3_7_MAX.id]: OpenRouterCommonOptions & + Pick< + OpenRouterBaseOptions, + | 'logprobs' + | 'maxCompletionTokens' + | 'presencePenalty' + | 'reasoning' + | 'responseFormat' + | 'seed' + | 'temperature' + | 'toolChoice' + | 'topLogprobs' + | 'topP' + > [REKAAI_REKA_EDGE.id]: OpenRouterCommonOptions & Pick< OpenRouterBaseOptions, @@ -15634,7 +15655,6 @@ export type OpenRouterModelInputModalitiesByName = { [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.id]: ReadonlyArray<'text'> [ARCEE_AI_TRINITY_LARGE_THINKING.id]: ReadonlyArray<'text'> [ARCEE_AI_TRINITY_LARGE_THINKING_FREE.id]: ReadonlyArray<'text'> [ARCEE_AI_TRINITY_MINI.id]: ReadonlyArray<'text'> @@ -15954,6 +15974,7 @@ export type OpenRouterModelInputModalitiesByName = { [QWEN_QWEN3_6_FLASH.id]: ReadonlyArray<'text' | 'image' | 'video'> [QWEN_QWEN3_6_MAX_PREVIEW.id]: ReadonlyArray<'text'> [QWEN_QWEN3_6_PLUS.id]: ReadonlyArray<'text' | 'image' | 'video'> + [QWEN_QWEN3_7_MAX.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'> @@ -16040,7 +16061,6 @@ export const OPENROUTER_CHAT_MODELS = [ ARCEE_AI_CODER_LARGE.id, ARCEE_AI_MAESTRO_REASONING.id, ARCEE_AI_SPOTLIGHT.id, - ARCEE_AI_TRINITY_LARGE_PREVIEW.id, ARCEE_AI_TRINITY_LARGE_THINKING.id, ARCEE_AI_TRINITY_LARGE_THINKING_FREE.id, ARCEE_AI_TRINITY_MINI.id, @@ -16312,6 +16332,7 @@ export const OPENROUTER_CHAT_MODELS = [ QWEN_QWEN3_6_FLASH.id, QWEN_QWEN3_6_MAX_PREVIEW.id, QWEN_QWEN3_6_PLUS.id, + QWEN_QWEN3_7_MAX.id, REKAAI_REKA_EDGE.id, REKAAI_REKA_FLASH_3.id, RELACE_RELACE_APPLY_3.id, @@ -16358,10 +16379,7 @@ export const OPENROUTER_CHAT_MODELS = [ ] as const export type OpenRouterChatModelToolCapabilitiesByName = { - [K in (typeof OPENROUTER_CHAT_MODELS)[number]]: readonly [ - 'web_search', - 'web_fetch', - ] + [K in (typeof OPENROUTER_CHAT_MODELS)[number]]: readonly ['web_search'] } export const OPENROUTER_IMAGE_MODELS = [ diff --git a/scripts/.sync-models-last-run b/scripts/.sync-models-last-run index 667c322d9..1f83e39bc 100644 --- a/scripts/.sync-models-last-run +++ b/scripts/.sync-models-last-run @@ -1 +1 @@ -1779353499 +1779439521 diff --git a/scripts/openrouter.models.json b/scripts/openrouter.models.json index 4cbc7a457..9cd7a646e 100644 --- a/scripts/openrouter.models.json +++ b/scripts/openrouter.models.json @@ -1918,55 +1918,6 @@ "details": "/api/v1/models/arcee-ai/spotlight/endpoints" } }, - { - "id": "arcee-ai/trinity-large-preview", - "canonical_slug": "arcee-ai/trinity-large-preview", - "hugging_face_id": "arcee-ai/Trinity-Large-Preview", - "name": "Arcee AI: Trinity Large Preview", - "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", - "input_modalities": ["text"], - "output_modalities": ["text"], - "tokenizer": "Other", - "instruct_type": null - }, - "pricing": { - "prompt": "0.00000015", - "completion": "0.00000045" - }, - "top_provider": { - "context_length": 131000, - "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" - ], - "default_parameters": { - "temperature": 0.8, - "top_p": 0.8, - "top_k": null, - "frequency_penalty": null, - "presence_penalty": null, - "repetition_penalty": null - }, - "supported_voices": null, - "knowledge_cutoff": null, - "expiration_date": "2026-05-21", - "links": { - "details": "/api/v1/models/arcee-ai/trinity-large-preview/endpoints" - } - }, { "id": "arcee-ai/trinity-large-thinking", "canonical_slug": "arcee-ai/trinity-large-thinking", @@ -2499,7 +2450,7 @@ }, "supported_voices": null, "knowledge_cutoff": null, - "expiration_date": null, + "expiration_date": "2026-05-28", "links": { "details": "/api/v1/models/baidu/qianfan-ocr-fast-20260420/endpoints" } @@ -15170,7 +15121,7 @@ }, "top_provider": { "context_length": 262144, - "max_completion_tokens": 65536, + "max_completion_tokens": 262144, "is_moderated": false }, "per_request_limits": null, @@ -15618,12 +15569,12 @@ "instruct_type": null }, "pricing": { - "prompt": "0.00000032", + "prompt": "0.0000003", "completion": "0.0000032" }, "top_provider": { "context_length": 262144, - "max_completion_tokens": 81920, + "max_completion_tokens": 262144, "is_moderated": false }, "per_request_limits": null, @@ -15679,12 +15630,13 @@ "instruct_type": null }, "pricing": { - "prompt": "0.000000149", - "completion": "0.000001" + "prompt": "0.00000015", + "completion": "0.000001", + "input_cache_read": "0.00000005" }, "top_provider": { "context_length": 262144, - "max_completion_tokens": null, + "max_completion_tokens": 262144, "is_moderated": false }, "per_request_limits": null, @@ -15737,9 +15689,9 @@ "instruct_type": null }, "pricing": { - "prompt": "0.0000001875", - "completion": "0.000001125", - "input_cache_write": "0.000000234375" + "prompt": "0.00000012375", + "completion": "0.0000007425", + "input_cache_write": "0.0000001545" }, "top_provider": { "context_length": 1000000, @@ -15833,9 +15785,9 @@ "instruct_type": null }, "pricing": { - "prompt": "0.000000325", - "completion": "0.00000195", - "input_cache_write": "0.00000040625" + "prompt": "0.0000001794", + "completion": "0.00000107315", + "input_cache_write": "0.0000002236" }, "top_provider": { "context_length": 1000000, @@ -15871,6 +15823,62 @@ "details": "/api/v1/models/qwen/qwen3.6-plus-04-02/endpoints" } }, + { + "id": "qwen/qwen3.7-max", + "canonical_slug": "qwen/qwen3.7-max-20260520", + "hugging_face_id": null, + "name": "Qwen: Qwen3.7 Max", + "created": 1779376861, + "description": "Qwen3.7-Max is the flagship model in Alibaba's Qwen3.7 series. It supports text input and output and is designed for agent-centric workloads, with particular strengths in coding, office and productivity tasks,...", + "context_length": 1000000, + "architecture": { + "modality": "text->text", + "input_modalities": ["text"], + "output_modalities": ["text"], + "tokenizer": "Qwen", + "instruct_type": null + }, + "pricing": { + "prompt": "0.0000025", + "completion": "0.0000075", + "input_cache_write": "0.000003125" + }, + "top_provider": { + "context_length": 1000000, + "max_completion_tokens": 65536, + "is_moderated": false + }, + "per_request_limits": null, + "supported_parameters": [ + "include_reasoning", + "logprobs", + "max_tokens", + "presence_penalty", + "reasoning", + "response_format", + "seed", + "structured_outputs", + "temperature", + "tool_choice", + "tools", + "top_logprobs", + "top_p" + ], + "default_parameters": { + "temperature": null, + "top_p": null, + "top_k": null, + "frequency_penalty": null, + "presence_penalty": null, + "repetition_penalty": null + }, + "supported_voices": null, + "knowledge_cutoff": null, + "expiration_date": null, + "links": { + "details": "/api/v1/models/qwen/qwen3.7-max-20260520/endpoints" + } + }, { "id": "rekaai/reka-edge", "canonical_slug": "rekaai/reka-edge-2603", @@ -17945,7 +17953,7 @@ "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": 202800, + "context_length": 202752, "architecture": { "modality": "text->text", "input_modalities": ["text"], @@ -17954,12 +17962,13 @@ "instruct_type": null }, "pricing": { - "prompt": "0", - "completion": "0" + "prompt": "0.00000098", + "completion": "0.00000308", + "input_cache_read": "0.000000182" }, "top_provider": { - "context_length": 202800, - "max_completion_tokens": 202800, + "context_length": 202752, + "max_completion_tokens": null, "is_moderated": false }, "per_request_limits": null,