refactor(hooks): replace direct output.args mutation with replaceToolArgs (question/webfetch/null-byte)
Replace Object.assign(output.args, truncatedArgs), output.args.url = resolution.url, and output.args.command = ... .replace(/\x00/g, "") with replaceToolArgs() calls in question-label-truncator, webfetch-redirect-guard, and plugin/tool-execute-before. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -3,7 +3,7 @@ import { randomUUID } from "node:crypto"
|
||||
|
||||
import { getMainSessionID } from "../features/claude-code-session-state"
|
||||
import { clearBoulderState } from "../features/boulder-state"
|
||||
import { log } from "../shared"
|
||||
import { log, replaceToolArgs } from "../shared"
|
||||
import { stripInvisibleAgentCharacters } from "../shared/agent-display-names"
|
||||
import { resolveSessionAgent } from "./session-agent-resolver"
|
||||
import { parseRalphLoopArguments } from "../hooks/ralph-loop/command-arguments"
|
||||
@@ -54,7 +54,7 @@ export function createToolExecuteBeforeHandler(args: {
|
||||
return async (input, output): Promise<void> => {
|
||||
if (input.tool.toLowerCase() === "bash" && typeof output.args.command === "string") {
|
||||
if (output.args.command.includes("\x00")) {
|
||||
output.args.command = output.args.command.replace(/\x00/g, "")
|
||||
replaceToolArgs(output, { command: output.args.command.replace(/\x00/g, "") })
|
||||
log("[tool-execute-before] Stripped null bytes from bash command", {
|
||||
sessionID: input.sessionID,
|
||||
callID: input.callID,
|
||||
|
||||
Reference in New Issue
Block a user