
































@@ -51,40 +51,48 @@ describe("extractToolPayload", () => {
51515252describe("parseStandalonePlainTextToolCallBlocks", () => {
5353it("parses bracketed local-model tool blocks", () => {
54-const blocks = parseStandalonePlainTextToolCallBlocks(
55-["[read]", '{"path":"/tmp/file.txt","line_start":1}', "[END_TOOL_REQUEST]"].join("\n"),
54+const raw = ["[read]", '{"path":"/tmp/file.txt","line_start":1}', "[END_TOOL_REQUEST]"].join(
55+"\n",
5656);
57+const blocks = parseStandalonePlainTextToolCallBlocks(raw);
575858-expect(blocks).toMatchObject([
59+expect(blocks).toEqual([
5960{
6061name: "read",
6162arguments: { path: "/tmp/file.txt", line_start: 1 },
63+start: 0,
64+end: raw.length,
65+ raw,
6266},
6367]);
6468});
65696670it("parses Harmony commentary tool calls", () => {
67-const blocks = parseStandalonePlainTextToolCallBlocks(
68-'commentary to=read code {"path":"/path/to/file","line_start":1,"line_end":400}',
69-);
71+const raw = 'commentary to=read code {"path":"/path/to/file","line_start":1,"line_end":400}';
72+const blocks = parseStandalonePlainTextToolCallBlocks(raw);
707371-expect(blocks).toMatchObject([
74+expect(blocks).toEqual([
7275{
7376name: "read",
7477arguments: { path: "/path/to/file", line_start: 1, line_end: 400 },
78+start: 0,
79+end: raw.length,
80+ raw,
7581},
7682]);
7783});
78847985it("parses Harmony marker-wrapped tool calls", () => {
80-const blocks = parseStandalonePlainTextToolCallBlocks(
81-'<|channel|>commentary to=read code<|message|>{"path":"/tmp/file.txt"}<|call|>',
82-);
86+const raw = '<|channel|>commentary to=read code<|message|>{"path":"/tmp/file.txt"}<|call|>';
87+const blocks = parseStandalonePlainTextToolCallBlocks(raw);
838884-expect(blocks).toMatchObject([
89+expect(blocks).toEqual([
8590{
8691name: "read",
8792arguments: { path: "/tmp/file.txt" },
93+start: 0,
94+end: raw.length,
95+ raw,
8896},
8997]);
9098});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。