From 76e077d9338f350df797b3ceb8e7df0ff77fc7d8 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Wed, 1 Apr 2026 18:43:21 -0700 Subject: [PATCH 1/3] improvement(providers): audit and update all provider model definitions --- apps/sim/providers/anthropic/core.ts | 15 +- apps/sim/providers/models.ts | 680 +++++++++++++++------------ apps/sim/providers/utils.test.ts | 22 +- 3 files changed, 412 insertions(+), 305 deletions(-) diff --git a/apps/sim/providers/anthropic/core.ts b/apps/sim/providers/anthropic/core.ts index 240e7458dd4..8fe7785c41c 100644 --- a/apps/sim/providers/anthropic/core.ts +++ b/apps/sim/providers/anthropic/core.ts @@ -77,17 +77,24 @@ const THINKING_BUDGET_TOKENS: Record = { } /** - * Checks if a model supports adaptive thinking (Opus 4.6+) + * Checks if a model supports adaptive thinking (thinking.type: "adaptive"). + * Per the Anthropic API, only Opus 4.6 and Sonnet 4.6 support adaptive thinking. + * Opus 4.5 supports effort but NOT adaptive thinking — it uses budget_tokens with type: "enabled". */ function supportsAdaptiveThinking(modelId: string): boolean { const normalizedModel = modelId.toLowerCase() - return normalizedModel.includes('opus-4-6') || normalizedModel.includes('opus-4.6') + return ( + normalizedModel.includes('opus-4-6') || + normalizedModel.includes('opus-4.6') || + normalizedModel.includes('sonnet-4-6') || + normalizedModel.includes('sonnet-4.6') + ) } /** * Builds the thinking configuration for the Anthropic API based on model capabilities and level. * - * - Opus 4.6: Uses adaptive thinking with effort parameter (recommended by Anthropic) + * - Opus 4.6, Sonnet 4.6: Uses adaptive thinking with effort parameter * - Other models: Uses budget_tokens-based extended thinking * * Returns both the thinking config and optional output_config for adaptive thinking. @@ -104,7 +111,7 @@ function buildThinkingConfig( return null } - // Opus 4.6 uses adaptive thinking with effort parameter + // Models with effort support use adaptive thinking if (supportsAdaptiveThinking(modelId)) { return { thinking: { type: 'adaptive' }, diff --git a/apps/sim/providers/models.ts b/apps/sim/providers/models.ts index 345cc4daeba..622e6ce8472 100644 --- a/apps/sim/providers/models.ts +++ b/apps/sim/providers/models.ts @@ -130,7 +130,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 1.25, output: 10.0, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -143,7 +143,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 0.25, output: 15.0, - updatedAt: '2026-03-05', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -161,7 +161,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 30.0, output: 180.0, - updatedAt: '2026-03-05', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -171,13 +171,43 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1050000, }, + { + id: 'gpt-5.2-pro', + pricing: { + input: 21.0, + output: 168.0, + updatedAt: '2026-04-01', + }, + capabilities: { + reasoningEffort: { + values: ['medium', 'high', 'xhigh'], + }, + maxOutputTokens: 128000, + }, + contextWindow: 400000, + }, + { + id: 'gpt-5-pro', + pricing: { + input: 15.0, + output: 120.0, + updatedAt: '2026-04-01', + }, + capabilities: { + reasoningEffort: { + values: ['high'], + }, + maxOutputTokens: 272000, + }, + contextWindow: 400000, + }, { id: 'gpt-5.4-mini', pricing: { input: 0.75, cachedInput: 0.075, output: 4.5, - updatedAt: '2026-03-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -196,7 +226,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.02, output: 1.25, - updatedAt: '2026-03-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -215,7 +245,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.75, cachedInput: 0.175, output: 14.0, - updatedAt: '2025-12-11', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -233,7 +263,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-11-14', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -251,7 +281,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -269,7 +299,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.25, cachedInput: 0.025, output: 2.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -287,7 +317,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.05, cachedInput: 0.005, output: 0.4, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -305,7 +335,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -318,7 +348,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 7.5, output: 60, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -333,12 +363,41 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2, cachedInput: 0.5, output: 8, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', + }, + capabilities: { + reasoningEffort: { + values: ['low', 'medium', 'high'], + }, + maxOutputTokens: 100000, + }, + contextWindow: 200000, + }, + { + id: 'o3-mini', + pricing: { + input: 1.1, + cachedInput: 0.55, + output: 4.4, + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { values: ['low', 'medium', 'high'], }, + maxOutputTokens: 100000, + }, + contextWindow: 200000, + }, + { + id: 'o3-pro', + pricing: { + input: 20.0, + output: 80.0, + updatedAt: '2026-04-01', + }, + capabilities: { + maxOutputTokens: 100000, }, contextWindow: 200000, }, @@ -348,12 +407,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.1, cachedInput: 0.275, output: 4.4, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { values: ['low', 'medium', 'high'], }, + maxOutputTokens: 100000, }, contextWindow: 200000, }, @@ -363,12 +423,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.5, output: 8.0, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, { id: 'gpt-4.1-nano', @@ -376,12 +437,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.025, output: 0.4, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, { id: 'gpt-4.1-mini', @@ -389,12 +451,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.4, cachedInput: 0.1, output: 1.6, - updatedAt: '2025-06-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, ], }, @@ -415,7 +478,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -426,7 +489,26 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 200000, + contextWindow: 1000000, + }, + { + id: 'claude-sonnet-4-6', + pricing: { + input: 3.0, + cachedInput: 0.3, + output: 15.0, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + nativeStructuredOutputs: true, + maxOutputTokens: 128000, + thinking: { + levels: ['low', 'medium', 'high', 'max'], + default: 'high', + }, + }, + contextWindow: 1000000, }, { id: 'claude-opus-4-5', @@ -434,7 +516,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2025-11-24', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -453,12 +535,12 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, nativeStructuredOutputs: true, - maxOutputTokens: 64000, + maxOutputTokens: 32000, thinking: { levels: ['low', 'medium', 'high'], default: 'high', @@ -472,11 +554,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, - maxOutputTokens: 64000, + maxOutputTokens: 32000, thinking: { levels: ['low', 'medium', 'high'], default: 'high', @@ -490,7 +572,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -501,7 +583,7 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 200000, + contextWindow: 1000000, }, { id: 'claude-sonnet-4-0', @@ -509,7 +591,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -519,7 +601,7 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 200000, + contextWindow: 1000000, }, { id: 'claude-haiku-4-5', @@ -527,7 +609,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.0, cachedInput: 0.1, output: 5.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -546,7 +628,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.25, cachedInput: 0.03, output: 1.25, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -573,7 +655,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 1.25, output: 10.0, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -586,7 +668,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 0.25, output: 15.0, - updatedAt: '2026-03-05', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -605,7 +687,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.75, cachedInput: 0.075, output: 4.5, - updatedAt: '2026-03-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -624,7 +706,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.02, output: 1.25, - updatedAt: '2026-03-17', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -643,7 +725,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.75, cachedInput: 0.175, output: 14.0, - updatedAt: '2025-12-11', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -661,7 +743,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-11-14', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -679,7 +761,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-11-14', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -697,7 +779,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -715,7 +797,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.25, cachedInput: 0.025, output: 2.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -733,7 +815,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.05, cachedInput: 0.005, output: 0.4, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -751,7 +833,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-08-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -764,7 +846,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2, cachedInput: 0.5, output: 8, - updatedAt: '2026-02-06', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -779,7 +861,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.1, cachedInput: 0.275, output: 4.4, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: { reasoningEffort: { @@ -794,12 +876,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.5, output: 8.0, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, { id: 'azure/gpt-4.1-mini', @@ -807,12 +890,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.4, cachedInput: 0.1, output: 1.6, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, { id: 'azure/gpt-4.1-nano', @@ -820,12 +904,13 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.025, output: 0.4, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 32768, }, - contextWindow: 1000000, + contextWindow: 1047576, }, { id: 'azure/model-router', @@ -833,7 +918,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.5, output: 8.0, - updatedAt: '2025-06-15', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 200000, @@ -857,7 +942,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -876,7 +961,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -895,7 +980,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -914,12 +999,12 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, nativeStructuredOutputs: true, - maxOutputTokens: 64000, + maxOutputTokens: 32000, thinking: { levels: ['low', 'medium', 'high'], default: 'high', @@ -933,7 +1018,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.0, cachedInput: 0.1, output: 5.0, - updatedAt: '2026-02-05', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -965,33 +1050,33 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.2, output: 12.0, - updatedAt: '2026-02-19', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, thinking: { - levels: ['low', 'medium', 'high'], + levels: ['minimal', 'low', 'medium', 'high'], default: 'high', }, }, contextWindow: 1048576, }, { - id: 'gemini-3-pro-preview', + id: 'gemini-3.1-flash-lite-preview', pricing: { - input: 2.0, - cachedInput: 0.2, - output: 12.0, - updatedAt: '2025-12-17', + input: 0.25, + cachedInput: 0.025, + output: 1.5, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, thinking: { - levels: ['low', 'medium', 'high'], - default: 'high', + levels: ['minimal', 'low', 'medium', 'high'], + default: 'minimal', }, }, - contextWindow: 1000000, + contextWindow: 1048576, }, { id: 'gemini-3-flash-preview', @@ -999,7 +1084,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.5, cachedInput: 0.05, output: 3.0, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1016,7 +1101,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1029,7 +1114,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.3, cachedInput: 0.03, output: 2.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1042,7 +1127,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.01, output: 0.4, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1053,32 +1138,33 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'gemini-2.0-flash', pricing: { input: 0.1, + cachedInput: 0.025, output: 0.4, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, }, - contextWindow: 1000000, + contextWindow: 1048576, }, { id: 'gemini-2.0-flash-lite', pricing: { input: 0.075, output: 0.3, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, }, - contextWindow: 1000000, + contextWindow: 1048576, }, { id: 'deep-research-pro-preview-12-2025', pricing: { input: 2.0, output: 2.0, - updatedAt: '2026-02-10', + updatedAt: '2026-04-01', }, capabilities: { deepResearch: true, @@ -1105,24 +1191,41 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.2, output: 12.0, - updatedAt: '2026-02-19', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, thinking: { - levels: ['low', 'medium', 'high'], + levels: ['minimal', 'low', 'medium', 'high'], default: 'high', }, }, contextWindow: 1048576, }, + { + id: 'vertex/gemini-3.1-flash-lite-preview', + pricing: { + input: 0.25, + cachedInput: 0.025, + output: 1.5, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 2 }, + thinking: { + levels: ['minimal', 'low', 'medium', 'high'], + default: 'minimal', + }, + }, + contextWindow: 1048576, + }, { id: 'vertex/gemini-3-pro-preview', pricing: { input: 2.0, cachedInput: 0.2, output: 12.0, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1139,7 +1242,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.5, cachedInput: 0.05, output: 3.0, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1156,7 +1259,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1169,7 +1272,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.3, cachedInput: 0.03, output: 2.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1182,7 +1285,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.01, output: 0.4, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1193,32 +1296,33 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'vertex/gemini-2.0-flash', pricing: { input: 0.1, + cachedInput: 0.025, output: 0.4, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, }, - contextWindow: 1000000, + contextWindow: 1048576, }, { id: 'vertex/gemini-2.0-flash-lite', pricing: { input: 0.075, output: 0.3, - updatedAt: '2025-12-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, }, - contextWindow: 1000000, + contextWindow: 1048576, }, { id: 'vertex/deep-research-pro-preview-12-2025', pricing: { input: 2.0, output: 2.0, - updatedAt: '2026-02-10', + updatedAt: '2026-04-01', }, capabilities: { deepResearch: true, @@ -1242,10 +1346,10 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'deepseek-chat', pricing: { - input: 0.75, - cachedInput: 0.4, - output: 1.0, - updatedAt: '2025-03-21', + input: 0.28, + cachedInput: 0.028, + output: 0.42, + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 128000, @@ -1253,10 +1357,10 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'deepseek-v3', pricing: { - input: 0.75, - cachedInput: 0.4, - output: 1.0, - updatedAt: '2025-03-21', + input: 0.28, + cachedInput: 0.028, + output: 0.42, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1266,10 +1370,21 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'deepseek-r1', pricing: { - input: 1.0, - cachedInput: 0.5, - output: 1.5, - updatedAt: '2025-03-21', + input: 0.55, + cachedInput: 0.14, + output: 2.19, + updatedAt: '2026-04-01', + }, + capabilities: {}, + contextWindow: 128000, + }, + { + id: 'deepseek-reasoner', + pricing: { + input: 0.28, + cachedInput: 0.028, + output: 0.42, + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 128000, @@ -1293,7 +1408,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.75, output: 15.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1306,7 +1421,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.75, output: 15.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1319,7 +1434,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.05, output: 0.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1332,7 +1447,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.05, output: 0.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1343,9 +1458,9 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'grok-4-fast-reasoning', pricing: { input: 0.2, - cachedInput: 0.25, + cachedInput: 0.05, output: 0.5, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1356,9 +1471,9 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'grok-4-fast-non-reasoning', pricing: { input: 0.2, - cachedInput: 0.25, + cachedInput: 0.05, output: 0.5, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1369,22 +1484,61 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'grok-code-fast-1', pricing: { input: 0.2, - cachedInput: 0.25, + cachedInput: 0.02, output: 1.5, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 256000, }, + { + id: 'grok-4.20-0309-reasoning', + pricing: { + input: 2.0, + cachedInput: 0.2, + output: 6.0, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 2000000, + }, + { + id: 'grok-4.20-0309-non-reasoning', + pricing: { + input: 2.0, + cachedInput: 0.2, + output: 6.0, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 2000000, + }, + { + id: 'grok-4.20-multi-agent-0309', + pricing: { + input: 2.0, + cachedInput: 0.2, + output: 6.0, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 2000000, + }, { id: 'grok-3-latest', pricing: { input: 3.0, - cachedInput: 1.5, + cachedInput: 0.75, output: 15.0, - updatedAt: '2025-04-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1395,9 +1549,9 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'grok-3-fast-latest', pricing: { input: 5.0, - cachedInput: 2.5, + cachedInput: 0.75, output: 25.0, - updatedAt: '2025-04-17', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1422,60 +1576,40 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.35, output: 0.75, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, - contextWindow: 131000, + contextWindow: 131072, }, { id: 'cerebras/llama3.1-8b', pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 32000, - }, - { - id: 'cerebras/llama-3.3-70b', - pricing: { - input: 0.85, - output: 1.2, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, - contextWindow: 128000, - }, - { - id: 'cerebras/qwen-3-32b', - pricing: { - input: 0.4, - output: 0.8, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 131000, + contextWindow: 32768, }, { id: 'cerebras/qwen-3-235b-a22b-instruct-2507', pricing: { input: 0.6, output: 1.2, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, - contextWindow: 131000, + contextWindow: 131072, }, { id: 'cerebras/zai-glm-4.7', pricing: { input: 2.25, output: 2.75, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, - contextWindow: 131000, + contextWindow: 131072, }, ], }, @@ -1495,7 +1629,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.6, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1505,7 +1639,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.075, output: 0.3, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1515,7 +1649,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.075, output: 0.3, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1525,7 +1659,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.29, output: 0.59, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1535,7 +1669,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.05, output: 0.08, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1545,7 +1679,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.59, output: 0.79, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, @@ -1555,71 +1689,21 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.11, output: 0.34, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 131072, - }, - { - id: 'groq/meta-llama/llama-4-maverick-17b-128e-instruct', - pricing: { - input: 0.2, - output: 0.6, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 131072, }, - { - id: 'groq/gemma2-9b-it', - pricing: { - input: 0.04, - output: 0.04, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 8192, - }, - { - id: 'groq/deepseek-r1-distill-llama-70b', - pricing: { - input: 0.59, - output: 0.79, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 128000, - }, - { - id: 'groq/deepseek-r1-distill-qwen-32b', - pricing: { - input: 0.69, - output: 0.69, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 128000, - }, { id: 'groq/moonshotai/kimi-k2-instruct-0905', pricing: { input: 1.0, output: 3.0, - updatedAt: '2026-01-27', + updatedAt: '2026-04-01', }, capabilities: {}, contextWindow: 262144, }, - { - id: 'groq/meta-llama/llama-guard-4-12b', - pricing: { - input: 0.2, - output: 0.2, - updatedAt: '2026-01-27', - }, - capabilities: {}, - contextWindow: 131072, - }, ], }, mistral: { @@ -1645,7 +1729,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1657,7 +1741,31 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 256000, + }, + { + id: 'mistral-small-2603', + pricing: { + input: 0.15, + output: 0.6, + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 256000, + }, + { + id: 'devstral-2512', + pricing: { + input: 0.4, + output: 2.0, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1669,7 +1777,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 6.0, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1681,7 +1789,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 5.0, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1693,7 +1801,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 5.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1705,7 +1813,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1717,7 +1825,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1729,7 +1837,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1741,7 +1849,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1753,7 +1861,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2025-05-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1763,21 +1871,21 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'mistral-small-latest', pricing: { - input: 0.1, - output: 0.3, - updatedAt: '2025-12-02', + input: 0.15, + output: 0.6, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, - contextWindow: 128000, + contextWindow: 256000, }, { id: 'mistral-small-2506', pricing: { input: 0.1, output: 0.3, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1789,7 +1897,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.15, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1801,19 +1909,31 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.3, output: 0.9, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, - contextWindow: 256000, + contextWindow: 128000, }, { id: 'codestral-2508', pricing: { input: 0.3, output: 0.9, - updatedAt: '2025-10-11', + updatedAt: '2026-04-01', + }, + capabilities: { + temperature: { min: 0, max: 1 }, + }, + contextWindow: 128000, + }, + { + id: 'devstral-latest', + pricing: { + input: 0.4, + output: 2.0, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1825,19 +1945,19 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.1, output: 0.3, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, - contextWindow: 128000, + contextWindow: 256000, }, { id: 'devstral-small-2507', pricing: { input: 0.1, output: 0.3, - updatedAt: '2025-07-10', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1847,9 +1967,9 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'devstral-medium-2507', pricing: { - input: 0.5, - output: 1.5, - updatedAt: '2025-07-10', + input: 0.4, + output: 2.0, + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1861,7 +1981,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.2, output: 0.2, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1873,7 +1993,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.2, output: 0.2, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1885,7 +2005,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.15, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1897,31 +2017,19 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.15, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 256000, }, - { - id: 'ministral-8b-2410', - pricing: { - input: 0.1, - output: 0.1, - updatedAt: '2025-10-09', - }, - capabilities: { - temperature: { min: 0, max: 1 }, - }, - contextWindow: 128000, - }, { id: 'ministral-3b-latest', pricing: { input: 0.1, output: 0.1, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1933,25 +2041,13 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.1, output: 0.1, - updatedAt: '2025-12-02', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 256000, }, - { - id: 'ministral-3b-2410', - pricing: { - input: 0.04, - output: 0.04, - updatedAt: '2025-10-09', - }, - capabilities: { - temperature: { min: 0, max: 1 }, - }, - contextWindow: 128000, - }, ], }, ollama: { @@ -1984,7 +2080,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 5.0, output: 25.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1997,7 +2093,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 3.0, output: 15.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2010,7 +2106,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 1.0, output: 5.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2023,7 +2119,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 15.0, output: 75.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2036,7 +2132,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 1.0, output: 4.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2048,7 +2144,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.08, output: 0.32, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2060,7 +2156,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.5, output: 10.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2072,7 +2168,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.8, output: 3.2, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2084,7 +2180,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.06, output: 0.24, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2096,7 +2192,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.035, output: 0.14, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2108,7 +2204,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.24, output: 0.97, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2120,7 +2216,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.18, output: 0.72, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2132,7 +2228,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.72, output: 0.72, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2144,7 +2240,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 2.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2156,7 +2252,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.16, output: 0.16, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2168,7 +2264,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.15, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2180,7 +2276,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2192,7 +2288,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 5.32, output: 16.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2204,7 +2300,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.65, output: 3.5, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2216,7 +2312,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.3, output: 0.6, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2228,7 +2324,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 6.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2240,7 +2336,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 6.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2252,7 +2348,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 4.0, output: 12.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2264,7 +2360,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 2.0, output: 6.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2276,7 +2372,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2288,7 +2384,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.2, output: 0.2, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2300,7 +2396,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2312,7 +2408,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.04, output: 0.04, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2324,7 +2420,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.45, output: 0.7, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2336,7 +2432,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2348,7 +2444,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 3.0, output: 15.0, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2360,7 +2456,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-01-07', + updatedAt: '2026-04-01', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2582,17 +2678,17 @@ export const EMBEDDING_MODEL_PRICING: Record = { 'text-embedding-3-small': { input: 0.02, // $0.02 per 1M tokens output: 0.0, - updatedAt: '2025-07-10', + updatedAt: '2026-04-01', }, 'text-embedding-3-large': { input: 0.13, // $0.13 per 1M tokens output: 0.0, - updatedAt: '2025-07-10', + updatedAt: '2026-04-01', }, 'text-embedding-ada-002': { input: 0.1, // $0.1 per 1M tokens output: 0.0, - updatedAt: '2025-07-10', + updatedAt: '2026-04-01', }, } diff --git a/apps/sim/providers/utils.test.ts b/apps/sim/providers/utils.test.ts index 1f596e45a73..9e1491d9aca 100644 --- a/apps/sim/providers/utils.test.ts +++ b/apps/sim/providers/utils.test.ts @@ -392,7 +392,6 @@ describe('Model Capabilities', () => { expect(supportsThinking('claude-sonnet-4-5')).toBe(true) expect(supportsThinking('claude-sonnet-4-0')).toBe(true) expect(supportsThinking('claude-haiku-4-5')).toBe(true) - expect(supportsThinking('gemini-3-pro-preview')).toBe(true) expect(supportsThinking('gemini-3-flash-preview')).toBe(true) }) @@ -511,7 +510,6 @@ describe('Model Capabilities', () => { expect(MODELS_WITH_THINKING).toContain('claude-sonnet-4-5') expect(MODELS_WITH_THINKING).toContain('claude-sonnet-4-0') - expect(MODELS_WITH_THINKING).toContain('gemini-3-pro-preview') expect(MODELS_WITH_THINKING).toContain('gemini-3-flash-preview') expect(MODELS_WITH_THINKING).toContain('claude-haiku-4-5') @@ -523,7 +521,12 @@ describe('Model Capabilities', () => { it.concurrent('should have GPT-5 models in both reasoning effort and verbosity arrays', () => { const gpt5ModelsWithReasoningEffort = MODELS_WITH_REASONING_EFFORT.filter( - (m) => m.includes('gpt-5') && !m.includes('chat-latest') && !m.includes('gpt-5.4-pro') + (m) => + m.includes('gpt-5') && + !m.includes('chat-latest') && + !m.includes('gpt-5.4-pro') && + !m.includes('gpt-5.2-pro') && + !m.includes('gpt-5-pro') ) const gpt5ModelsWithVerbosity = MODELS_WITH_VERBOSITY.filter( (m) => m.includes('gpt-5') && !m.includes('chat-latest') @@ -533,6 +536,12 @@ describe('Model Capabilities', () => { expect(MODELS_WITH_REASONING_EFFORT).toContain('gpt-5.4-pro') expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5.4-pro') + expect(MODELS_WITH_REASONING_EFFORT).toContain('gpt-5.2-pro') + expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5.2-pro') + + expect(MODELS_WITH_REASONING_EFFORT).toContain('gpt-5-pro') + expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5-pro') + expect(MODELS_WITH_REASONING_EFFORT).toContain('o1') expect(MODELS_WITH_VERBOSITY).not.toContain('o1') }) @@ -629,11 +638,6 @@ describe('Model Capabilities', () => { }) it.concurrent('should return correct levels for Gemini 3 models', () => { - const proLevels = getThinkingLevelsForModel('gemini-3-pro-preview') - expect(proLevels).toBeDefined() - expect(proLevels).toContain('low') - expect(proLevels).toContain('high') - const flashLevels = getThinkingLevelsForModel('gemini-3-flash-preview') expect(flashLevels).toBeDefined() expect(flashLevels).toContain('minimal') @@ -669,7 +673,7 @@ describe('Max Output Tokens', () => { }) it.concurrent('should return correct max for Claude Opus 4.1', () => { - expect(getMaxOutputTokensForModel('claude-opus-4-1')).toBe(64000) + expect(getMaxOutputTokensForModel('claude-opus-4-1')).toBe(32000) }) it.concurrent('should return standard default for models without maxOutputTokens', () => { From 4d02da5e19e7d8bed36ce47eae063d6ccf8c9c3b Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Wed, 1 Apr 2026 19:09:41 -0700 Subject: [PATCH 2/3] fix(providers): add maxOutputTokens to azure/o3 and azure/o4-mini --- apps/sim/providers/models.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/sim/providers/models.ts b/apps/sim/providers/models.ts index 622e6ce8472..dd2cf4178af 100644 --- a/apps/sim/providers/models.ts +++ b/apps/sim/providers/models.ts @@ -854,6 +854,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, }, contextWindow: 200000, + maxOutputTokens: 100000, }, { id: 'azure/o4-mini', @@ -869,6 +870,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, }, contextWindow: 200000, + maxOutputTokens: 100000, }, { id: 'azure/gpt-4.1', From c518c6fbbcc2adfc5cbd15662577f25899e3d9f5 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Wed, 1 Apr 2026 19:14:28 -0700 Subject: [PATCH 3/3] fix(providers): move maxOutputTokens inside capabilities for azure models --- apps/sim/providers/models.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/sim/providers/models.ts b/apps/sim/providers/models.ts index dd2cf4178af..f29bc583e61 100644 --- a/apps/sim/providers/models.ts +++ b/apps/sim/providers/models.ts @@ -852,9 +852,9 @@ export const PROVIDER_DEFINITIONS: Record = { reasoningEffort: { values: ['low', 'medium', 'high'], }, + maxOutputTokens: 100000, }, contextWindow: 200000, - maxOutputTokens: 100000, }, { id: 'azure/o4-mini', @@ -868,9 +868,9 @@ export const PROVIDER_DEFINITIONS: Record = { reasoningEffort: { values: ['low', 'medium', 'high'], }, + maxOutputTokens: 100000, }, contextWindow: 200000, - maxOutputTokens: 100000, }, { id: 'azure/gpt-4.1',