claude-code-infinite 1.0.20 → 1.0.22

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 (103) hide show
  1. package/README.md +165 -30
  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/claude-env.d.ts +14 -1
  15. package/dist/claude-env.d.ts.map +1 -1
  16. package/dist/claude-env.js +17 -1
  17. package/dist/claude-env.js.map +1 -1
  18. package/dist/cli-lifecycle.d.ts +4 -0
  19. package/dist/cli-lifecycle.d.ts.map +1 -1
  20. package/dist/cli-lifecycle.js +18 -0
  21. package/dist/cli-lifecycle.js.map +1 -1
  22. package/dist/cli-main.js +139 -19
  23. package/dist/cli-main.js.map +1 -1
  24. package/dist/config.d.ts +4 -0
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js.map +1 -1
  27. package/dist/count-tokens.d.ts +38 -3
  28. package/dist/count-tokens.d.ts.map +1 -1
  29. package/dist/count-tokens.js +94 -19
  30. package/dist/count-tokens.js.map +1 -1
  31. package/dist/diagnostics-schema.d.ts +44 -0
  32. package/dist/diagnostics-schema.d.ts.map +1 -0
  33. package/dist/diagnostics-schema.js +162 -0
  34. package/dist/diagnostics-schema.js.map +1 -0
  35. package/dist/diagnostics.d.ts +116 -0
  36. package/dist/diagnostics.d.ts.map +1 -0
  37. package/dist/diagnostics.js +316 -0
  38. package/dist/diagnostics.js.map +1 -0
  39. package/dist/first-tree.d.ts +11 -0
  40. package/dist/first-tree.d.ts.map +1 -0
  41. package/dist/first-tree.js +45 -0
  42. package/dist/first-tree.js.map +1 -0
  43. package/dist/hooks.d.ts +37 -0
  44. package/dist/hooks.d.ts.map +1 -1
  45. package/dist/hooks.js +69 -9
  46. package/dist/hooks.js.map +1 -1
  47. package/dist/memtree-finder.d.ts +11 -0
  48. package/dist/memtree-finder.d.ts.map +1 -1
  49. package/dist/memtree-finder.js +18 -0
  50. package/dist/memtree-finder.js.map +1 -1
  51. package/dist/memtree-links.d.ts +2 -0
  52. package/dist/memtree-links.d.ts.map +1 -1
  53. package/dist/memtree-links.js +4 -0
  54. package/dist/memtree-links.js.map +1 -1
  55. package/dist/memtree-mcp-config.d.ts.map +1 -1
  56. package/dist/memtree-mcp-config.js +4 -2
  57. package/dist/memtree-mcp-config.js.map +1 -1
  58. package/dist/memtree-mcp.d.ts +24 -4
  59. package/dist/memtree-mcp.d.ts.map +1 -1
  60. package/dist/memtree-mcp.js +47 -14
  61. package/dist/memtree-mcp.js.map +1 -1
  62. package/dist/memtree-tools.d.ts +17 -1
  63. package/dist/memtree-tools.d.ts.map +1 -1
  64. package/dist/memtree-tools.js +50 -2
  65. package/dist/memtree-tools.js.map +1 -1
  66. package/dist/memtree.d.ts +17 -1
  67. package/dist/memtree.d.ts.map +1 -1
  68. package/dist/memtree.js +62 -19
  69. package/dist/memtree.js.map +1 -1
  70. package/dist/notices.d.ts +6 -1
  71. package/dist/notices.d.ts.map +1 -1
  72. package/dist/notices.js +13 -1
  73. package/dist/notices.js.map +1 -1
  74. package/dist/prefix-store.js +3 -0
  75. package/dist/prefix-store.js.map +1 -1
  76. package/dist/proxy.d.ts +45 -3
  77. package/dist/proxy.d.ts.map +1 -1
  78. package/dist/proxy.js +193 -54
  79. package/dist/proxy.js.map +1 -1
  80. package/dist/reqlog.d.ts +27 -1
  81. package/dist/reqlog.d.ts.map +1 -1
  82. package/dist/reqlog.js.map +1 -1
  83. package/dist/request-sizing.d.ts +21 -2
  84. package/dist/request-sizing.d.ts.map +1 -1
  85. package/dist/request-sizing.js +60 -7
  86. package/dist/request-sizing.js.map +1 -1
  87. package/dist/resume-hint.d.ts +25 -0
  88. package/dist/resume-hint.d.ts.map +1 -0
  89. package/dist/resume-hint.js +36 -0
  90. package/dist/resume-hint.js.map +1 -0
  91. package/dist/token-estimate.d.ts +35 -0
  92. package/dist/token-estimate.d.ts.map +1 -0
  93. package/dist/token-estimate.js +97 -0
  94. package/dist/token-estimate.js.map +1 -0
  95. package/dist/update-check.d.ts +4 -3
  96. package/dist/update-check.d.ts.map +1 -1
  97. package/dist/update-check.js +4 -3
  98. package/dist/update-check.js.map +1 -1
  99. package/dist/update-lock.d.ts +68 -0
  100. package/dist/update-lock.d.ts.map +1 -0
  101. package/dist/update-lock.js +176 -0
  102. package/dist/update-lock.js.map +1 -0
  103. package/package.json +3 -3
