From c6595bee3ecac86951d234eacf7d2f50ce987566 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Wed, 17 Dec 2025 18:27:24 +0900 Subject: [PATCH] Add OmO agent model fallback chain to inherit OpenCode system default (#79) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add systemDefaultModel parameter to createBuiltinAgents() function - Implement model fallback priority chain for OmO agent: 1. oh-my-opencode.json agents.OmO.model (explicit override) 2. OpenCode system config.model (system default) 3. Hardcoded default in omoAgent (fallback) - Pass config.model from OpenCode settings to createBuiltinAgents() This fixes issue #79 where users couldn't change agent models via OpenCode config. 🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode) --- src/agents/utils.ts | 15 ++++++++++++++- src/index.ts | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/agents/utils.ts b/src/agents/utils.ts index d33a276..07fca91 100644 --- a/src/agents/utils.ts +++ b/src/agents/utils.ts @@ -62,7 +62,8 @@ function mergeAgentConfig( export function createBuiltinAgents( disabledAgents: BuiltinAgentName[] = [], agentOverrides: AgentOverrides = {}, - directory?: string + directory?: string, + systemDefaultModel?: string ): Record { const result: Record = {} @@ -84,6 +85,18 @@ export function createBuiltinAgents( } const override = agentOverrides[agentName] + + // Apply model fallback chain for OmO agent: + // 1. oh-my-opencode.json agents.OmO.model (highest priority) + // 2. OpenCode system config.model (middle priority) + // 3. Hardcoded default in omoAgent (lowest priority / fallback) + if (agentName === "OmO" && systemDefaultModel && !override?.model) { + finalConfig = { + ...finalConfig, + model: systemDefaultModel, + } + } + if (override) { result[name] = mergeAgentConfig(finalConfig, override) } else { diff --git a/src/index.ts b/src/index.ts index dc4a877..86ecc47 100644 --- a/src/index.ts +++ b/src/index.ts @@ -294,6 +294,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { pluginConfig.disabled_agents, pluginConfig.agents, ctx.directory, + config.model, ); const userAgents = (pluginConfig.claude_code?.agents ?? true) ? loadUserAgents() : {};