diff --git a/src/hooks/non-interactive-env/non-interactive-env-hook.ts b/src/hooks/non-interactive-env/non-interactive-env-hook.ts index 6fc42aea9..42cb25122 100644 --- a/src/hooks/non-interactive-env/non-interactive-env-hook.ts +++ b/src/hooks/non-interactive-env/non-interactive-env-hook.ts @@ -1,6 +1,6 @@ import type { PluginInput } from "@opencode-ai/plugin" import { HOOK_NAME, NON_INTERACTIVE_ENV, SHELL_COMMAND_PATTERNS } from "./constants" -import { log, buildEnvPrefix } from "../../shared" +import { log, buildEnvPrefix, replaceToolArgs } from "../../shared" import { detectShellType, type ShellType } from "../../shared/shell-env" export * from "./constants" @@ -97,7 +97,7 @@ export function createNonInteractiveEnvHook(_ctx: PluginInput) { return } - output.args.command = `${envPrefix} ${command}` + replaceToolArgs(output, { command: `${envPrefix} ${command}` }) log(`[${HOOK_NAME}] Prepended non-interactive env vars to git command`, { sessionID: input.sessionID, diff --git a/src/hooks/prometheus-md-only/hook.ts b/src/hooks/prometheus-md-only/hook.ts index 96f5093bd..57ee04a3d 100644 --- a/src/hooks/prometheus-md-only/hook.ts +++ b/src/hooks/prometheus-md-only/hook.ts @@ -1,6 +1,7 @@ import type { PluginInput } from "@opencode-ai/plugin" import { HOOK_NAME, BLOCKED_TOOLS, PLANNING_CONSULT_WARNING, PROMETHEUS_WORKFLOW_REMINDER } from "./constants" import { log } from "../../shared/logger" +import { replaceToolArgs } from "../../shared/replace-tool-args" import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive" import { getAgentDisplayName } from "../../shared/agent-display-names" import { getAgentFromSession } from "./agent-resolution" @@ -27,7 +28,7 @@ export function createPrometheusMdOnlyHook(ctx: PluginInput) { if (TASK_TOOLS.includes(toolName)) { const prompt = output.args.prompt as string | undefined if (prompt && !prompt.includes(SYSTEM_DIRECTIVE_PREFIX)) { - output.args.prompt = PLANNING_CONSULT_WARNING + prompt + replaceToolArgs(output, { prompt: PLANNING_CONSULT_WARNING + prompt }) log(`[${HOOK_NAME}] Injected planning warning to ${toolName}`, { sessionID: input.sessionID, tool: toolName, diff --git a/src/hooks/sisyphus-junior-notepad/hook.ts b/src/hooks/sisyphus-junior-notepad/hook.ts index 28a284e6f..5e9c00456 100644 --- a/src/hooks/sisyphus-junior-notepad/hook.ts +++ b/src/hooks/sisyphus-junior-notepad/hook.ts @@ -3,6 +3,7 @@ import type { PluginInput } from "@opencode-ai/plugin" import { isCallerOrchestrator } from "../../shared/session-utils" import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive" import { log } from "../../shared/logger" +import { replaceToolArgs } from "../../shared/replace-tool-args" import { HOOK_NAME, NOTEPAD_DIRECTIVE } from "./constants" export function createSisyphusJuniorNotepadHook(ctx: PluginInput) { @@ -33,7 +34,7 @@ export function createSisyphusJuniorNotepadHook(ctx: PluginInput) { } // 5. Prepend directive - output.args.prompt = NOTEPAD_DIRECTIVE + prompt + replaceToolArgs(output, { prompt: NOTEPAD_DIRECTIVE + prompt }) // 6. Log injection log(`[${HOOK_NAME}] Injected notepad directive to task`, {