fix(coding-agent): preserve run prompt during tool refresh

closes #6162
This commit is contained in:
Mario Zechner
2026-06-30 14:08:48 +02:00
parent e547bb9f41
commit fd6659dd5d
7 changed files with 217 additions and 77 deletions
+41
View File
@@ -630,6 +630,47 @@ describe("Agent", () => {
expect(responseCount).toBe(2);
});
it("keeps legacy prepareNextTurn signal callback behavior", async () => {
const schema = Type.Object({});
const tool: AgentTool<typeof schema> = {
name: "noop",
label: "Noop",
description: "Noop tool",
parameters: schema,
execute: async () => ({ content: [{ type: "text", text: "ok" }], details: {} }),
};
let requestCount = 0;
let sawAbortSignal = false;
const agent = new Agent({
initialState: { tools: [tool] },
prepareNextTurn: async (signal) => {
sawAbortSignal = signal instanceof AbortSignal;
return undefined;
},
streamFn: () => {
requestCount++;
const stream = new MockAssistantStream();
queueMicrotask(() => {
if (requestCount === 1) {
const message = createAssistantToolUseMessage([
{ type: "toolCall", id: "tool-1", name: "noop", arguments: {} },
]);
stream.push({ type: "done", reason: "toolUse", message });
return;
}
const message = createAssistantMessage("done");
stream.push({ type: "done", reason: "stop", message });
});
return stream;
},
});
await agent.prompt("start");
expect(requestCount).toBe(2);
expect(sawAbortSignal).toBe(true);
});
it("forwards sessionId to streamFn options", async () => {
let receivedSessionId: string | undefined;
const agent = new Agent({