




























@@ -12,14 +12,14 @@ let truncateToolResultText: typeof import("./tool-result-truncation.js").truncat
1212let truncateToolResultMessage: typeof import("./tool-result-truncation.js").truncateToolResultMessage;
1313let calculateMaxToolResultChars: typeof import("./tool-result-truncation.js").calculateMaxToolResultChars;
1414let calculateMaxToolResultCharsWithCap: typeof import("./tool-result-truncation.js").calculateMaxToolResultCharsWithCap;
15+let resolveAutoLiveToolResultMaxChars: typeof import("./tool-result-truncation.js").resolveAutoLiveToolResultMaxChars;
1516let getToolResultTextLength: typeof import("./tool-result-truncation.js").getToolResultTextLength;
1617let truncateOversizedToolResultsInMessages: typeof import("./tool-result-truncation.js").truncateOversizedToolResultsInMessages;
1718let truncateOversizedToolResultsInSession: typeof import("./tool-result-truncation.js").truncateOversizedToolResultsInSession;
1819let isOversizedToolResult: typeof import("./tool-result-truncation.js").isOversizedToolResult;
1920let sessionLikelyHasOversizedToolResults: typeof import("./tool-result-truncation.js").sessionLikelyHasOversizedToolResults;
2021let estimateToolResultReductionPotential: typeof import("./tool-result-truncation.js").estimateToolResultReductionPotential;
2122let DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS: typeof import("./tool-result-truncation.js").DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS;
22-let HARD_MAX_TOOL_RESULT_CHARS: typeof import("./tool-result-truncation.js").HARD_MAX_TOOL_RESULT_CHARS;
2323let resolveLiveToolResultMaxChars: typeof import("./tool-result-truncation.js").resolveLiveToolResultMaxChars;
2424let tmpDir: string | undefined;
2525@@ -29,14 +29,14 @@ async function loadFreshToolResultTruncationModuleForTest() {
2929 truncateToolResultMessage,
3030 calculateMaxToolResultChars,
3131 calculateMaxToolResultCharsWithCap,
32+ resolveAutoLiveToolResultMaxChars,
3233 getToolResultTextLength,
3334 truncateOversizedToolResultsInMessages,
3435 truncateOversizedToolResultsInSession,
3536 isOversizedToolResult,
3637 sessionLikelyHasOversizedToolResults,
3738 estimateToolResultReductionPotential,
3839DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS,
39-HARD_MAX_TOOL_RESULT_CHARS,
4040 resolveLiveToolResultMaxChars,
4141} = await import("./tool-result-truncation.js"));
4242}
@@ -198,19 +198,23 @@ describe("calculateMaxToolResultChars", () => {
198198expect(large).toBeGreaterThan(small);
199199});
200200201-it("exports the live cap through both constant names", () => {
201+it("exports the low-context live cap constant", () => {
202202expect(DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS).toBe(16_000);
203-expect(HARD_MAX_TOOL_RESULT_CHARS).toBe(DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS);
204203});
205204206-it("caps at HARD_MAX_TOOL_RESULT_CHARS for very large windows", () => {
205+it("auto-scales above the low-context cap for very large windows", () => {
207206const result = calculateMaxToolResultChars(2_000_000); // 2M token window
208-expect(result).toBeLessThanOrEqual(HARD_MAX_TOOL_RESULT_CHARS);
207+expect(result).toBeGreaterThan(DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS);
209208});
210209211-it("caps 128K contexts at the live tool-result ceiling", () => {
210+it("uses a larger auto cap for 128K contexts", () => {
212211const result = calculateMaxToolResultChars(128_000);
213-expect(result).toBe(DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS);
212+expect(result).toBe(32_000);
213+});
214+215+it("uses the largest auto cap for 200K contexts", () => {
216+expect(resolveAutoLiveToolResultMaxChars(200_000)).toBe(64_000);
217+expect(calculateMaxToolResultChars(200_000)).toBe(64_000);
214218});
215219216220it("supports a higher configured hard cap", () => {
@@ -508,6 +512,7 @@ describe("truncateOversizedToolResultsInSession", () => {
508512const result = await truncateOversizedToolResultsInSession({
509513 sessionFile,
510514contextWindowTokens: 128_000,
515+maxCharsOverride: DEFAULT_MAX_LIVE_TOOL_RESULT_CHARS,
511516});
512517513518expect(result.truncated).toBe(true);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。