chore(vendor): import pi 1.3.0
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: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
1 parent
719370c8f7
commit
6081e3e325
1743 files changed
+205459
-131704
No files matched your search
+26
@@ -103,4 +103,30 @@ describe("openai responses partialJson cleanup", () => {
|
||||
expect(toolCallEnd.toolCall).toBe(persistedToolCall);
|
||||
expect("partialJson" in toolCallEnd.toolCall).toBe(false);
|
||||
});
|
||||
|
||||
// #10897
|
||||
it("marks malformed final arguments instead of keeping the parsed prefix", async () => {
|
||||
const model: Model<"openai-responses"> = {
|
||||
id: "gpt-5-mini",
|
||||
name: "GPT-5 Mini",
|
||||
api: "openai-responses",
|
||||
provider: "openai",
|
||||
baseUrl: "https://api.openai.com/v1",
|
||||
reasoning: true,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 400000,
|
||||
maxTokens: 128000,
|
||||
};
|
||||
const output = createOutput(model);
|
||||
const stream = new AssistantMessageEventStream();
|
||||
const argumentsJson = '{"path":"README.md","content":"updated","mode":.5}';
|
||||
|
||||
await processResponsesStream(createFunctionCallEvents(argumentsJson), output, stream, model);
|
||||
|
||||
const toolCall = output.content[0];
|
||||
if (!toolCall || toolCall.type !== "toolCall") throw new Error("Expected toolCall block");
|
||||
expect(toolCall.arguments).toEqual({});
|
||||
expect(toolCall.argumentsError?.endsWith(`Received arguments:\n${argumentsJson}`)).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user