

























@@ -23,15 +23,23 @@ function expectPrunedImageMessage(
2323messages: AgentMessage[],
2424errorMessage: string,
2525): Array<{ type: string; text?: string; data?: string }> {
26-const pruned = pruneProcessedHistoryImages(messages);
27-expect(pruned).not.toBeNull();
28-expect(pruned).not.toBe(messages);
29-const content = expectArrayMessageContent(pruned?.[0], errorMessage);
26+const pruned = expectPrunedMessages(messages);
27+const content = expectArrayMessageContent(pruned[0], errorMessage);
3028expect(content).toHaveLength(2);
3129expect(content[1]).toMatchObject({ type: "text", text: PRUNED_HISTORY_IMAGE_MARKER });
3230return content;
3331}
343233+function expectPrunedMessages(messages: AgentMessage[]): AgentMessage[] {
34+const pruned = pruneProcessedHistoryImages(messages);
35+expect(pruned).toEqual(expect.any(Array));
36+if (!pruned) {
37+throw new Error("expected pruned history messages");
38+}
39+expect(pruned).not.toBe(messages);
40+return pruned;
41+}
42+3543function expectImageMessagePreserved(messages: AgentMessage[], errorMessage: string) {
3644const pruned = pruneProcessedHistoryImages(messages);
3745@@ -98,10 +106,9 @@ describe("pruneProcessedHistoryImages", () => {
98106 ...oldEnoughTail(),
99107];
100108101-const pruned = pruneProcessedHistoryImages(messages);
109+const pruned = expectPrunedMessages(messages);
102110103-expect(pruned).not.toBeNull();
104-const content = expectArrayMessageContent(pruned?.[0], "expected user array content");
111+const content = expectArrayMessageContent(pruned[0], "expected user array content");
105112expect(content[0]?.text).toBe(
106113[
107114"old image",
@@ -128,10 +135,9 @@ describe("pruneProcessedHistoryImages", () => {
128135 ...oldEnoughTail(),
129136];
130137131-const pruned = pruneProcessedHistoryImages(messages);
138+const pruned = expectPrunedMessages(messages);
132139133-expect(pruned).not.toBeNull();
134-const firstUser = pruned?.[0] as Extract<AgentMessage, { role: "user" }> | undefined;
140+const firstUser = pruned[0] as Extract<AgentMessage, { role: "user" }> | undefined;
135141expect(firstUser?.content).toBe(`please remember ${PRUNED_HISTORY_MEDIA_REFERENCE_MARKER}`);
136142const originalUser = messages[0] as Extract<AgentMessage, { role: "user" }> | undefined;
137143expect(originalUser?.content).toBe(
@@ -149,10 +155,9 @@ describe("pruneProcessedHistoryImages", () => {
149155 ...oldEnoughTail(),
150156];
151157152-const pruned = pruneProcessedHistoryImages(messages);
158+const pruned = expectPrunedMessages(messages);
153159154-expect(pruned).not.toBeNull();
155-const toolResult = pruned?.[0] as Extract<AgentMessage, { role: "toolResult" }> | undefined;
160+const toolResult = pruned[0] as Extract<AgentMessage, { role: "toolResult" }> | undefined;
156161expect(toolResult?.content).toBe(`previous ${PRUNED_HISTORY_MEDIA_REFERENCE_MARKER} result`);
157162const originalToolResult = messages[0] as
158163| Extract<AgentMessage, { role: "toolResult" }>
@@ -284,13 +289,12 @@ describe("pruneProcessedHistoryImages", () => {
284289assistantTurn(),
285290];
286291287-const pruned = pruneProcessedHistoryImages(messages);
288-expect(pruned).not.toBeNull();
292+const pruned = expectPrunedMessages(messages);
289293290-const oldContent = expectArrayMessageContent(pruned?.[0], "expected old user content");
294+const oldContent = expectArrayMessageContent(pruned[0], "expected old user content");
291295expect(oldContent[1]).toMatchObject({ type: "text", text: PRUNED_HISTORY_IMAGE_MARKER });
292296293-const recentContent = expectArrayMessageContent(pruned?.[6], "expected recent user content");
297+const recentContent = expectArrayMessageContent(pruned[6], "expected recent user content");
294298expect(recentContent[1]).toMatchObject({ type: "image", data: "abc" });
295299296300const originalOldContent = expectArrayMessageContent(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。