diff --git a/src/hooks/claude-code-hooks/index.ts b/src/hooks/claude-code-hooks/index.ts index d3761130..099505f5 100644 --- a/src/hooks/claude-code-hooks/index.ts +++ b/src/hooks/claude-code-hooks/index.ts @@ -239,7 +239,7 @@ export function createClaudeCodeHooksHook(ctx: PluginInput, config: PluginConfig const cachedInput = getToolInput(input.sessionID, input.tool, input.callID) || {} // Use metadata if available and non-empty, otherwise wrap output.output in a structured object - // This ensures plugin tools (call_omo_agent, task) that return strings + // This ensures plugin tools (call_omo_agent, sisyphus_task, task) that return strings // get their results properly recorded in transcripts instead of empty {} const metadata = output.metadata as Record | undefined const hasMetadata = metadata && typeof metadata === "object" && Object.keys(metadata).length > 0 diff --git a/src/tools/call-omo-agent/constants.ts b/src/tools/call-omo-agent/constants.ts index ac67a706..8570669f 100644 --- a/src/tools/call-omo-agent/constants.ts +++ b/src/tools/call-omo-agent/constants.ts @@ -4,4 +4,4 @@ export const CALL_OMO_AGENT_DESCRIPTION = `Spawn explore/librarian agent. run_in Available: {agents} -Prompts MUST be in English. Use \`background_output\` for async results.` +Pass \`resume=task_id\` to continue previous agent with full context. Prompts MUST be in English. Use \`background_output\` for async results.` diff --git a/src/tools/call-omo-agent/tools.ts b/src/tools/call-omo-agent/tools.ts index a72c59fa..d1ff9a71 100644 --- a/src/tools/call-omo-agent/tools.ts +++ b/src/tools/call-omo-agent/tools.ts @@ -142,6 +142,7 @@ async function executeSync( tools: { task: false, call_omo_agent: false, + sisyphus_task: false, }, parts: [{ type: "text", text: args.prompt }], }, diff --git a/src/tools/index.ts b/src/tools/index.ts index 5e399202..b02117b2 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,5 +1,3 @@ -import type { ToolDefinition } from "@opencode-ai/plugin" - import { lsp_hover, lsp_goto_definition, @@ -37,8 +35,26 @@ export { createSkillTool } from "./skill" export { getTmuxPath } from "./interactive-bash/utils" export { createSkillMcpTool } from "./skill-mcp" +import { + createBackgroundOutput, + createBackgroundCancel, +} from "./background-task" + +import type { PluginInput, ToolDefinition } from "@opencode-ai/plugin" +import type { BackgroundManager } from "../features/background-agent" + +type OpencodeClient = PluginInput["client"] + export { createCallOmoAgent } from "./call-omo-agent" export { createLookAt } from "./look-at" +export { createSisyphusTask, type SisyphusTaskToolOptions, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS } from "./sisyphus-task" + +export function createBackgroundTools(manager: BackgroundManager, client: OpencodeClient): Record { + return { + background_output: createBackgroundOutput(manager, client), + background_cancel: createBackgroundCancel(manager, client), + } +} export const builtinTools: Record = { lsp_hover,