diff --git a/src/plugin-handlers/agent-config-handler.ts b/src/plugin-handlers/agent-config-handler.ts index 08230f55a3..4eebc9916f 100644 --- a/src/plugin-handlers/agent-config-handler.ts +++ b/src/plugin-handlers/agent-config-handler.ts @@ -78,6 +78,31 @@ export async function applyAgentConfig(params: { const useTaskSystem = params.pluginConfig.experimental?.task_system ?? false; const disableOmoEnv = params.pluginConfig.experimental?.disable_omo_env ?? false; + const includeClaudeAgents = params.pluginConfig.claude_code?.agents ?? true; + const userAgents = includeClaudeAgents ? loadUserAgents() : {}; + const projectAgents = includeClaudeAgents ? loadProjectAgents(params.ctx.directory) : {}; + + const rawPluginAgents = params.pluginComponents.agents; + const pluginAgents = Object.fromEntries( + Object.entries(rawPluginAgents).map(([key, value]) => [ + key, + value ? migrateAgentConfig(value as Record) : value, + ]), + ); + + const configAgent = params.config.agent as AgentConfigRecord | undefined; + const allAgentsForSummary = { + ...configAgent, + ...userAgents, + ...projectAgents, + ...pluginAgents, + }; + const customAgentSummaries = Object.entries(allAgentsForSummary) + .filter(([, config]) => config != null) + .map(([name, config]) => ({ + name, + description: (config as { description?: string }).description ?? "", + })); const builtinAgents = await createBuiltinAgents( migratedDisabledAgents, params.pluginConfig.agents, @@ -86,7 +111,7 @@ export async function applyAgentConfig(params: { params.pluginConfig.categories, params.pluginConfig.git_master, allDiscoveredSkills, - params.ctx.client, + customAgentSummaries, browserProvider, currentModel, disabledSkills, @@ -94,18 +119,6 @@ export async function applyAgentConfig(params: { disableOmoEnv, ); - const includeClaudeAgents = params.pluginConfig.claude_code?.agents ?? true; - const userAgents = includeClaudeAgents ? loadUserAgents() : {}; - const projectAgents = includeClaudeAgents ? loadProjectAgents(params.ctx.directory) : {}; - - const rawPluginAgents = params.pluginComponents.agents; - const pluginAgents = Object.fromEntries( - Object.entries(rawPluginAgents).map(([key, value]) => [ - key, - value ? migrateAgentConfig(value as Record) : value, - ]), - ); - const disabledAgentNames = new Set( (migratedDisabledAgents ?? []).map(a => a.toLowerCase()) ); @@ -123,8 +136,6 @@ export async function applyAgentConfig(params: { const shouldDemotePlan = plannerEnabled && replacePlan; const configuredDefaultAgent = getConfiguredDefaultAgent(params.config); - const configAgent = params.config.agent as AgentConfigRecord | undefined; - if (isSisyphusEnabled && builtinAgents.sisyphus) { if (configuredDefaultAgent) { (params.config as { default_agent?: string }).default_agent =