feat(providers): add Claude Fable 5 model (#5334)

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)
This commit is contained in:
Waleed
2026-07-01 13:50:15 -07:00
committed by GitHub
parent 9204b4a248
commit c923de6a19
2 changed files with 22 additions and 1 deletions
+3 -1
View File
@@ -84,6 +84,7 @@ const THINKING_BUDGET_TOKENS: Record<string, number> = {
/**
* 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<string, number> = {
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
*
+19
View File
@@ -669,6 +669,25 @@ export const PROVIDER_DEFINITIONS: Record<string, ProviderDefinition> = {
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: {