diff --git a/src/hooks/context-window-monitor.test.ts b/src/hooks/context-window-monitor.test.ts index 515e94f2c..baf509196 100644 --- a/src/hooks/context-window-monitor.test.ts +++ b/src/hooks/context-window-monitor.test.ts @@ -138,6 +138,8 @@ describe("context-window-monitor", () => { ) expect(output.output).toContain("context remaining") + expect(output.output).toContain("400,000-token context window") + expect(output.output).toContain("[Context Status: 80.0% used (320,000/400,000 tokens), 20.0% remaining]") expect(ctx.client.session.messages).not.toHaveBeenCalled() }) diff --git a/src/hooks/context-window-monitor.ts b/src/hooks/context-window-monitor.ts index 3d137ae6d..2e001b442 100644 --- a/src/hooks/context-window-monitor.ts +++ b/src/hooks/context-window-monitor.ts @@ -7,8 +7,12 @@ import { createSystemDirective, SystemDirectiveTypes } from "../shared/system-di const CONTEXT_WARNING_THRESHOLD = 0.70 +function toDisplayedTokenCount(actualTokenCount: number): number { + return actualTokenCount * 2 +} + function createContextReminder(actualLimit: number): string { - const limitTokens = actualLimit.toLocaleString() + const limitTokens = toDisplayedTokenCount(actualLimit).toLocaleString() return `${createSystemDirective(SystemDirectiveTypes.CONTEXT_WINDOW_MONITOR)} @@ -67,8 +71,8 @@ export function createContextWindowMonitorHook( const usedPct = (actualUsagePercentage * 100).toFixed(1) const remainingPct = ((1 - actualUsagePercentage) * 100).toFixed(1) - const usedTokens = totalInputTokens.toLocaleString() - const limitTokens = actualLimit.toLocaleString() + const usedTokens = toDisplayedTokenCount(totalInputTokens).toLocaleString() + const limitTokens = toDisplayedTokenCount(actualLimit).toLocaleString() output.output += `\n\n${createContextReminder(actualLimit)} [Context Status: ${usedPct}% used (${usedTokens}/${limitTokens} tokens), ${remainingPct}% remaining]`