From 33bcc2d6f2e3ad3c41331b56b962bf3840a8f903 Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Thu, 9 Jul 2026 17:04:17 +0000 Subject: [PATCH] feat(site): add claude-fable-5 and claude-mythos-5 known model defaults --- .../knownModels/anthropic.test.ts | 6 +++ .../knownModels/anthropic.ts | 43 ++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.test.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.test.ts index 2e1762d758aab..e8bc04b42087f 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.test.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.test.ts @@ -22,6 +22,8 @@ describe("anthropicKnownModels", () => { (knownModel) => knownModel.modelIdentifier, ), ).toEqual([ + "claude-fable-5", + "claude-mythos-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", @@ -33,6 +35,8 @@ describe("anthropicKnownModels", () => { it("declares Anthropic reasoning defaults by API support", () => { for (const modelIdentifier of [ + "claude-fable-5", + "claude-mythos-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", @@ -59,6 +63,8 @@ describe("anthropicKnownModels", () => { expect( anthropicKnownModels.map((knownModel) => knownModel.modelIdentifier), ).toEqual([ + "claude-fable-5", + "claude-mythos-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.ts index 985fb49f7e892..760ee578d6aac 100644 --- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.ts +++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/anthropic.ts @@ -10,8 +10,8 @@ import type { KnownModel } from "./types"; // catalog and should be reviewed when the catalog is refreshed. // // Reasoning configuration is split per model based on Anthropic API support: -// models that support adaptive thinking (Opus 4.8, Opus 4.7, Opus 4.6, -// Sonnet 4.6) carry `reasoningEffort`, which Coder maps to +// models that support adaptive thinking (Fable 5, Mythos 5, Opus 4.8, +// Opus 4.7, Opus 4.6, Sonnet 4.6) carry `reasoningEffort`, which Coder maps to // `thinking.type: "adaptive"` with the `effort` parameter. Models that do not // (Haiku 4.5, Sonnet 4.5) // carry `thinkingBudgetTokens` instead, which Coder maps to the legacy @@ -19,6 +19,45 @@ import type { KnownModel } from "./types"; // the legacy path produces an "adaptive thinking is not supported on this // model" HTTP 400 from Anthropic. export const anthropicKnownModels = [ + { + provider: "anthropic", + modelIdentifier: "claude-fable-5", + displayName: "Claude Fable 5", + aliases: [], + contextLimit: 1_000_000, + maxOutputTokens: 128_000, + reasoningEffort: "high", + inputCost: 10, + outputCost: 50, + cacheReadCost: 1, + cacheWriteCost: 12.5, + sourceMetadata: { + sourceName: "models.dev", + sourceRetrievedAt: "2026-07-09", + lastUpdated: "2026-06-09", + }, + }, + // models.dev does not list claude-mythos-5. Anthropic documents that + // Mythos 5 shares Fable 5's specs and pricing, so this entry mirrors + // the claude-fable-5 models.dev entry. + { + provider: "anthropic", + modelIdentifier: "claude-mythos-5", + displayName: "Claude Mythos 5", + aliases: [], + contextLimit: 1_000_000, + maxOutputTokens: 128_000, + reasoningEffort: "high", + inputCost: 10, + outputCost: 50, + cacheReadCost: 1, + cacheWriteCost: 12.5, + sourceMetadata: { + sourceName: "models.dev", + sourceRetrievedAt: "2026-07-09", + lastUpdated: "2026-06-09", + }, + }, { provider: "anthropic", modelIdentifier: "claude-opus-4-8",