feat: prioritize claude-opus-4-6 over claude-opus-4-5 in anthropic fallback chains

Add claude-opus-4-6 as the first anthropic provider entry before
claude-opus-4-5 across all agent and category fallback chains.
Also add high variant mapping for think-mode switcher.
This commit is contained in:
YeonGyu-Kim
2026-02-06 03:31:55 +09:00
parent 2224183b5c
commit 11d0005eb5
9 changed files with 117 additions and 79 deletions
@@ -75,26 +75,26 @@ exports[`generateModelConfig single native provider uses Claude models when only
"model": "anthropic/claude-sonnet-4-5",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"multimodal-looker": {
"model": "anthropic/claude-haiku-4-5",
},
"oracle": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -103,7 +103,7 @@ exports[`generateModelConfig single native provider uses Claude models when only
"model": "anthropic/claude-haiku-4-5",
},
"ultrabrain": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-high": {
@@ -113,7 +113,7 @@ exports[`generateModelConfig single native provider uses Claude models when only
"model": "anthropic/claude-sonnet-4-5",
},
"visual-engineering": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"writing": {
@@ -137,26 +137,26 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"model": "anthropic/claude-sonnet-4-5",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"multimodal-looker": {
"model": "anthropic/claude-haiku-4-5",
},
"oracle": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -165,18 +165,18 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"model": "anthropic/claude-haiku-4-5",
},
"ultrabrain": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-high": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-low": {
"model": "anthropic/claude-sonnet-4-5",
},
"visual-engineering": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"writing": {
@@ -458,7 +458,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"model": "anthropic/claude-sonnet-4-5",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
@@ -473,11 +473,11 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -531,7 +531,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"model": "anthropic/claude-sonnet-4-5",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
@@ -546,11 +546,11 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -571,7 +571,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"variant": "xhigh",
},
"unspecified-high": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-low": {
@@ -1009,7 +1009,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"model": "opencode/glm-4.7-free",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
@@ -1024,11 +1024,11 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -1151,26 +1151,26 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"model": "zai-coding-plan/glm-4.7",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"multimodal-looker": {
"model": "zai-coding-plan/glm-4.6v",
},
"oracle": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -1179,7 +1179,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"model": "anthropic/claude-haiku-4-5",
},
"ultrabrain": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-high": {
@@ -1189,7 +1189,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"model": "anthropic/claude-sonnet-4-5",
},
"visual-engineering": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"writing": {
@@ -1213,11 +1213,11 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"model": "anthropic/claude-sonnet-4-5",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"multimodal-looker": {
@@ -1228,11 +1228,11 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -1355,7 +1355,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"model": "zai-coding-plan/glm-4.7",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
@@ -1370,11 +1370,11 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -1428,7 +1428,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"model": "zai-coding-plan/glm-4.7",
},
"metis": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"momus": {
@@ -1443,11 +1443,11 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "high",
},
"prometheus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"sisyphus": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
},
@@ -1468,7 +1468,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "xhigh",
},
"unspecified-high": {
"model": "anthropic/claude-opus-4-5",
"model": "anthropic/claude-opus-4-6",
"variant": "max",
},
"unspecified-low": {
+3 -3
View File
@@ -259,7 +259,7 @@ describe("generateOmoConfig - model fallback system", () => {
// #then Sisyphus uses Claude (OR logic - at least one provider available)
expect(result.$schema).toBe("https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json")
expect(result.agents).toBeDefined()
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-5")
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-6")
})
test("generates native opus models when Claude max20 subscription", () => {
@@ -279,7 +279,7 @@ describe("generateOmoConfig - model fallback system", () => {
const result = generateOmoConfig(config)
// #then Sisyphus uses Claude (OR logic - at least one provider available)
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-5")
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-6")
})
test("uses github-copilot sonnet fallback when only copilot available", () => {
@@ -342,7 +342,7 @@ describe("generateOmoConfig - model fallback system", () => {
// #then librarian should use zai-coding-plan/glm-4.7
expect((result.agents as Record<string, { model: string }>).librarian.model).toBe("zai-coding-plan/glm-4.7")
// #then Sisyphus uses Claude (OR logic)
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-5")
expect((result.agents as Record<string, { model: string }>).sisyphus.model).toBe("anthropic/claude-opus-4-6")
})
test("uses native OpenAI models when only ChatGPT available", () => {
@@ -14,9 +14,8 @@ describe("model-resolution check", () => {
// then: Should have agent entries
const sisyphus = info.agents.find((a) => a.name === "sisyphus")
expect(sisyphus).toBeDefined()
expect(sisyphus!.requirement.fallbackChain[0]?.model).toBe("claude-opus-4-5")
expect(sisyphus!.requirement.fallbackChain[0]?.model).toBe("claude-opus-4-6")
expect(sisyphus!.requirement.fallbackChain[0]?.providers).toContain("anthropic")
expect(sisyphus!.requirement.fallbackChain[0]?.providers).toContain("github-copilot")
})
it("returns category requirements with provider chains", async () => {
+2 -2
View File
@@ -376,7 +376,7 @@ describe("generateModelConfig", () => {
const result = generateModelConfig(config)
// #then
expect(result.agents?.sisyphus?.model).toBe("anthropic/claude-opus-4-5")
expect(result.agents?.sisyphus?.model).toBe("anthropic/claude-opus-4-6")
})
test("Sisyphus is created when multiple fallback providers are available", () => {
@@ -393,7 +393,7 @@ describe("generateModelConfig", () => {
const result = generateModelConfig(config)
// #then
expect(result.agents?.sisyphus?.model).toBe("anthropic/claude-opus-4-5")
expect(result.agents?.sisyphus?.model).toBe("anthropic/claude-opus-4-6")
})
test("Sisyphus is omitted when no fallback provider is available (OpenAI not in chain)", () => {