diff --git a/README.md b/README.md index 9e1117208..84a11c6f0 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,8 @@ output = 15.00 # Cost per million output tokens (USD) reasoning = 15.00 # Cost per million reasoning tokens (USD) cache_read = 0.30 # Cost per million cached read tokens (USD) cache_write = 3.75 # Cost per million cached write tokens (USD) +input_audio = 1.00 # Cost per million audio input tokens (USD) +output_audio = 10.00 # Cost per million audio output tokens (USD) [limit] context = 200_000 # Maximum context window (tokens) @@ -155,6 +157,8 @@ Models must conform to the following schema, as defined in `app/schemas.ts`. - `cost.reasoning` _(optional)_: Number — Cost per million reasoning tokens (USD) - `cost.cache_read` _(optional)_: Number — Cost per million cached read tokens (USD) - `cost.cache_write` _(optional)_: Number — Cost per million cached write tokens (USD) +- `cost.input_audio` _(optional)_: Number — Cost per million audio input tokens, if billed separately (USD) +- `cost.output_audio` _(optional)_: Number — Cost per million audio output tokens, if billed separately (USD) - `limit.context`: Number — Maximum context window (tokens) - `limit.output`: Number — Maximum output tokens - `modalities.input`: Array of strings — Supported input modalities (e.g., ["text", "image", "audio", "video", "pdf"]) diff --git a/packages/core/src/schema.ts b/packages/core/src/schema.ts index 0d13d40c9..e5aa27f6e 100644 --- a/packages/core/src/schema.ts +++ b/packages/core/src/schema.ts @@ -41,6 +41,14 @@ export const Model = z .number() .min(0, "Cache write price cannot be negative") .optional(), + input_audio: z + .number() + .min(0, "Audio input price cannot be negative") + .optional(), + output_audio: z + .number() + .min(0, "Audio output price cannot be negative") + .optional(), }) .optional(), limit: z.object({ diff --git a/packages/web/src/index.css b/packages/web/src/index.css index d8f66be65..58a4a5c4e 100644 --- a/packages/web/src/index.css +++ b/packages/web/src/index.css @@ -284,13 +284,15 @@ tbody { td:nth-child(11), td:nth-child(12), td:nth-child(13), - td:nth-child(14) { + td:nth-child(14), + td:nth-child(15), + td:nth-child(16) { color: var(--color-text); } td:nth-child(5), td:nth-child(6), - td:nth-child(15) { + td:nth-child(18) { font-size: 0.8125rem; font-family: var(--font-mono); text-transform: uppercase; @@ -303,7 +305,10 @@ tbody { td:nth-child(11), td:nth-child(12), td:nth-child(13), - td:nth-child(14) { + td:nth-child(14), + td:nth-child(15), + td:nth-child(16), + td:nth-child(17) { font-size: 0.8125rem; font-family: var(--font-mono); } @@ -313,9 +318,11 @@ tbody { align-items: center; gap: 0.375rem; } + .provider-cell span:first-child { flex: 0 0 auto; } + .provider-cell svg { display: block; width: 1rem; @@ -330,8 +337,7 @@ tbody { gap: 0.375rem; } - .model-id-text { - } + .model-id-text {} .copy-button { flex: 0 0 auto; @@ -540,4 +546,4 @@ dialog { } } -} +} \ No newline at end of file diff --git a/packages/web/src/render.tsx b/packages/web/src/render.tsx index fffd5bdc3..27740dde6 100644 --- a/packages/web/src/render.tsx +++ b/packages/web/src/render.tsx @@ -286,6 +286,26 @@ export const Rendered = renderToString( + +
+ + Audio Input Cost +
+ per 1M tokens +
+ +
+ + +
+ + Audio Output Cost +
+ per 1M tokens +
+ +
+ Context Limit @@ -398,6 +418,8 @@ export const Rendered = renderToString( {renderCost(model.cost?.reasoning)} {renderCost(model.cost?.cache_read)} {renderCost(model.cost?.cache_write)} + {renderCost(model.cost?.input_audio)} + {renderCost(model.cost?.output_audio)} {model.limit.context.toLocaleString()} {model.limit.output.toLocaleString()} {model.temperature ? "Yes" : "No"} diff --git a/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-5-20250929-v1:0.toml b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-5-20250929-v1:0.toml new file mode 100644 index 000000000..68172b547 --- /dev/null +++ b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-5-20250929-v1:0.toml @@ -0,0 +1,24 @@ +name = "Claude Sonnet 4.5" +release_date = "2025-09-29" +last_updated = "2025-09-29" +attachment = true +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-07-31" +open_weights = false + +[cost] +input = 3.00 +output = 15.00 +cache_read = 0.30 +cache_write = 3.75 + +[limit] +context = 200_000 +output = 64_000 + +[modalities] +input = ["text", "image"] +output = ["text"] + diff --git a/providers/anthropic/models/claude-sonnet-4-5-20250929.toml b/providers/anthropic/models/claude-sonnet-4-5-20250929.toml new file mode 100644 index 000000000..c710ccfc0 --- /dev/null +++ b/providers/anthropic/models/claude-sonnet-4-5-20250929.toml @@ -0,0 +1,23 @@ +name = "Claude Sonnet 4.5" +release_date = "2025-09-29" +last_updated = "2025-09-29" +attachment = true +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-07-31" +open_weights = false + +[cost] +input = 3.00 +output = 15.00 +cache_read = 0.30 +cache_write = 3.75 + +[limit] +context = 200_000 +output = 64_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/chutes/models/Qwen/Qwen3-30B-A3B-Thinking-2507.toml b/providers/chutes/models/Qwen/Qwen3-30B-A3B-Thinking-2507.toml new file mode 100644 index 000000000..114e27d31 --- /dev/null +++ b/providers/chutes/models/Qwen/Qwen3-30B-A3B-Thinking-2507.toml @@ -0,0 +1,21 @@ +name = "Qwen3 30B A3B Thinking 2507" +release_date = "2025-07-30" +last_updated = "2025-07-30" +attachment = false +reasoning = true +temperature = true +knowledge = "2025-04" +tool_call = true +open_weights = true + +[cost] +input = 0.08 +output = 0.29 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Instruct.toml b/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Instruct.toml new file mode 100644 index 000000000..febe65068 --- /dev/null +++ b/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Instruct.toml @@ -0,0 +1,21 @@ +name = "Qwen3 Next 80B A3B Instruct" +release_date = "2025-09-11" +last_updated = "2025-09-11" +attachment = false +reasoning = false +temperature = true +knowledge = "2025-04" +tool_call = true +open_weights = true + +[cost] +input = 0.10 +output = 0.80 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Thinking.toml b/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Thinking.toml new file mode 100644 index 000000000..c4b39babc --- /dev/null +++ b/providers/chutes/models/Qwen/Qwen3-Next-80B-A3B-Thinking.toml @@ -0,0 +1,21 @@ +name = "Qwen3 Next 80B A3B Thinking" +release_date = "2025-09-11" +last_updated = "2025-09-11" +attachment = false +reasoning = true +temperature = true +knowledge = "2025-04" +tool_call = true +open_weights = true + +[cost] +input = 0.10 +output = 0.80 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-Terminus.toml b/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-Terminus.toml new file mode 100644 index 000000000..6d116bfbf --- /dev/null +++ b/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-Terminus.toml @@ -0,0 +1,21 @@ +name = "DeepSeek V3.1 Terminus" +release_date = "2025-09-22" +last_updated = "2025-09-22" +attachment = false +reasoning = true +temperature = true +knowledge = "2025-07" +tool_call = true +open_weights = true + +[cost] +input = 0.25 +output = 1.00 + +[limit] +context = 131_072 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-turbo.toml b/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-turbo.toml new file mode 100644 index 000000000..cea1721b5 --- /dev/null +++ b/providers/chutes/models/deepseek-ai/DeepSeek-V3.1-turbo.toml @@ -0,0 +1,20 @@ +name = "DeepSeek V3.1 Turbo" +release_date = "2025-08-21" +last_updated = "2025-08-21" +attachment = false +reasoning = false +temperature = true +tool_call = true +open_weights = false + +[cost] +input = 1.00 +output = 3.00 + +[limit] +context = 128000 +output = 128000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/chutes/models/zai-org/GLM-4.5-turbo.toml b/providers/chutes/models/zai-org/GLM-4.5-turbo.toml new file mode 100644 index 000000000..935b97512 --- /dev/null +++ b/providers/chutes/models/zai-org/GLM-4.5-turbo.toml @@ -0,0 +1,21 @@ +name = "GLM 4.5 Turbo" +release_date = "2025-07-28" +last_updated = "2025-07-28" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true + +[cost] +input = 1.00 +output = 3.00 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/chutes/models/zai-org/GLM-4.6-FP8.toml b/providers/chutes/models/zai-org/GLM-4.6-FP8.toml new file mode 100644 index 000000000..feafadca0 --- /dev/null +++ b/providers/chutes/models/zai-org/GLM-4.6-FP8.toml @@ -0,0 +1,21 @@ +name = "GLM 4.6 FP8" +release_date = "2025-09-30" +last_updated = "2025-09-30" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true + +[cost] +input = 0.39 +output = 1.55 + +[limit] +context = 204800 +output = 131072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/cortecs/logo.svg b/providers/cortecs/logo.svg index c426c5eea..3a9d6b282 100644 --- a/providers/cortecs/logo.svg +++ b/providers/cortecs/logo.svg @@ -1,19 +1,8 @@ - - - - - - - - - - - - - - - + + + + diff --git a/providers/github-copilot/models/claude-sonnet-4.5.toml b/providers/github-copilot/models/claude-sonnet-4.5.toml new file mode 100644 index 000000000..962fb694b --- /dev/null +++ b/providers/github-copilot/models/claude-sonnet-4.5.toml @@ -0,0 +1,17 @@ +name = "Claude Sonnet 4.5 (Preview)" +release_date = "2025-09-29" +last_updated = "2025-09-29" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-03-31" +tool_call = true +open_weights = false + +[limit] +context = 128_000 +output = 16_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/google/models/gemini-2.5-flash-lite-preview-06-17.toml b/providers/google/models/gemini-2.5-flash-lite-preview-06-17.toml index fd6286d4c..819053a90 100644 --- a/providers/google/models/gemini-2.5-flash-lite-preview-06-17.toml +++ b/providers/google/models/gemini-2.5-flash-lite-preview-06-17.toml @@ -12,9 +12,10 @@ open_weights = false input = 0.10 output = 0.40 cache_read = 0.025 +input_audio = 0.30 [limit] -context = 65_536 +context = 1_048_576 output = 65_536 [modalities] diff --git a/providers/google/models/gemini-2.5-flash-lite-preview-09-2025.toml b/providers/google/models/gemini-2.5-flash-lite-preview-09-2025.toml new file mode 100644 index 000000000..f0dcb0495 --- /dev/null +++ b/providers/google/models/gemini-2.5-flash-lite-preview-09-2025.toml @@ -0,0 +1,22 @@ +name = "Gemini 2.5 Flash Lite Preview 09-25" +release_date = "2025-09-25" +last_updated = "2025-09-25" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-01" +tool_call = true +open_weights = false + +[cost] +input = 0.10 +output = 0.40 +cache_read = 0.025 + +[limit] +context = 1_048_576 +output = 65_536 + +[modalities] +input = ["text", "image", "audio", "video", "pdf"] +output = ["text"] diff --git a/providers/google/models/gemini-2.5-flash-lite.toml b/providers/google/models/gemini-2.5-flash-lite.toml new file mode 100644 index 000000000..4a534b571 --- /dev/null +++ b/providers/google/models/gemini-2.5-flash-lite.toml @@ -0,0 +1,22 @@ +name = "Gemini 2.5 Flash Lite" +release_date = "2025-06-17" +last_updated = "2025-06-17" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-01" +tool_call = true +open_weights = false + +[cost] +input = 0.10 +output = 0.40 +cache_read = 0.025 + +[limit] +context = 1_048_576 +output = 65_536 + +[modalities] +input = ["text", "image", "audio", "video", "pdf"] +output = ["text"] \ No newline at end of file diff --git a/providers/google/models/gemini-2.5-flash-preview-09-2025.toml b/providers/google/models/gemini-2.5-flash-preview-09-2025.toml new file mode 100644 index 000000000..f2f00a2f8 --- /dev/null +++ b/providers/google/models/gemini-2.5-flash-preview-09-2025.toml @@ -0,0 +1,22 @@ +name = "Gemini 2.5 Flash Preview 09-25" +release_date = "2025-09-25" +last_updated = "2025-09-25" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-01" +tool_call = true +open_weights = false + +[cost] +input = 0.15 +output = 0.60 +cache_read = 0.0375 + +[limit] +context = 1_048_576 +output = 65_536 + +[modalities] +input = ["text", "image", "audio", "video", "pdf"] +output = ["text"] diff --git a/providers/google/models/gemini-2.5-flash.toml b/providers/google/models/gemini-2.5-flash.toml index 5682b423e..f169c73bf 100644 --- a/providers/google/models/gemini-2.5-flash.toml +++ b/providers/google/models/gemini-2.5-flash.toml @@ -12,6 +12,7 @@ open_weights = false input = 0.30 output = 2.50 cache_read = 0.075 +input_audio = 1.00 [limit] context = 1_048_576 diff --git a/providers/google/models/gemini-flash-latest.toml b/providers/google/models/gemini-flash-latest.toml new file mode 100644 index 000000000..fb9af9c9a --- /dev/null +++ b/providers/google/models/gemini-flash-latest.toml @@ -0,0 +1,22 @@ +name = "Gemini Flash Latest" +release_date = "2025-09-25" +last_updated = "2025-09-25" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-01" +tool_call = true +open_weights = false + +[cost] +input = 0.15 +output = 0.60 +cache_read = 0.0375 + +[limit] +context = 1_048_576 +output = 65_536 + +[modalities] +input = ["text", "image", "audio", "video", "pdf"] +output = ["text"] diff --git a/providers/google/models/gemini-flash-lite-latest.toml b/providers/google/models/gemini-flash-lite-latest.toml new file mode 100644 index 000000000..32617f27a --- /dev/null +++ b/providers/google/models/gemini-flash-lite-latest.toml @@ -0,0 +1,22 @@ +name = "Gemini Flash-Lite Latest" +release_date = "2025-09-25" +last_updated = "2025-09-25" +attachment = true +reasoning = true +temperature = true +knowledge = "2025-01" +tool_call = true +open_weights = false + +[cost] +input = 0.10 +output = 0.40 +cache_read = 0.025 + +[limit] +context = 1_048_576 +output = 65_536 + +[modalities] +input = ["text", "image", "audio", "video", "pdf"] +output = ["text"] diff --git a/providers/google/models/gemini-live-2.5-flash-preview-native-audio.toml b/providers/google/models/gemini-live-2.5-flash-preview-native-audio.toml new file mode 100644 index 000000000..b773d8897 --- /dev/null +++ b/providers/google/models/gemini-live-2.5-flash-preview-native-audio.toml @@ -0,0 +1,24 @@ +name = "Gemini Live 2.5 Flash Preview Native Audio" +release_date = "2025-06-17" +last_updated = "2025-09-18" +attachment = false +reasoning = true +temperature = false +knowledge = "2025-01" +tool_call = true +open_weights = false +experimental = true + +[cost] +input = 0.50 +output = 2.00 +input_audio = 3.00 +output_audio = 12.00 + +[limit] +context = 131_072 +output = 65_536 + +[modalities] +input = ["text", "audio", "video"] +output = ["text", "audio"] \ No newline at end of file diff --git a/providers/google/provider.toml b/providers/google/provider.toml index 63ceec628..a7d8c4775 100644 --- a/providers/google/provider.toml +++ b/providers/google/provider.toml @@ -1,4 +1,4 @@ name = "Google" -env = ["GOOGLE_GENERATIVE_AI_API_KEY"] +env = ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"] npm = "@ai-sdk/google" doc = "https://ai.google.dev/gemini-api/docs/pricing" diff --git a/providers/huggingface/models/zai-org/GLM-4.6.toml b/providers/huggingface/models/zai-org/GLM-4.6.toml new file mode 100644 index 000000000..3c6520785 --- /dev/null +++ b/providers/huggingface/models/zai-org/GLM-4.6.toml @@ -0,0 +1,22 @@ +name = "GLM-4.6" +release_date = "2025-09-30" +last_updated = "2025-09-30" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true + +[cost] +input = 0.60 +output = 2.20 +cache_read = 0.11 + +[limit] +context = 200_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/lucidquery/logo.svg b/providers/lucidquery/logo.svg index 251f60b29..1d40cf5bb 100644 --- a/providers/lucidquery/logo.svg +++ b/providers/lucidquery/logo.svg @@ -1,4 +1,4 @@ - + diff --git a/providers/openai/models/gpt-4o-2024-05-13.toml b/providers/openai/models/gpt-4o-2024-05-13.toml new file mode 100644 index 000000000..128d24899 --- /dev/null +++ b/providers/openai/models/gpt-4o-2024-05-13.toml @@ -0,0 +1,21 @@ +name = "GPT-4o (2024-05-13)" +release_date = "2024-05-13" +last_updated = "2024-05-13" +attachment = true +reasoning = false +temperature = true +knowledge = "2023-09" +tool_call = true +open_weights = false + +[cost] +input = 5.00 +output = 15.00 + +[limit] +context = 128_000 +output = 4_096 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openai/models/gpt-4o-2024-08-06.toml b/providers/openai/models/gpt-4o-2024-08-06.toml new file mode 100644 index 000000000..f3ac801b0 --- /dev/null +++ b/providers/openai/models/gpt-4o-2024-08-06.toml @@ -0,0 +1,22 @@ +name = "GPT-4o (2024-08-06)" +release_date = "2024-08-06" +last_updated = "2024-08-06" +attachment = true +reasoning = false +temperature = true +knowledge = "2023-09" +tool_call = true +open_weights = false + +[cost] +input = 2.50 +output = 10.00 +cache_read = 1.25 + +[limit] +context = 128_000 +output = 16_384 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openai/models/gpt-4o-2024-11-20.toml b/providers/openai/models/gpt-4o-2024-11-20.toml new file mode 100644 index 000000000..73d41a37c --- /dev/null +++ b/providers/openai/models/gpt-4o-2024-11-20.toml @@ -0,0 +1,22 @@ +name = "GPT-4o (2024-11-20)" +release_date = "2024-11-20" +last_updated = "2024-11-20" +attachment = true +reasoning = false +temperature = true +knowledge = "2023-09" +tool_call = true +open_weights = false + +[cost] +input = 2.50 +output = 10.00 +cache_read = 1.25 + +[limit] +context = 128_000 +output = 16_384 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openai/models/gpt-4o.toml b/providers/openai/models/gpt-4o.toml index 74c33e93c..146f4ed05 100644 --- a/providers/openai/models/gpt-4o.toml +++ b/providers/openai/models/gpt-4o.toml @@ -1,6 +1,6 @@ name = "GPT-4o" release_date = "2024-05-13" -last_updated = "2024-05-13" +last_updated = "2024-08-06" attachment = true reasoning = false temperature = true diff --git a/providers/opencode/models/claude-sonnet-4-5.toml b/providers/opencode/models/claude-sonnet-4-5.toml new file mode 100644 index 000000000..014e7dcdb --- /dev/null +++ b/providers/opencode/models/claude-sonnet-4-5.toml @@ -0,0 +1,26 @@ +name = "Claude Sonnet 4.5" +release_date = "2025-09-29" +last_updated = "2025-09-29" +attachment = true +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-07-31" +open_weights = false + +[cost] +input = 3.00 +output = 15.00 +cache_read = 0.30 +cache_write = 3.75 + +[limit] +context = 1_000_000 +output = 64_000 + +[modalities] +input = ["text", "image"] +output = ["text"] + +[provider] +npm = "@ai-sdk/anthropic" \ No newline at end of file diff --git a/providers/opencode/models/claude-sonnet-4.toml b/providers/opencode/models/claude-sonnet-4.toml index 1bf6af749..6ab3baea0 100644 --- a/providers/opencode/models/claude-sonnet-4.toml +++ b/providers/opencode/models/claude-sonnet-4.toml @@ -11,12 +11,11 @@ open_weights = false [cost] input = 3.00 output = 15.00 -reasoning = 15.00 cache_read = 0.30 cache_write = 3.75 [limit] -context = 200_000 +context = 1_000_000 output = 64_000 [modalities] diff --git a/providers/opencode/models/code-supernova.toml b/providers/opencode/models/code-supernova.toml index 4035c3b5d..ea19dc290 100644 --- a/providers/opencode/models/code-supernova.toml +++ b/providers/opencode/models/code-supernova.toml @@ -1,4 +1,4 @@ -name = "Code Supernova" +name = "Code Supernova 1M" release_date = "2025-09-19" last_updated = "2025-09-19" attachment = true @@ -14,8 +14,8 @@ cache_read = 0.0 cache_write = 0.0 [limit] -context = 200_000 -output = 200_000 +context = 1_000_000 +output = 1_000_000 [modalities] input = ["text", "image"] diff --git a/providers/opencode/models/kimi-k2.toml b/providers/opencode/models/kimi-k2.toml index 07584e635..a0256becb 100644 --- a/providers/opencode/models/kimi-k2.toml +++ b/providers/opencode/models/kimi-k2.toml @@ -11,6 +11,7 @@ open_weights = true [cost] input = 0.6 output = 2.5 +cache_read = 0.36 [limit] context = 262_144 diff --git a/providers/opencode/models/qwen3-max.toml b/providers/opencode/models/qwen3-max.toml new file mode 100644 index 000000000..8c70f7240 --- /dev/null +++ b/providers/opencode/models/qwen3-max.toml @@ -0,0 +1,22 @@ +name = "Qwen3 Max" +release_date = "2025-09-05" +last_updated = "2025-09-05" +attachment = false +reasoning = true +temperature = true +knowledge = "2025-04" +tool_call = true +open_weights = true +experimental = true + +[cost] +input = 1.6 +output = 6.4 + +[limit] +context = 262_144 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/opencode/provider.toml b/providers/opencode/provider.toml index d476f31f4..b350ef0b6 100644 --- a/providers/opencode/provider.toml +++ b/providers/opencode/provider.toml @@ -1,4 +1,4 @@ -name = "opencode" +name = "opencode zen" env = ["OPENCODE_API_KEY"] npm = "@ai-sdk/openai-compatible" api = "https://opencode.ai/zen/v1" diff --git a/providers/openrouter/models/anthropic/claude-sonnet-4.5.toml b/providers/openrouter/models/anthropic/claude-sonnet-4.5.toml new file mode 100644 index 000000000..d89d931c0 --- /dev/null +++ b/providers/openrouter/models/anthropic/claude-sonnet-4.5.toml @@ -0,0 +1,23 @@ +name = "Claude Sonnet 4.5" +release_date = "2025-09-29" +last_updated = "2025-09-29" +attachment = true +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-07-31" +open_weights = false + +[cost] +input = 3.00 +output = 15.00 +cache_read = 0.30 +cache_write = 3.75 + +[limit] +context = 1_000_000 +output = 64_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openrouter/models/openai/gpt-5-codex.toml b/providers/openrouter/models/openai/gpt-5-codex.toml new file mode 100644 index 000000000..a3c834e57 --- /dev/null +++ b/providers/openrouter/models/openai/gpt-5-codex.toml @@ -0,0 +1,22 @@ +name = "GPT-5 Codex" +release_date = "2025-09-15" +last_updated = "2025-09-15" +attachment = true +reasoning = true +temperature = true +knowledge = "2024-10-01" +tool_call = true +open_weights = false + +[cost] +input = 1.25 +output = 10.00 +cache_read = 0.125 + +[limit] +context = 400_000 +output = 128_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openrouter/models/x-ai/grok-4-fast.toml b/providers/openrouter/models/x-ai/grok-4-fast.toml new file mode 100644 index 000000000..a592d3f13 --- /dev/null +++ b/providers/openrouter/models/x-ai/grok-4-fast.toml @@ -0,0 +1,23 @@ +name = "Grok 4 Fast" +release_date = "2025-08-19" +last_updated = "2025-08-19" +attachment = false +reasoning = true +temperature = true +knowledge = "2024-11" +tool_call = true +open_weights = false + +[cost] +input = 0.20 +output = 0.50 +cache_read = 0.05 +cache_write = 0.05 + +[limit] +context = 2_000_000 +output = 30_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/openrouter/models/z-ai/glm-4.6.toml b/providers/openrouter/models/z-ai/glm-4.6.toml new file mode 100644 index 000000000..0b2993305 --- /dev/null +++ b/providers/openrouter/models/z-ai/glm-4.6.toml @@ -0,0 +1,22 @@ +name = "GLM 4.6" +release_date = "2025-09-30" +last_updated = "2025-09-30" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-09" +open_weights = true + +[cost] +input = 0.60 +output = 2.20 +cache_read = 0.11 + +[limit] +context = 200_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1-Terminus.toml b/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1-Terminus.toml new file mode 100644 index 000000000..a76487220 --- /dev/null +++ b/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1-Terminus.toml @@ -0,0 +1,20 @@ +name = "DeepSeek V3.1 Terminus" +release_date = "2025-09-22" +last_updated = "2025-09-25" +attachment = false +reasoning = true +temperature = true +tool_call = true +open_weights = false + +[cost] +input = 1.20 +output = 1.20 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1.toml b/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1.toml index c803e5a3d..b880ea4bf 100644 --- a/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1.toml +++ b/providers/synthetic/models/hf:deepseek-ai/DeepSeek-V3.1.toml @@ -2,7 +2,7 @@ name = "DeepSeek V3.1" release_date = "2025-08-21" last_updated = "2025-08-21" attachment = false -reasoning = false +reasoning = true temperature = true tool_call = true open_weights = false diff --git a/providers/vercel/models/anthropic/claude-4.5-sonnet.toml b/providers/vercel/models/anthropic/claude-4.5-sonnet.toml new file mode 120000 index 000000000..200b48f73 --- /dev/null +++ b/providers/vercel/models/anthropic/claude-4.5-sonnet.toml @@ -0,0 +1 @@ +../../../anthropic/models/claude-sonnet-4-5-20250929.toml \ No newline at end of file diff --git a/providers/vercel/models/openai/gpt-5-codex.toml b/providers/vercel/models/openai/gpt-5-codex.toml new file mode 120000 index 000000000..1ba1b60b6 --- /dev/null +++ b/providers/vercel/models/openai/gpt-5-codex.toml @@ -0,0 +1 @@ +../../../openai/models/gpt-5-codex.toml \ No newline at end of file diff --git a/providers/vercel/models/xai/grok-4-fast-non-reasoning.toml b/providers/vercel/models/xai/grok-4-fast-non-reasoning.toml new file mode 120000 index 000000000..c2237818e --- /dev/null +++ b/providers/vercel/models/xai/grok-4-fast-non-reasoning.toml @@ -0,0 +1 @@ +../../../xai/models/grok-4-fast-non-reasoning.toml \ No newline at end of file diff --git a/providers/vercel/models/xai/grok-4-fast.toml b/providers/vercel/models/xai/grok-4-fast.toml new file mode 120000 index 000000000..c31b931b8 --- /dev/null +++ b/providers/vercel/models/xai/grok-4-fast.toml @@ -0,0 +1 @@ +../../../xai/models/grok-4-fast.toml \ No newline at end of file diff --git a/providers/vercel/models/xai/grok-code-fast-1.toml b/providers/vercel/models/xai/grok-code-fast-1.toml new file mode 120000 index 000000000..753505214 --- /dev/null +++ b/providers/vercel/models/xai/grok-code-fast-1.toml @@ -0,0 +1 @@ +../../../xai/models/grok-code-fast-1.toml \ No newline at end of file diff --git a/providers/xai/models/grok-code-fast-1.toml b/providers/xai/models/grok-code-fast-1.toml new file mode 100644 index 000000000..daeb14982 --- /dev/null +++ b/providers/xai/models/grok-code-fast-1.toml @@ -0,0 +1,22 @@ +name = "Grok Code Fast 1" +release_date = "2025-08-28" +last_updated = "2025-08-28" +attachment = false +reasoning = true +temperature = true +knowledge = "2023-10" +tool_call = true +open_weights = false + +[cost] +input = 0.20 +output = 1.50 +cache_read = 0.02 + +[limit] +context = 256_000 +output = 10_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/zai-coding-plan/models/glm-4.6.toml b/providers/zai-coding-plan/models/glm-4.6.toml new file mode 100644 index 000000000..bcd5f3783 --- /dev/null +++ b/providers/zai-coding-plan/models/glm-4.6.toml @@ -0,0 +1,23 @@ +name = "GLM-4.6" +release_date = "2025-09-30" +last_updated = "2025-09-30" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true + +[cost] +input = 0 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 204800 +output = 131072 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/zai/models/glm-4.6.toml b/providers/zai/models/glm-4.6.toml new file mode 100644 index 000000000..f9f362465 --- /dev/null +++ b/providers/zai/models/glm-4.6.toml @@ -0,0 +1,23 @@ +name = "GLM-4.6" +release_date = "2025-09-30" +last_updated = "2025-09-30" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-04" +open_weights = true + +[cost] +input = 0.6 +output = 2.2 +cache_read = 0.11 +cache_write = 0 + +[limit] +context = 204800 +output = 131072 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/zhipuai-coding-plan/models/glm-4.6.toml b/providers/zhipuai-coding-plan/models/glm-4.6.toml new file mode 120000 index 000000000..558b84f67 --- /dev/null +++ b/providers/zhipuai-coding-plan/models/glm-4.6.toml @@ -0,0 +1 @@ +../../zai-coding-plan/models/glm-4.6.toml \ No newline at end of file diff --git a/providers/zhipuai/models/glm-4.6.toml b/providers/zhipuai/models/glm-4.6.toml new file mode 120000 index 000000000..af1a2e6bc --- /dev/null +++ b/providers/zhipuai/models/glm-4.6.toml @@ -0,0 +1 @@ +../../zai/models/glm-4.6.toml \ No newline at end of file