






















@@ -220,8 +220,12 @@ describe("installToolResultContextGuard", () => {
220220221221expectPiStyleTruncation(newResultText);
222222expect(result.details).toBeUndefined();
223-expect((contextForNextCall[0] as { details?: unknown }).details).toMatchObject({
224-truncation: { truncated: true },
223+const originalDetails = (contextForNextCall[0] as { details?: { truncation?: unknown } })
224+.details;
225+expect(originalDetails?.truncation).toEqual({
226+truncated: true,
227+outputLines: 100,
228+content: "d".repeat(8_000),
225229});
226230});
227231@@ -290,22 +294,23 @@ describe("installToolResultContextGuard", () => {
290294makeToolResult("call_big", "x".repeat(80_000)),
291295];
292296293-await expect(
294-applyMidTurnPrecheckGuardToContext(agent, contextForNextCall, {
297+try {
298+await applyMidTurnPrecheckGuardToContext(agent, contextForNextCall, {
295299contextWindowTokens: 200_000,
296300contextTokenBudget: 20_000,
297301reserveTokens: 12_000,
298302toolResultMaxChars: 16_000,
299303prePromptMessageCount: 1,
300-}),
301-).rejects.toMatchObject({
302-name: "MidTurnPrecheckSignal",
303-request: expect.objectContaining({
304-route: "compact_then_truncate",
305-overflowTokens: expect.any(Number),
306-toolResultReducibleChars: expect.any(Number),
307-}),
308-});
304+});
305+throw new Error("expected mid-turn precheck signal");
306+} catch (err) {
307+expect(err).toBeInstanceOf(MidTurnPrecheckSignal);
308+const signal = err as MidTurnPrecheckSignal;
309+expect(signal.name).toBe("MidTurnPrecheckSignal");
310+expect(signal.request.route).toBe("compact_then_truncate");
311+expect(typeof signal.request.overflowTokens).toBe("number");
312+expect(typeof signal.request.toolResultReducibleChars).toBe("number");
313+}
309314});
310315311316it("does not run mid-turn precheck when no new tool result was appended", async () => {
@@ -481,10 +486,9 @@ describe("installContextEngineLoopHook", () => {
481486await callTransform(agent, messages);
482487483488expect(engine.afterTurn).toHaveBeenCalledTimes(1);
484-expect(engine.afterTurn.mock.calls[0]?.[0]).toMatchObject({
485-prePromptMessageCount: 1,
486- messages,
487-});
489+const afterTurnParams = engine.afterTurn.mock.calls[0]?.[0];
490+expect(afterTurnParams?.prePromptMessageCount).toBe(1);
491+expect(afterTurnParams?.messages).toBe(messages);
488492expect(engine.assemble).toHaveBeenCalledTimes(1);
489493});
490494@@ -504,15 +508,14 @@ describe("installContextEngineLoopHook", () => {
504508await callTransform(agent, messages);
505509506510expect(engine.afterTurn).toHaveBeenCalledTimes(1);
507-expect(engine.afterTurn.mock.calls[0]?.[0]).toMatchObject({
508-prePromptMessageCount: 1,
509-runtimeContext: {
510-provider: "anthropic",
511- modelId,
512-promptCache: {
513-retention: "short",
514-lastCacheTouchAt: 123,
515-},
511+const afterTurnParams = engine.afterTurn.mock.calls[0]?.[0];
512+expect(afterTurnParams?.prePromptMessageCount).toBe(1);
513+expect(afterTurnParams?.runtimeContext).toEqual({
514+provider: "anthropic",
515+ modelId,
516+promptCache: {
517+retention: "short",
518+lastCacheTouchAt: 123,
516519},
517520});
518521});
@@ -548,10 +551,9 @@ describe("installContextEngineLoopHook", () => {
548551await callTransform(agent, withNew);
549552550553expect(engine.afterTurn).toHaveBeenCalledTimes(1);
551-expect(engine.afterTurn.mock.calls[0]?.[0]).toMatchObject({
552-prePromptMessageCount: 2,
553-messages: withNew,
554-});
554+const afterTurnParams = engine.afterTurn.mock.calls[0]?.[0];
555+expect(afterTurnParams?.prePromptMessageCount).toBe(2);
556+expect(afterTurnParams?.messages).toBe(withNew);
555557expect(engine.assemble).toHaveBeenCalledTimes(1);
556558});
557559@@ -774,11 +776,10 @@ describe("installContextEngineLoopHook", () => {
774776await callTransform(agent, messages);
775777776778expect(engine.ingest).toHaveBeenCalledTimes(1);
777-expect(engine.ingest.mock.calls[0]?.[0]).toMatchObject({
778- sessionId,
779- sessionKey,
780-message: toolResult,
781-});
779+const ingestParams = engine.ingest.mock.calls[0]?.[0];
780+expect(ingestParams?.sessionId).toBe(sessionId);
781+expect(ingestParams?.sessionKey).toBe(sessionKey);
782+expect(ingestParams?.message).toBe(toolResult);
782783expect(engine.assemble).toHaveBeenCalledTimes(1);
783784});
784785此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。