feat(model-requirements): set multimodal-looker primary model to gpt-5.4 medium
Change multimodal-looker's primary model from gpt-5.3-codex to gpt-5.4 medium in both runtime and CLI fallback chains. Changes: - Runtime chain (src/shared/model-requirements.ts): primary now gpt-5.4 - CLI chain (src/cli/model-fallback-requirements.ts): primary now gpt-5.4 - Updated test expectations in model-requirements.test.ts - Updated config-manager.test.ts assertion - Updated model-fallback snapshots
This commit is contained in:
@@ -213,7 +213,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -286,7 +286,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -480,7 +480,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -555,7 +555,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -631,7 +631,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "opencode/gpt-5.3-codex",
|
"model": "opencode/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -706,7 +706,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "opencode/gpt-5.3-codex",
|
"model": "opencode/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -1025,7 +1025,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "opencode/gpt-5.3-codex",
|
"model": "opencode/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -1100,7 +1100,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -1302,7 +1302,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "opencode/gpt-5.3-codex",
|
"model": "opencode/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -1377,7 +1377,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
@@ -1452,7 +1452,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
|
|||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"model": "openai/gpt-5.3-codex",
|
"model": "openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"oracle": {
|
"oracle": {
|
||||||
|
|||||||
@@ -254,8 +254,8 @@ describe("generateOmoConfig - model fallback system", () => {
|
|||||||
expect((result.agents as Record<string, { model: string; variant?: string }>).sisyphus.variant).toBe("medium")
|
expect((result.agents as Record<string, { model: string; variant?: string }>).sisyphus.variant).toBe("medium")
|
||||||
// #then Oracle should use native OpenAI (first fallback entry)
|
// #then Oracle should use native OpenAI (first fallback entry)
|
||||||
expect((result.agents as Record<string, { model: string }>).oracle.model).toBe("openai/gpt-5.4")
|
expect((result.agents as Record<string, { model: string }>).oracle.model).toBe("openai/gpt-5.4")
|
||||||
// #then multimodal-looker should use native OpenAI (first fallback entry is gpt-5.3-codex)
|
// #then multimodal-looker should use native OpenAI (first fallback entry is gpt-5.4)
|
||||||
expect((result.agents as Record<string, { model: string }>)["multimodal-looker"].model).toBe("openai/gpt-5.3-codex")
|
expect((result.agents as Record<string, { model: string }>)["multimodal-looker"].model).toBe("openai/gpt-5.4")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("uses haiku for explore when Claude max20", () => {
|
test("uses haiku for explore when Claude max20", () => {
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export const CLI_AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{
|
{
|
||||||
providers: ["openai", "opencode"],
|
providers: ["openai", "opencode"],
|
||||||
model: "gpt-5.3-codex",
|
model: "gpt-5.4",
|
||||||
variant: "medium",
|
variant: "medium",
|
||||||
},
|
},
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
|
|||||||
@@ -98,28 +98,26 @@ describe("AGENT_MODEL_REQUIREMENTS", () => {
|
|||||||
expect(quaternary.model).toBe("gpt-5-nano")
|
expect(quaternary.model).toBe("gpt-5-nano")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("multimodal-looker has valid fallbackChain with gpt-5.3-codex as primary", () => {
|
test("multimodal-looker has valid fallbackChain with gpt-5.4 as primary", () => {
|
||||||
// given - multimodal-looker agent requirement
|
// given - multimodal-looker agent requirement
|
||||||
const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"]
|
const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"]
|
||||||
|
|
||||||
// when - accessing multimodal-looker requirement
|
// when - accessing multimodal-looker requirement
|
||||||
// then - fallbackChain: gpt-5.3-codex -> k2p5 -> gemini-3-flash -> glm-4.6v -> gpt-5-nano
|
// then - fallbackChain: gpt-5.4 -> k2p5 -> gemini-3-flash -> glm-4.6v -> gpt-5-nano
|
||||||
expect(multimodalLooker).toBeDefined()
|
expect(multimodalLooker).toBeDefined()
|
||||||
expect(multimodalLooker.fallbackChain).toBeArray()
|
expect(multimodalLooker.fallbackChain).toBeArray()
|
||||||
expect(multimodalLooker.fallbackChain).toHaveLength(5)
|
expect(multimodalLooker.fallbackChain).toHaveLength(5)
|
||||||
|
|
||||||
const primary = multimodalLooker.fallbackChain[0]
|
const primary = multimodalLooker.fallbackChain[0]
|
||||||
expect(primary.providers).toEqual(["openai", "opencode"])
|
expect(primary.providers).toEqual(["openai", "opencode"])
|
||||||
expect(primary.model).toBe("gpt-5.3-codex")
|
expect(primary.model).toBe("gpt-5.4")
|
||||||
expect(primary.variant).toBe("medium")
|
expect(primary.variant).toBe("medium")
|
||||||
|
|
||||||
const secondary = multimodalLooker.fallbackChain[1]
|
const secondary = multimodalLooker.fallbackChain[1]
|
||||||
expect(secondary.providers).toEqual(["kimi-for-coding"])
|
expect(secondary.providers).toEqual(["kimi-for-coding"])
|
||||||
expect(secondary.model).toBe("k2p5")
|
expect(secondary.model).toBe("k2p5")
|
||||||
|
|
||||||
const tertiary = multimodalLooker.fallbackChain[2]
|
const tertiary = multimodalLooker.fallbackChain[2]
|
||||||
expect(tertiary.model).toBe("gemini-3-flash")
|
expect(tertiary.model).toBe("gemini-3-flash")
|
||||||
|
|
||||||
const last = multimodalLooker.fallbackChain[4]
|
const last = multimodalLooker.fallbackChain[4]
|
||||||
expect(last.providers).toEqual(["openai", "github-copilot", "opencode"])
|
expect(last.providers).toEqual(["openai", "github-copilot", "opencode"])
|
||||||
expect(last.model).toBe("gpt-5-nano")
|
expect(last.model).toBe("gpt-5-nano")
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{
|
{
|
||||||
providers: ["openai", "opencode"],
|
providers: ["openai", "opencode"],
|
||||||
model: "gpt-5.3-codex",
|
model: "gpt-5.4",
|
||||||
variant: "medium",
|
variant: "medium",
|
||||||
},
|
},
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
|
|||||||
Reference in New Issue
Block a user