diff --git a/apps/sim/app/(landing)/models/utils.test.ts b/apps/sim/app/(landing)/models/utils.test.ts index 894c74500c..05c8d88cca 100644 --- a/apps/sim/app/(landing)/models/utils.test.ts +++ b/apps/sim/app/(landing)/models/utils.test.ts @@ -38,7 +38,7 @@ describe('model catalog capability facts', () => { it.concurrent('keeps best-for copy for clearly differentiated models only', () => { const researchModel = getModelBySlug('google', 'deep-research-pro-preview-12-2025') - const generalModel = getModelBySlug('xai', 'grok-4-latest') + const generalModel = getModelBySlug('mistral', 'mistral-medium-latest') expect(researchModel).not.toBeNull() expect(generalModel).not.toBeNull() diff --git a/apps/sim/blocks/blocks/agent.ts b/apps/sim/blocks/blocks/agent.ts index bb106f9fdc..afa55b44db 100644 --- a/apps/sim/blocks/blocks/agent.ts +++ b/apps/sim/blocks/blocks/agent.ts @@ -412,6 +412,28 @@ Return ONLY the JSON array.`, })(), }), }, + { + id: 'temperature', + title: 'Temperature', + type: 'slider', + min: 0, + max: 1.5, + defaultValue: 0.3, + mode: 'advanced', + condition: () => ({ + field: 'model', + value: (() => { + const deepResearch = new Set(MODELS_WITH_DEEP_RESEARCH.map((m) => m.toLowerCase())) + const allModels = Object.keys(getBaseModelProviders()) + return allModels.filter( + (model) => + supportsTemperature(model) && + getMaxTemperature(model) === 1.5 && + !deepResearch.has(model.toLowerCase()) + ) + })(), + }), + }, { id: 'temperature', title: 'Temperature', diff --git a/apps/sim/providers/bedrock/utils.test.ts b/apps/sim/providers/bedrock/utils.test.ts new file mode 100644 index 0000000000..a667d61412 --- /dev/null +++ b/apps/sim/providers/bedrock/utils.test.ts @@ -0,0 +1,46 @@ +/** + * @vitest-environment node + */ +import { describe, expect, it } from 'vitest' +import { getBedrockInferenceProfileId } from '@/providers/bedrock/utils' + +describe('getBedrockInferenceProfileId', () => { + it.concurrent('prefixes geo inference profile for models that require it', () => { + expect( + getBedrockInferenceProfileId('bedrock/anthropic.claude-sonnet-4-5-20250929-v1:0', 'us-east-1') + ).toBe('us.anthropic.claude-sonnet-4-5-20250929-v1:0') + expect(getBedrockInferenceProfileId('bedrock/amazon.nova-pro-v1:0', 'eu-west-1')).toBe( + 'eu.amazon.nova-pro-v1:0' + ) + expect( + getBedrockInferenceProfileId('bedrock/meta.llama4-scout-17b-instruct-v1:0', 'us-west-2') + ).toBe('us.meta.llama4-scout-17b-instruct-v1:0') + }) + + it.concurrent('returns already-prefixed inference profile IDs unchanged', () => { + expect( + getBedrockInferenceProfileId('us.anthropic.claude-sonnet-4-5-20250929-v1:0', 'us-east-1') + ).toBe('us.anthropic.claude-sonnet-4-5-20250929-v1:0') + expect(getBedrockInferenceProfileId('global.amazon.nova-2-lite-v1:0', 'us-east-1')).toBe( + 'global.amazon.nova-2-lite-v1:0' + ) + }) + + it.concurrent('returns the bare model ID for models without geo profile support', () => { + expect( + getBedrockInferenceProfileId('bedrock/mistral.mistral-large-3-675b-instruct', 'us-east-1') + ).toBe('mistral.mistral-large-3-675b-instruct') + expect( + getBedrockInferenceProfileId('bedrock/mistral.ministral-3-8b-instruct', 'eu-west-1') + ).toBe('mistral.ministral-3-8b-instruct') + expect(getBedrockInferenceProfileId('bedrock/cohere.command-r-plus-v1:0', 'us-east-1')).toBe( + 'cohere.command-r-plus-v1:0' + ) + expect( + getBedrockInferenceProfileId('bedrock/mistral.mixtral-8x7b-instruct-v0:1', 'ap-southeast-1') + ).toBe('mistral.mixtral-8x7b-instruct-v0:1') + expect( + getBedrockInferenceProfileId('bedrock/amazon.titan-text-premier-v1:0', 'us-east-1') + ).toBe('amazon.titan-text-premier-v1:0') + }) +}) diff --git a/apps/sim/providers/bedrock/utils.ts b/apps/sim/providers/bedrock/utils.ts index 401c264c0c..a385ffd053 100644 --- a/apps/sim/providers/bedrock/utils.ts +++ b/apps/sim/providers/bedrock/utils.ts @@ -81,10 +81,31 @@ export function generateToolUseId(toolName: string): string { return `${truncatedName}${suffix}` } +/** + * Models whose AWS model cards state geo/cross-region inference profiles are + * not supported ("Geo inference ID: Not supported"). These must be invoked + * with the bare in-region model ID — prefixing them with a geo profile + * (e.g. us.mistral...) produces an invalid model identifier. + */ +const GEO_PROFILE_UNSUPPORTED_MODEL_IDS = new Set([ + 'mistral.mistral-large-3-675b-instruct', + 'mistral.mistral-large-2411-v1:0', + 'mistral.mistral-large-2407-v1:0', + 'mistral.magistral-small-2509', + 'mistral.ministral-3-14b-instruct', + 'mistral.ministral-3-8b-instruct', + 'mistral.ministral-3-3b-instruct', + 'mistral.mixtral-8x7b-instruct-v0:1', + 'amazon.titan-text-premier-v1:0', + 'cohere.command-r-v1:0', + 'cohere.command-r-plus-v1:0', +]) + /** * Converts a model ID to the Bedrock inference profile format. * AWS Bedrock requires inference profile IDs (e.g., us.anthropic.claude-...) - * for on-demand invocation of newer models. + * for on-demand invocation of newer models, while some models only accept + * the bare in-region model ID. * * @param modelId - The model ID (e.g., "bedrock/anthropic.claude-sonnet-4-5-20250929-v1:0") * @param region - The AWS region (e.g., "us-east-1") @@ -97,6 +118,10 @@ export function getBedrockInferenceProfileId(modelId: string, region: string): s return baseModelId } + if (GEO_PROFILE_UNSUPPORTED_MODEL_IDS.has(baseModelId)) { + return baseModelId + } + let inferencePrefix: string if (region.startsWith('us-gov-')) { inferencePrefix = 'us-gov' diff --git a/apps/sim/providers/models.ts b/apps/sim/providers/models.ts index 58dba7431b..b48805dec2 100644 --- a/apps/sim/providers/models.ts +++ b/apps/sim/providers/models.ts @@ -110,7 +110,7 @@ export const PROVIDER_DEFINITIONS: Record = { color: '#EF2CC1', isReseller: true, capabilities: { - temperature: { min: 0, max: 2 }, + temperature: { min: 0, max: 1 }, toolUsageControl: true, }, contextInformationAvailable: false, @@ -157,7 +157,7 @@ export const PROVIDER_DEFINITIONS: Record = { isReseller: true, capabilities: { temperature: { min: 0, max: 2 }, - toolUsageControl: true, + toolUsageControl: false, }, contextInformationAvailable: false, models: [], @@ -208,7 +208,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.5, output: 8.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -223,7 +223,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.4, cachedInput: 0.1, output: 1.6, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -238,7 +238,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.025, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -246,6 +246,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1047576, releaseDate: '2025-04-14', + deprecated: true, }, // GPT-5.5 family { @@ -253,15 +254,12 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 30.0, output: 180.0, - updatedAt: '2026-04-23', + updatedAt: '2026-06-11', }, capabilities: { nativeStructuredOutputs: true, reasoningEffort: { - values: ['none', 'low', 'medium', 'high', 'xhigh'], - }, - verbosity: { - values: ['low', 'medium', 'high'], + values: ['medium', 'high', 'xhigh'], }, maxOutputTokens: 128000, }, @@ -274,7 +272,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 30.0, - updatedAt: '2026-04-23', + updatedAt: '2026-06-11', }, capabilities: { nativeStructuredOutputs: true, @@ -296,7 +294,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 30.0, output: 180.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -313,7 +311,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 0.25, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -333,7 +331,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.75, cachedInput: 0.075, output: 4.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -353,7 +351,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.02, output: 1.25, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -374,7 +372,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 21.0, output: 168.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -391,7 +389,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.75, cachedInput: 0.175, output: 14.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -412,7 +410,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -424,7 +422,7 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 128000, }, contextWindow: 400000, - releaseDate: '2025-11-12', + releaseDate: '2025-11-13', }, // GPT-5 family { @@ -432,7 +430,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 15.0, output: 120.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -441,7 +439,7 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 272000, }, contextWindow: 400000, - releaseDate: '2025-08-07', + releaseDate: '2025-10-06', }, { id: 'gpt-5', @@ -449,7 +447,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -469,7 +467,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.25, cachedInput: 0.025, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -489,7 +487,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.05, cachedInput: 0.005, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -509,7 +507,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -517,6 +515,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 128000, releaseDate: '2025-08-07', + deprecated: true, }, // o-series reasoning models { @@ -525,7 +524,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.1, cachedInput: 0.275, output: 4.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -535,13 +534,14 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-04-16', + deprecated: true, }, { id: 'o3-pro', pricing: { input: 20.0, output: 80.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { maxOutputTokens: 100000, @@ -555,7 +555,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2, cachedInput: 0.5, output: 8, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -565,6 +565,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-04-16', + deprecated: true, }, { id: 'o3-mini', @@ -572,7 +573,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.1, cachedInput: 0.55, output: 4.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -582,6 +583,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-01-31', + deprecated: true, }, { id: 'o1', @@ -589,7 +591,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 7.5, output: 60, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -598,7 +600,8 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 100000, }, contextWindow: 200000, - releaseDate: '2024-12-05', + releaseDate: '2024-12-17', + deprecated: true, }, // Legacy { @@ -607,7 +610,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 1.25, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -640,6 +643,7 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-06-09', }, capabilities: { + nativeStructuredOutputs: true, maxOutputTokens: 128000, thinking: { levels: ['low', 'medium', 'high', 'xhigh', 'max'], @@ -666,7 +670,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, }, contextWindow: 1000000, - releaseDate: '2026-05-27', + releaseDate: '2026-05-28', recommended: true, }, { @@ -694,7 +698,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -714,7 +718,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -735,7 +739,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -755,11 +759,10 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, - nativeStructuredOutputs: true, maxOutputTokens: 32000, thinking: { levels: ['low', 'medium', 'high'], @@ -768,6 +771,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-08-05', + deprecated: true, }, { id: 'claude-opus-4-0', @@ -775,7 +779,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -787,6 +791,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-05-22', + deprecated: true, }, { id: 'claude-sonnet-4-5', @@ -794,7 +799,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -805,7 +810,7 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 1000000, + contextWindow: 200000, releaseDate: '2025-09-29', }, { @@ -814,7 +819,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -824,8 +829,9 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 1000000, + contextWindow: 200000, releaseDate: '2025-05-22', + deprecated: true, }, { id: 'claude-haiku-4-5', @@ -833,7 +839,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.0, cachedInput: 0.1, output: 5.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -861,7 +867,7 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 4096, }, contextWindow: 200000, - releaseDate: '2024-03-07', + releaseDate: '2024-03-13', deprecated: true, }, ], @@ -870,7 +876,7 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'azure-openai', name: 'Azure OpenAI', description: 'Microsoft Azure OpenAI Service models', - defaultModel: 'azure/gpt-4o', + defaultModel: 'azure/gpt-5.4', modelPatterns: [/^azure\//], capabilities: { toolUsageControl: true, @@ -884,13 +890,15 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 1.25, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 16384, }, contextWindow: 128000, - releaseDate: '2024-05-13', + releaseDate: '2024-11-20', + deprecated: true, }, { id: 'azure/gpt-5.4', @@ -898,11 +906,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.5, cachedInput: 0.25, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { - values: ['none', 'low', 'medium', 'high', 'xhigh'], + values: ['low', 'medium', 'high'], }, verbosity: { values: ['low', 'medium', 'high'], @@ -918,11 +926,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.75, cachedInput: 0.075, output: 4.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { - values: ['none', 'low', 'medium', 'high', 'xhigh'], + values: ['low', 'medium', 'high'], }, verbosity: { values: ['low', 'medium', 'high'], @@ -938,11 +946,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.2, cachedInput: 0.02, output: 1.25, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { - values: ['none', 'low', 'medium', 'high', 'xhigh'], + values: ['low', 'medium', 'high'], }, verbosity: { values: ['low', 'medium', 'high'], @@ -958,11 +966,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.75, cachedInput: 0.175, output: 14.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { - values: ['none', 'low', 'medium', 'high', 'xhigh'], + values: ['none', 'low', 'medium', 'high'], }, verbosity: { values: ['low', 'medium', 'high'], @@ -978,7 +986,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -990,7 +998,7 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 128000, }, contextWindow: 400000, - releaseDate: '2025-11-12', + releaseDate: '2025-11-13', }, { id: 'azure/gpt-5.1-codex', @@ -998,7 +1006,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1010,7 +1018,7 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 128000, }, contextWindow: 400000, - releaseDate: '2025-11-12', + releaseDate: '2025-11-13', }, { id: 'azure/gpt-5', @@ -1018,7 +1026,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1038,7 +1046,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.25, cachedInput: 0.025, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1058,7 +1066,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.05, cachedInput: 0.005, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1073,15 +1081,16 @@ export const PROVIDER_DEFINITIONS: Record = { releaseDate: '2025-08-07', }, { - id: 'azure/gpt-5-chat-latest', + id: 'azure/gpt-5-chat', pricing: { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 16384, }, contextWindow: 128000, releaseDate: '2025-08-07', @@ -1092,7 +1101,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2, cachedInput: 0.5, output: 8, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1109,7 +1118,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.1, cachedInput: 0.275, output: 4.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { reasoningEffort: { @@ -1126,7 +1135,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.5, output: 8.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1141,7 +1150,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.4, cachedInput: 0.1, output: 1.6, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1156,7 +1165,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.025, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1175,7 +1184,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, capabilities: {}, contextWindow: 200000, - releaseDate: '2025-04-14', + releaseDate: '2025-05-19', }, ], }, @@ -1197,7 +1206,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1208,7 +1217,7 @@ export const PROVIDER_DEFINITIONS: Record = { default: 'high', }, }, - contextWindow: 200000, + contextWindow: 1000000, releaseDate: '2026-02-05', }, { @@ -1217,7 +1226,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 5.0, cachedInput: 0.5, output: 25.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1237,7 +1246,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 3.0, cachedInput: 0.3, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1257,11 +1266,10 @@ export const PROVIDER_DEFINITIONS: Record = { input: 15.0, cachedInput: 1.5, output: 75.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, - nativeStructuredOutputs: true, maxOutputTokens: 32000, thinking: { levels: ['low', 'medium', 'high'], @@ -1270,6 +1278,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-08-05', + deprecated: true, }, { id: 'azure-anthropic/claude-haiku-4-5', @@ -1277,7 +1286,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.0, cachedInput: 0.1, output: 5.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -1331,12 +1340,12 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.2, output: 12.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, thinking: { - levels: ['minimal', 'low', 'medium', 'high'], + levels: ['low', 'medium', 'high'], default: 'high', }, maxOutputTokens: 65536, @@ -1345,12 +1354,12 @@ export const PROVIDER_DEFINITIONS: Record = { releaseDate: '2026-02-19', }, { - id: 'gemini-3.1-flash-lite-preview', + id: 'gemini-3.1-flash-lite', pricing: { input: 0.25, cachedInput: 0.025, output: 1.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1361,7 +1370,8 @@ export const PROVIDER_DEFINITIONS: Record = { maxOutputTokens: 65536, }, contextWindow: 1048576, - releaseDate: '2026-03-03', + releaseDate: '2026-05-07', + speedOptimized: true, }, { id: 'gemini-3-flash-preview', @@ -1369,7 +1379,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.5, cachedInput: 0.05, output: 3.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1379,8 +1389,9 @@ export const PROVIDER_DEFINITIONS: Record = { }, maxOutputTokens: 65536, }, - contextWindow: 1000000, + contextWindow: 1048576, releaseDate: '2025-12-17', + deprecated: true, }, { id: 'gemini-2.5-pro', @@ -1388,7 +1399,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1403,7 +1414,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.3, cachedInput: 0.03, output: 2.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1418,7 +1429,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.01, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1434,7 +1445,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.025, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1442,13 +1453,14 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1048576, releaseDate: '2025-02-05', + deprecated: true, }, { id: 'gemini-2.0-flash-lite', pricing: { input: 0.075, output: 0.3, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1456,20 +1468,22 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1048576, releaseDate: '2025-02-25', + deprecated: true, }, { id: 'deep-research-pro-preview-12-2025', pricing: { input: 2.0, - output: 2.0, - updatedAt: '2026-04-01', + cachedInput: 0.2, + output: 12.0, + updatedAt: '2026-06-11', }, capabilities: { deepResearch: true, memory: false, maxOutputTokens: 65536, }, - contextWindow: 1000000, + contextWindow: 1048576, releaseDate: '2025-12-11', }, ], @@ -1500,9 +1514,11 @@ export const PROVIDER_DEFINITIONS: Record = { levels: ['minimal', 'low', 'medium', 'high'], default: 'medium', }, + maxOutputTokens: 65536, }, contextWindow: 1048576, releaseDate: '2026-05-19', + recommended: true, }, { id: 'vertex/gemini-3.1-pro-preview', @@ -1510,25 +1526,26 @@ export const PROVIDER_DEFINITIONS: Record = { input: 2.0, cachedInput: 0.2, output: 12.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, thinking: { - levels: ['minimal', 'low', 'medium', 'high'], + levels: ['low', 'medium', 'high'], default: 'high', }, + maxOutputTokens: 65536, }, contextWindow: 1048576, releaseDate: '2026-02-19', }, { - id: 'vertex/gemini-3.1-flash-lite-preview', + id: 'vertex/gemini-3.1-flash-lite', pricing: { input: 0.25, cachedInput: 0.025, output: 1.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1536,9 +1553,11 @@ export const PROVIDER_DEFINITIONS: Record = { levels: ['minimal', 'low', 'medium', 'high'], default: 'minimal', }, + maxOutputTokens: 65536, }, contextWindow: 1048576, - releaseDate: '2026-03-03', + releaseDate: '2026-05-07', + speedOptimized: true, }, { id: 'vertex/gemini-3-pro-preview', @@ -1557,6 +1576,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1000000, releaseDate: '2025-11-18', + deprecated: true, }, { id: 'vertex/gemini-3-flash-preview', @@ -1564,7 +1584,7 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.5, cachedInput: 0.05, output: 3.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, @@ -1572,8 +1592,9 @@ export const PROVIDER_DEFINITIONS: Record = { levels: ['minimal', 'low', 'medium', 'high'], default: 'high', }, + maxOutputTokens: 65536, }, - contextWindow: 1000000, + contextWindow: 1048576, releaseDate: '2025-12-17', }, { @@ -1582,10 +1603,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 1.25, cachedInput: 0.125, output: 10.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 65535, }, contextWindow: 1048576, releaseDate: '2025-03-25', @@ -1596,10 +1618,11 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.3, cachedInput: 0.03, output: 2.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 65535, }, contextWindow: 1048576, releaseDate: '2025-05-20', @@ -1610,27 +1633,30 @@ export const PROVIDER_DEFINITIONS: Record = { input: 0.1, cachedInput: 0.01, output: 0.4, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, + maxOutputTokens: 65535, }, contextWindow: 1048576, releaseDate: '2025-06-17', + speedOptimized: true, }, { id: 'vertex/gemini-2.0-flash', pricing: { - input: 0.1, + input: 0.15, cachedInput: 0.025, - output: 0.4, - updatedAt: '2026-04-01', + output: 0.6, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 2 }, }, contextWindow: 1048576, releaseDate: '2025-02-05', + deprecated: true, }, { id: 'vertex/gemini-2.0-flash-lite', @@ -1644,19 +1670,22 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 1048576, releaseDate: '2025-02-25', + deprecated: true, }, { id: 'vertex/deep-research-pro-preview-12-2025', pricing: { input: 2.0, - output: 2.0, - updatedAt: '2026-04-01', + cachedInput: 0.2, + output: 12.0, + updatedAt: '2026-06-11', }, capabilities: { deepResearch: true, memory: false, + maxOutputTokens: 65536, }, - contextWindow: 1000000, + contextWindow: 1048576, releaseDate: '2025-12-11', }, ], @@ -1676,13 +1705,15 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'deepseek-chat', pricing: { - input: 0.28, - cachedInput: 0.028, - output: 0.42, - updatedAt: '2026-04-01', + input: 0.14, + cachedInput: 0.0028, + output: 0.28, + updatedAt: '2026-06-11', }, - capabilities: {}, - contextWindow: 128000, + capabilities: { + temperature: { min: 0, max: 2 }, + }, + contextWindow: 1000000, releaseDate: '2024-12-26', }, { @@ -1698,6 +1729,7 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 128000, releaseDate: '2024-12-26', + deprecated: true, }, { id: 'deepseek-r1', @@ -1710,17 +1742,18 @@ export const PROVIDER_DEFINITIONS: Record = { capabilities: {}, contextWindow: 128000, releaseDate: '2025-01-20', + deprecated: true, }, { id: 'deepseek-reasoner', pricing: { - input: 0.28, - cachedInput: 0.028, - output: 0.42, - updatedAt: '2026-04-01', + input: 0.14, + cachedInput: 0.0028, + output: 0.28, + updatedAt: '2026-06-11', }, capabilities: {}, - contextWindow: 128000, + contextWindow: 1000000, releaseDate: '2025-01-20', }, ], @@ -1729,7 +1762,7 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'xai', name: 'xAI', description: "xAI's Grok models", - defaultModel: 'grok-4-latest', + defaultModel: 'grok-4.3', modelPatterns: [/^grok/], icon: xAIIcon, color: '#555555', @@ -1746,7 +1779,7 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-05-05', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, contextWindow: 1000000, releaseDate: '2026-04-30', @@ -1755,170 +1788,179 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'grok-4-latest', pricing: { - input: 3.0, - cachedInput: 0.75, - output: 15.0, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 256000, + contextWindow: 1000000, releaseDate: '2025-07-09', + deprecated: true, }, { id: 'grok-4-0709', pricing: { - input: 3.0, - cachedInput: 0.75, - output: 15.0, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 256000, + contextWindow: 1000000, releaseDate: '2025-07-09', + deprecated: true, }, { id: 'grok-4-1-fast-reasoning', pricing: { - input: 0.2, - cachedInput: 0.05, - output: 0.5, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2025-11-19', + deprecated: true, }, { id: 'grok-4-1-fast-non-reasoning', pricing: { - input: 0.2, - cachedInput: 0.05, - output: 0.5, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2025-11-19', + deprecated: true, }, { id: 'grok-4-fast-reasoning', pricing: { - input: 0.2, - cachedInput: 0.05, - output: 0.5, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2025-09-19', + deprecated: true, }, { id: 'grok-4-fast-non-reasoning', pricing: { - input: 0.2, - cachedInput: 0.05, - output: 0.5, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2025-09-19', + deprecated: true, }, { id: 'grok-code-fast-1', pricing: { - input: 0.2, - cachedInput: 0.02, - output: 1.5, - updatedAt: '2026-04-01', + input: 1.0, + cachedInput: 0.2, + output: 2.0, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, contextWindow: 256000, releaseDate: '2025-08-28', + deprecated: true, }, { id: 'grok-4.20-0309-reasoning', pricing: { - input: 2.0, + input: 1.25, cachedInput: 0.2, - output: 6.0, - updatedAt: '2026-04-01', + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2026-03-10', }, { id: 'grok-4.20-0309-non-reasoning', pricing: { - input: 2.0, + input: 1.25, cachedInput: 0.2, - output: 6.0, - updatedAt: '2026-04-01', + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2026-03-10', }, { id: 'grok-4.20-multi-agent-0309', pricing: { - input: 2.0, + input: 1.25, cachedInput: 0.2, - output: 6.0, - updatedAt: '2026-04-01', + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 2000000, + contextWindow: 1000000, releaseDate: '2026-03-10', }, { id: 'grok-3-latest', pricing: { - input: 3.0, - cachedInput: 0.75, - output: 15.0, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 131072, + contextWindow: 1000000, releaseDate: '2025-02-17', + deprecated: true, }, { id: 'grok-3-fast-latest', pricing: { - input: 5.0, - cachedInput: 0.75, - output: 25.0, - updatedAt: '2026-04-01', + input: 1.25, + cachedInput: 0.2, + output: 2.5, + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 2 }, }, - contextWindow: 131072, + contextWindow: 1000000, releaseDate: '2025-02-17', + deprecated: true, }, ], }, @@ -1939,9 +1981,12 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.35, output: 0.75, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + temperature: { min: 0, max: 2 }, + maxOutputTokens: 40000, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-08-05', }, @@ -1955,6 +2000,7 @@ export const PROVIDER_DEFINITIONS: Record = { capabilities: {}, contextWindow: 32768, releaseDate: '2024-08-27', + deprecated: true, }, { id: 'cerebras/qwen-3-235b-a22b-instruct-2507', @@ -1966,15 +2012,19 @@ export const PROVIDER_DEFINITIONS: Record = { capabilities: {}, contextWindow: 131072, releaseDate: '2025-07-29', + deprecated: true, }, { id: 'cerebras/zai-glm-4.7', pricing: { input: 2.25, output: 2.75, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + temperature: { min: 0, max: 2 }, + maxOutputTokens: 40000, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-12-22', }, @@ -1989,6 +2039,7 @@ export const PROVIDER_DEFINITIONS: Record = { icon: GroqIcon, color: '#F55036', capabilities: { + temperature: { min: 0, max: 2 }, toolUsageControl: true, }, models: [ @@ -1996,21 +2047,28 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'groq/openai/gpt-oss-120b', pricing: { input: 0.15, + cachedInput: 0.075, output: 0.6, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 65536, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-08-05', + recommended: true, }, { id: 'groq/openai/gpt-oss-20b', pricing: { input: 0.075, + cachedInput: 0.0375, output: 0.3, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 65536, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-08-05', }, @@ -2018,10 +2076,13 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'groq/openai/gpt-oss-safeguard-20b', pricing: { input: 0.075, + cachedInput: 0.0375, output: 0.3, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 65536, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-10-29', }, @@ -2030,9 +2091,11 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.29, output: 0.59, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 40960, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-04-29', }, @@ -2041,20 +2104,25 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.05, output: 0.08, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 131072, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2024-07-23', + speedOptimized: true, }, { id: 'groq/llama-3.3-70b-versatile', pricing: { input: 0.59, output: 0.79, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 32768, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2024-12-06', }, @@ -2063,9 +2131,11 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.11, output: 0.34, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', + }, + capabilities: { + maxOutputTokens: 8192, }, - capabilities: {}, contextWindow: 131072, releaseDate: '2025-04-05', }, @@ -2079,6 +2149,7 @@ export const PROVIDER_DEFINITIONS: Record = { capabilities: {}, contextWindow: 262144, releaseDate: '2025-09-05', + deprecated: true, }, ], }, @@ -2106,23 +2177,24 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', + recommended: true, }, { id: 'mistral-large-2512', pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', @@ -2132,10 +2204,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.6, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2026-03-16', @@ -2145,10 +2217,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-09', @@ -2161,36 +2233,37 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2024-11-18', + deprecated: true, }, { id: 'magistral-medium-latest', pricing: { input: 2.0, output: 5.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, - releaseDate: '2025-06-10', + releaseDate: '2025-09-18', }, { id: 'magistral-medium-2509', pricing: { input: 2.0, output: 5.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, - releaseDate: '2025-09-17', + releaseDate: '2025-09-18', }, { id: 'magistral-small-latest', @@ -2200,10 +2273,11 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, - releaseDate: '2025-06-10', + releaseDate: '2025-09-18', + deprecated: true, }, { id: 'magistral-small-2509', @@ -2213,20 +2287,21 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, - releaseDate: '2025-09-17', + releaseDate: '2025-09-18', + deprecated: true, }, { id: 'mistral-medium-latest', pricing: { input: 0.4, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-08-12', @@ -2236,10 +2311,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-08-12', @@ -2249,10 +2324,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-05-07', @@ -2262,10 +2337,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.15, output: 0.6, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2026-03-16', @@ -2278,20 +2353,21 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-06-20', + deprecated: true, }, { id: 'open-mistral-nemo', pricing: { input: 0.15, output: 0.15, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2024-07-18', @@ -2301,10 +2377,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.3, output: 0.9, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-07-30', @@ -2314,10 +2390,10 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.3, output: 0.9, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-07-30', @@ -2327,13 +2403,13 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.4, output: 2.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, - releaseDate: '2025-05-21', + releaseDate: '2025-12-09', }, { id: 'devstral-small-latest', @@ -2343,10 +2419,11 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, - releaseDate: '2025-07-10', + releaseDate: '2025-12-09', + deprecated: true, }, { id: 'devstral-small-2507', @@ -2356,10 +2433,11 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-07-10', + deprecated: true, }, { id: 'devstral-medium-2507', @@ -2369,88 +2447,95 @@ export const PROVIDER_DEFINITIONS: Record = { updatedAt: '2026-04-01', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 128000, releaseDate: '2025-07-10', + deprecated: true, }, { id: 'ministral-14b-latest', pricing: { input: 0.2, output: 0.2, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', + speedOptimized: true, }, { id: 'ministral-14b-2512', pricing: { input: 0.2, output: 0.2, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', + speedOptimized: true, }, { id: 'ministral-8b-latest', pricing: { input: 0.15, output: 0.15, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, - releaseDate: '2024-10-16', + releaseDate: '2025-12-02', + speedOptimized: true, }, { id: 'ministral-8b-2512', pricing: { input: 0.15, output: 0.15, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', + speedOptimized: true, }, { id: 'ministral-3b-latest', pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, - releaseDate: '2024-10-16', + releaseDate: '2025-12-02', + speedOptimized: true, }, { id: 'ministral-3b-2512', pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { - temperature: { min: 0, max: 1 }, + temperature: { min: 0, max: 1.5 }, }, contextWindow: 256000, releaseDate: '2025-12-02', + speedOptimized: true, }, ], }, @@ -2485,8 +2570,9 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'bedrock/anthropic.claude-opus-4-5-20251101-v1:0', pricing: { input: 5.0, + cachedInput: 0.5, output: 25.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2500,8 +2586,9 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'bedrock/anthropic.claude-sonnet-4-5-20250929-v1:0', pricing: { input: 3.0, + cachedInput: 0.3, output: 15.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2510,13 +2597,15 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-09-29', + recommended: true, }, { id: 'bedrock/anthropic.claude-haiku-4-5-20251001-v1:0', pricing: { input: 1.0, + cachedInput: 0.1, output: 5.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2525,18 +2614,20 @@ export const PROVIDER_DEFINITIONS: Record = { }, contextWindow: 200000, releaseDate: '2025-10-15', + speedOptimized: true, }, { id: 'bedrock/anthropic.claude-opus-4-1-20250805-v1:0', pricing: { input: 15.0, + cachedInput: 1.5, output: 75.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, nativeStructuredOutputs: true, - maxOutputTokens: 64000, + maxOutputTokens: 32000, }, contextWindow: 200000, releaseDate: '2025-08-05', @@ -2544,25 +2635,28 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'bedrock/amazon.nova-2-pro-v1:0', pricing: { - input: 1.0, - output: 4.0, - updatedAt: '2026-04-01', + input: 1.375, + output: 11.0, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 1000000, releaseDate: '2025-12-02', + deprecated: true, }, { id: 'bedrock/amazon.nova-2-lite-v1:0', pricing: { - input: 0.08, - output: 0.32, - updatedAt: '2026-04-01', + input: 0.33, + cachedInput: 0.0825, + output: 2.75, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 64000, }, contextWindow: 1000000, releaseDate: '2025-12-02', @@ -2571,24 +2665,28 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'bedrock/amazon.nova-premier-v1:0', pricing: { input: 2.5, - output: 10.0, - updatedAt: '2026-04-01', + cachedInput: 0.625, + output: 12.5, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 1000000, releaseDate: '2025-04-30', + deprecated: true, }, { id: 'bedrock/amazon.nova-pro-v1:0', pricing: { input: 0.8, + cachedInput: 0.2, output: 3.2, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 5120, }, contextWindow: 300000, releaseDate: '2024-12-03', @@ -2597,11 +2695,13 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'bedrock/amazon.nova-lite-v1:0', pricing: { input: 0.06, + cachedInput: 0.015, output: 0.24, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 5120, }, contextWindow: 300000, releaseDate: '2024-12-03', @@ -2610,24 +2710,28 @@ export const PROVIDER_DEFINITIONS: Record = { id: 'bedrock/amazon.nova-micro-v1:0', pricing: { input: 0.035, + cachedInput: 0.00875, output: 0.14, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 5120, }, contextWindow: 128000, releaseDate: '2024-12-03', + speedOptimized: true, }, { id: 'bedrock/meta.llama4-maverick-17b-instruct-v1:0', pricing: { input: 0.24, output: 0.97, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 8192, }, contextWindow: 1000000, releaseDate: '2025-04-05', @@ -2635,14 +2739,15 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'bedrock/meta.llama4-scout-17b-instruct-v1:0', pricing: { - input: 0.18, - output: 0.72, - updatedAt: '2026-04-01', + input: 0.17, + output: 0.66, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 8192, }, - contextWindow: 3500000, + contextWindow: 10000000, releaseDate: '2025-04-05', }, { @@ -2650,10 +2755,11 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.72, output: 0.72, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 4096, }, contextWindow: 128000, releaseDate: '2024-12-06', @@ -2661,103 +2767,113 @@ export const PROVIDER_DEFINITIONS: Record = { { id: 'bedrock/meta.llama3-2-90b-instruct-v1:0', pricing: { - input: 2.0, - output: 2.0, - updatedAt: '2026-04-01', + input: 0.72, + output: 0.72, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, releaseDate: '2024-09-25', + deprecated: true, }, { id: 'bedrock/meta.llama3-2-11b-instruct-v1:0', pricing: { input: 0.16, output: 0.16, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, releaseDate: '2024-09-25', + deprecated: true, }, { id: 'bedrock/meta.llama3-2-3b-instruct-v1:0', pricing: { input: 0.15, output: 0.15, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, releaseDate: '2024-09-25', + deprecated: true, }, { id: 'bedrock/meta.llama3-2-1b-instruct-v1:0', pricing: { input: 0.1, output: 0.1, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, releaseDate: '2024-09-25', + deprecated: true, }, { id: 'bedrock/meta.llama3-1-405b-instruct-v1:0', pricing: { - input: 5.32, - output: 16.0, - updatedAt: '2026-04-01', + input: 2.4, + output: 2.4, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, + deprecated: true, }, { id: 'bedrock/meta.llama3-1-70b-instruct-v1:0', pricing: { - input: 2.65, - output: 3.5, - updatedAt: '2026-04-01', + input: 0.72, + output: 0.72, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 4096, }, contextWindow: 128000, + releaseDate: '2024-07-23', }, { id: 'bedrock/meta.llama3-1-8b-instruct-v1:0', pricing: { - input: 0.3, - output: 0.6, - updatedAt: '2026-04-01', + input: 0.22, + output: 0.22, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 4096, }, contextWindow: 128000, + releaseDate: '2024-07-23', }, { id: 'bedrock/mistral.mistral-large-3-675b-instruct', pricing: { - input: 2.0, - output: 6.0, - updatedAt: '2026-04-01', + input: 0.5, + output: 1.5, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, maxOutputTokens: 32768, }, - contextWindow: 128000, + contextWindow: 256000, + releaseDate: '2025-12-02', }, { id: 'bedrock/mistral.mistral-large-2411-v1:0', @@ -2770,25 +2886,27 @@ export const PROVIDER_DEFINITIONS: Record = { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, + deprecated: true, }, { id: 'bedrock/mistral.mistral-large-2407-v1:0', pricing: { - input: 4.0, - output: 12.0, - updatedAt: '2026-04-01', + input: 2.0, + output: 6.0, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, + deprecated: true, }, { id: 'bedrock/mistral.pixtral-large-2502-v1:0', pricing: { input: 2.0, output: 6.0, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2801,7 +2919,7 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.5, output: 1.5, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, @@ -2814,49 +2932,53 @@ export const PROVIDER_DEFINITIONS: Record = { pricing: { input: 0.2, output: 0.2, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, maxOutputTokens: 8192, }, contextWindow: 128000, + releaseDate: '2025-12-02', }, { id: 'bedrock/mistral.ministral-3-8b-instruct', pricing: { - input: 0.1, - output: 0.1, - updatedAt: '2026-04-01', + input: 0.15, + output: 0.15, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, maxOutputTokens: 8192, }, contextWindow: 128000, + releaseDate: '2025-12-02', }, { id: 'bedrock/mistral.ministral-3-3b-instruct', pricing: { - input: 0.04, - output: 0.04, - updatedAt: '2026-04-01', + input: 0.1, + output: 0.1, + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, maxOutputTokens: 8192, }, contextWindow: 128000, + releaseDate: '2025-12-02', }, { id: 'bedrock/mistral.mixtral-8x7b-instruct-v0:1', pricing: { input: 0.45, output: 0.7, - updatedAt: '2026-04-01', + updatedAt: '2026-06-11', }, capabilities: { temperature: { min: 0, max: 1 }, + maxOutputTokens: 4096, }, contextWindow: 32000, }, @@ -2871,6 +2993,7 @@ export const PROVIDER_DEFINITIONS: Record = { temperature: { min: 0, max: 1 }, }, contextWindow: 32000, + deprecated: true, }, { id: 'bedrock/cohere.command-r-plus-v1:0', @@ -2883,6 +3006,7 @@ export const PROVIDER_DEFINITIONS: Record = { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, + deprecated: true, }, { id: 'bedrock/cohere.command-r-v1:0', @@ -2895,6 +3019,7 @@ export const PROVIDER_DEFINITIONS: Record = { temperature: { min: 0, max: 1 }, }, contextWindow: 128000, + deprecated: true, }, ], }, @@ -3064,23 +3189,11 @@ export function getModelsWithTemperatureSupport(): string[] { return models } -export function getModelsWithTempRange01(): string[] { - const models: string[] = [] - for (const provider of Object.values(PROVIDER_DEFINITIONS)) { - for (const model of provider.models) { - if (model.capabilities.temperature?.max === 1) { - models.push(model.id) - } - } - } - return models -} - -export function getModelsWithTempRange02(): string[] { +export function getModelsWithTemperatureRange(max: number): string[] { const models: string[] = [] for (const provider of Object.values(PROVIDER_DEFINITIONS)) { for (const model of provider.models) { - if (model.capabilities.temperature?.max === 2) { + if (model.capabilities.temperature?.max === max) { models.push(model.id) } } diff --git a/apps/sim/providers/utils.test.ts b/apps/sim/providers/utils.test.ts index be01f0946c..46d414cbb6 100644 --- a/apps/sim/providers/utils.test.ts +++ b/apps/sim/providers/utils.test.ts @@ -25,6 +25,7 @@ import { isProviderBlacklisted, MODELS_TEMP_RANGE_0_1, MODELS_TEMP_RANGE_0_2, + MODELS_TEMP_RANGE_0_15, MODELS_WITH_REASONING_EFFORT, MODELS_WITH_TEMPERATURE_SUPPORT, MODELS_WITH_THINKING, @@ -193,13 +194,16 @@ describe('Model Capabilities', () => { 'gpt-4.1-mini', 'gpt-4.1-nano', 'gpt-5-chat-latest', - 'azure/gpt-5-chat-latest', + 'azure/gpt-5-chat', 'gemini-2.5-flash', 'claude-sonnet-4-0', 'claude-opus-4-0', 'grok-3-latest', 'grok-3-fast-latest', 'deepseek-v3', + 'deepseek-chat', + 'groq/meta-llama/llama-4-scout-17b-16e-instruct', + 'mistral-large-latest', ] for (const model of supportedModels) { @@ -211,14 +215,12 @@ describe('Model Capabilities', () => { const unsupportedModels = [ 'unsupported-model', 'cerebras/llama-3.3-70b', - 'groq/meta-llama/llama-4-scout-17b-16e-instruct', 'o1', 'o3', 'o4-mini', 'azure/o3', 'azure/o4-mini', 'deepseek-r1', - 'deepseek-chat', 'azure/model-router', 'gpt-5.1', 'azure/gpt-5.1', @@ -258,10 +260,14 @@ describe('Model Capabilities', () => { 'gpt-4o', 'azure/gpt-4o', 'gpt-5-chat-latest', - 'azure/gpt-5-chat-latest', + 'azure/gpt-5-chat', 'gemini-2.5-pro', 'gemini-2.5-flash', 'deepseek-v3', + 'deepseek-chat', + 'grok-3-latest', + 'grok-3-fast-latest', + 'groq/meta-llama/llama-4-scout-17b-16e-instruct', ] for (const model of modelsRange02) { @@ -270,22 +276,24 @@ describe('Model Capabilities', () => { }) it.concurrent('should return 1 for models with temperature range 0-1', () => { - const modelsRange01 = [ - 'claude-sonnet-4-0', - 'claude-opus-4-0', - 'grok-3-latest', - 'grok-3-fast-latest', - ] + const modelsRange01 = ['claude-sonnet-4-0', 'claude-opus-4-0'] for (const model of modelsRange01) { expect(getMaxTemperature(model)).toBe(1) } }) + it.concurrent('should return 1.5 for models with temperature range 0-1.5', () => { + const modelsRange015 = ['mistral-large-latest', 'mistral-small-latest', 'codestral-latest'] + + for (const model of modelsRange015) { + expect(getMaxTemperature(model)).toBe(1.5) + } + }) + it.concurrent('should return undefined for models that do not support temperature', () => { expect(getMaxTemperature('unsupported-model')).toBeUndefined() expect(getMaxTemperature('cerebras/llama-3.3-70b')).toBeUndefined() - expect(getMaxTemperature('groq/meta-llama/llama-4-scout-17b-16e-instruct')).toBeUndefined() expect(getMaxTemperature('o1')).toBeUndefined() expect(getMaxTemperature('o3')).toBeUndefined() expect(getMaxTemperature('o4-mini')).toBeUndefined() @@ -428,12 +436,13 @@ describe('Model Capabilities', () => { expect(MODELS_TEMP_RANGE_0_2).toContain('gpt-4o') expect(MODELS_TEMP_RANGE_0_2).toContain('gemini-2.5-flash') expect(MODELS_TEMP_RANGE_0_2).toContain('deepseek-v3') + expect(MODELS_TEMP_RANGE_0_2).toContain('grok-3-latest') expect(MODELS_TEMP_RANGE_0_2).not.toContain('claude-sonnet-4-0') }) it.concurrent('should have correct models in MODELS_TEMP_RANGE_0_1', () => { expect(MODELS_TEMP_RANGE_0_1).toContain('claude-sonnet-4-0') - expect(MODELS_TEMP_RANGE_0_1).toContain('grok-3-latest') + expect(MODELS_TEMP_RANGE_0_1).not.toContain('grok-3-latest') expect(MODELS_TEMP_RANGE_0_1).not.toContain('gpt-4o') }) @@ -449,7 +458,9 @@ describe('Model Capabilities', () => { 'should combine both temperature ranges in MODELS_WITH_TEMPERATURE_SUPPORT', () => { expect(MODELS_WITH_TEMPERATURE_SUPPORT.length).toBe( - MODELS_TEMP_RANGE_0_2.length + MODELS_TEMP_RANGE_0_1.length + MODELS_TEMP_RANGE_0_2.length + + MODELS_TEMP_RANGE_0_15.length + + MODELS_TEMP_RANGE_0_1.length ) expect(MODELS_WITH_TEMPERATURE_SUPPORT).toContain('gpt-4o') expect(MODELS_WITH_TEMPERATURE_SUPPORT).toContain('claude-sonnet-4-0') @@ -481,7 +492,7 @@ describe('Model Capabilities', () => { expect(MODELS_WITH_REASONING_EFFORT).toContain('azure/o4-mini') expect(MODELS_WITH_REASONING_EFFORT).not.toContain('gpt-5-chat-latest') - expect(MODELS_WITH_REASONING_EFFORT).not.toContain('azure/gpt-5-chat-latest') + expect(MODELS_WITH_REASONING_EFFORT).not.toContain('azure/gpt-5-chat') expect(MODELS_WITH_REASONING_EFFORT).not.toContain('gpt-4o') expect(MODELS_WITH_REASONING_EFFORT).not.toContain('claude-sonnet-4-0') @@ -506,7 +517,7 @@ describe('Model Capabilities', () => { expect(MODELS_WITH_VERBOSITY).toContain('azure/gpt-5.2') expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5-chat-latest') - expect(MODELS_WITH_VERBOSITY).not.toContain('azure/gpt-5-chat-latest') + expect(MODELS_WITH_VERBOSITY).not.toContain('azure/gpt-5-chat') expect(MODELS_WITH_VERBOSITY).not.toContain('o1') expect(MODELS_WITH_VERBOSITY).not.toContain('o3') @@ -538,6 +549,7 @@ describe('Model Capabilities', () => { (m) => m.includes('gpt-5') && !m.includes('chat-latest') && + !m.includes('gpt-5.5-pro') && !m.includes('gpt-5.4-pro') && !m.includes('gpt-5.2-pro') && !m.includes('gpt-5-pro') @@ -547,6 +559,9 @@ describe('Model Capabilities', () => { ) expect(gpt5ModelsWithReasoningEffort.sort()).toEqual(gpt5ModelsWithVerbosity.sort()) + expect(MODELS_WITH_REASONING_EFFORT).toContain('gpt-5.5-pro') + expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5.5-pro') + expect(MODELS_WITH_REASONING_EFFORT).toContain('gpt-5.4-pro') expect(MODELS_WITH_VERBOSITY).not.toContain('gpt-5.4-pro') @@ -603,7 +618,9 @@ describe('Model Capabilities', () => { const values = getReasoningEffortValuesForModel('azure/gpt-5.2') expect(values).toBeDefined() expect(values).not.toContain('minimal') - expect(values).toContain('xhigh') + expect(values).toContain('none') + expect(values).toContain('high') + expect(values).not.toContain('xhigh') }) }) @@ -713,7 +730,7 @@ describe('Max Output Tokens', () => { it.concurrent('should return published max for Bedrock Claude Opus 4.1', () => { expect(getMaxOutputTokensForModel('bedrock/anthropic.claude-opus-4-1-20250805-v1:0')).toBe( - 64000 + 32000 ) }) diff --git a/apps/sim/providers/utils.ts b/apps/sim/providers/utils.ts index b2021817b6..c584261b4e 100644 --- a/apps/sim/providers/utils.ts +++ b/apps/sim/providers/utils.ts @@ -28,9 +28,8 @@ import { getModelsWithDeepResearch, getModelsWithoutMemory, getModelsWithReasoningEffort, + getModelsWithTemperatureRange, getModelsWithTemperatureSupport, - getModelsWithTempRange01, - getModelsWithTempRange02, getModelsWithThinking, getModelsWithVerbosity, getProviderDefaultModel as getProviderDefaultModelFromDefinitions, @@ -1167,8 +1166,9 @@ export function trackForcedToolUsage( } } -export const MODELS_TEMP_RANGE_0_2 = getModelsWithTempRange02() -export const MODELS_TEMP_RANGE_0_1 = getModelsWithTempRange01() +export const MODELS_TEMP_RANGE_0_2 = getModelsWithTemperatureRange(2) +export const MODELS_TEMP_RANGE_0_15 = getModelsWithTemperatureRange(1.5) +export const MODELS_TEMP_RANGE_0_1 = getModelsWithTemperatureRange(1) export const MODELS_WITH_TEMPERATURE_SUPPORT = getModelsWithTemperatureSupport() export const MODELS_WITH_REASONING_EFFORT = getModelsWithReasoningEffort() export const MODELS_WITH_VERBOSITY = getModelsWithVerbosity()