feat(claude): add Fable 5.2 and Mythos 5.2 to the model catalog

Claude Code 2.1.321 ships Fable 5.2 as the default Fable model and names
Mythos 5.2 as its current Mythos model. Without manifest entries Paseo
listed neither, and normalized a runtime claude-fable-5-2 to
claude-fable-5, so a session on Fable 5.2 was recorded and labeled as
Fable 5.

Fable 5.2 is gated on Claude Code 2.1.321. Mythos 5.2 stays behind
discovery like Mythos 5.1. Both get a 1M context window, always-on
thinking with high default effort, and fast mode, matching what Claude
Code advertises. Fable 5.1 becomes the previous release.

(cherry picked from commit a79b0fa3d8)
This commit is contained in:
gengjiawen
2026-11-10 01:53:49 +01:00
committed by Mohamed Boudra
parent d91ae138cb
commit 23e954099b
4 changed files with 147 additions and 13 deletions
+10 -6
View File
@@ -62,10 +62,15 @@ const EXPECTED_CLAUDE_MODELS = [
model: "Opus 5",
descriptionFragment: "Previous release",
},
{
id: "claude-fable-5-2",
model: "Fable 5.2",
descriptionFragment: "Most powerful",
},
{
id: "claude-fable-5-1",
model: "Fable 5.1",
descriptionFragment: "Most powerful",
descriptionFragment: "Previous release",
},
{
id: "claude-fable-5",
@@ -199,11 +204,10 @@ function assertClaudeModels(data: ProviderModel[]): void {
);
}
const fable51Index = data.findIndex((model) => model.id === "claude-fable-5-1");
const fable5Index = data.findIndex((model) => model.id === "claude-fable-5");
assert.strictEqual(
fable5Index,
fable51Index + 1,
const fable52Index = data.findIndex((model) => model.id === "claude-fable-5-2");
assert.deepStrictEqual(
data.slice(fable52Index, fable52Index + 3).map((model) => model.id),
["claude-fable-5-2", "claude-fable-5-1", "claude-fable-5"],
"Fable models should stay adjacent and newest-first",
);
assert(