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.
This commit is contained in:
gengjiawen
2026-11-10 08:15:29 +08:00
parent ab64bebe14
commit a79b0fa3d8
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(