From cb5fddbb1567bb8ffe6d247a4fa0c286902e71aa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 04:13:35 +0000 Subject: [PATCH 1/3] feat: add new anthropic baseline models --- .../src/agent-options/agent-options.test.ts | 12 ++++++++---- packages/shared/src/agent-options/anthropic.ts | 18 ++++++++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/shared/src/agent-options/agent-options.test.ts b/packages/shared/src/agent-options/agent-options.test.ts index 2fe8a2b9..e085abcb 100644 --- a/packages/shared/src/agent-options/agent-options.test.ts +++ b/packages/shared/src/agent-options/agent-options.test.ts @@ -63,7 +63,7 @@ describe("PROVIDER_CATALOGS", () => { describe("resolveModelId", () => { it("resolves the opus alias to the latest dated id", () => { - expect(resolveModelId("anthropic", "opus")).toBe("claude-opus-4-7"); + expect(resolveModelId("anthropic", "opus")).toBe("claude-opus-4-8"); }); it("resolves the sonnet alias", () => { @@ -74,6 +74,10 @@ describe("resolveModelId", () => { expect(resolveModelId("anthropic", "haiku")).toBe("claude-haiku-4-5-20251001"); }); + it("resolves the fable alias", () => { + expect(resolveModelId("anthropic", "fable")).toBe("claude-fable-5"); + }); + it("returns an exact-match dated id unchanged", () => { expect(resolveModelId("anthropic", "claude-sonnet-4-5")).toBe("claude-sonnet-4-5"); }); @@ -87,7 +91,7 @@ describe("resolveModelId", () => { it("returns the latest-marked model when no input is provided", () => { // Pick a provider with an explicit `latest` flag. - expect(resolveModelId("anthropic", undefined)).toBe("claude-opus-4-7"); + expect(resolveModelId("anthropic", undefined)).toBe("claude-opus-4-8"); }); it("returns undefined for free-text providers with no baseline models", () => { @@ -102,7 +106,7 @@ describe("resolveModelId", () => { }); it("treats an empty string like undefined", () => { - expect(resolveModelId("anthropic", "")).toBe("claude-opus-4-7"); + expect(resolveModelId("anthropic", "")).toBe("claude-opus-4-8"); }); it("resolves gemini-pro alias", () => { @@ -160,7 +164,7 @@ describe("groupModelsByFamily", () => { it("groups anthropic models by family", () => { const groups = groupModelsByFamily(ANTHROPIC_CATALOG); const families = groups.map((g) => g.family).sort(); - expect(families).toEqual(["haiku", "opus", "sonnet"]); + expect(families).toEqual(["fable", "haiku", "opus", "sonnet"]); }); it("falls back to the model id when there is no family", () => { diff --git a/packages/shared/src/agent-options/anthropic.ts b/packages/shared/src/agent-options/anthropic.ts index 74bfccbd..34db5c1b 100644 --- a/packages/shared/src/agent-options/anthropic.ts +++ b/packages/shared/src/agent-options/anthropic.ts @@ -10,11 +10,17 @@ export const ANTHROPIC_CATALOG: ProviderCatalog = { label: "Claude Code", modelField: "claudeModel", models: [ + { + id: "claude-opus-4-8", + label: "Opus 4.8", + family: "opus", + latest: true, + source: "baseline", + }, { id: "claude-opus-4-7", label: "Opus 4.7", family: "opus", - latest: true, source: "baseline", }, { @@ -43,11 +49,19 @@ export const ANTHROPIC_CATALOG: ProviderCatalog = { latest: true, source: "baseline", }, + { + id: "claude-fable-5", + label: "Fable 5", + family: "fable", + latest: true, + source: "baseline", + }, ], aliases: { - opus: "claude-opus-4-7", + opus: "claude-opus-4-8", sonnet: "claude-sonnet-4-6", haiku: "claude-haiku-4-5-20251001", + fable: "claude-fable-5", }, options: [ { From 8be629a81f595c8546dfb206eab2b5cd46ec1cd7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 04:16:29 +0000 Subject: [PATCH 2/3] feat: add new anthropic baseline models --- packages/shared/src/agent-options/agent-options.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/shared/src/agent-options/agent-options.test.ts b/packages/shared/src/agent-options/agent-options.test.ts index e085abcb..1cfb0ba0 100644 --- a/packages/shared/src/agent-options/agent-options.test.ts +++ b/packages/shared/src/agent-options/agent-options.test.ts @@ -127,9 +127,9 @@ describe("mergeLiveModels", () => { }); it("preserves baseline metadata when a live id matches", () => { - const opus = ANTHROPIC_CATALOG.models.find((m) => m.id === "claude-opus-4-7")!; - const merged = mergeLiveModels(ANTHROPIC_CATALOG, ["claude-opus-4-7"]); - const mergedOpus = merged.models.find((m) => m.id === "claude-opus-4-7")!; + const opus = ANTHROPIC_CATALOG.models.find((m) => m.id === "claude-opus-4-8")!; + const merged = mergeLiveModels(ANTHROPIC_CATALOG, ["claude-opus-4-8"]); + const mergedOpus = merged.models.find((m) => m.id === "claude-opus-4-8")!; expect(mergedOpus.label).toBe(opus.label); expect(mergedOpus.latest).toBe(true); expect(mergedOpus.source).toBe("baseline"); From 1eef8ddecbb462216ed617bdd4c6ac97e660100e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 05:29:21 +0000 Subject: [PATCH 3/3] fix: remove latest flag from fable 5 --- packages/shared/src/agent-options/anthropic.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/shared/src/agent-options/anthropic.ts b/packages/shared/src/agent-options/anthropic.ts index 34db5c1b..e130e13b 100644 --- a/packages/shared/src/agent-options/anthropic.ts +++ b/packages/shared/src/agent-options/anthropic.ts @@ -53,7 +53,6 @@ export const ANTHROPIC_CATALOG: ProviderCatalog = { id: "claude-fable-5", label: "Fable 5", family: "fable", - latest: true, source: "baseline", }, ],