chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
1 parent
5ebc7018c3
commit
4def357d09
1669 files changed
+397627
No files matched your search
Vendored
+43
@@ -0,0 +1,43 @@
|
||||
import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/pi-ai";
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { toJsonEvent } from "../../../src/modes/json-event.ts";
|
||||
import { createHarness, type Harness } from "../harness.ts";
|
||||
|
||||
describe("regression #7925: tool-call metadata is available when streaming starts", () => {
|
||||
let harness: Harness | undefined;
|
||||
|
||||
afterEach(() => {
|
||||
harness?.cleanup();
|
||||
});
|
||||
|
||||
it("includes the tool call id and name without cumulative snapshots", async () => {
|
||||
harness = await createHarness();
|
||||
harness.setResponses([
|
||||
fauxAssistantMessage(
|
||||
fauxToolCall("write", { path: "output.txt", content: "x".repeat(100) }, { id: "call_7925" }),
|
||||
{ stopReason: "toolUse" },
|
||||
),
|
||||
fauxAssistantMessage("done"),
|
||||
]);
|
||||
|
||||
await harness.session.prompt("write a file");
|
||||
|
||||
const update = harness
|
||||
.eventsOfType("message_update")
|
||||
.find((event) => event.assistantMessageEvent.type === "toolcall_start");
|
||||
if (!update || update.message.role !== "assistant") {
|
||||
throw new Error("Expected toolcall_start assistant update");
|
||||
}
|
||||
|
||||
expect(toJsonEvent(update)).toEqual({
|
||||
type: "message_update",
|
||||
usage: update.message.usage,
|
||||
assistantMessageEvent: {
|
||||
type: "toolcall_start",
|
||||
contentIndex: 0,
|
||||
id: "call_7925",
|
||||
toolName: "write",
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user