diff --git a/packages/app/src/utils/tool-call-parsers.ts b/packages/app/src/utils/tool-call-parsers.ts index 87f534b6d..f2bb24339 100644 --- a/packages/app/src/utils/tool-call-parsers.ts +++ b/packages/app/src/utils/tool-call-parsers.ts @@ -1,3 +1,4 @@ +import stripAnsi from "strip-ansi"; import { z } from "zod"; import { getNowMs, isPerfLoggingEnabled, perfLog } from "./perf"; @@ -973,7 +974,7 @@ const ShellToolCallSchema = z return { type: "shell" as const, command, - output: resultParsed.data.output, + output: stripAnsi(resultParsed.data.output), }; } @@ -983,7 +984,7 @@ const ShellToolCallSchema = z return { type: "shell" as const, command, - output: errorParsed.data.content, + output: stripAnsi(errorParsed.data.content), }; } diff --git a/packages/server/src/utils/tool-call-parsers.ts b/packages/server/src/utils/tool-call-parsers.ts index b6a66ec29..14111d785 100644 --- a/packages/server/src/utils/tool-call-parsers.ts +++ b/packages/server/src/utils/tool-call-parsers.ts @@ -1,4 +1,3 @@ -import stripAnsi from "strip-ansi"; import { z } from "zod"; // ---- Principal Parameter Extraction ---- @@ -19,9 +18,9 @@ const PrincipalParamSchema = z.union([ z.object({ filePath: z.string() }).transform((d) => ({ type: "path" as const, value: d.filePath })), z.object({ path: z.string() }).transform((d) => ({ type: "path" as const, value: d.path })), // Command as string - z.object({ command: z.string() }).transform((d) => ({ type: "command" as const, value: stripAnsi(d.command) })), + z.object({ command: z.string() }).transform((d) => ({ type: "command" as const, value: d.command })), // Command as array (Codex sends this) - z.object({ command: z.array(z.string()).nonempty() }).transform((d) => ({ type: "command" as const, value: stripAnsi(d.command.join(" ")) })), + z.object({ command: z.array(z.string()).nonempty() }).transform((d) => ({ type: "command" as const, value: d.command.join(" ") })), // Other text params z.object({ title: z.string() }).transform((d) => ({ type: "text" as const, value: d.title })), z.object({ name: z.string() }).transform((d) => ({ type: "text" as const, value: d.name })),