def44338ff
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.
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { afterEach, describe, expect, test } from "bun:test"
|
|
|
|
import { getFallbackModelsForSession } from "./fallback-models"
|
|
import { SessionCategoryRegistry } from "../../shared/session-category-registry"
|
|
|
|
describe("runtime-fallback fallback-models", () => {
|
|
afterEach(() => {
|
|
SessionCategoryRegistry.clear()
|
|
})
|
|
|
|
test("uses category fallback_models when session category is registered", () => {
|
|
//#given
|
|
const sessionID = "ses_runtime_fallback_category"
|
|
SessionCategoryRegistry.register(sessionID, "quick")
|
|
const pluginConfig = {
|
|
categories: {
|
|
quick: {
|
|
fallback_models: ["openai/gpt-5.2", "anthropic/claude-opus-4-7"],
|
|
},
|
|
},
|
|
} as any
|
|
|
|
//#when
|
|
const result = getFallbackModelsForSession(sessionID, undefined, pluginConfig)
|
|
|
|
//#then
|
|
expect(result).toEqual(["openai/gpt-5.2", "anthropic/claude-opus-4-7"])
|
|
})
|
|
|
|
test("uses agent-specific fallback_models when agent is resolved", () => {
|
|
//#given
|
|
const pluginConfig = {
|
|
agents: {
|
|
oracle: {
|
|
fallback_models: ["openai/gpt-5.2", "anthropic/claude-opus-4-7"],
|
|
},
|
|
},
|
|
} as any
|
|
|
|
//#when
|
|
const result = getFallbackModelsForSession("ses_runtime_fallback_agent", "oracle", pluginConfig)
|
|
|
|
//#then
|
|
expect(result).toEqual(["openai/gpt-5.2", "anthropic/claude-opus-4-7"])
|
|
})
|
|
|
|
test("does not fall back to another agent chain when agent cannot be resolved", () => {
|
|
//#given
|
|
const pluginConfig = {
|
|
agents: {
|
|
sisyphus: {
|
|
fallback_models: ["quotio/gpt-5.2", "quotio/glm-5", "quotio/kimi-k2.5"],
|
|
},
|
|
oracle: {
|
|
fallback_models: ["openai/gpt-5.2", "anthropic/claude-opus-4-7"],
|
|
},
|
|
},
|
|
} as any
|
|
|
|
//#when
|
|
const result = getFallbackModelsForSession("ses_runtime_fallback_unknown", undefined, pluginConfig)
|
|
|
|
//#then
|
|
expect(result).toEqual([])
|
|
})
|
|
})
|