claude-code-infinite 1.0.19 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +95 -5
  2. package/dist/auto-update-runner.d.ts +52 -0
  3. package/dist/auto-update-runner.d.ts.map +1 -0
  4. package/dist/auto-update-runner.js +307 -0
  5. package/dist/auto-update-runner.js.map +1 -0
  6. package/dist/auto-update-setup.d.ts +38 -0
  7. package/dist/auto-update-setup.d.ts.map +1 -0
  8. package/dist/auto-update-setup.js +72 -0
  9. package/dist/auto-update-setup.js.map +1 -0
  10. package/dist/auto-update.d.ts +170 -0
  11. package/dist/auto-update.d.ts.map +1 -0
  12. package/dist/auto-update.js +401 -0
  13. package/dist/auto-update.js.map +1 -0
  14. package/dist/cc-request.d.ts +17 -0
  15. package/dist/cc-request.d.ts.map +1 -1
  16. package/dist/cc-request.js +22 -0
  17. package/dist/cc-request.js.map +1 -1
  18. package/dist/cli-main.js +35 -7
  19. package/dist/cli-main.js.map +1 -1
  20. package/dist/config.d.ts +4 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js.map +1 -1
  23. package/dist/count-tokens.d.ts +38 -3
  24. package/dist/count-tokens.d.ts.map +1 -1
  25. package/dist/count-tokens.js +88 -19
  26. package/dist/count-tokens.js.map +1 -1
  27. package/dist/memtree-finder.d.ts +11 -0
  28. package/dist/memtree-finder.d.ts.map +1 -1
  29. package/dist/memtree-finder.js +18 -0
  30. package/dist/memtree-finder.js.map +1 -1
  31. package/dist/memtree-mcp-config.d.ts.map +1 -1
  32. package/dist/memtree-mcp-config.js +4 -2
  33. package/dist/memtree-mcp-config.js.map +1 -1
  34. package/dist/memtree-mcp.d.ts +24 -4
  35. package/dist/memtree-mcp.d.ts.map +1 -1
  36. package/dist/memtree-mcp.js +47 -14
  37. package/dist/memtree-mcp.js.map +1 -1
  38. package/dist/memtree-tools.d.ts +17 -1
  39. package/dist/memtree-tools.d.ts.map +1 -1
  40. package/dist/memtree-tools.js +50 -2
  41. package/dist/memtree-tools.js.map +1 -1
  42. package/dist/memtree.d.ts +10 -1
  43. package/dist/memtree.d.ts.map +1 -1
  44. package/dist/memtree.js +54 -19
  45. package/dist/memtree.js.map +1 -1
  46. package/dist/notices.d.ts +6 -1
  47. package/dist/notices.d.ts.map +1 -1
  48. package/dist/notices.js +16 -4
  49. package/dist/notices.js.map +1 -1
  50. package/dist/proxy.d.ts +17 -1
  51. package/dist/proxy.d.ts.map +1 -1
  52. package/dist/proxy.js +137 -53
  53. package/dist/proxy.js.map +1 -1
  54. package/dist/reqlog.d.ts +10 -0
  55. package/dist/reqlog.d.ts.map +1 -1
  56. package/dist/reqlog.js.map +1 -1
  57. package/dist/request-sizing.d.ts +21 -2
  58. package/dist/request-sizing.d.ts.map +1 -1
  59. package/dist/request-sizing.js +60 -7
  60. package/dist/request-sizing.js.map +1 -1
  61. package/dist/token-estimate.d.ts +35 -0
  62. package/dist/token-estimate.d.ts.map +1 -0
  63. package/dist/token-estimate.js +97 -0
  64. package/dist/token-estimate.js.map +1 -0
  65. package/dist/update-check.d.ts +23 -4
  66. package/dist/update-check.d.ts.map +1 -1
  67. package/dist/update-check.js +79 -12
  68. package/dist/update-check.js.map +1 -1
  69. package/dist/update-lock.d.ts +68 -0
  70. package/dist/update-lock.d.ts.map +1 -0
  71. package/dist/update-lock.js +176 -0
  72. package/dist/update-lock.js.map +1 -0
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"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"}
package/dist/proxy.d.ts CHANGED
@@ -47,7 +47,7 @@ import type { StablePrefixStore } from "./prefix-store.js";
47
47
  import type { NewestTreeLookup } from "./memtree-newest.js";
