From 737ad1c0f559b5b3d27b00306476b5e2f9bfc162 Mon Sep 17 00:00:00 2001 From: waleed Date: Wed, 1 Jul 2026 13:45:37 -0700 Subject: [PATCH] feat(providers): add Claude Fable 5 model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-add claude-fable-5 (Anthropic's most capable widely released model), not marked recommended. Verified against live Anthropic API + docs: - Pricing $10/$50 per MTok, $1 cached input (cache-read); 1M context; 128k max output; GA 2026-06-09 - Adaptive thinking only (always on, cannot be disabled) — routed via supportsAdaptiveThinking; manual budget_tokens/temperature are rejected with 400 - effort levels low/medium/high/xhigh/max (default high) - nativeStructuredOutputs confirmed supported (live output_format json_schema call returned 200), matching same-generation siblings (Sonnet 5, Opus 4.8) --- apps/sim/providers/anthropic/core.ts | 4 +++- apps/sim/providers/models.ts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/sim/providers/anthropic/core.ts b/apps/sim/providers/anthropic/core.ts index 0c27f32f28d..e9bdab06049 100644 --- a/apps/sim/providers/anthropic/core.ts +++ b/apps/sim/providers/anthropic/core.ts @@ -84,6 +84,7 @@ const THINKING_BUDGET_TOKENS: Record = { /** * Checks if a model supports adaptive thinking (thinking.type: "adaptive"). + * Fable 5 supports ONLY adaptive thinking (always on; type: "disabled" is rejected). * Sonnet 5 supports ONLY adaptive thinking (manual budget_tokens returns a 400 error). * Opus 4.8 and Opus 4.7 support ONLY adaptive thinking (no extended thinking / budget_tokens). * Opus 4.6 and Sonnet 4.6 support both extended and adaptive thinking — use adaptive. @@ -92,6 +93,7 @@ const THINKING_BUDGET_TOKENS: Record = { function supportsAdaptiveThinking(modelId: string): boolean { const normalizedModel = modelId.toLowerCase() return ( + normalizedModel.includes('fable-5') || normalizedModel.includes('sonnet-5') || normalizedModel.includes('opus-4-8') || normalizedModel.includes('opus-4.8') || @@ -107,7 +109,7 @@ function supportsAdaptiveThinking(modelId: string): boolean { /** * Builds the thinking configuration for the Anthropic API based on model capabilities and level. * - * - Sonnet 5, Opus 4.8, Opus 4.7: Uses adaptive thinking only (no extended thinking support) + * - Fable 5, Sonnet 5, Opus 4.8, Opus 4.7: Uses adaptive thinking only (no extended thinking support) * - Opus 4.6, Sonnet 4.6: Uses adaptive thinking with effort parameter * - Other models: Uses budget_tokens-based extended thinking * diff --git a/apps/sim/providers/models.ts b/apps/sim/providers/models.ts index 2cb735f928a..cc6a0f44386 100644 --- a/apps/sim/providers/models.ts +++ b/apps/sim/providers/models.ts @@ -669,6 +669,25 @@ export const PROVIDER_DEFINITIONS: Record = { toolUsageControl: true, }, models: [ + { + id: 'claude-fable-5', + pricing: { + input: 10.0, + cachedInput: 1.0, + output: 50.0, + updatedAt: '2026-07-01', + }, + capabilities: { + nativeStructuredOutputs: true, + maxOutputTokens: 128000, + thinking: { + levels: ['low', 'medium', 'high', 'xhigh', 'max'], + default: 'high', + }, + }, + contextWindow: 1000000, + releaseDate: '2026-06-09', + }, { id: 'claude-sonnet-5', pricing: {