diff --git a/README.md b/README.md index f75904373..da26c6fdb 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,31 @@ output = ["text"] # Supported output modalities field = "reasoning_content" # Name of the interleaved field "reasoning_content" or "reasoning_details" ``` +#### 3a. Reuse an Existing Model with `extends` + +For wrapper providers that mirror a model from another provider, prefer reusing the canonical model definition instead of duplicating the whole file. + +Use `extends` only for non-first-party wrappers and mirrors. Do not use it inside the actual lab provider directories that act as the canonical source for a model family, for example `providers/anthropic/`, `providers/openai/`, `providers/google/`, `providers/xai/`, `providers/minimax/`, or `providers/moonshot/`. + +```toml +[extends] +from = "anthropic/claude-opus-4-6" +omit = ["experimental.modes.fast"] + +[provider] +npm = "@ai-sdk/anthropic" +``` + +Rules: + +- `from` must point to another model using `/`. +- `omit` is optional and removes fields after the inherited model and local overrides are merged. +- You can override any top-level model field locally. +- If you override a nested table like `[cost]`, `[limit]`, or `[modalities]`, include the full values needed for that table. +- `id` still comes from the filename; do not add it to the TOML. + +Use `extends` when the wrapper model is materially the same as the source model and only differs by a small set of overrides or omitted fields. + #### 4. Submit a Pull Request 1. Fork this repo @@ -136,9 +161,17 @@ There's a GitHub Action that will automatically validate your submission against - Values are within acceptable ranges - TOML syntax is valid +When converting existing wrapper models to `extends`, compare generated output before and after the change: + +```bash +bun run compare:migrations +``` + +This prints a diff for each changed model TOML so you can confirm the generated JSON only changed where you intended. + ### Schema Reference -Models must conform to the following schema, as defined in `app/schemas.ts`. +Models must conform to the following schema, as defined in `packages/core/src/schema.ts`. **Provider Schema:** diff --git a/providers/amazon-bedrock/models/anthropic.claude-3-5-sonnet-20240620-v1:0.toml b/providers/amazon-bedrock/models/anthropic.claude-3-5-sonnet-20240620-v1:0.toml index d1fc27ed5..9e51d6a12 100644 --- a/providers/amazon-bedrock/models/anthropic.claude-3-5-sonnet-20240620-v1:0.toml +++ b/providers/amazon-bedrock/models/anthropic.claude-3-5-sonnet-20240620-v1:0.toml @@ -1,24 +1,2 @@ -name = "Claude Sonnet 3.5" -family = "claude-sonnet" -release_date = "2024-06-20" -last_updated = "2024-06-20" -attachment = true -reasoning = false -temperature = true -knowledge = "2024-04" -tool_call = true -open_weights = false - -[cost] -input = 3.00 -output = 15.00 -cache_read = 0.30 -cache_write = 3.75 - -[limit] -context = 200_000 -output = 8_192 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-3-5-sonnet-20240620" diff --git a/providers/amazon-bedrock/models/anthropic.claude-opus-4-1-20250805-v1:0.toml b/providers/amazon-bedrock/models/anthropic.claude-opus-4-1-20250805-v1:0.toml index 922fb1666..3a48c1a47 100644 --- a/providers/amazon-bedrock/models/anthropic.claude-opus-4-1-20250805-v1:0.toml +++ b/providers/amazon-bedrock/models/anthropic.claude-opus-4-1-20250805-v1:0.toml @@ -1,24 +1,2 @@ -name = "Claude Opus 4.1" -family = "claude-opus" -release_date = "2025-08-05" -last_updated = "2025-08-05" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-31" -open_weights = false - -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-1-20250805" diff --git a/providers/amazon-bedrock/models/anthropic.claude-opus-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/anthropic.claude-opus-4-20250514-v1:0.toml index 5173493c0..4fd5a331e 100644 --- a/providers/amazon-bedrock/models/anthropic.claude-opus-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/anthropic.claude-opus-4-20250514-v1:0.toml @@ -1,24 +1,2 @@ -name = "Claude Opus 4" -family = "claude-opus" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -open_weights = false - -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-20250514" diff --git a/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-20250514-v1:0.toml index 9b6e77489..9b2918430 100644 --- a/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-20250514-v1:0.toml @@ -1,24 +1,2 @@ -name = "Claude Sonnet 4" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-6.toml b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-6.toml index 71d3a258f..ed2c5807b 100644 --- a/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-6.toml +++ b/providers/amazon-bedrock/models/anthropic.claude-sonnet-4-6.toml @@ -1,24 +1,2 @@ -name = "Claude Sonnet 4.6" -family = "claude-sonnet" -release_date = "2026-02-17" -last_updated = "2026-03-18" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-08-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-6" diff --git a/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-20250514-v1:0.toml index f02887885..d75c7920d 100644 --- a/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-20250514-v1:0.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4 (EU)" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-6.toml b/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-6.toml index 741126c55..224eca07e 100644 --- a/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-6.toml +++ b/providers/amazon-bedrock/models/eu.anthropic.claude-sonnet-4-6.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4.6 (EU)" -family = "claude-sonnet" -release_date = "2026-02-17" -last_updated = "2026-03-18" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-08-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-6" diff --git a/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-20250514-v1:0.toml index 0bc904f72..7cc1732d6 100644 --- a/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-20250514-v1:0.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4 (Global)" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-6.toml b/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-6.toml index 9b11bae8c..0d1565597 100644 --- a/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-6.toml +++ b/providers/amazon-bedrock/models/global.anthropic.claude-sonnet-4-6.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4.6 (Global)" -family = "claude-sonnet" -release_date = "2026-02-17" -last_updated = "2026-03-18" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-08-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-6" diff --git a/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-1-20250805-v1:0.toml b/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-1-20250805-v1:0.toml index 76899402f..12f80c69c 100644 --- a/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-1-20250805-v1:0.toml +++ b/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-1-20250805-v1:0.toml @@ -1,24 +1,4 @@ name = "Claude Opus 4.1 (US)" -family = "claude-opus" -release_date = "2025-08-05" -last_updated = "2025-08-05" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-31" -open_weights = false -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-1-20250805" diff --git a/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-20250514-v1:0.toml index d036f3fa9..0ce182221 100644 --- a/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/us.anthropic.claude-opus-4-20250514-v1:0.toml @@ -1,24 +1,4 @@ name = "Claude Opus 4 (US)" -family = "claude-opus" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -open_weights = false -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-20250514" diff --git a/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-20250514-v1:0.toml b/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-20250514-v1:0.toml index 173f8f85a..82589e36d 100644 --- a/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-20250514-v1:0.toml +++ b/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-20250514-v1:0.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4 (US)" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -knowledge = "2024-04" -tool_call = true -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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-6.toml b/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-6.toml index 0dd4d8c6b..6d01ac35e 100644 --- a/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-6.toml +++ b/providers/amazon-bedrock/models/us.anthropic.claude-sonnet-4-6.toml @@ -1,24 +1,4 @@ name = "Claude Sonnet 4.6 (US)" -family = "claude-sonnet" -release_date = "2026-02-17" -last_updated = "2026-03-18" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-08-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-6" diff --git a/providers/azure/models/cohere-command-r-08-2024.toml b/providers/azure/models/cohere-command-r-08-2024.toml index 12b8ed52f..4ae1b1c4d 100644 --- a/providers/azure/models/cohere-command-r-08-2024.toml +++ b/providers/azure/models/cohere-command-r-08-2024.toml @@ -1,22 +1,2 @@ -name = "Command R" -family = "command-r" -release_date = "2024-08-30" -last_updated = "2024-08-30" -attachment = false -reasoning = false -temperature = true -knowledge = "2024-06-01" -tool_call = true -open_weights = true - -[cost] -input = 0.15 -output = 0.60 - -[limit] -context = 128_000 -output = 4_000 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "cohere/command-r-08-2024" diff --git a/providers/azure/models/cohere-command-r-plus-08-2024.toml b/providers/azure/models/cohere-command-r-plus-08-2024.toml index 002537d97..a42282f37 100644 --- a/providers/azure/models/cohere-command-r-plus-08-2024.toml +++ b/providers/azure/models/cohere-command-r-plus-08-2024.toml @@ -1,22 +1,2 @@ -name = "Command R+" -family = "command-r" -release_date = "2024-08-30" -last_updated = "2024-08-30" -attachment = false -reasoning = false -temperature = true -knowledge = "2024-06-01" -tool_call = true -open_weights = true - -[cost] -input = 2.50 -output = 10.00 - -[limit] -context = 128_000 -output = 4_000 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "cohere/command-r-plus-08-2024" diff --git a/providers/azure/models/gpt-4-turbo.toml b/providers/azure/models/gpt-4-turbo.toml index 8e00369a5..b7bf79bf1 100644 --- a/providers/azure/models/gpt-4-turbo.toml +++ b/providers/azure/models/gpt-4-turbo.toml @@ -1,22 +1,3 @@ -name = "GPT-4 Turbo" -family = "gpt" -release_date = "2023-11-06" -last_updated = "2024-04-09" -attachment = true -reasoning = false -temperature = true -knowledge = "2023-11" -tool_call = true -open_weights = false - -[cost] -input = 10.00 -output = 30.00 - -[limit] -context = 128_000 -output = 4_096 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "openai/gpt-4-turbo" +omit = ["structured_output"] diff --git a/providers/azure/models/gpt-4.1-mini.toml b/providers/azure/models/gpt-4.1-mini.toml index 7cb14ff44..fa6630abf 100644 --- a/providers/azure/models/gpt-4.1-mini.toml +++ b/providers/azure/models/gpt-4.1-mini.toml @@ -1,22 +1,6 @@ -name = "GPT-4.1 mini" -family = "gpt-mini" -release_date = "2025-04-14" -last_updated = "2025-04-14" -attachment = true -reasoning = false -temperature = true -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 0.40 -output = 1.60 -cache_read = 0.10 - -[limit] -context = 1047576 -output = 32768 +[extends] +from = "openai/gpt-4.1-mini" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/azure/models/gpt-4.1-nano.toml b/providers/azure/models/gpt-4.1-nano.toml index 7b15cc558..eb8024e78 100644 --- a/providers/azure/models/gpt-4.1-nano.toml +++ b/providers/azure/models/gpt-4.1-nano.toml @@ -1,23 +1,3 @@ -name = "GPT-4.1 nano" -family = "gpt-nano" -release_date = "2025-04-14" -last_updated = "2025-04-14" -attachment = true -reasoning = false -temperature = true -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 0.10 -output = 0.40 -cache_read = 0.03 - -[limit] -context = 1047576 -output = 32768 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "openai/gpt-4.1-nano" +omit = ["structured_output"] diff --git a/providers/azure/models/gpt-4.1.toml b/providers/azure/models/gpt-4.1.toml index 3f083dbee..aa3aca721 100644 --- a/providers/azure/models/gpt-4.1.toml +++ b/providers/azure/models/gpt-4.1.toml @@ -1,22 +1,6 @@ -name = "GPT-4.1" -family = "gpt" -release_date = "2025-04-14" -last_updated = "2025-04-14" -attachment = true -reasoning = false -temperature = true -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 2.00 -output = 8.00 -cache_read = 0.50 - -[limit] -context = 1_047_576 -output = 32_768 +[extends] +from = "openai/gpt-4.1" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/azure/models/gpt-4o-mini.toml b/providers/azure/models/gpt-4o-mini.toml index 8f98f7866..5237218ec 100644 --- a/providers/azure/models/gpt-4o-mini.toml +++ b/providers/azure/models/gpt-4o-mini.toml @@ -1,22 +1,6 @@ -name = "GPT-4o mini" -family = "gpt-mini" -release_date = "2024-07-18" -last_updated = "2024-07-18" -attachment = true -reasoning = false -temperature = true -knowledge = "2023-09" -tool_call = true -open_weights = false - -[cost] -input = 0.15 -output = 0.60 -cache_read = 0.08 - -[limit] -context = 128_000 -output = 16_384 +[extends] +from = "openai/gpt-4o-mini" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/azure/models/gpt-4o.toml b/providers/azure/models/gpt-4o.toml index e62b37983..6abfb4cb7 100644 --- a/providers/azure/models/gpt-4o.toml +++ b/providers/azure/models/gpt-4o.toml @@ -1,22 +1,6 @@ -name = "GPT-4o" -family = "gpt" -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 = 2.50 -output = 10.00 -cache_read = 1.25 - -[limit] -context = 128_000 -output = 16_384 +[extends] +from = "openai/gpt-4o" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/azure/models/gpt-5-pro.toml b/providers/azure/models/gpt-5-pro.toml index 8889ecff1..5d3503dfb 100644 --- a/providers/azure/models/gpt-5-pro.toml +++ b/providers/azure/models/gpt-5-pro.toml @@ -1,23 +1,3 @@ -name = "GPT-5 Pro" -family = "gpt-pro" -release_date = "2025-10-06" -last_updated = "2025-10-06" -attachment = true -reasoning = true -temperature = false -knowledge = "2024-09-30" -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 15.00 -output = 120.00 - -[limit] -context = 400_000 -output = 272_000 - -[modalities] -input = ["text", "image"] -output = ["text"] \ No newline at end of file +[extends] +from = "openai/gpt-5-pro" +omit = ["limit.input"] diff --git a/providers/azure/models/gpt-5.1-codex-max.toml b/providers/azure/models/gpt-5.1-codex-max.toml index fbd41dbcd..ead29cc6b 100644 --- a/providers/azure/models/gpt-5.1-codex-max.toml +++ b/providers/azure/models/gpt-5.1-codex-max.toml @@ -1,25 +1,3 @@ -name = "GPT-5.1 Codex Max" -family = "gpt-codex" -release_date = "2025-11-13" -last_updated = "2025-11-13" -attachment = true -reasoning = true -temperature = false -knowledge = "2024-09-30" -tool_call = true -structured_output = 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"] - +[extends] +from = "openai/gpt-5.1-codex-max" +omit = ["limit.input"] diff --git a/providers/azure/models/grok-3-mini.toml b/providers/azure/models/grok-3-mini.toml index daae12b2d..15c3255fa 100644 --- a/providers/azure/models/grok-3-mini.toml +++ b/providers/azure/models/grok-3-mini.toml @@ -1,24 +1,2 @@ -name = "Grok 3 Mini" -family = "grok" -release_date = "2025-02-17" -last_updated = "2025-02-17" -attachment = false -reasoning = true -temperature = true -knowledge = "2024-11" -tool_call = true -open_weights = false - -[cost] -input = 0.30 -output = 0.50 -reasoning = 0.50 -cache_read = 0.075 - -[limit] -context = 131_072 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "xai/grok-3-mini" diff --git a/providers/azure/models/grok-3.toml b/providers/azure/models/grok-3.toml index 9a4399584..d411d6eae 100644 --- a/providers/azure/models/grok-3.toml +++ b/providers/azure/models/grok-3.toml @@ -1,23 +1,2 @@ -name = "Grok 3" -family = "grok" -release_date = "2025-02-17" -last_updated = "2025-02-17" -attachment = false -reasoning = false -temperature = true -knowledge = "2024-11" -tool_call = true -open_weights = false - -[cost] -input = 3.00 -output = 15.00 -cache_read = 0.75 - -[limit] -context = 131_072 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "xai/grok-3" diff --git a/providers/azure/models/grok-4-fast-non-reasoning.toml b/providers/azure/models/grok-4-fast-non-reasoning.toml index 0a1f5f5e2..66ee13702 100644 --- a/providers/azure/models/grok-4-fast-non-reasoning.toml +++ b/providers/azure/models/grok-4-fast-non-reasoning.toml @@ -1,23 +1,2 @@ -name = "Grok 4 Fast (Non-Reasoning)" -family = "grok" -release_date = "2025-09-19" -last_updated = "2025-09-19" -attachment = true -reasoning = false -temperature = true -knowledge = "2025-07" -tool_call = true -open_weights = false - -[cost] -input = 0.20 -output = 0.50 -cache_read = 0.05 - -[limit] -context = 2_000_000 -output = 30_000 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "xai/grok-4-fast-non-reasoning" diff --git a/providers/azure/models/grok-4.toml b/providers/azure/models/grok-4.toml index d1d9f0623..371ae3a1a 100644 --- a/providers/azure/models/grok-4.toml +++ b/providers/azure/models/grok-4.toml @@ -1,24 +1,2 @@ -name = "Grok 4" -family = "grok" -release_date = "2025-07-09" -last_updated = "2025-07-09" -attachment = false -reasoning = true -temperature = true -knowledge = "2025-07" -tool_call = true -open_weights = false - -[cost] -input = 3.00 -output = 15.00 -reasoning = 15.00 -cache_read = 0.75 - -[limit] -context = 256_000 -output = 64_000 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "xai/grok-4" diff --git a/providers/azure/models/grok-code-fast-1.toml b/providers/azure/models/grok-code-fast-1.toml index e681fabb1..4678c50db 100644 --- a/providers/azure/models/grok-code-fast-1.toml +++ b/providers/azure/models/grok-code-fast-1.toml @@ -1,23 +1,2 @@ -name = "Grok Code Fast 1" -family = "grok" -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"] +[extends] +from = "xai/grok-code-fast-1" diff --git a/providers/azure/models/o3-mini.toml b/providers/azure/models/o3-mini.toml index 9d4890a5e..413083257 100644 --- a/providers/azure/models/o3-mini.toml +++ b/providers/azure/models/o3-mini.toml @@ -1,23 +1,3 @@ -name = "o3-mini" -family = "o-mini" -release_date = "2024-12-20" -last_updated = "2025-01-29" -attachment = false -reasoning = true -temperature = false -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 1.10 -output = 4.40 -cache_read = 0.55 - -[limit] -context = 200_000 -output = 100_000 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "openai/o3-mini" +omit = ["structured_output"] diff --git a/providers/azure/models/o3.toml b/providers/azure/models/o3.toml index 2ed57fae7..202f607fa 100644 --- a/providers/azure/models/o3.toml +++ b/providers/azure/models/o3.toml @@ -1,22 +1,6 @@ -name = "o3" -family = "o" -release_date = "2025-04-16" -last_updated = "2025-04-16" -attachment = true -reasoning = true -temperature = false -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 2.00 -output = 8.00 -cache_read = 0.50 - -[limit] -context = 200_000 -output = 100_000 +[extends] +from = "openai/o3" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/azure/models/o4-mini.toml b/providers/azure/models/o4-mini.toml index aa78af50a..e7dc2bb7b 100644 --- a/providers/azure/models/o4-mini.toml +++ b/providers/azure/models/o4-mini.toml @@ -1,23 +1,3 @@ -name = "o4-mini" -family = "o-mini" -release_date = "2025-04-16" -last_updated = "2025-04-16" -attachment = true -reasoning = true -temperature = false -knowledge = "2024-05" -tool_call = true -open_weights = false - -[cost] -input = 1.10 -output = 4.40 -cache_read = 0.28 - -[limit] -context = 200_000 -output = 100_000 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "openai/o4-mini" +omit = ["structured_output"] diff --git a/providers/fastrouter/models/anthropic/claude-opus-4.1.toml b/providers/fastrouter/models/anthropic/claude-opus-4.1.toml index 922fb1666..3a48c1a47 100644 --- a/providers/fastrouter/models/anthropic/claude-opus-4.1.toml +++ b/providers/fastrouter/models/anthropic/claude-opus-4.1.toml @@ -1,24 +1,2 @@ -name = "Claude Opus 4.1" -family = "claude-opus" -release_date = "2025-08-05" -last_updated = "2025-08-05" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-31" -open_weights = false - -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-1-20250805" diff --git a/providers/fastrouter/models/anthropic/claude-sonnet-4.toml b/providers/fastrouter/models/anthropic/claude-sonnet-4.toml index b348560f0..9b2918430 100644 --- a/providers/fastrouter/models/anthropic/claude-sonnet-4.toml +++ b/providers/fastrouter/models/anthropic/claude-sonnet-4.toml @@ -1,24 +1,2 @@ -name = "Claude Sonnet 4" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/fastrouter/models/openai/gpt-4.1.toml b/providers/fastrouter/models/openai/gpt-4.1.toml index 520dfe83d..aa3aca721 100644 --- a/providers/fastrouter/models/openai/gpt-4.1.toml +++ b/providers/fastrouter/models/openai/gpt-4.1.toml @@ -1,22 +1,6 @@ -name = "GPT-4.1" -family = "gpt" -release_date = "2025-04-14" -last_updated = "2025-04-14" -attachment = true -reasoning = false -temperature = true -tool_call = true -knowledge = "2024-04" -open_weights = false - -[cost] -input = 2.00 -output = 8.00 -cache_read = 0.50 - -[limit] -context = 1_047_576 -output = 32_768 +[extends] +from = "openai/gpt-4.1" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/google-vertex/models/gemini-2.0-flash-lite.toml b/providers/google-vertex/models/gemini-2.0-flash-lite.toml index efe6dae4f..498c4f946 100644 --- a/providers/google-vertex/models/gemini-2.0-flash-lite.toml +++ b/providers/google-vertex/models/gemini-2.0-flash-lite.toml @@ -1,22 +1,3 @@ -name = "Gemini 2.0 Flash Lite" -family = "gemini-flash-lite" -release_date = "2024-12-11" -last_updated = "2024-12-11" -attachment = true -reasoning = false -temperature = true -knowledge = "2024-06" -tool_call = true -open_weights = false - -[cost] -input = 0.075 -output = 0.30 - -[limit] -context = 1_048_576 -output = 8_192 - -[modalities] -input = ["text", "image", "audio", "video", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-2.0-flash-lite" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-2.5-flash-lite-preview-09-2025.toml b/providers/google-vertex/models/gemini-2.5-flash-lite-preview-09-2025.toml index 0ea0a3473..1080194e0 100644 --- a/providers/google-vertex/models/gemini-2.5-flash-lite-preview-09-2025.toml +++ b/providers/google-vertex/models/gemini-2.5-flash-lite-preview-09-2025.toml @@ -1,23 +1,3 @@ -name = "Gemini 2.5 Flash Lite Preview 09-25" -family = "gemini-flash-lite" -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"] +[extends] +from = "google/gemini-2.5-flash-lite-preview-09-2025" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-2.5-flash-lite.toml b/providers/google-vertex/models/gemini-2.5-flash-lite.toml index 2c759be0e..ceecfc2c8 100644 --- a/providers/google-vertex/models/gemini-2.5-flash-lite.toml +++ b/providers/google-vertex/models/gemini-2.5-flash-lite.toml @@ -1,23 +1,3 @@ -name = "Gemini 2.5 Flash Lite" -family = "gemini-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 +[extends] +from = "google/gemini-2.5-flash-lite" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-2.5-flash-preview-04-17.toml b/providers/google-vertex/models/gemini-2.5-flash-preview-04-17.toml index 817dea389..8bac9a239 100644 --- a/providers/google-vertex/models/gemini-2.5-flash-preview-04-17.toml +++ b/providers/google-vertex/models/gemini-2.5-flash-preview-04-17.toml @@ -1,23 +1,2 @@ -name = "Gemini 2.5 Flash Preview 04-17" -family = "gemini-flash" -release_date = "2025-04-17" -last_updated = "2025-04-17" -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"] +[extends] +from = "google/gemini-2.5-flash-preview-04-17" diff --git a/providers/google-vertex/models/gemini-2.5-flash-preview-05-20.toml b/providers/google-vertex/models/gemini-2.5-flash-preview-05-20.toml index c7b502f2f..3efe16c98 100644 --- a/providers/google-vertex/models/gemini-2.5-flash-preview-05-20.toml +++ b/providers/google-vertex/models/gemini-2.5-flash-preview-05-20.toml @@ -1,23 +1,3 @@ -name = "Gemini 2.5 Flash Preview 05-20" -family = "gemini-flash" -release_date = "2025-05-20" -last_updated = "2025-05-20" -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"] +[extends] +from = "google/gemini-2.5-flash-preview-05-20" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-2.5-pro-preview-05-06.toml b/providers/google-vertex/models/gemini-2.5-pro-preview-05-06.toml index 2def1091c..0d2926458 100644 --- a/providers/google-vertex/models/gemini-2.5-pro-preview-05-06.toml +++ b/providers/google-vertex/models/gemini-2.5-pro-preview-05-06.toml @@ -1,23 +1,3 @@ -name = "Gemini 2.5 Pro Preview 05-06" -family = "gemini-pro" -release_date = "2025-05-06" -last_updated = "2025-05-06" -attachment = true -reasoning = true -temperature = true -knowledge = "2025-01" -tool_call = true -open_weights = false - -[cost] -input = 1.25 -output = 10.00 -cache_read = 0.31 - -[limit] -context = 1_048_576 -output = 65_536 - -[modalities] -input = ["text", "image", "audio", "video", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-2.5-pro-preview-05-06" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-2.5-pro-preview-06-05.toml b/providers/google-vertex/models/gemini-2.5-pro-preview-06-05.toml index 53bd9620d..698a96f3b 100644 --- a/providers/google-vertex/models/gemini-2.5-pro-preview-06-05.toml +++ b/providers/google-vertex/models/gemini-2.5-pro-preview-06-05.toml @@ -1,23 +1,3 @@ -name = "Gemini 2.5 Pro Preview 06-05" -family = "gemini-pro" -release_date = "2025-06-05" -last_updated = "2025-06-05" -attachment = true -reasoning = true -temperature = true -knowledge = "2025-01" -tool_call = true -open_weights = false - -[cost] -input = 1.25 -output = 10.00 -cache_read = 0.31 - -[limit] -context = 1_048_576 -output = 65_536 - -[modalities] -input = ["text", "image", "audio", "video", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-2.5-pro-preview-06-05" +omit = ["structured_output"] diff --git a/providers/google-vertex/models/gemini-3-flash-preview.toml b/providers/google-vertex/models/gemini-3-flash-preview.toml index cb199c4b4..5ef45fd0e 100644 --- a/providers/google-vertex/models/gemini-3-flash-preview.toml +++ b/providers/google-vertex/models/gemini-3-flash-preview.toml @@ -1,29 +1,2 @@ -name = "Gemini 3 Flash Preview" -family = "gemini-flash" -release_date = "2025-12-17" -last_updated = "2025-12-17" -attachment = true -reasoning = true -temperature = true -tool_call = true -structured_output = true -knowledge = "2025-01" -open_weights = false - -[cost] -input = 0.50 -output = 3.00 -cache_read = 0.05 - -[cost.context_over_200k] -input = 0.50 -output = 3.00 -cache_read = 0.05 - -[limit] -context = 1048576 -output = 65536 - -[modalities] -input = ["text", "image", "video", "audio", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-3-flash-preview" diff --git a/providers/google-vertex/models/gemini-3.1-pro-preview-customtools.toml b/providers/google-vertex/models/gemini-3.1-pro-preview-customtools.toml index 611164a8f..92b13a100 100644 --- a/providers/google-vertex/models/gemini-3.1-pro-preview-customtools.toml +++ b/providers/google-vertex/models/gemini-3.1-pro-preview-customtools.toml @@ -1,29 +1,2 @@ -name = "Gemini 3.1 Pro Preview Custom Tools" -family = "gemini-pro" -release_date = "2026-02-19" -last_updated = "2026-02-19" -attachment = true -reasoning = true -temperature = true -tool_call = true -structured_output = true -knowledge = "2025-01" -open_weights = false - -[cost] -input = 2.00 -output = 12.00 -cache_read = 0.20 - -[cost.context_over_200k] -input = 4.00 -output = 18.00 -cache_read = 0.40 - -[limit] -context = 1_048_576 -output = 65_536 - -[modalities] -input = ["text", "image", "video", "audio", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-3.1-pro-preview-customtools" diff --git a/providers/google-vertex/models/gemini-3.1-pro-preview.toml b/providers/google-vertex/models/gemini-3.1-pro-preview.toml index 88520e389..99a1a3d09 100644 --- a/providers/google-vertex/models/gemini-3.1-pro-preview.toml +++ b/providers/google-vertex/models/gemini-3.1-pro-preview.toml @@ -1,29 +1,2 @@ -name = "Gemini 3.1 Pro Preview" -family = "gemini-pro" -release_date = "2026-02-19" -last_updated = "2026-02-19" -attachment = true -reasoning = true -temperature = true -tool_call = true -structured_output = true -knowledge = "2025-01" -open_weights = false - -[cost] -input = 2.00 -output = 12.00 -cache_read = 0.20 - -[cost.context_over_200k] -input = 4.00 -output = 18.00 -cache_read = 0.40 - -[limit] -context = 1_048_576 -output = 65_536 - -[modalities] -input = ["text", "image", "video", "audio", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-3.1-pro-preview" diff --git a/providers/google-vertex/models/gemini-embedding-001.toml b/providers/google-vertex/models/gemini-embedding-001.toml index e1355701b..a1a987c25 100644 --- a/providers/google-vertex/models/gemini-embedding-001.toml +++ b/providers/google-vertex/models/gemini-embedding-001.toml @@ -1,22 +1,2 @@ -name = "Gemini Embedding 001" -family = "gemini" -release_date = "2025-05-20" -last_updated = "2025-05-20" -attachment = false -reasoning = false -temperature = false -knowledge = "2025-05" -tool_call = false -open_weights = false - -[cost] -input = 0.15 -output = 0.00 - -[limit] -context = 2_048 -output = 3_072 - -[modalities] -input = ["text"] -output = ["text"] +[extends] +from = "google/gemini-embedding-001" diff --git a/providers/google-vertex/models/gemini-flash-lite-latest.toml b/providers/google-vertex/models/gemini-flash-lite-latest.toml index 916483ec5..859450f9e 100644 --- a/providers/google-vertex/models/gemini-flash-lite-latest.toml +++ b/providers/google-vertex/models/gemini-flash-lite-latest.toml @@ -1,23 +1,3 @@ -name = "Gemini Flash-Lite Latest" -family = "gemini-flash-lite" -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"] +[extends] +from = "google/gemini-flash-lite-latest" +omit = ["structured_output"] diff --git a/providers/llmgateway/models/gpt-5.2.toml b/providers/llmgateway/models/gpt-5.2.toml index 56fe0e4bb..a816a94d9 100644 --- a/providers/llmgateway/models/gpt-5.2.toml +++ b/providers/llmgateway/models/gpt-5.2.toml @@ -1,2 +1,2 @@ [extends] -from = "openai/gpt-5.2" \ No newline at end of file +from = "openai/gpt-5.2" diff --git a/providers/llmgateway/models/grok-4-1-fast.toml b/providers/llmgateway/models/grok-4-1-fast.toml index 11876ff1d..ae90e0876 100644 --- a/providers/llmgateway/models/grok-4-1-fast.toml +++ b/providers/llmgateway/models/grok-4-1-fast.toml @@ -1,2 +1,2 @@ [extends] -from = "xai/grok-4-1-fast" \ No newline at end of file +from = "xai/grok-4-1-fast" diff --git a/providers/openrouter/models/google/gemini-2.5-pro.toml b/providers/openrouter/models/google/gemini-2.5-pro.toml index 028d55994..bd908b3a3 100644 --- a/providers/openrouter/models/google/gemini-2.5-pro.toml +++ b/providers/openrouter/models/google/gemini-2.5-pro.toml @@ -1,24 +1,2 @@ -name = "Gemini 2.5 Pro" -family = "gemini-pro" -release_date = "2025-03-20" -last_updated = "2025-06-05" -attachment = true -reasoning = true -temperature = true -knowledge = "2025-01" -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 1.25 -output = 10.00 -cache_read = 0.31 - -[limit] -context = 1_048_576 -output = 65_536 - -[modalities] -input = ["text", "image", "audio", "video", "pdf"] -output = ["text"] +[extends] +from = "google/gemini-2.5-pro" diff --git a/providers/requesty/models/anthropic/claude-opus-4-1.toml b/providers/requesty/models/anthropic/claude-opus-4-1.toml index 922fb1666..3a48c1a47 100644 --- a/providers/requesty/models/anthropic/claude-opus-4-1.toml +++ b/providers/requesty/models/anthropic/claude-opus-4-1.toml @@ -1,24 +1,2 @@ -name = "Claude Opus 4.1" -family = "claude-opus" -release_date = "2025-08-05" -last_updated = "2025-08-05" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-31" -open_weights = false - -[cost] -input = 15.00 -output = 75.00 -cache_read = 1.50 -cache_write = 18.75 - -[limit] -context = 200_000 -output = 32_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-opus-4-1-20250805" diff --git a/providers/requesty/models/anthropic/claude-sonnet-4-5.toml b/providers/requesty/models/anthropic/claude-sonnet-4-5.toml index e84c7edcb..36a9acab1 100644 --- a/providers/requesty/models/anthropic/claude-sonnet-4-5.toml +++ b/providers/requesty/models/anthropic/claude-sonnet-4-5.toml @@ -1,24 +1,6 @@ -name = "Claude Sonnet 4.5" -family = "claude-sonnet" -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.3 -cache_write = 3.75 +[extends] +from = "anthropic/claude-sonnet-4-5-20250929" [limit] context = 1_000_000 output = 64_000 - -[modalities] -input = ["text", "image", "pdf"] -output = ["text"] diff --git a/providers/requesty/models/anthropic/claude-sonnet-4.toml b/providers/requesty/models/anthropic/claude-sonnet-4.toml index b348560f0..9b2918430 100644 --- a/providers/requesty/models/anthropic/claude-sonnet-4.toml +++ b/providers/requesty/models/anthropic/claude-sonnet-4.toml @@ -1,24 +1,2 @@ -name = "Claude Sonnet 4" -family = "claude-sonnet" -release_date = "2025-05-22" -last_updated = "2025-05-22" -attachment = true -reasoning = true -temperature = true -tool_call = true -knowledge = "2025-03-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", "pdf"] -output = ["text"] +[extends] +from = "anthropic/claude-sonnet-4-20250514" diff --git a/providers/requesty/models/openai/gpt-4.1.toml b/providers/requesty/models/openai/gpt-4.1.toml index 520dfe83d..aa3aca721 100644 --- a/providers/requesty/models/openai/gpt-4.1.toml +++ b/providers/requesty/models/openai/gpt-4.1.toml @@ -1,22 +1,6 @@ -name = "GPT-4.1" -family = "gpt" -release_date = "2025-04-14" -last_updated = "2025-04-14" -attachment = true -reasoning = false -temperature = true -tool_call = true -knowledge = "2024-04" -open_weights = false - -[cost] -input = 2.00 -output = 8.00 -cache_read = 0.50 - -[limit] -context = 1_047_576 -output = 32_768 +[extends] +from = "openai/gpt-4.1" +omit = ["structured_output"] [modalities] input = ["text", "image"] diff --git a/providers/requesty/models/openai/gpt-5-pro.toml b/providers/requesty/models/openai/gpt-5-pro.toml index 3723e08eb..5d3503dfb 100644 --- a/providers/requesty/models/openai/gpt-5-pro.toml +++ b/providers/requesty/models/openai/gpt-5-pro.toml @@ -1,23 +1,3 @@ -name = "GPT-5 Pro" -family = "gpt-pro" -release_date = "2025-10-06" -last_updated = "2025-10-06" -attachment = true -reasoning = true -temperature = false -knowledge = "2024-09-30" -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 15.00 -output = 120.00 - -[limit] -context = 400_000 -output = 272_000 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "openai/gpt-5-pro" +omit = ["limit.input"] diff --git a/providers/requesty/models/openai/gpt-5.2-chat.toml b/providers/requesty/models/openai/gpt-5.2-chat.toml index 6d128990b..53794523a 100644 --- a/providers/requesty/models/openai/gpt-5.2-chat.toml +++ b/providers/requesty/models/openai/gpt-5.2-chat.toml @@ -1,24 +1,2 @@ -name = "GPT-5.2 Chat" -family = "gpt-codex" -release_date = "2025-12-11" -last_updated = "2025-12-11" -attachment = true -reasoning = true -temperature = false -knowledge = "2025-08-31" -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 1.75 -output = 14.00 -cache_read = 0.175 - -[limit] -context = 128_000 -output = 16_384 - -[modalities] -input = ["text", "image"] -output = ["text"] +[extends] +from = "openai/gpt-5.2-chat-latest"