48
48
  import type { TranscriptUsageSource } from "./transcript-usage.js";
49
49
  import type { ProjectMeta } from "./project-meta.js";
50
- import { type RequestLogSink } from "./reqlog.js";
50
+ import { type MessagesRecord, type RequestLogSink } from "./reqlog.js";
51
51
  export interface ProxyOptions {
52
52
  memtree: MemtreeClient;
53
53
  /**
@@ -171,6 +171,12 @@ export interface ProxyOptions {
171
171
  * user can find sessions by project. Omitted means none is sent.
172
172
  */
173
173
  projectMeta?: ProjectMeta;
174
+ /**
175
+ * An extra line for a main session's SessionStart (not compaction), e.g.
176
+ * the auto-update result (auto-update.ts). Called on every such hook; the
177
+ * provider decides how often it has something to say.
178
+ */
179
+ sessionStartNotice?: () => string | undefined;
174
180
  /** Test-only: forward to this origin instead of api.anthropic.com. */
175
181
  upstreamOrigin?: string;
176
182
  /** Test-only: dump each forwarded /v1/messages body to this directory. */
@@ -212,7 +218,17 @@ export declare const SUBAGENT_VIEW_NOTE = "(main session's page; subagent pages
212
218
  export declare const SUBAGENT_COMPACT_REPLY = "MemTree compact applies to the main session only.";
213
219
  /** "50k", "50000", "1.5m" → tokens; undefined when not a positive count. */
214
220
  export declare function parseTokenCount(text: string): number | undefined;
221
+ /**
222
+ * Whether a forwarded compressed body still overflows the window: its exact
223
+ * count (`exactTokens`, made for delivery), else its reported input tokens,
224
+ * both Anthropic's own count, so the output floor applies; else its
225
+ * conservative image-aware bound (token-estimate.ts) with full max_tokens,
226
+ * never bytes/4, which reads base64 images as text.
227
+ */
228
+ declare function compressedResultExceedsWindow(body: Record<string, any>, rec: MessagesRecord, compressedRaw: Buffer, modelContextLimit: number, exactTokens?: number): boolean;
215
229
  /** Test seam. */
216
230
  export declare const __testCapCacheBreakpoints: typeof capCacheBreakpoints;
217
231
  export declare const __testEstimateRequestTokens: typeof estimateRequestTokens;
232
+ export declare const __testCompressedResultExceedsWindow: typeof compressedResultExceedsWindow;
233
+ export {};
218
234
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
package/dist/proxy.js CHANGED
@@ -58,7 +58,8 @@ import { USAGE_LABEL, USAGE_SIGN_IN_NOTE } from "./usage-link.js";
58
58
  import { hyperlink } from "./payment-gate.js";
59
59
  import { PaymentNoticeThrottle, paymentNoticeText } from "./payment-notice.js";
60
60
  import { MEMTREE_LINKS_MAX_SESSIONS } from "./memtree-links.js";
61
- import { describeClaudeCodeRequest, inspectMonitorTranscript, isClaudeCodeSideRequest, memtreeClientMeta, sessionTag, } from "./cc-request.js";
61
+ import { describeClaudeCodeRequest, inspectMonitorTranscript, knownSideRequestKind, transcriptWarning, isClaudeCodeSideRequest, memtreeClientMeta, sessionTag, } from "./cc-request.js";
62
+ import { conservativeBodyTokens } from "./token-estimate.js";
62
63
  import { approxTokensFromBytes, mergeUsageFromJsonBody, mergeUsageFromSseEvent, } from "./reqlog.js";
63
64
  const DEFAULT_UPSTREAM = "https://api.anthropic.com";
64
65
  const HOOK_BODY_LIMIT = 64 * 1024;
@@ -267,6 +268,7 @@ export function startProxy(opts) {
267
268
  paymentNotice: new PaymentNoticeThrottle(opts.paymentNoticeIntervalMs),
268
269
  unpaidDetail: () => opts.memtree.paymentRequiredDetail,
269
270
  usageUrl: opts.memtree.usageDashboardUrl,
271
+ sessionStartNotice: opts.sessionStartNotice,
270
272
  notices: new NoticeDeliveryQueue(),
271
273
  mainNoticePending: false,
272
274
  mainPromptGeneration: 0,
@@ -657,7 +659,7 @@ onMainStop) {
657
659
  if (parsed.agent_id === undefined && parsed.source === "resume") {
658
660
  await state.newestTrees?.settle(parsed.session_id);
659
661
  }
660
- const line = joinNoticeLines(resumeLinkLine(state, parsed), resumePaymentNotice(state, parsed));
662
+ const line = joinNoticeLines(resumeLinkLine(state, parsed), resumePaymentNotice(state, parsed), extraSessionStartLine(state.sessionStartNotice, parsed));
661
663
  if (!line) {
662
664
  res.writeHead(204);
663
665
  res.end();
@@ -901,11 +903,12 @@ async function handleMessages(req, res, opts, upstream, state) {
901
903
  try {
902
904
  rec.transcript = inspectMonitorTranscript(body);
903
905
  sideRequest = rec.transcript.ok;
904
- if (!rec.transcript.ok) {
905
- console.error(`[ccc proxy] possible side request, transcript format not recognised ` +
906
- `(${rec.transcript.reason}${rec.transcript.badLine ? ` at line ${rec.transcript.badLine}` : ""}); ` +
907
- `handled as an ordinary request. Claude Code may have changed the monitor format.`);
908
- }
906
+ const knownKind = knownSideRequestKind(clientInfo);
907
+ if (knownKind)
908
+ rec.transcript.knownKind = knownKind;
909
+ const warning = transcriptWarning(rec.transcript);
910
+ if (warning)
911
+ console.error(warning);
909
912
  }
910
913
  catch {
911
914
  // never let the format check affect the request
@@ -949,10 +952,11 @@ async function handleMessages(req, res, opts, upstream, state) {
949
952
  upstream, headers: forwardableRequestHeaders(req), requestUrl: req.url,
950
953
  signal: state.shutdownSignal,
951
954
  onAttempt: (result) => {
952
- (rec.countTokens ??= []).push({ statusClass: result.outcome, ms: result.ms });
955
+ (rec.countTokens ??= []).push({ statusClass: result.outcome, ms: result.ms,
956
+ bytes: result.bytes ?? 0, timeoutMs: result.timeoutMs ?? 0 });
953
957
  },
954
958
  }, state.countTokensCooldowns);
955
- const requestSizing = new RequestSizing(countSession, opts.countTokens === true);
959
+ const requestSizing = new RequestSizing(countSession, opts.countTokens === true, typeof body.model === "string" ? body.model : undefined);
956
960
  if (carriesServerTools(body))
957
961
  serverToolRecords.add(rec);
958
962
  const sizeSlot = wholeRequestSizeSlot(state, isMainRequest, requestSessionKey, requestSizeKey, body.model);
@@ -1169,7 +1173,7 @@ async function handleMessages(req, res, opts, upstream, state) {
1169
1173
  // prefix, else whole) with no compress call; at it, compress once to
1170
1174
  // the target (planToolCompaction). A "replay" is a client retry of the
1171
1175
  // request that installed the route, forwarded verbatim.
1172
- const plan = planToolCompaction({
1176
+ const plan = await planToolCompaction({
1173
1177
  opts,
1174
1178
  state,
1175
1179
  body,
@@ -1206,11 +1210,15 @@ async function handleMessages(req, res, opts, upstream, state) {
1206
1210
  // A concurrent request of this lane is already compressing.
1207
1211
  rec.routeRecovery = { outcome: "in-flight" };
1208
1212
  }
1209
- else if (prior?.awaitingIndex && !plan.overWindow) {
1213
+ else if (prior?.awaitingIndex && (!plan.overWindow || plan.uncountedOverWindowOnly)) {
1210
1214
  // The last attempt found no tree for this conversation, so a
1211
1215
  // compress call could only pass everything through again. Forward
1212
1216
  // now; the page check lets the next tool turn try once it exists.
1217
+ // Over the window only by its uncounted bound, delivery may still
1218
+ // count it; if it refuses, that is an index wait, not a strike.
1213
1219
  rec.routeRecovery = { outcome: "awaiting-index" };
1220
+ if (plan.uncountedOverWindowOnly)
1221
+ rec.indexBehind = true;
1214
1222
  checkAwaitedIndex(opts, prior, state.shutdownSignal);
1215
1223
  }
1216
1224
  else if (prior?.retryAtTokens !== undefined &&
@@ -1349,7 +1357,7 @@ async function handleMessages(req, res, opts, upstream, state) {
1349
1357
  // Stable-prefix (edge) compaction: the main thread's human turns only. The
1350
1358
  // recap rides the main route above; subagents keep per-turn compression.
1351
1359
  const edge = isMainRequest && sessionId !== undefined
1352
- ? planEdgeCompaction({
1360
+ ? await planEdgeCompaction({
1353
1361
  sizing: requestSizing,
1354
1362
  opts,
1355
1363
  state,
@@ -1876,6 +1884,17 @@ function resumePaymentNotice(state, input) {
1876
1884
  state.paymentNotice.markShown();
1877
1885
  return state.notices.warningText(paymentNoticeText(detail));
1878
1886
  }
1887
+ /** The caller's extra SessionStart line; a throwing provider shows nothing. */
1888
+ function extraSessionStartLine(provider, input) {
1889
+ if (!provider || input.agent_id !== undefined || input.source === "compact")
1890
+ return undefined;
1891
+ try {
1892
+ return provider();
1893
+ }
1894
+ catch {
1895
+ return undefined;
1896
+ }
1897
+ }
1879
1898
  function joinNoticeLines(...parts) {
1880
1899
  const present = parts.filter((part) => !!part);
1881
1900
  return present.length ? present.join("\n") : undefined;
@@ -2441,10 +2460,11 @@ function laneCompaction(opts, state, sessionId, model, modelContextLimit) {
2441
2460
  }
2442
2461
  /** Calibrated input must leave room for the requested output as well. */
2443
2462
  function calibratedSizeExceedsWindow(record, body, modelContextLimit) {
2444
- // A planning estimate, so the full max_tokens (the floor needs an exact count).
2445
- const outputTokens = bodyOutputReservation(body, false);
2446
- return record.sizeSource === "reported" &&
2447
- (record.estimatedTokens ?? 0) + outputTokens > modelContextLimit;
2463
+ // An exact count reserves the model's output floor, as delivery does; an
2464
+ // estimate reserves the full max_tokens.
2465
+ const outputTokens = bodyOutputReservation(body, exactSizedRecords.has(record));
2466
+ return record.uncountedOverWindow === true || (record.sizeSource === "reported" &&
2467
+ (record.estimatedTokens ?? 0) + outputTokens > modelContextLimit);
2448
2468
  }
2449
2469
  function calibratedSizeExceedsLimits(record, body, modelContextLimit) {
2450
2470
  return (record.sizeSource === "reported" &&
@@ -2514,16 +2534,24 @@ function usedServerTools(rec) {
2514
2534
  * is dropped and the previous sample kept.
2515
2535
  */
2516
2536
  function reportedSample(rec, bytes) {
2517
- if (changedDeliveryRecords.has(rec))
2518
- return undefined;
2519
- if (serverToolRecords.has(rec) || usedServerTools(rec))
2520
- return undefined;
2521
- const tokens = reportedInputTokens(rec);
2537
+ const tokens = reportedBodyTokens(rec);
2522
2538
  if (tokens === undefined)
2523
2539
  return undefined;
2524
2540
  const sample = { tokens, forwardedBytes: bytes };
2525
2541
  return plausibleSample(sample) ? sample : undefined;
2526
2542
  }
2543
+ /**
2544
+ * Anthropic's input tokens for the body this request forwarded, when its usage
2545
+ * describes that body (not a changed delivery, no server tools). Not filtered
2546
+ * by plausibility: a body that is mostly images is truly cheap per byte.
2547
+ */
2548
+ function reportedBodyTokens(rec) {
2549
+ if (changedDeliveryRecords.has(rec))
2550
+ return undefined;
2551
+ if (serverToolRecords.has(rec) || usedServerTools(rec))
2552
+ return undefined;
2553
+ return reportedInputTokens(rec);
2554
+ }
2527
2555
  /**
2528
2556
  * Key of a non-main request's size sample (ProxyState.laneSizes): its lane,
2529
2557
  * its own agent id (helpers that carry only a parent id stay apart from the
@@ -2591,7 +2619,7 @@ function boundedSet(map, key, value, limit = STABLE_PREFIX_MAX_SESSIONS) {
2591
2619
  *
2592
2620
  * Fills rec.compaction with the budget, estimate and reason.
2593
2621
  */
2594
- function planEdgeCompaction(args) {
2622
+ async function planEdgeCompaction(args) {
2595
2623
  const { opts, state, body, messages, sessionId, modelContextLimit, forwardBody, rec } = args;
2596
2624
  const mode = compactionMode(opts, state, sessionId);
2597
2625
  const budget = resolveBudget(opts, state, body.model, modelContextLimit);
@@ -2643,12 +2671,16 @@ function planEdgeCompaction(args) {
2643
2671
  }
2644
2672
  const prefixCandidate = args.sizing.register(routed.raw, "ride", prefix.lastSize);
2645
2673
  candidateSizeOwners.set(prefixCandidate, prefix);
2674
+ await countIfOverBound(args.sizing, prefixCandidate, body, modelContextLimit);
2646
2675
  const size = args.sizing.plan(prefixCandidate);
2647
2676
  compaction.estimatedTokens = size.tokens;
2648
2677
  compaction.estimatedBytes = routed.raw.length;
2649
2678
  compaction.sizeSource = size.source;
2650
- const overWindow = routedBodyExceedsContext(body, routed.raw, modelContextLimit) ||
2651
- calibratedSizeExceedsWindow(compaction, body, modelContextLimit);
2679
+ noteUncountedBound(compaction, args.sizing, prefixCandidate, body, modelContextLimit);
2680
+ // Request-local sizing (an exact count, a calibrated sample, or the
2681
+ // image-aware bound), not bytes: a flatten that kept images is mostly
2682
+ // base64 that costs a fixed amount per image.
2683
+ const overWindow = calibratedSizeExceedsWindow(compaction, body, modelContextLimit);
2652
2684
  const fallback = overWindow ? undefined : { prefix, routed };
2653
2685
  if (state.compactNow.has(sessionId))
2654
2686
  return forced("manual", fallback);
@@ -2662,10 +2694,13 @@ function planEdgeCompaction(args) {
2662
2694
  }
2663
2695
  if (state.compactNow.has(sessionId))
2664
2696
  return forced("manual");
2665
- const size = args.sizing.plan(args.sizing.register(forwardBody, "original"));
2697
+ const originalCandidate = args.sizing.register(forwardBody, "original");
2698
+ await countIfOverBound(args.sizing, originalCandidate, body, modelContextLimit);
2699
+ const size = args.sizing.plan(originalCandidate);
2666
2700
  compaction.estimatedTokens = size.tokens;
2667
2701
  compaction.estimatedBytes = forwardBody.length;
2668
2702
  compaction.sizeSource = size.source;
2703
+ noteUncountedBound(compaction, args.sizing, originalCandidate, body, modelContextLimit);
2669
2704
  if (calibratedSizeExceedsLimits(compaction, body, modelContextLimit)) {
2670
2705
  return forced(compaction.prefixMiss ? "prefix-mismatch" : "budget");
2671
2706
  }
@@ -2696,7 +2731,7 @@ function planEdgeCompaction(args) {
2696
2731
  *
2697
2732
  * Fills rec.compaction.
2698
2733
  */
2699
- function planToolCompaction(args) {
2734
+ async function planToolCompaction(args) {
2700
2735
  const { opts, state, body, messages, sessionId, modelContextLimit, forwardBody, rec } = args;
2701
2736
  const mode = compactionMode(opts, state, sessionId);
2702
2737
  const budget = resolveBudget(opts, state, body.model, modelContextLimit);
@@ -2713,23 +2748,16 @@ function planToolCompaction(args) {
2713
2748
  const stableLane = args.isMainRequest && sessionId !== undefined;
2714
2749
  const current = stableLane ? state.stablePrefixes.get(sessionId) : undefined;
2715
2750
  let ride = args.ride;
2716
- let overWindow = false;
2717
2751
  if (!ride && current && !prefixMismatch(body, messages, current, sessionId, stablePrefixMessageHash)) {
2718
2752
  const routed = prefixRoutedBody(body, messages, current);
2719
2753
  if (routed) {
2720
2754
  const prefixCandidate = args.sizing.register(routed.raw, "ride", current.lastSize);
2721
2755
  candidateSizeOwners.set(prefixCandidate, current);
2722
- if (routedBodyExceedsContext(body, routed.raw, modelContextLimit))
2723
- overWindow = true;
2724
- else
2725
- ride = { raw: routed.raw, turnType: "tool-prefix", sizeHolder: current };
2756
+ // Sized below with the request-local sizing; an over-window ride is not
2757
+ // kept as a fallback.
2758
+ ride = { raw: routed.raw, turnType: "tool-prefix", sizeHolder: current };
2726
2759
  }
2727
2760
  }
2728
- if (!ride) {
2729
- const original = args.sizing.register(forwardBody, "original");
2730
- overWindow ||= args.sizing.plan(original).tokens +
2731
- bodyOutputReservation(body, args.sizing.isExact(original)) > modelContextLimit;
2732
- }
2733
2761
  const sample = ride
2734
2762
  ? ride.sizeHolder.lastSize
2735
2763
  : stableLane
@@ -2738,12 +2766,18 @@ function planToolCompaction(args) {
2738
2766
  const candidate = args.sizing.register(ride?.raw ?? forwardBody, ride ? "ride" : "original", sample);
2739
2767
  if (ride)
2740
2768
  candidateSizeOwners.set(candidate, ride.sizeHolder);
2769
+ await countIfOverBound(args.sizing, candidate, body, modelContextLimit);
2741
2770
  const size = args.sizing.plan(candidate);
2742
2771
  compaction.estimatedTokens = size.tokens;
2743
2772
  compaction.estimatedBytes = (ride?.raw ?? forwardBody).length;
2744
2773
  compaction.sizeSource = size.source;
2745
- overWindow ||= !fitsNative(size.tokens, { budget: budget.tokens, context: modelContextLimit,
2774
+ noteUncountedBound(compaction, args.sizing, candidate, body, modelContextLimit);
2775
+ // Judged after any planning count, so a fitting exact count is not
2776
+ // overridden by the estimate it replaced.
2777
+ let overWindow = !fitsNative(size.tokens, { budget: budget.tokens, context: modelContextLimit,
2746
2778
  output: bodyOutputReservation(body, args.sizing.isExact(candidate)) });
2779
+ const uncountedOnly = !overWindow && compaction.uncountedOverWindow === true;
2780
+ overWindow ||= uncountedOnly;
2747
2781
  if (!args.canCompress) {
2748
2782
  if (overWindow)
2749
2783
  return { kind: "pass", original: true };
@@ -2761,6 +2795,7 @@ function planToolCompaction(args) {
2761
2795
  estimateTokens: size.tokens,
2762
2796
  budgetTokens: budget.tokens,
2763
2797
  overWindow,
2798
+ ...(uncountedOnly ? { uncountedOverWindowOnly: true } : {}),
2764
2799
  ...(ride && !overWindow ? { fallback: ride } : {}),
2765
2800
  ...(stableLane ? { replaces: current ?? null } : {}),
2766
2801
  };
@@ -2805,12 +2840,46 @@ function memoryRoutedToolBody(body, messages, route, routeEpoch, sessionId) {
2805
2840
  return null;
2806
2841
  return Buffer.from(JSON.stringify(routed), "utf-8");
2807
2842
  }
2808
- /** Size the assembled input (including system/tools) and reserve output room. */
2809
- function routedBodyExceedsContext(body, routedBody, modelContextLimit) {
2810
- const outputTokens = bodyOutputReservation(body, false);
2811
- // This is the existing local byte estimate, not a tokenizer or a hard cap.
2812
- // Final forwarding checks can replace this estimate with Count Tokens.
2813
- return approxTokensFromBytes(routedBody.length) + outputTokens > modelContextLimit;
2843
+ /**
2844
+ * Count the candidate a planner is about to judge (ride or original, sampled
2845
+ * or not) when only a count could admit it: no exact count, and its per-model
2846
+ * conservative bound plus max_tokens exceeds the window. Delivery reuses the
2847
+ * result.
2848
+ */
2849
+ async function countIfOverBound(sizing, candidate, body, modelContextLimit) {
2850
+ await sizing.countIfOverBound(candidate, { budget: modelContextLimit, context: modelContextLimit, output: bodyOutputReservation(body, false) });
2851
+ }
2852
+ /** Compaction records whose estimatedTokens is an exact count (noteUncountedBound). */
2853
+ const exactSizedRecords = new WeakSet();
2854
+ /**
2855
+ * Note an exactly counted candidate (exactSizedRecords), or mark a planned
2856
+ * candidate still without an exact count (counting off, or its
2857
+ * planning count failed: countIfOverBound ran first) whose conservative bound
2858
+ * plus max_tokens exceeds the window: delivery would refuse it uncounted, so
2859
+ * it is over the window for planning and takes the normal gated compression.
2860
+ */
2861
+ function noteUncountedBound(record, sizing, candidate, body, modelContextLimit) {
2862
+ if (sizing.isExact(candidate)) {
2863
+ exactSizedRecords.add(record);
2864
+ return;
2865
+ }
2866
+ if (sizing.exceedsRequestLimit(candidate) ||
2867
+ candidate.conservativeTokens + bodyOutputReservation(body, false) > modelContextLimit) {
2868
+ record.uncountedOverWindow = true;
2869
+ }
2870
+ }
2871
+ /**
2872
+ * Whether a forwarded compressed body still overflows the window: its exact
2873
+ * count (`exactTokens`, made for delivery), else its reported input tokens,
2874
+ * both Anthropic's own count, so the output floor applies; else its
2875
+ * conservative image-aware bound (token-estimate.ts) with full max_tokens,
2876
+ * never bytes/4, which reads base64 images as text.
2877
+ */
2878
+ function compressedResultExceedsWindow(body, rec, compressedRaw, modelContextLimit, exactTokens) {
2879
+ const counted = exactTokens ?? reportedBodyTokens(rec);
2880
+ const tokens = counted ??
2881
+ conservativeBodyTokens(compressedRaw, typeof body.model === "string" ? body.model : undefined);
2882
+ return tokens + bodyOutputReservation(body, counted !== undefined) > modelContextLimit;
2814
2883
  }
2815
2884
  /** Output room a native-fit check reserves: the model's floor for an exact
2816
2885
  * count, else (an estimate) the full max_tokens. */
@@ -2997,12 +3066,18 @@ function withFlattenCacheBreakpoint(body, ttl) {
2997
3066
  if (messages.length !== 1)
2998
3067
  return messages;
2999
3068
  const only = messages[0];
3000
- const text = typeof only.content === "string" ? only.content : undefined;
3001
- if (text === undefined)
3002
- return messages;
3003
3069
  const cacheControl = { type: "ephemeral" };
3004
3070
  if (ttl !== undefined)
3005
3071
  cacheControl.ttl = ttl;
3072
+ if (Array.isArray(only.content) && only.content.length > 0) {
3073
+ // A flatten that kept images: the breakpoint goes on its last block.
3074
+ const blocks = only.content.map((block) => ({ ...block }));
3075
+ blocks[blocks.length - 1].cache_control = cacheControl;
3076
+ return [{ ...only, content: blocks }];
3077
+ }
3078
+ const text = typeof only.content === "string" ? only.content : undefined;
3079
+ if (text === undefined)
3080
+ return messages;
3006
3081
  return [{ ...only, content: [{ type: "text", text, cache_control: cacheControl }] }];
3007
3082
  }
3008
3083
  /**
@@ -3146,7 +3221,9 @@ async function runBlockingCompression(args) {
3146
3221
  // whatever the fallback gate would refuse to send uncompressed; a bytes/4
3147
3222
  // guess is not sent, as it would force needless compression.
3148
3223
  ...(args.inputCandidate && args.sizing.clientInputTokens(args.inputCandidate) !== undefined
3149
- ? { clientInputTokens: args.sizing.clientInputTokens(args.inputCandidate) }
3224
+ ? { clientInputTokens: args.sizing.clientInputTokens(args.inputCandidate),
3225
+ // Only an exact count of these bytes may loosen the server's sizing.
3226
+ clientInputTokensExact: args.sizing.isExact(args.inputCandidate) }
3150
3227
  : {}),
3151
3228
  ...(messageUsage && Object.keys(messageUsage).length ? { messageUsage } : {}),
3152
3229
  ...(messageTimes && Object.keys(messageTimes).length ? { messageTimes } : {}),
@@ -3591,8 +3668,11 @@ async function recoverToolRouteMiss(args) {
3591
3668
  // Nothing to ride next turn, or a result that still does not fit the
3592
3669
  // window (the next turn would reject it and compress again): wait for
3593
3670
  // growth before the lane tries again.
3594
- if (!sizeHolder || routedBodyExceedsContext(body, compressedRaw, modelContextLimit))
3671
+ const exactTokens = args.sizing.exactTokensFor(compressedRaw);
3672
+ if (!sizeHolder ||
3673
+ compressedResultExceedsWindow(body, rec, compressedRaw, modelContextLimit, exactTokens)) {
3595
3674
  backOff();
3675
+ }
3596
3676
  // A reservation that lost its race (stale) or never reached
3597
3677
  // protocol-complete (upstream 5xx, truncated stream) installed nothing, so
3598
3678
  // it must stop suppressing whoever is still trying to install.
@@ -3765,13 +3845,16 @@ async function selectForwardCandidate(args) {
3765
3845
  return changed ? candidate.body : intended;
3766
3846
  }
3767
3847
  /**
3768
- * Whether delivery would refuse `candidate` sent whole: it is planned over the
3769
- * window, and the measurement selection would use (an exact count, else the
3770
- * same estimate or bytes/4 fallback) does not fit either. Only then is there
3771
- * no fallback, and only then may a compress take the long budget.
3848
+ * Whether delivery would refuse `candidate` sent whole, by delivery's own
3849
+ * admission: it is sendable only when its plan fits and either an exact count
3850
+ * or its conservative per-model bound (with the full max_tokens) fits too;
3851
+ * otherwise the measurement delivery would use (a count, else that bound)
3852
+ * decides. Only when it is refused is there no fallback, and only then may a
3853
+ * compress take the long budget.
3772
3854
  */
3773
3855
  async function wholeRequestRefused(sizing, candidate, limits) {
3774
- if (fitsNative(sizing.plan(candidate).tokens, limits))
3856
+ if (fitsNative(sizing.plan(candidate).tokens, limits) &&
3857
+ (sizing.isExact(candidate) || sizing.boundFits(candidate, limits)))
3775
3858
  return false;
3776
3859
  return !fitsMeasured(await sizing.measure(candidate, limits), limits);
3777
3860
  }
@@ -4528,6 +4611,7 @@ function readAll(stream) {
4528
4611
  /** Test seam. */
4529
4612
  export const __testCapCacheBreakpoints = capCacheBreakpoints;
4530
4613
  export const __testEstimateRequestTokens = estimateRequestTokens;
4614
+ export const __testCompressedResultExceedsWindow = compressedResultExceedsWindow;
4531
4615
  /** Reads message times from the session's transcript, when there is one. */
4532
4616
  function transcriptTimesFor(opts, sessionId, agentId) {
4533
4617
  const source = opts.transcriptUsage;