refactor(artifacts): reconcile workspace artifacts at completion
This commit is contained in:
1 parent
2ddc67cc3d
commit
fd86fc6668
17 files changed
+114
-436
No files matched your search
@@ -9,7 +9,7 @@ function createRpc(response: { ok: true; result: unknown } | { ok: false; error:
|
||||
}
|
||||
|
||||
describe("agent hook RPC policy", () => {
|
||||
it("fails afterToolCall when main cannot acknowledge artifact projection", async () => {
|
||||
it("fails beforeToolCall closed when main cannot answer approval policy", async () => {
|
||||
const rpc = createRpc({ ok: false, error: "RuntimeBridge unavailable" });
|
||||
const hooks = buildAgentHooks({
|
||||
runId: "11111111-1111-4111-8111-111111111111",
|
||||
@@ -17,12 +17,21 @@ describe("agent hook RPC policy", () => {
|
||||
});
|
||||
|
||||
await expect(
|
||||
hooks.afterToolCall({
|
||||
toolCall: { name: "write", id: "tool-call-1" },
|
||||
hooks.beforeToolCall({
|
||||
toolCall: { name: "bash", id: "tool-call-1" },
|
||||
args: { path: "report.md" },
|
||||
result: { content: [], details: null },
|
||||
isError: false,
|
||||
} as unknown as Parameters<typeof hooks.afterToolCall>[0]),
|
||||
).rejects.toThrow("afterToolCall RPC failed: RuntimeBridge unavailable");
|
||||
} as unknown as Parameters<typeof hooks.beforeToolCall>[0]),
|
||||
).rejects.toThrow("beforeToolCall RPC failed: RuntimeBridge unavailable");
|
||||
});
|
||||
|
||||
it("installs no per-tool artifact projection hook", () => {
|
||||
const rpc = createRpc({ ok: true, result: { block: false, reason: null } });
|
||||
const hooks = buildAgentHooks({
|
||||
runId: "11111111-1111-4111-8111-111111111111",
|
||||
rpc,
|
||||
});
|
||||
|
||||
expect(Object.keys(hooks).sort()).toEqual(["beforeToolCall", "transformContext"]);
|
||||
expect("afterToolCall" in hooks).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user