fix: resolve category delegation and command routing with display name agent keys

Category-based delegation (task(category='quick')) was broken because
SISYPHUS_JUNIOR_AGENT sent 'sisyphus-junior' to session.prompt but
config.agent keys are now display names ('Sisyphus-Junior').

- Use getAgentDisplayName() for SISYPHUS_JUNIOR_AGENT constant
- Replace hardcoded 'sisyphus-junior' strings in tools.ts with constant
- Update background-output local constants to use display names
- Add remapCommandAgentFields() to translate command agent fields
- Add raw-key fallback in tool-config-handler agentByKey()
This commit is contained in:
YeonGyu-Kim
2026-02-16 21:32:33 +09:00
parent 0f5287e92e
commit 513e618bab
8 changed files with 30 additions and 10 deletions
+3 -2
View File
@@ -1,6 +1,7 @@
import { tool, type ToolDefinition } from "@opencode-ai/plugin"
import type { DelegateTaskArgs, ToolContextWithMetadata, DelegateTaskToolOptions } from "./types"
import { CATEGORY_DESCRIPTIONS } from "./constants"
import { SISYPHUS_JUNIOR_AGENT } from "./sisyphus-junior-agent"
import { mergeCategories } from "../../shared/merge-categories"
import { log } from "../../shared/logger"
import { buildSystemContent } from "./prompt-builder"
@@ -88,13 +89,13 @@ Prompts MUST be in English.`
const ctx = toolContext as ToolContextWithMetadata
if (args.category) {
if (args.subagent_type && args.subagent_type !== "sisyphus-junior") {
if (args.subagent_type && args.subagent_type !== SISYPHUS_JUNIOR_AGENT) {
log("[task] category provided - overriding subagent_type to sisyphus-junior", {
category: args.category,
subagent_type: args.subagent_type,
})
}
args.subagent_type = "sisyphus-junior"
args.subagent_type = SISYPHUS_JUNIOR_AGENT
}
await ctx.metadata?.({
title: args.description,