test(plugin): run tool output truncation before claude transcript hooks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
35
src/plugin/tool-execute-after.test.ts
Normal file
35
src/plugin/tool-execute-after.test.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { describe, expect, it } from "bun:test"
|
||||
import { createToolExecuteAfterHandler } from "./tool-execute-after"
|
||||
|
||||
describe("createToolExecuteAfterHandler", () => {
|
||||
it("#given truncator changes output #when tool.execute.after runs #then claudeCodeHooks receives truncated output", async () => {
|
||||
const callOrder: string[] = []
|
||||
let claudeSawOutput = ""
|
||||
|
||||
const handler = createToolExecuteAfterHandler({
|
||||
ctx: { directory: "/repo" } as never,
|
||||
hooks: {
|
||||
toolOutputTruncator: {
|
||||
"tool.execute.after": async (_input, output) => {
|
||||
callOrder.push("truncator")
|
||||
output.output = "truncated output"
|
||||
},
|
||||
},
|
||||
claudeCodeHooks: {
|
||||
"tool.execute.after": async (_input, output) => {
|
||||
callOrder.push("claude")
|
||||
claudeSawOutput = output.output
|
||||
},
|
||||
},
|
||||
} as never,
|
||||
})
|
||||
|
||||
await handler(
|
||||
{ tool: "hashline_edit", sessionID: "ses_test", callID: "call_test" },
|
||||
{ title: "result", output: "original output", metadata: {} }
|
||||
)
|
||||
|
||||
expect(callOrder).toEqual(["truncator", "claude"])
|
||||
expect(claudeSawOutput).toBe("truncated output")
|
||||
})
|
||||
})
|
||||
@@ -56,8 +56,8 @@ export function createToolExecuteAfterHandler(args: {
|
||||
}
|
||||
}
|
||||
|
||||
await hooks.claudeCodeHooks?.["tool.execute.after"]?.(input, output)
|
||||
await hooks.toolOutputTruncator?.["tool.execute.after"]?.(input, output)
|
||||
await hooks.claudeCodeHooks?.["tool.execute.after"]?.(input, output)
|
||||
await hooks.preemptiveCompaction?.["tool.execute.after"]?.(input, output)
|
||||
await hooks.contextWindowMonitor?.["tool.execute.after"]?.(input, output)
|
||||
await hooks.commentChecker?.["tool.execute.after"]?.(input, output)
|
||||
|
||||
Reference in New Issue
Block a user