From 1ef5c17c35d439b9d58663987d50e13de4e45052 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Wed, 4 Mar 2026 11:20:55 +0900 Subject: [PATCH] feat: make gpt-5.3-codex medium the primary model for multimodal-looker GPT-5.3 Codex has strong multimodal capabilities. Promote it to first candidate in multimodal-looker fallback chain, with gemini-3-flash following (matching the ULW pattern of gpt-5.3-codex -> gemini). --- src/cli/model-fallback-requirements.ts | 1 + src/shared/model-requirements.test.ts | 16 ++++++++++------ src/shared/model-requirements.ts | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/cli/model-fallback-requirements.ts b/src/cli/model-fallback-requirements.ts index 0ff62500..5a208214 100644 --- a/src/cli/model-fallback-requirements.ts +++ b/src/cli/model-fallback-requirements.ts @@ -44,6 +44,7 @@ export const CLI_AGENT_MODEL_REQUIREMENTS: Record = { }, "multimodal-looker": { fallbackChain: [ + { providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, { providers: ["zai-coding-plan"], model: "glm-4.6v" }, diff --git a/src/shared/model-requirements.test.ts b/src/shared/model-requirements.test.ts index df4cd696..7ea027dd 100644 --- a/src/shared/model-requirements.test.ts +++ b/src/shared/model-requirements.test.ts @@ -86,21 +86,25 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(quaternary.model).toBe("gpt-5-nano") }) - test("multimodal-looker has valid fallbackChain with kimi-k2.5-free as primary", () => { + test("multimodal-looker has valid fallbackChain with gpt-5.3-codex as primary", () => { // given - multimodal-looker agent requirement const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"] // when - accessing multimodal-looker requirement - // then - fallbackChain exists with kimi-k2.5-free first, gpt-5-nano last + // then - fallbackChain exists with gpt-5.3-codex first, gemini-3-flash second, gpt-5-nano last expect(multimodalLooker).toBeDefined() expect(multimodalLooker.fallbackChain).toBeArray() - expect(multimodalLooker.fallbackChain).toHaveLength(5) + expect(multimodalLooker.fallbackChain).toHaveLength(6) const primary = multimodalLooker.fallbackChain[0] - expect(primary.providers[0]).toBe("opencode") - expect(primary.model).toBe("kimi-k2.5-free") + expect(primary.providers).toEqual(["openai", "opencode"]) + expect(primary.model).toBe("gpt-5.3-codex") + expect(primary.variant).toBe("medium") - const last = multimodalLooker.fallbackChain[4] + const secondary = multimodalLooker.fallbackChain[1] + expect(secondary.model).toBe("gemini-3-flash") + + const last = multimodalLooker.fallbackChain[5] expect(last.providers).toEqual(["openai", "github-copilot", "opencode"]) expect(last.model).toBe("gpt-5-nano") }) diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index f8e197ea..907e8b69 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -53,8 +53,9 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, "multimodal-looker": { fallbackChain: [ - { providers: ["opencode"], model: "kimi-k2.5-free" }, + { providers: ["openai", "opencode"], model: "gpt-5.3-codex", variant: "medium" }, { providers: ["google", "github-copilot", "opencode"], model: "gemini-3-flash" }, + { providers: ["opencode"], model: "kimi-k2.5-free" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5.2" }, { providers: ["zai-coding-plan"], model: "glm-4.6v" }, { providers: ["openai", "github-copilot", "opencode"], model: "gpt-5-nano" },