refactor(models): bump claude-opus-4-6 to claude-opus-4-7 across fallback chains, categories, and hooks

Updates the canonical Anthropic Opus model in every fallback chain
(sisyphus, oracle, prometheus, metis, momus, visual-engineering,
ultrabrain, deep, artistry, unspecified-high), the unspecified-high
category default, the think-mode HIGH_VARIANT_MAP, the Claude Code
alias map, the claude-thinking legacy alias, the context-limit GA
regex, and event.ts fallback strings.

Widens supportsCachedAnthropicLimit to accept both claude-*-4-6 and
claude-*-4-7 so the 1M context cache still applies across the bump.

Regenerates the bundled model-capabilities snapshot from models.dev
and the model-fallback snapshot to match the new source output.
This commit is contained in:
YeonGyu-Kim
2026-04-17 14:51:52 +09:00
parent b1764a880c
commit def44338ff
85 changed files with 39904 additions and 38116 deletions
+15 -15
View File
@@ -8,9 +8,9 @@ describe("Agent Config Integration", () => {
test("migrates old format agent keys to lowercase", () => {
// given - config with old format keys
const oldConfig = {
Sisyphus: { model: "anthropic/claude-opus-4-6" },
Atlas: { model: "anthropic/claude-opus-4-6" },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-6" },
Sisyphus: { model: "anthropic/claude-opus-4-7" },
Atlas: { model: "anthropic/claude-opus-4-7" },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-7" },
"Metis - Plan Consultant": { model: "anthropic/claude-sonnet-4-6" },
"Momus - Plan Critic": { model: "anthropic/claude-sonnet-4-6" },
}
@@ -33,9 +33,9 @@ describe("Agent Config Integration", () => {
expect(result.migrated).not.toHaveProperty("Momus - Plan Critic")
// then - values are preserved
expect(result.migrated.sisyphus).toEqual({ model: "anthropic/claude-opus-4-6" })
expect(result.migrated.atlas).toEqual({ model: "anthropic/claude-opus-4-6" })
expect(result.migrated.prometheus).toEqual({ model: "anthropic/claude-opus-4-6" })
expect(result.migrated.sisyphus).toEqual({ model: "anthropic/claude-opus-4-7" })
expect(result.migrated.atlas).toEqual({ model: "anthropic/claude-opus-4-7" })
expect(result.migrated.prometheus).toEqual({ model: "anthropic/claude-opus-4-7" })
// then - changed flag is true
expect(result.changed).toBe(true)
@@ -44,7 +44,7 @@ describe("Agent Config Integration", () => {
test("preserves already lowercase keys", () => {
// given - config with lowercase keys
const config = {
sisyphus: { model: "anthropic/claude-opus-4-6" },
sisyphus: { model: "anthropic/claude-opus-4-7" },
oracle: { model: "openai/gpt-5.4" },
librarian: { model: "opencode/big-pickle" },
}
@@ -62,9 +62,9 @@ describe("Agent Config Integration", () => {
test("handles mixed case config", () => {
// given - config with mixed old and new format
const mixedConfig = {
Sisyphus: { model: "anthropic/claude-opus-4-6" },
Sisyphus: { model: "anthropic/claude-opus-4-7" },
oracle: { model: "openai/gpt-5.4" },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-6" },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-7" },
librarian: { model: "opencode/big-pickle" },
}
@@ -173,8 +173,8 @@ describe("Agent Config Integration", () => {
test("old config migrates and displays correctly", () => {
// given - old format config
const oldConfig = {
Sisyphus: { model: "anthropic/claude-opus-4-6", temperature: 0.1 },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-6" },
Sisyphus: { model: "anthropic/claude-opus-4-7", temperature: 0.1 },
"Prometheus - Plan Builder": { model: "anthropic/claude-opus-4-7" },
}
// when - config is migrated
@@ -193,15 +193,15 @@ describe("Agent Config Integration", () => {
expect(prometheusDisplay).toBe("Prometheus - Plan Builder")
// then - config values are preserved
expect(result.migrated.sisyphus).toEqual({ model: "anthropic/claude-opus-4-6", temperature: 0.1 })
expect(result.migrated.prometheus).toEqual({ model: "anthropic/claude-opus-4-6" })
expect(result.migrated.sisyphus).toEqual({ model: "anthropic/claude-opus-4-7", temperature: 0.1 })
expect(result.migrated.prometheus).toEqual({ model: "anthropic/claude-opus-4-7" })
})
test("new config works without migration", () => {
// given - new format config (already lowercase)
const newConfig = {
sisyphus: { model: "anthropic/claude-opus-4-6" },
atlas: { model: "anthropic/claude-opus-4-6" },
sisyphus: { model: "anthropic/claude-opus-4-7" },
atlas: { model: "anthropic/claude-opus-4-7" },
}
// when - migration is applied (should be no-op)