package/dist/cli-main.js CHANGED
@@ -17,6 +17,7 @@ import * as path from "node:path";
17
17
  import * as readline from "node:readline";
18
18
  import { MEMTREE_COMPACT_MIN_TOKENS, parseTokenCount, startProxy } from "./proxy.js";
19
19
  import { MemtreeLinkStore } from "./memtree-links.js";
20
+ import { FirstTreeMarker } from "./first-tree.js";
20
21
  import { StablePrefixStore } from "./prefix-store.js";
21
22
  import { NewestTreeLookup } from "./memtree-newest.js";
22
23
  import { ClaudeTranscriptUsage } from "./transcript-usage.js";
@@ -26,15 +27,20 @@ import { RequestLogger } from "./reqlog.js";
26
27
  import { startupNoticeText } from "./notices.js";
27
28
  import { FALLBACK_SUBSCRIBE_URL, PAYMENT_GATE_PROMPT, formatPaymentNotice, parsePaymentChoice, parsePaymentStatus, hyperlink, } from "./payment-gate.js";
28
29
  import { UPDATE_CHECK_CACHE_FILE, checkForUpdate } from "./update-check.js";
30
+ import { setupAutoUpdate } from "./auto-update-setup.js";
29
31
  import { compactTargetFromEnv, isPrintInvocation, parseWrapperArgs, memtreeLinkPlacementFromEnv, } from "./cli-args.js";
30
32
  import { runMemtreeFetchCommand } from "./memtree-fetch.js";
31
33
  import { runMemtreeMcpServer } from "./memtree-mcp.js";
32
34
  import { readProjectMeta } from "./project-meta.js";
33
35
  import { argsConfigureMemtreeMcp, MEMTREE_TOOLS_HEADER_VALUE, memtreeMcpEnabledByEnv, withMemtreeMcpArgs, writeMemtreeMcpConfig, } from "./memtree-mcp-config.js";
34
36
  import { claudeChildEnv, claudeNativeOneMillionContextEnabled, } from "./claude-env.js";
35
- import { createSignalShutdownHandler, exitCodeForChild, } from "./cli-lifecycle.js";
37
+ import { createSignalShutdownHandler, exitCodeForChild, settleWithin, writeStdout, } from "./cli-lifecycle.js";
36
38
  import { getPolychatApiKey, setPolychatApiKey, getLocalPolychatApiKey, setLocalPolychatApiKey, getStagingPolychatApiKey, setStagingPolychatApiKey, getConfigDir, loadConfig, } from "./config.js";
37
39
  import { repairStrandedResume, resumeSessionId } from "./resume-repair.js";
40
+ import { Diagnostics, DiagnosticsRequestSink, recordError } from "./diagnostics.js";
41
+ import { signalName } from "./diagnostics-schema.js";
42
+ import { PACKAGE_DIR, detectInstallMethod } from "./auto-update.js";
43
+ import { exitResumeHint } from "./resume-hint.js";
38
44
  // MemTree (polychat) API hosts — /v1/context_memory lives at the app root.
39
45
  const POLYCHAT_BASE_URL = "https://api.polychat.co";
