refactor(hooks): replace direct output.args mutation with replaceToolArgs (env + prompt injectors)
Replace output.args.command and output.args.prompt direct assignments with replaceToolArgs() in non-interactive-env, prometheus-md-only, and sisyphus-junior-notepad hooks. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import type { PluginInput } from "@opencode-ai/plugin"
|
import type { PluginInput } from "@opencode-ai/plugin"
|
||||||
import { HOOK_NAME, NON_INTERACTIVE_ENV, SHELL_COMMAND_PATTERNS } from "./constants"
|
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"
|
import { detectShellType, type ShellType } from "../../shared/shell-env"
|
||||||
|
|
||||||
export * from "./constants"
|
export * from "./constants"
|
||||||
@@ -97,7 +97,7 @@ export function createNonInteractiveEnvHook(_ctx: PluginInput) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
output.args.command = `${envPrefix} ${command}`
|
replaceToolArgs(output, { command: `${envPrefix} ${command}` })
|
||||||
|
|
||||||
log(`[${HOOK_NAME}] Prepended non-interactive env vars to git command`, {
|
log(`[${HOOK_NAME}] Prepended non-interactive env vars to git command`, {
|
||||||
sessionID: input.sessionID,
|
sessionID: input.sessionID,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type { PluginInput } from "@opencode-ai/plugin"
|
import type { PluginInput } from "@opencode-ai/plugin"
|
||||||
import { HOOK_NAME, BLOCKED_TOOLS, PLANNING_CONSULT_WARNING, PROMETHEUS_WORKFLOW_REMINDER } from "./constants"
|
import { HOOK_NAME, BLOCKED_TOOLS, PLANNING_CONSULT_WARNING, PROMETHEUS_WORKFLOW_REMINDER } from "./constants"
|
||||||
import { log } from "../../shared/logger"
|
import { log } from "../../shared/logger"
|
||||||
|
import { replaceToolArgs } from "../../shared/replace-tool-args"
|
||||||
import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive"
|
import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive"
|
||||||
import { getAgentDisplayName } from "../../shared/agent-display-names"
|
import { getAgentDisplayName } from "../../shared/agent-display-names"
|
||||||
import { getAgentFromSession } from "./agent-resolution"
|
import { getAgentFromSession } from "./agent-resolution"
|
||||||
@@ -27,7 +28,7 @@ export function createPrometheusMdOnlyHook(ctx: PluginInput) {
|
|||||||
if (TASK_TOOLS.includes(toolName)) {
|
if (TASK_TOOLS.includes(toolName)) {
|
||||||
const prompt = output.args.prompt as string | undefined
|
const prompt = output.args.prompt as string | undefined
|
||||||
if (prompt && !prompt.includes(SYSTEM_DIRECTIVE_PREFIX)) {
|
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}`, {
|
log(`[${HOOK_NAME}] Injected planning warning to ${toolName}`, {
|
||||||
sessionID: input.sessionID,
|
sessionID: input.sessionID,
|
||||||
tool: toolName,
|
tool: toolName,
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import type { PluginInput } from "@opencode-ai/plugin"
|
|||||||
import { isCallerOrchestrator } from "../../shared/session-utils"
|
import { isCallerOrchestrator } from "../../shared/session-utils"
|
||||||
import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive"
|
import { SYSTEM_DIRECTIVE_PREFIX } from "../../shared/system-directive"
|
||||||
import { log } from "../../shared/logger"
|
import { log } from "../../shared/logger"
|
||||||
|
import { replaceToolArgs } from "../../shared/replace-tool-args"
|
||||||
import { HOOK_NAME, NOTEPAD_DIRECTIVE } from "./constants"
|
import { HOOK_NAME, NOTEPAD_DIRECTIVE } from "./constants"
|
||||||
|
|
||||||
export function createSisyphusJuniorNotepadHook(ctx: PluginInput) {
|
export function createSisyphusJuniorNotepadHook(ctx: PluginInput) {
|
||||||
@@ -33,7 +34,7 @@ export function createSisyphusJuniorNotepadHook(ctx: PluginInput) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 5. Prepend directive
|
// 5. Prepend directive
|
||||||
output.args.prompt = NOTEPAD_DIRECTIVE + prompt
|
replaceToolArgs(output, { prompt: NOTEPAD_DIRECTIVE + prompt })
|
||||||
|
|
||||||
// 6. Log injection
|
// 6. Log injection
|
||||||
log(`[${HOOK_NAME}] Injected notepad directive to task`, {
|
log(`[${HOOK_NAME}] Injected notepad directive to task`, {
|
||||||
|
|||||||
Reference in New Issue
Block a user