import { spawnSync } from "node:child_process";
const EXE = {exe};
const MARKER = {marker};
export const SlowPowersEvalGuard = async () => {
return {
"tool.execute.before": async (input, output) => {
const payload = JSON.stringify({
tool_name: input.tool,
tool_input: output?.args ?? {},
});
const result = spawnSync(EXE, ["guard-hook", "--harness", "opencode", MARKER], {
input: payload,
encoding: "utf8",
timeout: 10000,
stdio: ["pipe", "pipe", "ignore"],
});
const stdout = (result.stdout ?? "").trim();
if (!stdout) {
return; }
let reason = stdout;
try {
const verdict = JSON.parse(stdout);
if (typeof verdict?.reason === "string") {
reason = verdict.reason;
}
} catch {
}
throw new Error(reason);
},
};
};