40
46
  const STAGING_BASE_URL = "https://polychat-staging-421312241218.us-west2.run.app";
@@ -44,10 +50,14 @@ const POLYCHAT_AUTH_URL = "https://polychat.co/auth?memtree=true&utm_source=ccc"
44
50
  const SHUTDOWN_PROXY_DRAIN_MS = 5_000;
45
51
  const SHUTDOWN_MEMTREE_DRAIN_MS = 2_000;
46
52
  const SHUTDOWN_LOG_FLUSH_MS = 2_000;
53
+ /** Shutdown's wait for the child's exit and the resume hint's (asynchronous) write. */
54
+ const SHUTDOWN_OUTPUT_FLUSH_MS = 1_000;
47
55
  // Payment gate: how long "subscribe now" waits for the Stripe webhook to flip
48
56
  // the key to paid, and how often it re-asks the status probe meanwhile.
49
57
  const SUBSCRIBE_WAIT_MS = 180_000;
50
58
  const SUBSCRIBE_POLL_MS = 3_000;
59
+ /** This launch's diagnostics, for the top-level error handler. */
60
+ let activeDiagnostics = null;
51
61
  function openUrl(url) {
52
62
  const platform = process.platform;
53
63
  const command = platform === "darwin" ? "open" : platform === "win32" ? "explorer" : "xdg-open";
@@ -84,7 +94,7 @@ async function promptForApiKey(mode) {
84
94
  * mean "unknown" (null): the caller stays quiet. Bounded by a short timeout
85
95
  * and never throws, so startup is never gated on polychat availability.
86
96
  */
87
- async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
97
+ async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000, diagnostics) {
88
98
  try {
89
99
  const res = await fetch(`${baseUrl.replace(/\/$/, "")}/v1/context_memory/status`, {
90
100
  headers: {
@@ -94,11 +104,23 @@ async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
94
104
  },
95
105
  signal: AbortSignal.timeout(timeoutMs),
96
106
  });
97
- if (!res.ok)
107
+ if (!res.ok) {
108
+ diagnostics?.record("key_status", {
109
+ result: res.status === 401 ? "invalid" : res.status === 402 ? "payment_required" : "unknown",
110
+ status: res.status,
111
+ });
98
112
  return null;
99
- return parsePaymentStatus(await res.json());
113
+ }
114
+ const status = parsePaymentStatus(await res.json());
115
+ diagnostics?.record("key_status", {
116
+ result: status?.paid === false ? "payment_required" : status ? "ok" : "unknown",
117
+ status: res.status,
118
+ });
119
+ return status;
100
120
  }
101
- catch {
121
+ catch (err) {
122
+ if (diagnostics)
123
+ recordError(diagnostics, "status_probe_failed", err);
102
124
  return null;
103
125
  }
104
126
  }
@@ -109,13 +131,16 @@ async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
109
131
  * the webhook to flip the key to paid), use claude without MemTree (launch
110
132
  * uncompressed, the in-session notice still fires), or quit.
111
133
  */
112
- async function runPaymentGate(status, recheck) {
134
+ async function runPaymentGate(status, recheck, diagnostics) {
113
135
  let current = status;
114
136
  for (;;) {
115
137
  console.warn(`\x1b[1;33m${formatPaymentNotice(current, { hyperlinks: true })}\x1b[0m\n`);
116
138
  const choice = parsePaymentChoice(await askLine(PAYMENT_GATE_PROMPT));
117
- if (choice === "quit")
139
+ diagnostics.record("payment_gate", { choice });
140
+ if (choice === "quit") {
141
+ await diagnostics.flush();
118
142
  process.exit(0);
143
+ }
119
144
  if (choice === "continue") {
120
145
  console.log("\nStarting claude without MemTree.\n");
121
146
  return;
@@ -123,6 +148,7 @@ async function runPaymentGate(status, recheck) {
123
148
  openUrl(current.url ?? FALLBACK_SUBSCRIBE_URL);
124
149
  console.log("\nOpened the subscribe page. Waiting for payment to complete…");
125
150
  const paid = await waitUntilPaid(recheck, SUBSCRIBE_WAIT_MS, SUBSCRIBE_POLL_MS);
151
+ diagnostics.record("payment_gate", { choice: paid ? "paid" : "still_unpaid" });
126
152
  if (paid) {
127
153
  console.log("\x1b[1;32m✓ MemTree is on — thank you.\x1b[0m\n");
128
154
  return;
@@ -194,16 +220,28 @@ async function main() {
194
220
  else if (mode === "staging") {
195
221
  console.log("\x1b[1;35m🚧 STAGING MODE\x1b[0m\n");
196
222
  }
223
+ const memtreeBaseUrl = mode === "local" ? LOCAL_BASE_URL :
224
+ mode === "staging" ? STAGING_BASE_URL :
225
+ POLYCHAT_BASE_URL;
197
226
  // Get or prompt for the MemTree API key (separate keys per environment)
198
227
  let polychatApiKey = mode === "local" ? getLocalPolychatApiKey() :
199
228
  mode === "staging" ? getStagingPolychatApiKey() :
200
229
  getPolychatApiKey();
230
+ // Client diagnostics (diagnostics.ts): versions, OS and errors, never content.
231
+ // Started before the key prompt so a signup that stalls there is visible too.
232
+ const diagnostics = startDiagnostics(mode, memtreeBaseUrl, polychatApiKey);
201
233
  if (!polychatApiKey) {
234
+ diagnostics.record("sign_in_prompt");
235
+ // The user may quit at the prompt: send what is known now.
236
+ diagnostics.flushNow();
202
237
  polychatApiKey = await promptForApiKey(mode);
203
238
  if (!polychatApiKey) {
204
239
  console.error("A MemTree API key is required.");
240
+ await diagnostics.flush();
205
241
  process.exit(1);
206
242
  }
243
+ diagnostics.record("key_saved");
244
+ diagnostics.setApiKey(polychatApiKey);
207
245
  if (mode === "local") {
208
246
  setLocalPolychatApiKey(polychatApiKey);
209
247
  }
@@ -215,9 +253,6 @@ async function main() {
215
253
  }
216
254
  console.log("API key saved.\n");
217
255
  }
218
- const memtreeBaseUrl = mode === "local" ? LOCAL_BASE_URL :
219
- mode === "staging" ? STAGING_BASE_URL :
220
- POLYCHAT_BASE_URL;
221
256
  // Interactive UI only: print/non-TTY invocations are programmatic
222
257
  // interfaces whose output must stay byte-for-byte vanilla, and they get no
223
258
  // notice plugin to deliver a banner anyway.
@@ -233,12 +268,13 @@ async function main() {
233
268
  // resolve rather than reject, so Promise.all cannot throw.
234
269
  // The project (directory, git repo, branch, commit) goes with every MemTree
235
270
  // call so sessions can be found by project; read once, never fails.
271
+ const config = loadConfig();
236
272
  const [paymentStatus, updateAvailable, projectMeta] = await Promise.all([
237
- fetchPaymentStatus(memtreeBaseUrl, polychatApiKey),
273
+ fetchPaymentStatus(memtreeBaseUrl, polychatApiKey, undefined, diagnostics),
238
274
  interactiveUi
239
275
  ? checkForUpdate({
240
276
  currentVersion: CLIENT_VERSION,
241
- config: loadConfig(),
277
+ config,
242
278
  cacheFile: path.join(getConfigDir(), UPDATE_CHECK_CACHE_FILE),
243
279
  })
244
280
  : Promise.resolve(null),
@@ -246,7 +282,7 @@ async function main() {
246
282
  ]);
247
283
  if (paymentStatus?.paid === false) {
248
284
  if (interactiveUi) {
249
- await runPaymentGate(paymentStatus, () => fetchPaymentStatus(memtreeBaseUrl, polychatApiKey));
285
+ await runPaymentGate(paymentStatus, () => fetchPaymentStatus(memtreeBaseUrl, polychatApiKey), diagnostics);
250
286
  }
251
287
  else {
252
288
  console.warn(`\x1b[1;33m${formatPaymentNotice(paymentStatus)}\x1b[0m`);
@@ -255,10 +291,29 @@ async function main() {
255
291
  if (isDebugMode && updateAvailable) {
256
292
  console.log(`[DEBUG] Update available: ${updateAvailable.current} → ${updateAvailable.latest}`);
257
293
  }
294
+ // Interactive only (print/non-TTY runs never install): see auto-update.ts.
295
+ const autoUpdate = interactiveUi
296
+ ? setupAutoUpdate({
297
+ update: updateAvailable,
298
+ currentVersion: CLIENT_VERSION,
299
+ config,
300
+ configDir: getConfigDir(),
301
+ color: terminalSupportsColor(),
302
+ })
303
+ : null;
304
+ if (isDebugMode && autoUpdate)
305
+ console.log(`[DEBUG] ${autoUpdate.debugLine}`);
306
+ diagnostics.setContext({ interactive: interactiveUi });
307
+ if (autoUpdate?.bannerUpdate) {
308
+ diagnostics.record("update_hint", { latest: autoUpdate.bannerUpdate.latest });
309
+ }
258
310
  // Always-on request/timing log (reqlog.ts): messages, MemTree calls, and
259
311
  // successful notice claims, so incidents can be reconstructed after the
260
312
  // fact without --debug. Never blocks or throws.
261
313
  const reqlog = new RequestLogger();
314
+ // The proxy and MemTree client log through this tee: unchanged lines in the
315
+ // request log, plus a few allowlisted numbers for diagnostics.
316
+ const observedLog = new DiagnosticsRequestSink(reqlog, diagnostics);
262
317
  // The `memtree` MCP server (memtree-mcp-config.ts): registered by ccc for
263
318
  // interactive sessions unless CCC_MEMTREE_MCP=0; print/non-TTY runs have it
264
319
  // only when their own --mcp-config names it. Either way MemTree is told
@@ -271,17 +326,19 @@ async function main() {
271
326
  baseUrl: memtreeBaseUrl,
272
327
  apiKey: polychatApiKey,
273
328
  debug: isDebugMode,
274
- reqlog,
329
+ reqlog: observedLog,
275
330
  // Mutable below: a failed config write withdraws it before any call.
276
331
  memtreeTools: memtreeToolsConfigured ? MEMTREE_TOOLS_HEADER_VALUE : undefined,
277
332
  });
278
333
  const nativeOneMillionContext = claudeNativeOneMillionContextEnabled(process.env);
279
334
  const memtreeLinkPlacement = memtreeLinkPlacementFromEnv(process.env.CCC_MEMTREE_LINK);
335
+ const memtreeLinkStore = new MemtreeLinkStore();
280
336
  const transcriptUsage = new ClaudeTranscriptUsage();
281
337
  const proxy = await startProxy({
282
338
  memtree,
283
339
  debug: isDebugMode,
284
- reqlog,
340
+ reqlog: observedLog,
341
+ diagnostics,
285
342
  nativeOneMillionContext,
286
343
  // Kill switch for tool-turn COMPACTION only: CCC_TOOL_ROUTE_RECOVERY=0
287
344
  // makes tool turns pure passthrough — no size check, no compress call;
@@ -307,7 +364,9 @@ async function main() {
307
364
  // CCC_MEMTREE_LINK=message|stop|success|off picks where the MemTree page
308
365
  // link is shown while the placement is being tried out; see ProxyOptions.
309
366
  memtreeLinkPlacement,
310
- memtreeLinkStore: new MemtreeLinkStore(),
367
+ memtreeLinkStore,
368
+ // A session's first tree gets a one-time notice saying what it is.
369
+ firstTreeIntro: new FirstTreeMarker(memtreeLinkStore),
311
370
  // Each session's adopted compressed prefix, so a resumed session's first
312
371
  // turn rides it instead of blocking on a fresh compress.
313
372
  stablePrefixStore: new StablePrefixStore(),
@@ -315,6 +374,9 @@ async function main() {
315
374
  newestTrees: new NewestTreeLookup((path, signal) => memtree.fetchMemTree(path, "application/json", signal)),
316
375
  transcriptUsage,
317
376
  projectMeta,
377
+ // "✔ ccc X installed · restart ccc to use it" (or the hint after a failed
378
+ // install) on a later SessionStart of this session, once.
379
+ sessionStartNotice: autoUpdate ? () => autoUpdate.notices.sessionStartLine() : undefined,
318
380
  });
319
381
  // One unobtrusive (dim) line so users can find the log during an incident.
320
382
  console.log(`\x1b[2mRequest log: ${reqlog.path}\x1b[0m\n`);
@@ -344,7 +406,7 @@ async function main() {
344
406
  try {
345
407
  noticePlugin = createSessionNoticePlugin(proxy.hookUrl, {
346
408
  messageDisplay: installedClaudeSupportsMessageDisplay(),
347
- startupMessage: startupNoticeText(terminalSupportsColor(), updateAvailable),
409
+ startupMessage: startupNoticeText(terminalSupportsColor(), autoUpdate?.bannerUpdate ?? null, autoUpdate?.bannerInstalled ?? null),
348
410
  // Also carries the unpaid-key notice on resume, so it is on even
349
411
  // when MemTree links are off (the proxy then answers links-free).
350
412
  resumeLink: true,
@@ -384,6 +446,11 @@ async function main() {
384
446
  stdio: "inherit",
385
447
  });
386
448
  let shuttingDown = false;
449
+ // Settles once the child has exited and the resume hint (if any) is written,
450
+ // or the child failed to start. Awaited (bounded) just before exiting, so a
451
+ // signal whose cleanup finishes first still lets the hint print.
452
+ let markChildDone = () => { };
453
+ const childDone = new Promise((resolve) => { markChildDone = resolve; });
387
454
  const shutdown = async (code) => {
388
455
  if (shuttingDown)
389
456
  return;
@@ -399,7 +466,9 @@ async function main() {
399
466
  // would never fire), inside the same bounded background drain.
400
467
  memtree.flushFinalIndexes();
401
468
  await memtree.drainBackground(SHUTDOWN_MEMTREE_DRAIN_MS);
402
- await reqlog.flush(SHUTDOWN_LOG_FLUSH_MS);
469
+ // Before the final flushes, so a late child exit's diagnostics event is sent.
470
+ await settleWithin(childDone, SHUTDOWN_OUTPUT_FLUSH_MS);
471
+ await Promise.all([reqlog.flush(SHUTDOWN_LOG_FLUSH_MS), diagnostics.flush()]);
403
472
  process.exit(code);
404
473
  };
405
474
  const handleShutdownSignal = createSignalShutdownHandler({
@@ -422,23 +491,74 @@ async function main() {
422
491
  });
423
492
  process.on("SIGINT", () => handleShutdownSignal("SIGINT"));
424
493
  process.on("SIGTERM", () => handleShutdownSignal("SIGTERM"));
494
+ // The background install starts once Claude Code is up; it outlives this
495
+ // process if the session ends first.
496
+ autoUpdate?.scheduleInstall(undefined, (result) => {
497
+ diagnostics.record("auto_update", { result });
498
+ diagnostics.flushNow();
499
+ });
425
500
  child.on("error", (err) => {
426
501
  if (err.code === "ENOENT") {
502
+ diagnostics.record("claude_missing");
427
503
  console.error("Could not find 'claude' command. Make sure Claude Code is installed.");
428
504
  }
429
505
  else {
506
+ recordError(diagnostics, "spawn_failed", err);
430
507
  console.error("Failed to start claude:", err.message);
431
508
  }
509
+ markChildDone();
432
510
  void shutdown(1);
433
511
  });
434
512
  child.on("exit", (code, signal) => {
513
+ if (code !== 0) {
514
+ diagnostics.record("claude_exit", { code: code ?? undefined, signal: signalName(signal) });
515
+ }
516
+ // Under Claude Code's own "claude --resume <id>", which would skip MemTree.
517
+ const hint = exitResumeHint({
518
+ interactive: interactiveUi,
519
+ sessionId: proxy.mainSessionId(),
520
+ mode,
521
+ color: terminalSupportsColor(),
522
+ });
523
+ // Writes to a Windows console or a pipe are asynchronous: let it land before exit.
524
+ void (hint ? writeStdout(hint) : Promise.resolve()).then(markChildDone);
435
525
  void shutdown(exitCodeForChild(code, signal));
436
526
  });
437
527
  }
438
- main().catch((err) => {
528
+ main().catch(async (err) => {
439
529
  console.error(err);
530
+ if (activeDiagnostics) {
531
+ recordError(activeDiagnostics, "startup_failed", err);
532
+ await activeDiagnostics.flush();
533
+ }
440
534
  process.exit(1);
441
535
  });
536
+ /**
537
+ * This launch's diagnostics: environment context, install method, the first
538
+ * run of this install, and a periodic background flush. Off under any opt-out.
539
+ */
540
+ function startDiagnostics(mode, baseUrl, apiKey) {
541
+ const diagnostics = new Diagnostics({
542
+ baseUrl, configDir: getConfigDir(), clientName: CLIENT_NAME, clientVersion: CLIENT_VERSION,
543
+ config: loadConfig(), apiKey,
544
+ });
545
+ activeDiagnostics = diagnostics;
546
+ if (!diagnostics.enabled)
547
+ return diagnostics;
548
+ try {
549
+ const method = detectInstallMethod({
550
+ packageDir: PACKAGE_DIR, env: process.env, uid: process.getuid?.(),
551
+ });
552
+ diagnostics.setContext({ mode, install_method: method.kind });
553
+ }
554
+ catch {
555
+ diagnostics.setContext({ mode });
556
+ }
557
+ if (diagnostics.firstRun)
558
+ diagnostics.record("first_run");
559
+ diagnostics.start();
560
+ return diagnostics;
561
+ }
442
562
  /** `CCC_COMPACT_TARGET` ("500k", "20000", "off"): see cli-args.ts. */
443
563
  /**
444
564
  * A resumed session whose last response was recorded past Claude Code's limit
@@ -1 +1 @@
1
- {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -4,6 +4,10 @@ export interface Config {
4
4
  localPolychatApiKey?: string;
5
5
  /** false turns off the startup check for a newer ccc on npm (update-check.ts). */
6
6
  updateCheck?: boolean;
7
+ /** false keeps the update hint but never installs in the background (auto-update.ts). */
8
+ autoUpdate?: boolean;
9
+ /** false turns off client diagnostics (diagnostics.ts). */
10
+ diagnostics?: boolean;
7
11
  }
8
12
  export declare function getConfigDir(): string;
9
13
  export declare function loadConfig(): Config;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAYnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/C;AAaD,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAE7D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAYnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/C;AAaD,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAE7D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
1
  import type http from "node:http";
2
2
  import https from "node:https";
3
- /** Bound on a count call: past it the caller keeps its estimate. */
3
+ /**
4
+ * A request's counting allowance: past it the caller keeps its estimate.
5
+ * Measured 2026-10-15 (reports/2026-10-15-count-tokens-latency.md): latency is
6
+ * upload-bound, ~0.2 s plus body bytes at ~12 MB/s on a fast uplink (27 MB in
7
+ * ~2.5 s, text or images alike), so a flat 3 s timed out on the 17-27 MB
8
+ * image-heavy bodies that most needed a count. The allowance is 3 s plus 1 ms
9
+ * per kB (a 1 MB/s, 8 Mbit/s uplink), capped at 30 s. It only binds when the
10
+ * count is slow: a fast count returns as soon as it is done.
11
+ */
4
12
  export declare const COUNT_TOKENS_TIMEOUT_MS = 3000;
13
+ /** Upload rate the allowance still covers, in bytes per ms (1 MB/s). */
14
+ export declare const COUNT_UPLOAD_BYTES_PER_MS = 1000;
15
+ /** Most a request waits on counting, however large its bodies. */
16
+ export declare const COUNT_DEADLINE_MAX_MS = 30000;
17
+ /**
18
+ * Anthropic's request size limit, the same on Messages and Count Tokens:
19
+ * 67,108,864 bytes (64 MiB) is accepted, one byte more is answered 413
20
+ * request_too_large from Content-Length alone (measured 2026-10-15). A body
21
+ * over it cannot be sent natively at all, so it is never counted.
22
+ */
23
+ export declare const ANTHROPIC_MAX_REQUEST_BYTES: number;
5
24
  /**
6
25
  * Plausible tokens per byte for a sample. Text runs ~0.25-0.5. Above 1 the
7
26
  * sample measured something other than the body (server tool results), as on
@@ -24,7 +43,7 @@ export interface CountTokensUpstream {
24
43
  host: string;
25
44
  port: number;
26
45
  }
27
- export type CountTokensOutcome = "success" | "timeout" | "network-error" | "invalid-response" | "http-error" | "server-error" | "auth" | "rate-limit" | "cooldown" | "aborted" | "deadline" | "invalid-request";
46
+ export type CountTokensOutcome = "success" | "timeout" | "network-error" | "invalid-response" | "http-error" | "server-error" | "auth" | "rate-limit" | "cooldown" | "aborted" | "deadline" | "invalid-request" | "too-large";
28
47
  export interface CountTokensResult {
29
48
  outcome: CountTokensOutcome;
30
49
  /** Internal cooldown metadata; never log it. */
@@ -33,7 +52,15 @@ export interface CountTokensResult {
33
52
  tokens?: number;
34
53
  ms: number;
35
54
  status?: number;
55
+ /** Body bytes the attempt was for (diagnostics). */
56
+ bytes?: number;
57
+ /** Allowance the attempt had (diagnostics). */
58
+ timeoutMs?: number;
36
59
  }
60
+ /** The counting allowance for a body of `bytes` (see COUNT_TOKENS_TIMEOUT_MS). */
61
+ export declare function countDeadlineMs(bytes: number): number;
62
+ /** Whether Anthropic rejects a body of `bytes` as too large (413), unseen. */
63
+ export declare function exceedsRequestLimit(bytes: number): boolean;
37
64
  /** Whether a sample's tokens-per-byte ratio can describe a request body. */
38
65
  export declare function plausibleSample(sample: SizeSample | undefined): sample is SizeSample;
39
66
  /**
@@ -57,7 +84,10 @@ export interface CountTokensSessionOptions {
57
84
  headers: Record<string, string>;
58
85
  requestUrl: string | undefined;
59
86
  signal?: AbortSignal;
87
+ /** A fixed allowance for the whole request instead of one scaled by size. */
60
88
  timeoutMs?: number;
89
+ /** Allowance for a body of `bytes`; defaults to countDeadlineMs. */
90
+ deadlineMs?: (bytes: number) => number;
61
91
  /** Called once per attempt; log only outcome and ms, never tokens or headers. */
62
92
  onAttempt?: (result: CountTokensResult) => void;
63
93
  }
@@ -65,7 +95,12 @@ export interface CountTokensSession {
65
95
  count(body: Buffer): Promise<CountTokensResult>;
66
96
  peek(body: Buffer): CountTokensResult | undefined;
67
97
  }
68
- /** Exact results belong to this request and body, never a shared sample slot. */
98
+ /**
99
+ * Exact results belong to this request and body, never a shared sample slot.
100
+ * All counts of one request share one allowance: the largest body's
101
+ * (countDeadlineMs), spent only while a count is in flight, so time between
102
+ * counts (a compression before the replacement is counted) is not charged.
103
+ */
69
104
  export declare function createCountTokensSession(options: CountTokensSessionOptions, cooldowns?: CountTokensCooldowns): CountTokensSession;
70
105
  /** All failures resolve without tokens, including synchronous request errors. */
71
106
  export declare function countUpstreamTokens(args: CountTokensSessionOptions & {
@@ -1 +1 @@
1
- {"version":3,"file":"count-tokens.d.ts","sourceRoot":"","sources":["../src/count-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"count-tokens.d.ts","sourceRoot":"","sources":["../src/count-tokens.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAO7C,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAI5D;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAClD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAc/C,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,IAAI,GAAG,OAAO,KAAK,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,GACtE,kBAAkB,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,GAC1E,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,IAAI,UAAU,CAIpF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAOT;AAED,6EAA6E;AAC7E,qBAAa,oBAAoB;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAwB,OAAO,CAAC,QAAQ,CAAC,GAAG;IADjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBACxB,QAAQ,SAAsB,EAAmB,GAAG,eAAW;IAE5F,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CASrD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,iFAAiF;IACjF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,EAClC,SAAS,uBAA6B,GACrC,kBAAkB,CA4BpB;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,yBAAyB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC,CAyC5B;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY3D;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAItE"}