fix(model-fallback): add gpt-5-nano to multimodal-looker chain, remove librarian hardcoding

- BUG-7: Add gpt-5-nano as final fallback in multimodal-looker model requirements
- BUG-14: Remove hardcoded LIBRARIAN_MODEL, let librarian resolve through normal fallback chain
- Update snapshots and tests to reflect new fallback behavior
This commit is contained in:
YeonGyu-Kim 2026-02-21 02:16:08 +09:00
parent aa1c8a4626
commit f0ff232b43
2 changed files with 114 additions and 113 deletions

View File

@ -5,57 +5,57 @@ exports[`generateModelConfig no providers available returns ULTIMATE_FALLBACK fo
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"explore": { "explore": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"hephaestus": { "hephaestus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"librarian": { "librarian": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"momus": { "momus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"oracle": { "oracle": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"prometheus": { "prometheus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
"categories": { "categories": {
"artistry": { "artistry": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"deep": { "deep": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"quick": { "quick": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"ultrabrain": { "ultrabrain": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"writing": { "writing": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
} }
@ -66,13 +66,13 @@ exports[`generateModelConfig single native provider uses Claude models when only
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "anthropic/claude-sonnet-4-5",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -83,7 +83,7 @@ exports[`generateModelConfig single native provider uses Claude models when only
"variant": "max", "variant": "max",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/big-pickle", "model": "anthropic/claude-haiku-4-5",
}, },
"oracle": { "oracle": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -107,17 +107,17 @@ exports[`generateModelConfig single native provider uses Claude models when only
"variant": "max", "variant": "max",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
"variant": "max", "variant": "max",
}, },
"writing": { "writing": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
}, },
} }
@ -128,13 +128,13 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "anthropic/claude-sonnet-4-5",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -145,7 +145,7 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"variant": "max", "variant": "max",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/big-pickle", "model": "anthropic/claude-haiku-4-5",
}, },
"oracle": { "oracle": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -173,14 +173,14 @@ exports[`generateModelConfig single native provider uses Claude models with isMa
"variant": "max", "variant": "max",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
"variant": "max", "variant": "max",
}, },
"writing": { "writing": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
}, },
} }
@ -201,7 +201,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
@ -229,7 +229,7 @@ exports[`generateModelConfig single native provider uses OpenAI models when only
"variant": "medium", "variant": "medium",
}, },
"quick": { "quick": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"ultrabrain": { "ultrabrain": {
"model": "openai/gpt-5.3-codex", "model": "openai/gpt-5.3-codex",
@ -244,10 +244,10 @@ exports[`generateModelConfig single native provider uses OpenAI models when only
"variant": "medium", "variant": "medium",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"writing": { "writing": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
} }
@ -268,7 +268,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
@ -296,7 +296,7 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
"variant": "medium", "variant": "medium",
}, },
"quick": { "quick": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"ultrabrain": { "ultrabrain": {
"model": "openai/gpt-5.3-codex", "model": "openai/gpt-5.3-codex",
@ -311,10 +311,10 @@ exports[`generateModelConfig single native provider uses OpenAI models with isMa
"variant": "medium", "variant": "medium",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"writing": { "writing": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
} }
@ -325,13 +325,13 @@ exports[`generateModelConfig single native provider uses Gemini models when only
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "opencode/big-pickle", "model": "google/gemini-3-pro-preview",
}, },
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -386,13 +386,13 @@ exports[`generateModelConfig single native provider uses Gemini models with isMa
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "opencode/big-pickle", "model": "google/gemini-3-pro-preview",
}, },
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -447,7 +447,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
@ -457,7 +457,7 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "anthropic/claude-sonnet-4-5",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -500,10 +500,10 @@ exports[`generateModelConfig all native providers uses preferred models from fal
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -521,7 +521,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
@ -531,7 +531,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "anthropic/claude-sonnet-4-5",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -578,7 +578,7 @@ exports[`generateModelConfig all native providers uses preferred models with isM
"variant": "max", "variant": "max",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -606,7 +606,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "opencode/claude-opus-4-6", "model": "opencode/claude-opus-4-6",
@ -617,7 +617,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/gemini-3-flash",
}, },
"oracle": { "oracle": {
"model": "opencode/gpt-5.2", "model": "opencode/gpt-5.2",
@ -649,10 +649,10 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models when on
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/claude-sonnet-4-6", "model": "opencode/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/claude-sonnet-4-6", "model": "opencode/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/gemini-3-pro", "model": "opencode/gemini-3-pro",
@ -680,7 +680,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "opencode/claude-opus-4-6", "model": "opencode/claude-opus-4-6",
@ -691,7 +691,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/gemini-3-flash",
}, },
"oracle": { "oracle": {
"model": "opencode/gpt-5.2", "model": "opencode/gpt-5.2",
@ -727,7 +727,7 @@ exports[`generateModelConfig fallback providers uses OpenCode Zen models with is
"variant": "max", "variant": "max",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/claude-sonnet-4-6", "model": "opencode/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/gemini-3-pro", "model": "opencode/gemini-3-pro",
@ -745,7 +745,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
@ -755,7 +755,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "github-copilot/claude-sonnet-4.5",
}, },
"metis": { "metis": {
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
@ -798,10 +798,10 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models when
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "github-copilot/gemini-3-pro-preview", "model": "github-copilot/gemini-3-pro-preview",
@ -819,7 +819,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
@ -829,7 +829,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "github-copilot/claude-sonnet-4.5",
}, },
"metis": { "metis": {
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
@ -876,7 +876,7 @@ exports[`generateModelConfig fallback providers uses GitHub Copilot models with
"variant": "max", "variant": "max",
}, },
"unspecified-low": { "unspecified-low": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "github-copilot/gemini-3-pro-preview", "model": "github-copilot/gemini-3-pro-preview",
@ -894,51 +894,51 @@ exports[`generateModelConfig fallback providers uses ZAI model for librarian whe
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"momus": { "momus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "zai-coding-plan/glm-4.6v", "model": "zai-coding-plan/glm-4.6v",
}, },
"oracle": { "oracle": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"prometheus": { "prometheus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"sisyphus": { "sisyphus": {
"model": "zai-coding-plan/glm-5", "model": "zai-coding-plan/glm-4.7",
}, },
}, },
"categories": { "categories": {
"quick": { "quick": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"ultrabrain": { "ultrabrain": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"visual-engineering": { "visual-engineering": {
"model": "zai-coding-plan/glm-5", "model": "zai-coding-plan/glm-5",
}, },
"writing": { "writing": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
} }
@ -949,51 +949,51 @@ exports[`generateModelConfig fallback providers uses ZAI model for librarian wit
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"explore": { "explore": {
"model": "opencode/gpt-5-nano", "model": "opencode/gpt-5-nano",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"momus": { "momus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "zai-coding-plan/glm-4.6v", "model": "zai-coding-plan/glm-4.6v",
}, },
"oracle": { "oracle": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"prometheus": { "prometheus": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"sisyphus": { "sisyphus": {
"model": "zai-coding-plan/glm-5", "model": "zai-coding-plan/glm-4.7",
}, },
}, },
"categories": { "categories": {
"quick": { "quick": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"ultrabrain": { "ultrabrain": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-high": { "unspecified-high": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"unspecified-low": { "unspecified-low": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
"visual-engineering": { "visual-engineering": {
"model": "zai-coding-plan/glm-5", "model": "zai-coding-plan/glm-5",
}, },
"writing": { "writing": {
"model": "opencode/big-pickle", "model": "opencode/glm-4.7-free",
}, },
}, },
} }
@ -1014,7 +1014,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "opencode/glm-4.7-free",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -1025,7 +1025,7 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "opencode/gemini-3-flash",
}, },
"oracle": { "oracle": {
"model": "opencode/gpt-5.2", "model": "opencode/gpt-5.2",
@ -1057,10 +1057,10 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + OpenCode Zen
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "opencode/gemini-3-pro", "model": "opencode/gemini-3-pro",
@ -1078,7 +1078,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"explore": { "explore": {
"model": "github-copilot/gpt-5-mini", "model": "github-copilot/gpt-5-mini",
@ -1088,7 +1088,7 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "github-copilot/claude-sonnet-4.5",
}, },
"metis": { "metis": {
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
@ -1131,10 +1131,10 @@ exports[`generateModelConfig mixed provider scenarios uses OpenAI + Copilot comb
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "github-copilot/gemini-3-pro-preview", "model": "github-copilot/gemini-3-pro-preview",
@ -1152,13 +1152,13 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -1193,16 +1193,16 @@ exports[`generateModelConfig mixed provider scenarios uses Claude + ZAI combinat
"variant": "max", "variant": "max",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "zai-coding-plan/glm-5", "model": "zai-coding-plan/glm-5",
}, },
"writing": { "writing": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
}, },
} }
@ -1213,13 +1213,13 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json", "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": { "agents": {
"atlas": { "atlas": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"explore": { "explore": {
"model": "anthropic/claude-haiku-4-5", "model": "anthropic/claude-haiku-4-5",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "anthropic/claude-sonnet-4-5",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -1258,10 +1258,10 @@ exports[`generateModelConfig mixed provider scenarios uses Gemini + Claude combi
"variant": "high", "variant": "high",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -1289,7 +1289,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "github-copilot/claude-opus-4.6", "model": "github-copilot/claude-opus-4.6",
@ -1300,7 +1300,7 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "github-copilot/gemini-3-flash-preview",
}, },
"oracle": { "oracle": {
"model": "github-copilot/gpt-5.2", "model": "github-copilot/gpt-5.2",
@ -1332,10 +1332,10 @@ exports[`generateModelConfig mixed provider scenarios uses all fallback provider
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "github-copilot/claude-sonnet-4.6", "model": "github-copilot/claude-sonnet-4.5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "github-copilot/gemini-3-pro-preview", "model": "github-copilot/gemini-3-pro-preview",
@ -1363,7 +1363,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -1374,7 +1374,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "google/gemini-3-flash-preview",
}, },
"oracle": { "oracle": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
@ -1406,10 +1406,10 @@ exports[`generateModelConfig mixed provider scenarios uses all providers togethe
"variant": "xhigh", "variant": "xhigh",
}, },
"unspecified-high": { "unspecified-high": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",
@ -1437,7 +1437,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "medium", "variant": "medium",
}, },
"librarian": { "librarian": {
"model": "opencode/minimax-m2.5-free", "model": "zai-coding-plan/glm-4.7",
}, },
"metis": { "metis": {
"model": "anthropic/claude-opus-4-6", "model": "anthropic/claude-opus-4-6",
@ -1448,7 +1448,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "medium", "variant": "medium",
}, },
"multimodal-looker": { "multimodal-looker": {
"model": "opencode/kimi-k2.5-free", "model": "google/gemini-3-flash-preview",
}, },
"oracle": { "oracle": {
"model": "openai/gpt-5.2", "model": "openai/gpt-5.2",
@ -1484,7 +1484,7 @@ exports[`generateModelConfig mixed provider scenarios uses all providers with is
"variant": "max", "variant": "max",
}, },
"unspecified-low": { "unspecified-low": {
"model": "anthropic/claude-sonnet-4-6", "model": "anthropic/claude-sonnet-4-5",
}, },
"visual-engineering": { "visual-engineering": {
"model": "google/gemini-3-pro-preview", "model": "google/gemini-3-pro-preview",

View File

@ -120,6 +120,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
fb("quotio", "claude-opus-4-6-thinking"), fb("quotio", "claude-opus-4-6-thinking"),
fb("quotio", "claude-sonnet-4-5-thinking"), fb("quotio", "claude-sonnet-4-5-thinking"),
fb("quotio", "claude-haiku-4-5"), fb("quotio", "claude-haiku-4-5"),
fb("quotio", "gpt-5-nano"),
], ],
}, },
prometheus: { prometheus: {