diff --git a/src/agents/AGENTS.md b/src/agents/AGENTS.md index c69c0608a..9d83d29d2 100644 --- a/src/agents/AGENTS.md +++ b/src/agents/AGENTS.md @@ -10,15 +10,15 @@ Agent factories following `createXXXAgent(model) → AgentConfig` pattern. Each | Agent | Model | Temp | Mode | Fallback Chain | Purpose | |-------|-------|------|------|----------------|---------| -| **Sisyphus** | claude-opus-4-7 max | 0.1 | all | k2p5 -> kimi-k2.5 -> gpt-5.4 medium -> glm-5 -> big-pickle | Main orchestrator, plans + delegates | -| **Hephaestus** | gpt-5.4 medium | 0.1 | all | — | Autonomous deep worker | -| **Oracle** | gpt-5.4 high | 0.1 | subagent | gemini-3.1-pro high -> claude-opus-4-7 max | Read-only consultation | +| **Sisyphus** | claude-opus-4-7 max | 0.1 | all | k2p5 -> kimi-k2.5 -> gpt-5.5 medium -> glm-5 -> big-pickle | Main orchestrator, plans + delegates | +| **Hephaestus** | gpt-5.5 medium | 0.1 | all | — | Autonomous deep worker | +| **Oracle** | gpt-5.5 high | 0.1 | subagent | gemini-3.1-pro high -> claude-opus-4-7 max | Read-only consultation | | **Librarian** | gpt-5.4-mini-fast | 0.1 | subagent | minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | External docs/code search | | **Explore** | gpt-5.4-mini-fast | 0.1 | subagent | minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | Contextual grep | | **Multimodal-Looker** | gpt-5.3-codex medium | 0.1 | subagent | k2p5 -> gemini-3-flash -> glm-4.6v -> gpt-5-nano | PDF/image analysis | -| **Metis** | claude-opus-4-7 max | **0.3** | subagent | gpt-5.4 high -> gemini-3.1-pro high | Pre-planning consultant | -| **Momus** | gpt-5.4 xhigh | 0.1 | subagent | claude-opus-4-7 max -> gemini-3.1-pro high | Plan reviewer | -| **Atlas** | claude-sonnet-4-6 | 0.1 | primary | gpt-5.4 medium | Todo-list orchestrator | +| **Metis** | claude-opus-4-7 max | **0.3** | subagent | gpt-5.5 high -> gemini-3.1-pro high | Pre-planning consultant | +| **Momus** | gpt-5.5 xhigh | 0.1 | subagent | claude-opus-4-7 max -> gemini-3.1-pro high | Plan reviewer | +| **Atlas** | claude-sonnet-4-6 | 0.1 | primary | gpt-5.5 medium | Todo-list orchestrator | | **Prometheus** | claude-opus-4-7 max | 0.1 | — | internal planner | Strategic planner (internal) | | **Sisyphus-Junior** | claude-sonnet-4-6 | 0.1 | all | user-configurable | Category-spawned executor | diff --git a/src/agents/hephaestus/AGENTS.md b/src/agents/hephaestus/AGENTS.md index faf355d18..5db747318 100644 --- a/src/agents/hephaestus/AGENTS.md +++ b/src/agents/hephaestus/AGENTS.md @@ -4,7 +4,7 @@ ## OVERVIEW -6 files. Hephaestus agent -- autonomous deep worker powered by GPT-5.4. Goal-oriented: give it objectives, not step-by-step instructions. "The Legitimate Craftsman." +6 files. Hephaestus agent -- autonomous deep worker powered by GPT-5.5. Goal-oriented: give it objectives, not step-by-step instructions. "The Legitimate Craftsman." ## FILES @@ -29,6 +29,7 @@ | Model | Prompt Source | Optimizations | |-------|-------------|---------------| +| gpt-5.5 | `gpt-5-5.ts` | GPT-5.5-tuned prompt architecture | | gpt-5.4 | `gpt-5-4.ts` | XML-tagged blocks, 8 sections | | gpt-5.3-codex | `gpt-5-3-codex.ts` | Task discipline, 549 LOC prompt | | Other GPT | `gpt.ts` | Base prompt, 507 LOC | diff --git a/src/cli/__snapshots__/model-fallback.test.ts.snap b/src/cli/__snapshots__/model-fallback.test.ts.snap index 04199a607..9467a194c 100644 --- a/src/cli/__snapshots__/model-fallback.test.ts.snap +++ b/src/cli/__snapshots__/model-fallback.test.ts.snap @@ -202,7 +202,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json", "agents": { "atlas": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "explore": { @@ -216,11 +216,11 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "model": "openai/gpt-5.4-mini-fast", }, "metis": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "momus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -229,7 +229,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "model": "openai/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -237,21 +237,21 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "variant": "high", }, "prometheus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "sisyphus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "sisyphus-junior": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, }, "categories": { "artistry": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "deep": { @@ -262,7 +262,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "model": "openai/gpt-5.4-mini", }, "ultrabrain": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -274,11 +274,11 @@ exports[`generateModelConfig single native provider uses OpenAI models when only "variant": "medium", }, "visual-engineering": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "writing": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, }, @@ -290,7 +290,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json", "agents": { "atlas": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "explore": { @@ -304,11 +304,11 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "model": "openai/gpt-5.4-mini-fast", }, "metis": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "momus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -317,7 +317,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "model": "openai/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -325,21 +325,21 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "variant": "high", }, "prometheus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "sisyphus": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "sisyphus-junior": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, }, "categories": { "artistry": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "deep": { @@ -350,11 +350,11 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "model": "openai/gpt-5.4-mini", }, "ultrabrain": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "unspecified-low": { @@ -362,11 +362,11 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa "variant": "medium", }, "visual-engineering": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, "writing": { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, }, @@ -508,7 +508,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "atlas": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -543,7 +543,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "metis": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, ], @@ -561,7 +561,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "variant": "high", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -570,7 +570,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "model": "openai/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -590,7 +590,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "prometheus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { @@ -603,7 +603,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "sisyphus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -613,7 +613,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "sisyphus-junior": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -628,7 +628,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", }, ], "model": "google/gemini-3.1-pro-preview", @@ -670,7 +670,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal "variant": "max", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -726,7 +726,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "atlas": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -761,7 +761,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "metis": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, ], @@ -779,7 +779,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "variant": "high", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -788,7 +788,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "model": "openai/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -808,7 +808,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "prometheus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { @@ -821,7 +821,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "sisyphus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -831,7 +831,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "sisyphus-junior": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, ], @@ -846,7 +846,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", }, ], "model": "google/gemini-3.1-pro-preview", @@ -888,13 +888,13 @@ exports[`generateModelConfig all native providers uses preferred models with isM "variant": "max", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, ], @@ -942,7 +942,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "atlas": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -963,7 +963,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "metis": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -981,7 +981,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "variant": "high", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -990,7 +990,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "model": "opencode/gpt-5-nano", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, "oracle": { @@ -1010,7 +1010,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "prometheus": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -1026,7 +1026,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "model": "opencode/kimi-k2.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -1042,7 +1042,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "sisyphus-junior": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -1060,7 +1060,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "variant": "max", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "opencode/gemini-3.1-pro", @@ -1105,7 +1105,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on "variant": "max", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -1164,7 +1164,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "atlas": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -1185,7 +1185,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "metis": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -1203,7 +1203,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "variant": "high", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -1212,7 +1212,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "model": "opencode/gpt-5-nano", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, "oracle": { @@ -1232,7 +1232,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "prometheus": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -1248,7 +1248,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "model": "opencode/kimi-k2.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -1264,7 +1264,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "sisyphus-junior": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -1282,7 +1282,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "variant": "max", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "opencode/gemini-3.1-pro", @@ -1327,13 +1327,13 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is "variant": "max", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -1390,7 +1390,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "atlas": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1406,7 +1406,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "metis": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, ], @@ -1424,7 +1424,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "variant": "high", }, ], - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -1447,7 +1447,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "prometheus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { @@ -1460,7 +1460,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "sisyphus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1470,7 +1470,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "sisyphus-junior": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1485,7 +1485,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when "variant": "max", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, ], "model": "github-copilot/gemini-3.1-pro-preview", @@ -1571,7 +1571,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "atlas": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1587,7 +1587,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "metis": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, ], @@ -1605,7 +1605,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "variant": "high", }, ], - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -1628,7 +1628,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "prometheus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { @@ -1641,7 +1641,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "sisyphus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1651,7 +1651,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "sisyphus-junior": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -1666,7 +1666,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "variant": "max", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, ], "model": "github-copilot/gemini-3.1-pro-preview", @@ -1710,7 +1710,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with "unspecified-high": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, ], @@ -1879,7 +1879,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "model": "opencode/claude-sonnet-4-6", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -1907,7 +1907,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "variant": "max", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -1929,7 +1929,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "variant": "high", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -1938,7 +1938,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "model": "opencode/gpt-5-nano", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, "oracle": { @@ -1966,7 +1966,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "variant": "max", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -1986,7 +1986,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "model": "opencode/kimi-k2.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -2005,7 +2005,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "model": "opencode/claude-sonnet-4-6", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -2027,7 +2027,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "variant": "max", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "opencode/gemini-3.1-pro", @@ -2083,7 +2083,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen "variant": "max", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -2155,11 +2155,11 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "atlas": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -2194,11 +2194,11 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "metis": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, ], @@ -2208,7 +2208,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "momus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, { @@ -2220,7 +2220,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "variant": "high", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -2232,7 +2232,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "model": "github-copilot/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -2256,11 +2256,11 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "prometheus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { @@ -2273,11 +2273,11 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "sisyphus": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -2287,11 +2287,11 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "sisyphus-junior": { "fallback_models": [ { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, ], @@ -2306,10 +2306,10 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, ], "model": "github-copilot/gemini-3.1-pro-preview", @@ -2358,7 +2358,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb "variant": "max", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -2632,11 +2632,11 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "model": "opencode/claude-sonnet-4-6", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -2678,11 +2678,11 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "variant": "max", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -2692,7 +2692,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "momus": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, { @@ -2712,7 +2712,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "variant": "high", }, ], - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -2727,7 +2727,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "model": "opencode/gpt-5-nano", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, "oracle": { @@ -2763,11 +2763,11 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "variant": "max", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -2790,11 +2790,11 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "model": "opencode/kimi-k2.5", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -2816,11 +2816,11 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "model": "opencode/claude-sonnet-4-6", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -2846,10 +2846,10 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "variant": "max", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "github-copilot/gemini-3.1-pro-preview", @@ -2923,7 +2923,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider "variant": "max", }, ], - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -3017,15 +3017,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "model": "opencode/claude-sonnet-4-6", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -3090,15 +3090,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -3108,11 +3108,11 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "momus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, { @@ -3140,13 +3140,13 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "variant": "high", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3162,7 +3162,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "model": "opencode/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -3214,15 +3214,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -3252,15 +3252,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "model": "opencode/kimi-k2.5", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3285,15 +3285,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "model": "opencode/claude-sonnet-4-6", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3327,13 +3327,13 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "google/gemini-3.1-pro-preview", @@ -3412,7 +3412,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "ultrabrain": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, { @@ -3440,7 +3440,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe "variant": "max", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -3568,15 +3568,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "model": "opencode/claude-sonnet-4-6", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, ], @@ -3641,15 +3641,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, ], @@ -3659,11 +3659,11 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "momus": { "fallback_models": [ { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "xhigh", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, { @@ -3691,13 +3691,13 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "high", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3713,7 +3713,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "model": "opencode/gpt-5-nano", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -3765,15 +3765,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -3803,15 +3803,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "model": "opencode/kimi-k2.5", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3836,15 +3836,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "model": "opencode/claude-sonnet-4-6", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "medium", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "medium", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "medium", }, { @@ -3878,13 +3878,13 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", }, ], "model": "google/gemini-3.1-pro-preview", @@ -3963,7 +3963,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "ultrabrain": { "fallback_models": [ { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "xhigh", }, { @@ -3991,7 +3991,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "max", }, ], - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -4005,15 +4005,15 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is "variant": "max", }, { - "model": "openai/gpt-5.4", + "model": "openai/gpt-5.5", "variant": "high", }, { - "model": "github-copilot/gpt-5.4", + "model": "github-copilot/gpt-5.5", "variant": "high", }, { - "model": "opencode/gpt-5.4", + "model": "opencode/gpt-5.5", "variant": "high", }, { @@ -4123,7 +4123,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4167,7 +4167,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "metis": { "fallback_models": [ { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "high", }, { @@ -4191,7 +4191,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/zai/glm-5", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -4206,7 +4206,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/openai/gpt-5-nano", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -4229,7 +4229,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "prometheus": { "fallback_models": [ { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "high", }, { @@ -4248,7 +4248,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4264,7 +4264,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4282,7 +4282,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", }, ], "model": "vercel/google/gemini-3.1-pro-preview", @@ -4333,7 +4333,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/zai/glm-5", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { @@ -4413,7 +4413,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4457,7 +4457,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "metis": { "fallback_models": [ { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "high", }, { @@ -4481,7 +4481,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/zai/glm-5", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "xhigh", }, "multimodal-looker": { @@ -4496,7 +4496,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/openai/gpt-5-nano", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, "oracle": { @@ -4519,7 +4519,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "prometheus": { "fallback_models": [ { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "high", }, { @@ -4538,7 +4538,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4554,7 +4554,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/moonshotai/kimi-k2.5", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "medium", }, { @@ -4572,7 +4572,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", }, ], "model": "vercel/google/gemini-3.1-pro-preview", @@ -4623,13 +4623,13 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/zai/glm-5", }, ], - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "xhigh", }, "unspecified-high": { "fallback_models": [ { - "model": "vercel/openai/gpt-5.4", + "model": "vercel/openai/gpt-5.5", "variant": "high", }, { diff --git a/src/cli/cli-program.ts b/src/cli/cli-program.ts index 4835495a5..49256d2da 100644 --- a/src/cli/cli-program.ts +++ b/src/cli/cli-program.ts @@ -94,7 +94,7 @@ Examples: $ bunx oh-my-opencode run --on-complete "notify-send Done" "Fix the bug" $ bunx oh-my-opencode run --session-id ses_abc123 "Continue the work" $ bunx oh-my-opencode run --model anthropic/claude-sonnet-4 "Fix the bug" - $ bunx oh-my-opencode run --agent Sisyphus --model openai/gpt-5.4 "Implement feature X" + $ bunx oh-my-opencode run --agent Sisyphus --model openai/gpt-5.5 "Implement feature X" Agent resolution order: 1) --agent flag diff --git a/src/cli/model-fallback.test.ts b/src/cli/model-fallback.test.ts index 93ef1677b..cf030acf3 100644 --- a/src/cli/model-fallback.test.ts +++ b/src/cli/model-fallback.test.ts @@ -401,7 +401,7 @@ describe("generateModelConfig", () => { expect(result.agents?.sisyphus?.model).toBe("anthropic/claude-opus-4-7") }) - test("Sisyphus resolves to gpt-5.4 medium when only OpenAI is available", () => { + test("Sisyphus resolves to gpt-5.5 medium when only OpenAI is available", () => { // #given const config = createConfig({ hasOpenAI: true }) @@ -409,7 +409,7 @@ describe("generateModelConfig", () => { const result = generateModelConfig(config) // #then - expect(result.agents?.sisyphus?.model).toBe("openai/gpt-5.4") + expect(result.agents?.sisyphus?.model).toBe("openai/gpt-5.5") expect(result.agents?.sisyphus?.variant).toBe("medium") }) }) @@ -423,7 +423,7 @@ describe("generateModelConfig", () => { const result = generateModelConfig(config) // #then - expect(result.agents?.atlas?.model).toBe("openai/gpt-5.4") + expect(result.agents?.atlas?.model).toBe("openai/gpt-5.5") expect(result.agents?.atlas?.variant).toBe("medium") }) @@ -435,7 +435,7 @@ describe("generateModelConfig", () => { const result = generateModelConfig(config) // #then - expect(result.agents?.metis?.model).toBe("openai/gpt-5.4") + expect(result.agents?.metis?.model).toBe("openai/gpt-5.5") expect(result.agents?.metis?.variant).toBe("high") }) @@ -447,7 +447,7 @@ describe("generateModelConfig", () => { const result = generateModelConfig(config) // #then - expect(result.agents?.["sisyphus-junior"]?.model).toBe("openai/gpt-5.4") + expect(result.agents?.["sisyphus-junior"]?.model).toBe("openai/gpt-5.5") expect(result.agents?.["sisyphus-junior"]?.variant).toBe("medium") }) }) diff --git a/src/cli/openai-only-model-catalog.test.ts b/src/cli/openai-only-model-catalog.test.ts index 7c94aa850..cb5c2e1c8 100644 --- a/src/cli/openai-only-model-catalog.test.ts +++ b/src/cli/openai-only-model-catalog.test.ts @@ -40,10 +40,10 @@ describe("generateModelConfig OpenAI-only model catalog", () => { const result = generateModelConfig(config) // #then - expect(result.categories?.artistry).toEqual({ model: "openai/gpt-5.4", variant: "xhigh" }) + expect(result.categories?.artistry).toEqual({ model: "openai/gpt-5.5", variant: "xhigh" }) expect(result.categories?.quick).toEqual({ model: "openai/gpt-5.4-mini" }) - expect(result.categories?.["visual-engineering"]).toEqual({ model: "openai/gpt-5.4", variant: "high" }) - expect(result.categories?.writing).toEqual({ model: "openai/gpt-5.4", variant: "medium" }) + expect(result.categories?.["visual-engineering"]).toEqual({ model: "openai/gpt-5.5", variant: "high" }) + expect(result.categories?.writing).toEqual({ model: "openai/gpt-5.5", variant: "medium" }) }) test("does not apply OpenAI-only overrides when OpenCode Go is also available", () => { diff --git a/src/cli/openai-only-model-catalog.ts b/src/cli/openai-only-model-catalog.ts index 36d6ca802..82b2c8d70 100644 --- a/src/cli/openai-only-model-catalog.ts +++ b/src/cli/openai-only-model-catalog.ts @@ -6,10 +6,10 @@ const OPENAI_ONLY_AGENT_OVERRIDES: Record = { } const OPENAI_ONLY_CATEGORY_OVERRIDES: Record = { - artistry: { model: "openai/gpt-5.4", variant: "xhigh" }, + artistry: { model: "openai/gpt-5.5", variant: "xhigh" }, quick: { model: "openai/gpt-5.4-mini" }, - "visual-engineering": { model: "openai/gpt-5.4", variant: "high" }, - writing: { model: "openai/gpt-5.4", variant: "medium" }, + "visual-engineering": { model: "openai/gpt-5.5", variant: "high" }, + writing: { model: "openai/gpt-5.5", variant: "medium" }, } export function isOpenAiOnlyAvailability(availability: ProviderAvailability): boolean { diff --git a/src/cli/tui-install-prompts.ts b/src/cli/tui-install-prompts.ts index 9638dfd4d..cec155688 100644 --- a/src/cli/tui-install-prompts.ts +++ b/src/cli/tui-install-prompts.ts @@ -74,7 +74,7 @@ export async function promptInstallConfig(detected: DetectedConfig): Promise { expect(primary.variant).toBe("high") }) - test("sisyphus has claude-opus-4-7 as primary with k2p5, kimi-k2.5, gpt-5.4 medium fallbacks", () => { + test("sisyphus has claude-opus-4-7 as primary with k2p5, kimi-k2.5, gpt-5.5 medium fallbacks", () => { // #given - sisyphus agent requirement const sisyphus = AGENT_MODEL_REQUIREMENTS["sisyphus"] @@ -50,10 +50,10 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const fourth = sisyphus.fallbackChain[3] expect(fourth.model).toBe("kimi-k2.5") - const fifth = sisyphus.fallbackChain[4] - expect(fifth.providers).toContain("openai") - expect(fifth.model).toBe("gpt-5.4") - expect(fifth.variant).toBe("medium") + const fifth = sisyphus.fallbackChain[4] + expect(fifth.providers).toContain("openai") + expect(fifth.model).toBe("gpt-5.5") + expect(fifth.variant).toBe("medium") const sixth = sisyphus.fallbackChain[5] expect(sixth.providers[0]).toBe("zai-coding-plan") @@ -125,19 +125,19 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(fifth.model).toBe("gpt-5.4-nano") }) - test("multimodal-looker has valid fallbackChain with gpt-5.4 as primary", () => { + test("multimodal-looker has valid fallbackChain with gpt-5.5 as primary", () => { // given - multimodal-looker agent requirement const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"] // when - accessing multimodal-looker requirement - // then - fallbackChain: gpt-5.4 -> opencode-go/kimi-k2.5 -> glm-4.6v -> gpt-5-nano + // then - fallbackChain: gpt-5.5 -> opencode-go/kimi-k2.5 -> glm-4.6v -> gpt-5-nano expect(multimodalLooker).toBeDefined() expect(multimodalLooker.fallbackChain).toBeArray() expect(multimodalLooker.fallbackChain).toHaveLength(4) const primary = multimodalLooker.fallbackChain[0] expect(primary.providers).toEqual(["openai", "opencode", "vercel"]) - expect(primary.model).toBe("gpt-5.4") + expect(primary.model).toBe("gpt-5.5") expect(primary.variant).toBe("medium") const secondary = multimodalLooker.fallbackChain[1] @@ -186,23 +186,23 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const openAiFallback = metis.fallbackChain.find((entry) => entry.providers.includes("openai")) expect(openAiFallback).toEqual({ providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "high", }) }) - test("momus has valid fallbackChain with gpt-5.4 as primary", () => { + test("momus has valid fallbackChain with gpt-5.5 as primary", () => { // given - momus agent requirement const momus = AGENT_MODEL_REQUIREMENTS["momus"] // when - accessing Momus requirement - // then - fallbackChain exists with gpt-5.4 as first entry, variant xhigh + // then - fallbackChain exists with gpt-5.5 as first entry, variant xhigh expect(momus).toBeDefined() expect(momus.fallbackChain).toBeArray() expect(momus.fallbackChain.length).toBeGreaterThan(0) const primary = momus.fallbackChain[0] - expect(primary.model).toBe("gpt-5.4") + expect(primary.model).toBe("gpt-5.5") expect(primary.variant).toBe("xhigh") expect(primary.providers[0]).toBe("openai") }) @@ -228,7 +228,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const tertiary = atlas.fallbackChain[2] expect(tertiary).toEqual({ providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "medium", }) @@ -250,7 +250,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { // then expect(openAiFallback).toEqual({ providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "medium", }) expect(openAiFallbackIndex).toBeGreaterThan(-1) @@ -307,19 +307,19 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { }) describe("CATEGORY_MODEL_REQUIREMENTS", () => { - test("ultrabrain has valid fallbackChain with gpt-5.4 as primary", () => { + test("ultrabrain has valid fallbackChain with gpt-5.5 as primary", () => { // given - ultrabrain category requirement const ultrabrain = CATEGORY_MODEL_REQUIREMENTS["ultrabrain"] // when - accessing ultrabrain requirement - // then - fallbackChain exists with gpt-5.4 as first entry + // then - fallbackChain exists with gpt-5.5 as first entry expect(ultrabrain).toBeDefined() expect(ultrabrain.fallbackChain).toBeArray() expect(ultrabrain.fallbackChain.length).toBeGreaterThan(0) const primary = ultrabrain.fallbackChain[0] expect(primary.variant).toBe("xhigh") - expect(primary.model).toBe("gpt-5.4") + expect(primary.model).toBe("gpt-5.5") expect(primary.providers[0]).toBe("openai") }) @@ -406,12 +406,12 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { expect(primary.providers[0]).toBe("anthropic") }) - test("unspecified-high has claude-opus-4-7 as primary and gpt-5.4 as secondary", () => { + test("unspecified-high has claude-opus-4-7 as primary and gpt-5.5 as secondary", () => { // #given - unspecified-high category requirement const unspecifiedHigh = CATEGORY_MODEL_REQUIREMENTS["unspecified-high"] // #when - accessing unspecified-high requirement - // #then - claude-opus-4-7 is first and gpt-5.4 is second + // #then - claude-opus-4-7 is first and gpt-5.5 is second expect(unspecifiedHigh).toBeDefined() expect(unspecifiedHigh.fallbackChain).toBeArray() expect(unspecifiedHigh.fallbackChain.length).toBeGreaterThan(1) @@ -422,7 +422,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { expect(primary.providers).toEqual(["anthropic", "github-copilot", "opencode", "vercel"]) const secondary = unspecifiedHigh.fallbackChain[1] - expect(secondary.model).toBe("gpt-5.4") + expect(secondary.model).toBe("gpt-5.5") expect(secondary.variant).toBe("high") expect(secondary.providers).toEqual(["openai", "github-copilot", "opencode", "vercel"]) }) @@ -539,7 +539,7 @@ describe("ModelRequirement type", () => { const requirement: ModelRequirement = { fallbackChain: [ { providers: ["anthropic", "github-copilot"], model: "claude-opus-4-7", variant: "max" }, - { providers: ["openai", "github-copilot"], model: "gpt-5.4", variant: "high" }, + { providers: ["openai", "github-copilot"], model: "gpt-5.5", variant: "high" }, ], } @@ -548,7 +548,7 @@ describe("ModelRequirement type", () => { expect(requirement.fallbackChain).toBeArray() expect(requirement.fallbackChain).toHaveLength(2) expect(requirement.fallbackChain[0].model).toBe("claude-opus-4-7") - expect(requirement.fallbackChain[1].model).toBe("gpt-5.4") + expect(requirement.fallbackChain[1].model).toBe("gpt-5.5") }) test("ModelRequirement variant is optional", () => { diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index 56b53d98c..786de3637 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -39,7 +39,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { ], model: "kimi-k2.5", }, - { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" }, + { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, { providers: ["opencode"], model: "big-pickle" }, ], @@ -95,7 +95,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, "multimodal-looker": { fallbackChain: [ - { providers: ["openai", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" }, + { providers: ["openai", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, { providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" }, @@ -110,7 +110,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "high", }, { providers: ["opencode-go", "vercel"], model: "glm-5" }, @@ -129,7 +129,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { }, { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "high", }, { providers: ["opencode-go", "vercel"], model: "glm-5" }, @@ -140,7 +140,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { fallbackChain: [ { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "xhigh", }, { @@ -162,7 +162,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "medium", }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, @@ -174,7 +174,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "medium", }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, @@ -205,7 +205,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { fallbackChain: [ { providers: ["openai", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "xhigh", }, { @@ -252,7 +252,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.4" }, + { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5" }, ], requiresModel: "gemini-3.1-pro", }, @@ -302,7 +302,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, { providers: ["openai", "github-copilot", "opencode", "vercel"], - model: "gpt-5.4", + model: "gpt-5.5", variant: "high", }, { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, diff --git a/src/tools/AGENTS.md b/src/tools/AGENTS.md index d6e6f41ad..c65c3f870 100644 --- a/src/tools/AGENTS.md +++ b/src/tools/AGENTS.md @@ -92,8 +92,8 @@ | Category | Model | Domain | |----------|-------|--------| | visual-engineering | gemini-3.1-pro high | Frontend, UI/UX | -| ultrabrain | gpt-5.4 xhigh | Hard logic | -| deep | gpt-5.4 medium | Autonomous problem-solving | +| ultrabrain | gpt-5.5 xhigh | Hard logic | +| deep | gpt-5.5 medium | Autonomous problem-solving | | artistry | gemini-3.1-pro high | Creative approaches | | quick | gpt-5.4-mini | Trivial tasks | | unspecified-low | claude-sonnet-4-6 | Moderate effort | diff --git a/src/tools/delegate-task/openai-categories.ts b/src/tools/delegate-task/openai-categories.ts index ff0eb40bb..c1ee31593 100644 --- a/src/tools/delegate-task/openai-categories.ts +++ b/src/tools/delegate-task/openai-categories.ts @@ -97,7 +97,7 @@ If your prompt lacks this structure, REWRITE IT before delegating. export const OPENAI_CATEGORIES: BuiltinCategoryDefinition[] = [ { name: "ultrabrain", - config: { model: "openai/gpt-5.4", variant: "xhigh" }, + config: { model: "openai/gpt-5.5", variant: "xhigh" }, description: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.", promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND, }, diff --git a/src/tools/delegate-task/tools.test.ts b/src/tools/delegate-task/tools.test.ts index 2d7006ff7..070566292 100644 --- a/src/tools/delegate-task/tools.test.ts +++ b/src/tools/delegate-task/tools.test.ts @@ -33,8 +33,8 @@ const TEST_AVAILABLE_MODELS = new Set([ "anthropic/claude-haiku-4-5", "google/gemini-3.1-pro", "google/gemini-3-flash", + "openai/gpt-5.4-mini", "openai/gpt-5.5", - "openai/gpt-5.4", "openai/gpt-5.3-codex", ]) @@ -69,7 +69,7 @@ describe("sisyphus-task", () => { models: { anthropic: ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5"], google: ["gemini-3.1-pro", "gemini-3-flash"], - openai: ["gpt-5.5", "gpt-5.4", "gpt-5.3-codex"], + openai: ["gpt-5.5", "gpt-5.4-mini", "gpt-5.3-codex"], }, connected: ["anthropic", "google", "openai"], updatedAt: "2026-01-01T00:00:00.000Z", @@ -99,7 +99,7 @@ describe("sisyphus-task", () => { // when / #then expect(category).toBeDefined() - expect(category.model).toBe("openai/gpt-5.4") + expect(category.model).toBe("openai/gpt-5.5") expect(category.variant).toBe("xhigh") }) @@ -381,7 +381,7 @@ describe("sisyphus-task", () => { } //#when - await tool.execute(args as unknown as DelegateTaskArgs, toolContext) + await tool.execute(args as DelegateTaskArgs, toolContext) //#then expect(args.load_skills).toEqual(["playwright", "git-master"]) @@ -444,7 +444,7 @@ describe("sisyphus-task", () => { } //#when - await tool.execute(args as unknown as DelegateTaskArgs, toolContext) + await tool.execute(args as DelegateTaskArgs, toolContext) //#then expect(args.load_skills).toEqual([]) @@ -877,7 +877,7 @@ describe("sisyphus-task", () => { const categoryName = "my-custom" const userCategories = { "my-custom": { - model: "openai/gpt-5.4", + model: "openai/gpt-5.5", temperature: 0.5, prompt_append: "You are a custom agent", }, @@ -888,7 +888,7 @@ describe("sisyphus-task", () => { // then expect(result).not.toBeNull() - expect(result!.config.model).toBe("openai/gpt-5.4") + expect(result!.config.model).toBe("openai/gpt-5.5") expect(result!.config.temperature).toBe(0.5) expect(result!.promptAppend).toBe("You are a custom agent") }) @@ -927,7 +927,7 @@ describe("sisyphus-task", () => { test("systemDefaultModel is used as fallback when custom category has no model", () => { // given - custom category with no model defined const categoryName = "my-custom-no-model" - const userCategories = { "my-custom-no-model": { temperature: 0.5 } } as unknown as Record + const userCategories: Record = { "my-custom-no-model": { temperature: 0.5 } } const inheritedModel = "cliproxy/claude-opus-4-7" // when @@ -1001,7 +1001,7 @@ describe("sisyphus-task", () => { manager: mockManager, client: mockClient, userCategories: { - ultrabrain: { model: "openai/gpt-5.4", variant: "xhigh" }, + ultrabrain: { model: "openai/gpt-5.5", variant: "xhigh" }, }, connectedProvidersOverride: TEST_CONNECTED_PROVIDERS, availableModelsOverride: createTestAvailableModels(), @@ -1029,7 +1029,7 @@ describe("sisyphus-task", () => { // then expect(launchInput.model).toEqual({ providerID: "openai", - modelID: "gpt-5.4", + modelID: "gpt-5.5", variant: "xhigh", }) }) @@ -2448,7 +2448,7 @@ describe("sisyphus-task", () => { }, } - // Use ultrabrain which uses gpt-5.4 (non-gemini) + // Use ultrabrain which uses gpt-5.5 (non-gemini) const tool = createDelegateTask({ manager: mockManager, client: mockClient, @@ -2554,7 +2554,7 @@ describe("sisyphus-task", () => { models: { anthropic: ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5"], google: ["gemini-3.1-pro", "gemini-3-flash"], - openai: ["gpt-5.5", "gpt-5.4", "gpt-5.3-codex"], + openai: ["gpt-5.5", "gpt-5.5", "gpt-5.3-codex"], "kimi-for-coding": ["k2p5"], }, connected: ["anthropic", "google", "openai", "kimi-for-coding"], @@ -2665,7 +2665,7 @@ describe("sisyphus-task", () => { client: mockClient, userCategories: { "my-unstable-cat": { - model: "openai/gpt-5.4", + model: "openai/gpt-5.5", is_unstable_agent: true, }, }, @@ -2747,7 +2747,7 @@ describe("sisyphus-task", () => { abort: new AbortController().signal, } - // when - using "quick" category which should use "anthropic/claude-haiku-4-5" + // when - using "quick" category which should use the catalog model await tool.execute( { description: "Test category fallback", @@ -2759,10 +2759,10 @@ describe("sisyphus-task", () => { toolContext ) - // then - model should be anthropic/claude-haiku-4-5 from DEFAULT_CATEGORIES + // then - model should be openai/gpt-5.4-mini from DEFAULT_CATEGORIES // NOT anthropic/claude-sonnet-4-6 (system default) - expect(launchInput.model.providerID).toBe("anthropic") - expect(launchInput.model.modelID).toBe("claude-haiku-4-5") + expect(launchInput.model.providerID).toBe("openai") + expect(launchInput.model.modelID).toBe("gpt-5.4-mini") }) test("category delegation ignores UI-selected (Kimi) system default model", async () => { @@ -2812,7 +2812,7 @@ describe("sisyphus-task", () => { abort: new AbortController().signal, } - // when - using "quick" category which should use "anthropic/claude-haiku-4-5" + // when - using "quick" category which should use the catalog model await tool.execute( { description: "UI model inheritance test", @@ -2825,8 +2825,8 @@ describe("sisyphus-task", () => { ) // then - category model must win (not Kimi) - expect(launchInput.model.providerID).toBe("anthropic") - expect(launchInput.model.modelID).toBe("claude-haiku-4-5") + expect(launchInput.model.providerID).toBe("openai") + expect(launchInput.model.modelID).toBe("gpt-5.4-mini") }) test("sisyphus-junior model override takes precedence over category model", async () => { @@ -2873,7 +2873,7 @@ describe("sisyphus-task", () => { abort: new AbortController().signal, } - // when - using ultrabrain category (default model is openai/gpt-5.4) + // when - using ultrabrain category (default model is openai/gpt-5.5) await tool.execute( { description: "Override precedence test", @@ -2925,7 +2925,7 @@ describe("sisyphus-task", () => { client: mockClient, sisyphusJuniorModel: "anthropic/claude-sonnet-4-6", userCategories: { - ultrabrain: { model: "openai/gpt-5.4" }, + ultrabrain: { model: "openai/gpt-5.5" }, }, connectedProvidersOverride: TEST_CONNECTED_PROVIDERS, availableModelsOverride: createTestAvailableModels(), @@ -2952,7 +2952,7 @@ describe("sisyphus-task", () => { // then - explicit category model should win expect(launchInput.model.providerID).toBe("openai") - expect(launchInput.model.modelID).toBe("gpt-5.4") + expect(launchInput.model.modelID).toBe("gpt-5.5") }) test("sisyphus-junior model override works with quick category (#1295)", async () => { @@ -3049,7 +3049,7 @@ describe("sisyphus-task", () => { const tool = createDelegateTask({ manager: mockManager, client: mockClient, - sisyphusJuniorModel: "openai/gpt-5.4", + sisyphusJuniorModel: "openai/gpt-5.5", userCategories: { "my-custom": { temperature: 0.5 }, }, @@ -3076,7 +3076,7 @@ describe("sisyphus-task", () => { // then - sisyphus-junior override model should be used as fallback expect(launchInput.model.providerID).toBe("openai") - expect(launchInput.model.modelID).toBe("gpt-5.4") + expect(launchInput.model.modelID).toBe("gpt-5.5") }) }) @@ -3447,7 +3447,7 @@ describe("sisyphus-task", () => { // then - catalog model is used expect(resolved).not.toBeNull() - expect(resolved!.config.model).toBe("openai/gpt-5.4") + expect(resolved!.config.model).toBe("openai/gpt-5.5") expect(resolved!.config.variant).toBe("xhigh") }) @@ -3471,10 +3471,10 @@ describe("sisyphus-task", () => { // when const resolved = resolveCategoryConfig(categoryName, { inheritedModel, systemDefaultModel: SYSTEM_DEFAULT_MODEL }) - // then - category's built-in model wins (ultrabrain uses gpt-5.4) + // then - category's built-in model wins (ultrabrain uses gpt-5.5) expect(resolved).not.toBeNull() const actualModel = resolved!.config.model - expect(actualModel).toBe("openai/gpt-5.4") + expect(actualModel).toBe("openai/gpt-5.5") }) test("when user defines model - modelInfo should report user-defined regardless of inheritedModel", () => { @@ -3528,18 +3528,18 @@ describe("sisyphus-task", () => { const categoryName = "ultrabrain" const inheritedModel = "anthropic/claude-opus-4-7" - // when category has a built-in model (gpt-5.4 for ultrabrain) + // when category has a built-in model (gpt-5.5 for ultrabrain) const resolved = resolveCategoryConfig(categoryName, { inheritedModel, systemDefaultModel: SYSTEM_DEFAULT_MODEL }) // then category's built-in model should be used, NOT inheritedModel expect(resolved).not.toBeNull() - expect(resolved!.model).toBe("openai/gpt-5.4") + expect(resolved!.model).toBe("openai/gpt-5.5") }) test("FIXED: systemDefaultModel is used when no userConfig.model and no inheritedModel", () => { // given a custom category with no default model const categoryName = "custom-no-default" - const userCategories = { "custom-no-default": { temperature: 0.5 } } as unknown as Record + const userCategories: Record = { "custom-no-default": { temperature: 0.5 } } const systemDefaultModel = "anthropic/claude-sonnet-4-6" // when no inheritedModel is provided, only systemDefaultModel @@ -3589,8 +3589,7 @@ describe("sisyphus-task", () => { test("FIXED: undefined userConfig.model falls back to category built-in model", () => { // given user sets a builtin category but leaves model undefined const categoryName = "visual-engineering" - // Using type assertion since we're testing fallback behavior for categories without model - const userCategories = { "visual-engineering": { temperature: 0.2 } } as unknown as Record + const userCategories: Record = { "visual-engineering": { temperature: 0.2 } } const inheritedModel = "anthropic/claude-opus-4-7" // when resolveCategoryConfig is called @@ -3604,8 +3603,7 @@ describe("sisyphus-task", () => { test("systemDefaultModel is used when no other model is available", () => { // given - custom category with no model, but systemDefaultModel is set const categoryName = "my-custom" - // Using type assertion since we're testing fallback behavior for categories without model - const userCategories = { "my-custom": { temperature: 0.5 } } as unknown as Record + const userCategories: Record = { "my-custom": { temperature: 0.5 } } const systemDefaultModel = "anthropic/claude-sonnet-4-6" // when @@ -3936,7 +3934,7 @@ describe("sisyphus-task", () => { app: { agents: async () => ({ data: [ - { name: "oracle", mode: "subagent", model: { providerID: "openai", modelID: "gpt-5.4" } }, + { name: "oracle", mode: "subagent", model: { providerID: "openai", modelID: "gpt-5.5" } }, ], }), }, @@ -4003,7 +4001,7 @@ describe("sisyphus-task", () => { app: { agents: async () => ({ data: [ - { name: "oracle", mode: "subagent", model: { providerID: "openai", modelID: "gpt-5.4" } }, + { name: "oracle", mode: "subagent", model: { providerID: "openai", modelID: "gpt-5.5" } }, ], }), },