- Rename delegate_task tool to task across codebase (100 files) - Update model references: claude-opus-4-6 → 4-5, gpt-5.3-codex → 5.2-codex - Add tool-metadata-store to restore metadata overwritten by fromPlugin() - Add session ID polling for BackgroundManager task sessions - Await async ctx.metadata() calls in tool executors - Add ses_ prefix guard to getMessageDir for performance - Harden BackgroundManager with idle deferral and error handling - Fix duplicate task key in sisyphus-junior test object literals - Fix unawaited showOutputToUser in ast_grep_replace - Fix background=true → run_in_background=true in ultrawork prompt - Fix duplicate task/task references in docs and comments
28 lines
874 B
TypeScript
28 lines
874 B
TypeScript
import type { PluginInput } from "@opencode-ai/plugin"
|
|
|
|
const EMPTY_RESPONSE_WARNING = `[Task Empty Response Warning]
|
|
|
|
Task invocation completed but returned no response. This indicates the agent either:
|
|
- Failed to execute properly
|
|
- Did not terminate correctly
|
|
- Returned an empty result
|
|
|
|
Note: The call has already completed - you are NOT waiting for a response. Proceed accordingly.`
|
|
|
|
export function createEmptyTaskResponseDetectorHook(_ctx: PluginInput) {
|
|
return {
|
|
"tool.execute.after": async (
|
|
input: { tool: string; sessionID: string; callID: string },
|
|
output: { title: string; output: string; metadata: unknown }
|
|
) => {
|
|
if (input.tool !== "Task" && input.tool !== "task") return
|
|
|
|
const responseText = output.output?.trim() ?? ""
|
|
|
|
if (responseText === "") {
|
|
output.output = EMPTY_RESPONSE_WARNING
|
|
}
|
|
},
|
|
}
|
|
}
|