Q79: reasoning, encrypted reasoning and signatures survive tool turns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5d5bc802e9
commit
d96967cfb9
13 files changed
+211
-46
No files matched your search
@@ -84,15 +84,17 @@ describe("complete_goal with independent audit", () => {
|
||||
test("an approving auditor closes the goal; the auditor gets read-only workspace access", async () => {
|
||||
const h = createHarness();
|
||||
const seenTools: string[][] = [];
|
||||
const replay = { format: "anthropic" as const, content: [{ type: "thinking", thinking: "check", signature: "SIG" }] };
|
||||
let turns = 0;
|
||||
const auditor = async (input: AuditorInput): Promise<AuditorTurn> => {
|
||||
seenTools.push(input.tools.map((tool) => tool.name));
|
||||
turns += 1;
|
||||
if (turns === 1) {
|
||||
return turnOf("Inspecting.", [{ id: "c1", name: "read_file", arguments: { path: "src/index.ts" } }]);
|
||||
return { ...turnOf("Inspecting.", [{ id: "c1", name: "read_file", arguments: { path: "src/index.ts" } }]), replay };
|
||||
}
|
||||
const readResult = input.messages.at(-1);
|
||||
expect(readResult?.role).toBe("tool");
|
||||
expect(input.messages.at(-2)).toMatchObject({ role: "assistant", replay });
|
||||
return turnOf("The implementation exists and runs. <approved/>");
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user