claude-code-infinite 1.0.28 → 1.0.30

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 (121) hide show
  1. package/README.md +96 -19
  2. package/dist/auto-update.d.ts +2 -0
  3. package/dist/auto-update.d.ts.map +1 -1
  4. package/dist/auto-update.js +4 -0
  5. package/dist/auto-update.js.map +1 -1
  6. package/dist/claude-auth.d.ts +27 -2
  7. package/dist/claude-auth.d.ts.map +1 -1
  8. package/dist/claude-auth.js +76 -4
  9. package/dist/claude-auth.js.map +1 -1
  10. package/dist/claude-install.d.ts +73 -0
  11. package/dist/claude-install.d.ts.map +1 -0
  12. package/dist/claude-install.js +142 -0
  13. package/dist/claude-install.js.map +1 -0
  14. package/dist/claude-plan-warning.d.ts +70 -7
  15. package/dist/claude-plan-warning.d.ts.map +1 -1
  16. package/dist/claude-plan-warning.js +152 -8
  17. package/dist/claude-plan-warning.js.map +1 -1
  18. package/dist/cli-lifecycle.d.ts +45 -1
  19. package/dist/cli-lifecycle.d.ts.map +1 -1
  20. package/dist/cli-lifecycle.js +59 -0
  21. package/dist/cli-lifecycle.js.map +1 -1
  22. package/dist/cli-main.js +136 -29
  23. package/dist/cli-main.js.map +1 -1
  24. package/dist/count-tokens.d.ts +15 -0
  25. package/dist/count-tokens.d.ts.map +1 -1
  26. package/dist/count-tokens.js +23 -1
  27. package/dist/count-tokens.js.map +1 -1
  28. package/dist/diagnostics-schema.d.ts +4 -0
  29. package/dist/diagnostics-schema.d.ts.map +1 -1
  30. package/dist/diagnostics-schema.js +25 -0
  31. package/dist/diagnostics-schema.js.map +1 -1
  32. package/dist/diagnostics.d.ts +24 -1
  33. package/dist/diagnostics.d.ts.map +1 -1
  34. package/dist/diagnostics.js +86 -5
  35. package/dist/diagnostics.js.map +1 -1
  36. package/dist/final-index.d.ts +7 -1
  37. package/dist/final-index.d.ts.map +1 -1
  38. package/dist/final-index.js +10 -3
  39. package/dist/final-index.js.map +1 -1
  40. package/dist/image-refs.d.ts +51 -0
  41. package/dist/image-refs.d.ts.map +1 -0
  42. package/dist/image-refs.js +169 -0
  43. package/dist/image-refs.js.map +1 -0
  44. package/dist/image-tokens.d.ts +37 -0
  45. package/dist/image-tokens.d.ts.map +1 -0
  46. package/dist/image-tokens.js +158 -0
  47. package/dist/image-tokens.js.map +1 -0
  48. package/dist/install-ping.d.ts +54 -0
  49. package/dist/install-ping.d.ts.map +1 -0
  50. package/dist/install-ping.js +177 -0
  51. package/dist/install-ping.js.map +1 -0
  52. package/dist/memtree-body.d.ts +52 -0
  53. package/dist/memtree-body.d.ts.map +1 -0
  54. package/dist/memtree-body.js +99 -0
  55. package/dist/memtree-body.js.map +1 -0
  56. package/dist/memtree-finder.d.ts +2 -1
  57. package/dist/memtree-finder.d.ts.map +1 -1
  58. package/dist/memtree-finder.js +4 -5
  59. package/dist/memtree-finder.js.map +1 -1
  60. package/dist/memtree-mcp.d.ts.map +1 -1
  61. package/dist/memtree-mcp.js +17 -7
  62. package/dist/memtree-mcp.js.map +1 -1
  63. package/dist/memtree-times.d.ts +35 -0
  64. package/dist/memtree-times.d.ts.map +1 -0
  65. package/dist/memtree-times.js +166 -0
  66. package/dist/memtree-times.js.map +1 -0
  67. package/dist/memtree-tools.d.ts +12 -0
  68. package/dist/memtree-tools.d.ts.map +1 -1
  69. package/dist/memtree-tools.js +63 -7
  70. package/dist/memtree-tools.js.map +1 -1
  71. package/dist/memtree.d.ts +77 -3
  72. package/dist/memtree.d.ts.map +1 -1
  73. package/dist/memtree.js +267 -53
  74. package/dist/memtree.js.map +1 -1
  75. package/dist/paused-session.d.ts.map +1 -1
  76. package/dist/paused-session.js +11 -8
  77. package/dist/paused-session.js.map +1 -1
  78. package/dist/postinstall.d.ts +2 -0
  79. package/dist/postinstall.d.ts.map +1 -0
  80. package/dist/postinstall.js +4 -0
  81. package/dist/postinstall.js.map +1 -0
  82. package/dist/prefix-store.d.ts +2 -0
  83. package/dist/prefix-store.d.ts.map +1 -1
  84. package/dist/prefix-store.js +4 -0
  85. package/dist/prefix-store.js.map +1 -1
  86. package/dist/prepared-compression.d.ts +78 -0
  87. package/dist/prepared-compression.d.ts.map +1 -0
  88. package/dist/prepared-compression.js +127 -0
  89. package/dist/prepared-compression.js.map +1 -0
  90. package/dist/proxy.d.ts +370 -13
  91. package/dist/proxy.d.ts.map +1 -1
  92. package/dist/proxy.js +790 -92
  93. package/dist/proxy.js.map +1 -1
  94. package/dist/rate-limit.d.ts +64 -0
  95. package/dist/rate-limit.d.ts.map +1 -0
  96. package/dist/rate-limit.js +126 -0
  97. package/dist/rate-limit.js.map +1 -0
  98. package/dist/reqlog.d.ts +66 -2
  99. package/dist/reqlog.d.ts.map +1 -1
  100. package/dist/reqlog.js.map +1 -1
  101. package/dist/request-sizing.d.ts +21 -2
  102. package/dist/request-sizing.d.ts.map +1 -1
  103. package/dist/request-sizing.js +57 -11
  104. package/dist/request-sizing.js.map +1 -1
  105. package/dist/route-identity.d.ts +27 -0
  106. package/dist/route-identity.d.ts.map +1 -1
  107. package/dist/route-identity.js +88 -8
  108. package/dist/route-identity.js.map +1 -1
  109. package/dist/token-estimate.d.ts +3 -20
  110. package/dist/token-estimate.d.ts.map +1 -1
  111. package/dist/token-estimate.js +9 -50
  112. package/dist/token-estimate.js.map +1 -1
  113. package/dist/tool-output-store.d.ts +12 -0
  114. package/dist/tool-output-store.d.ts.map +1 -0
  115. package/dist/tool-output-store.js +146 -0
  116. package/dist/tool-output-store.js.map +1 -0
  117. package/dist/tool-result-truncation.d.ts +32 -0
  118. package/dist/tool-result-truncation.d.ts.map +1 -0
  119. package/dist/tool-result-truncation.js +135 -0
  120. package/dist/tool-result-truncation.js.map +1 -0
  121. package/package.json +2 -1
@@ -58,4 +58,63 @@ export function settleWithin(pending, ms) {
58
58
  pending.then(() => { clearTimeout(timer); resolve(); }, () => { clearTimeout(timer); resolve(); });
59
59
  });
60
60
  }
61
+ /** The exit drain's wait for MemTree calls in flight (the final index above all). */
62
+ export const SHUTDOWN_MEMTREE_DRAIN_MS = 2_000;
63
+ /** Windows: the final index of a large session needs longer than 2 s to upload. */
64
+ export const WIN32_MEMTREE_DRAIN_MS = 4_000;
65
+ /**
66
+ * Closing a Windows console window (SIGHUP) leaves ccc ~5 s before it is killed, and
67
+ * the final index was cut at 2 s on every close. From the close, each shutdown step
68
+ * ends by its mark here, so the diagnostics flush (exit_index_cut too) still fits.
69
+ */
70
+ export const CONSOLE_CLOSE_MARKS_MS = {
71
+ proxyDrain: 1_000, memtreeDrain: 3_500, childWait: 3_750, flush: 4_500,
72
+ };
73
+ /**
74
+ * Calls `handler` on SIGHUP with the kind of close it means. On macOS and Linux only
75
+ * with a terminal to hang up (`terminal`: stdout or stderr is a TTY): under nohup, which
76
+ * points both away from the terminal, SIGHUP stays ignored as nohup asked. There a
77
+ * hangup can arrive more than once (the shell's, then the terminal's) and is one close:
78
+ * a repeat must not become the second signal that skips the final index.
79
+ */
80
+ export function onHangup(proc, handler, terminal) {
81
+ if (proc.platform === "win32") {
82
+ proc.on("SIGHUP", () => handler("console-close"));
83
+ return;
84
+ }
85
+ if (!terminal)
86
+ return;
87
+ let hungUp = false;
88
+ proc.on("SIGHUP", () => {
89
+ if (hungUp)
90
+ return;
91
+ hungUp = true;
92
+ handler("terminal-hangup");
93
+ });
94
+ }
95
+ /** Claude Code ended by the same hangup (macOS, Linux), possibly before ccc saw it. */
96
+ export function childExitMeansHangup(platform, code, signal) {
97
+ return platform !== "win32" && (signal === "SIGHUP" || code === exitCodeForSignal("SIGHUP"));
98
+ }
99
+ /** After a hangup, writes to the gone terminal fail (EIO, EPIPE): never fatal to the drain. */
100
+ export function ignoreStreamErrors(streams) {
101
+ for (const stream of streams)
102
+ stream.on("error", () => { });
103
+ }
104
+ /**
105
+ * The exit drain's wait for MemTree calls after a terminal hangup (macOS, Linux): nobody
106
+ * waits for ccc then, and a large session's final index takes seconds to upload.
107
+ */
108
+ export const HANGUP_MEMTREE_DRAIN_MS = 10_000;
109
+ /** How long the exit drain may wait for MemTree calls, starting `now`. */
110
+ export function shutdownMemtreeDrainMs(platform, consoleClosedAt, now = Date.now()) {
111
+ const base = platform === "win32" ? WIN32_MEMTREE_DRAIN_MS : SHUTDOWN_MEMTREE_DRAIN_MS;
112
+ return closeBoundedMs(base, consoleClosedAt, CONSOLE_CLOSE_MARKS_MS.memtreeDrain, now);
113
+ }
114
+ /** `ms`, or less when it would end past `markMs` after the console's close. */
115
+ export function closeBoundedMs(ms, consoleClosedAt, markMs, now = Date.now()) {
116
+ if (consoleClosedAt === undefined)
117
+ return ms;
118
+ return Math.max(0, Math.min(ms, consoleClosedAt + markMs - now));
119
+ }
61
120
  //# sourceMappingURL=cli-lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-lifecycle.js","sourceRoot":"","sources":["../src/cli-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,IAAmB,EACnB,MAA6B;IAE7B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAmB,EACnB,MAA6B,EAC7B,SAAiB,EACjB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,QAAQ,EAAE,IAAI,IAAI,SAAS;QAC3B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;KACxC,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA8B;IAE9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;YACtC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAA4C,OAAO,CAAC,MAAM;IAE1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,OAAyB,EAAE,EAAU;IAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CACV,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EACzC,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"cli-lifecycle.js","sourceRoot":"","sources":["../src/cli-lifecycle.ts"],"names":[],"mappings":"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"}
package/dist/cli-main.js CHANGED
@@ -20,6 +20,7 @@ import { MEMTREE_COMPACT_MIN_TOKENS, parseTokenCount, startProxy } from "./proxy
20
20
  import { MemtreeLinkStore } from "./memtree-links.js";
21
21
  import { FirstTreeMarker } from "./first-tree.js";
22
22
  import { StablePrefixStore } from "./prefix-store.js";
23
+ import { ToolOutputStore } from "./tool-output-store.js";
23
24
  import { NewestTreeLookup } from "./memtree-newest.js";
24
25
  import { ClaudeTranscriptUsage } from "./transcript-usage.js";
25
26
  import { createSessionNoticePlugin, supportsMessageDisplay, terminalSupportsColor, withSessionNoticePluginArgs, } from "./hooks.js";
@@ -41,21 +42,22 @@ import { readProjectMeta } from "./project-meta.js";
41
42
  import { projectTreesHintFor } from "./project-trees.js";
42
43
  import { planMemtreeMcp, withMemtreeMcpArgs, writeMemtreeMcpConfig, } from "./memtree-mcp-config.js";
43
44
  import { claudeChildEnv, claudeNativeOneMillionContextEnabled, } from "./claude-env.js";
44
- import { createSignalShutdownHandler, claudeExitFields, exitCodeForChild, settleWithin, writeStdout, } from "./cli-lifecycle.js";
45
+ import { createSignalShutdownHandler, claudeExitFields, exitCodeForChild, closeBoundedMs, CONSOLE_CLOSE_MARKS_MS, HANGUP_MEMTREE_DRAIN_MS, childExitMeansHangup, ignoreStreamErrors, onHangup, settleWithin, shutdownMemtreeDrainMs, writeStdout, } from "./cli-lifecycle.js";
45
46
  import { getPolychatApiKey, setPolychatApiKey, getLocalPolychatApiKey, setLocalPolychatApiKey, getStagingPolychatApiKey, setStagingPolychatApiKey, getConfigDir, loadConfig, } from "./config.js";
46
47
  import { repairStrandedResume, resumeSessionId } from "./resume-repair.js";
47
- import { Diagnostics, DiagnosticsRequestSink, recordError } from "./diagnostics.js";
48
+ import { Diagnostics, DiagnosticsRequestSink, recordError, SHUTDOWN_FLUSH_MS, } from "./diagnostics.js";
48
49
  import { PACKAGE_DIR, detectInstallMethod, takeUnreportedOutcome, updateFiles, } from "./auto-update.js";
49
50
  import { claudeDesktopInstalled, claudeDesktopOnlyText, claudeMissingText, cwdHintText, locateClaude, withClaudeOnPath, } from "./claude-locate.js";
50
- import { claudeAuthFromConfig, claudePlanFromConfig, claudeSubscriptionLogin, creditNoticeText, } from "./claude-auth.js";
51
- import { creditAdviceApplies, isInfoOnlyRun, printNoPlanWarning, readSeenClaudeAuth, writeSeenClaudeAuth, } from "./claude-plan-warning.js";
51
+ import { INSTALL_PROMPT_ENV, offerClaudeInstall, runInstaller } from "./claude-install.js";
52
+ import { RateLimitNotices, rateLimitNoticeText } from "./rate-limit.js";
53
+ import { apiKeyOverride, claudeAuthFromConfig, claudePlanFromConfig, claudeSubscriptionLogin, creditNoticeText, envApiKeySet, } from "./claude-auth.js";
54
+ import { CreditRefusalMemory, creditAdviceApplies, isInfoOnlyRun, printStartupSignInLines, readSeenClaudeAuth, writeSeenClaudeAuth, } from "./claude-plan-warning.js";
52
55
  import { exitResumeHint } from "./resume-hint.js";
53
56
  // MemTree (polychat) API hosts — /v1/context_memory lives at the app root.
54
57
  const POLYCHAT_BASE_URL = "https://api.polychat.co";
55
58
  const STAGING_BASE_URL = "https://polychat-staging-421312241218.us-west2.run.app";
56
59
  const LOCAL_BASE_URL = "http://localhost:8080";
57
60
  const SHUTDOWN_PROXY_DRAIN_MS = 5_000;
58
- const SHUTDOWN_MEMTREE_DRAIN_MS = 2_000;
59
61
  const SHUTDOWN_LOG_FLUSH_MS = 2_000;
60
62
  /** Shutdown's wait for the child's exit and the resume hint's (asynchronous) write. */
61
63
  const SHUTDOWN_OUTPUT_FLUSH_MS = 1_000;
@@ -178,6 +180,49 @@ async function waitUntilPaid(recheck, totalMs, everyMs) {
178
180
  }
179
181
  return false;
180
182
  }
183
+ /**
184
+ * Claude Code isn't installed: offer to install it when someone can answer
185
+ * (claude-install.ts), else say how. Null when it is still not installed.
186
+ */
187
+ async function installMissingClaude(desktopOnly, interactiveUi, diagnostics) {
188
+ diagnostics.record("claude_missing");
189
+ const canAsk = interactiveUi || process.env[INSTALL_PROMPT_ENV] === "1";
190
+ if (!canAsk) {
191
+ console.error(desktopOnly ? claudeDesktopOnlyText() : claudeMissingText());
192
+ return null;
193
+ }
194
+ // A forced prompt without a terminal (CI) keeps stdout for Claude Code.
195
+ const out = interactiveUi ? process.stdout : process.stderr;
196
+ const claude = await offerClaudeInstall({
197
+ canAsk, desktopOnly,
198
+ ask: (question) => askAnswer(question, out),
199
+ runInstaller: (installer) => runInstaller(installer, out === process.stderr),
200
+ locate: () => locateClaude(),
201
+ print: (text) => out.write(`${text}\n`),
202
+ record: (name, fields) => diagnostics.record(name, fields),
203
+ flushNow: () => diagnostics.flushNow(),
204
+ });
205
+ if (claude)
206
+ diagnostics.setContext({ claude_found: claude.source });
207
+ return claude;
208
+ }
209
+ /** One typed line, or null when stdin ends or Ctrl+C is pressed first. */
210
+ function askAnswer(question, output) {
211
+ const rl = readline.createInterface({ input: process.stdin, output });
212
+ return new Promise((resolve) => {
213
+ let answered = false;
214
+ rl.on("close", () => {
215
+ if (!answered)
216
+ resolve(null);
217
+ });
218
+ rl.on("SIGINT", () => rl.close());
219
+ rl.question(question, (answer) => {
220
+ answered = true;
221
+ rl.close();
222
+ resolve(answer);
223
+ });
224
+ });
225
+ }
181
226
  function askLine(question) {
182
227
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
183
228
  return new Promise((resolve) => {
@@ -291,9 +336,9 @@ async function main() {
291
336
  // Started before the key prompt so a signup that stalls there is visible too.
292
337
  const diagnostics = startDiagnostics(mode, memtreeBaseUrl, polychatApiKey);
293
338
  // Before the key prompt: someone without Claude Code learns that first.
294
- const claude = locateClaude();
339
+ const found = locateClaude();
295
340
  // Only the desktop app (its Claude Code is not a terminal command) gets its own message.
296
- const desktopOnly = !claude && claudeDesktopInstalled();
341
+ const desktopOnly = !found && claudeDesktopInstalled();
297
342
  // One read each of Claude Code's config files (~/.claude.json can be large).
298
343
  const readFile = memoizedTextReader();
299
344
  const claudeSignIn = {
@@ -303,13 +348,14 @@ async function main() {
303
348
  subscriptionLogin: claudeSubscriptionLogin({ readFile }),
304
349
  };
305
350
  diagnostics.setContext({
306
- claude_found: desktopOnly ? "desktop_only" : claude?.source,
351
+ claude_found: desktopOnly ? "desktop_only" : found?.source,
307
352
  claude_auth: claudeSignIn.auth,
308
353
  claude_plan: claudeSignIn.plan,
354
+ env_api_key_set: envApiKeySet(),
309
355
  });
356
+ // Not installed: offered in a terminal (claude-install.ts), else how to install it.
357
+ const claude = found ?? await installMissingClaude(desktopOnly, interactiveUi, diagnostics);
310
358
  if (!claude) {
311
- diagnostics.record("claude_missing");
312
- console.error(desktopOnly ? claudeDesktopOnlyText() : claudeMissingText());
313
359
  await diagnostics.flush();
314
360
  process.exit(1);
315
361
  }
@@ -411,16 +457,31 @@ async function main() {
411
457
  const reqlog = new RequestLogger();
412
458
  // The proxy and MemTree client log through this tee: unchanged lines in the
413
459
  // request log, plus a few allowlisted numbers for diagnostics.
414
- // Anthropic refusing an API key for no credit gets one line as ccc exits.
460
+ // Anthropic refusing for no credit gets one line as ccc exits, whatever the sign-in.
415
461
  let creditTooLow = false;
462
+ // Anthropic's 429/529 (rate-limit.ts): said on the next prompt and at exit, or
463
+ // right away on stderr in a print run. Claude Code's own retries are untouched.
464
+ const rateLimits = new RateLimitNotices();
465
+ // An API key that beats the user's `/login` (claude-auth.ts), by source name only.
466
+ const keyOverride = apiKeyOverride({ readFile, interactive: interactiveUi });
467
+ // A refusal is also remembered for the next launch's startup line, until
468
+ // Anthropic answers a request (claude-plan-warning.ts CREDIT_REFUSED_FILE).
469
+ const creditMemory = new CreditRefusalMemory(getConfigDir());
416
470
  const observedLog = new DiagnosticsRequestSink(reqlog, diagnostics, (auth) => {
417
- if (creditAdviceApplies(auth))
418
- creditTooLow = true;
471
+ if (!creditAdviceApplies(auth, claudeSignIn.plan))
472
+ return;
473
+ creditTooLow = true;
474
+ creditMemory.refused();
419
475
  }, (auth) => {
420
476
  // The next launch's no-plan line goes by what Claude Code really sent.
421
477
  if (auth !== claudeSignIn.seen)
422
478
  writeSeenClaudeAuth(getConfigDir(), auth);
423
479
  claudeSignIn.seen = auth;
480
+ }, () => creditMemory.answered(), (info, startedAt) => {
481
+ if (!info)
482
+ rateLimits.answered(startedAt);
483
+ else if (rateLimits.observe(info) && !interactiveUi)
484
+ console.error(rateLimitNoticeText(info));
424
485
  });
425
486
  // The `memtree` MCP server (memtree-mcp-config.ts): registered by ccc for
426
487
  // every session, interactive or print/non-TTY, unless CCC_MEMTREE_MCP=0,
@@ -490,6 +551,8 @@ async function main() {
490
551
  // Each session's adopted compressed prefix, so a resumed session's first
491
552
  // turn rides it instead of blocking on a fresh compress.
492
553
  stablePrefixStore: new StablePrefixStore(),
554
+ // Full copies of tool results shortened to fit the window (the safety net).
555
+ toolOutputs: new ToolOutputStore(),
493
556
  // The link shown to the user follows the session's newest tree on the server.
494
557
  newestTrees: new NewestTreeLookup((path, signal) => memtree.fetchMemTree(path, "application/json", signal)),
495
558
  transcriptUsage,
@@ -497,12 +560,21 @@ async function main() {
497
560
  // "✔ ccc X installed · restart ccc to use it" (or the hint after a failed
498
561
  // install) on a later SessionStart of this session, once.
499
562
  sessionStartNotice: autoUpdate ? () => autoUpdate.notices.sessionStartLine() : undefined,
563
+ promptSubmitNotice: interactiveUi ? () => rateLimits.promptLine() : undefined,
500
564
  projectTrees,
501
565
  });
502
566
  // One unobtrusive (dim) line so users can find the log during an incident.
503
567
  console.log(`\x1b[2mRequest log: ${reqlog.path}\x1b[0m\n`);
504
568
  // On an API key or not signed in: one line before the first prompt (stderr).
505
- if (!isInfoOnlyRun(claudeArgs) && printNoPlanWarning(claudeSignIn, process.stderr.isTTY === true && terminalSupportsColor())) {
569
+ const stderrColor = process.stderr.isTTY === true && terminalSupportsColor();
570
+ // An earlier session's credit refusal (its advice, in place of the no-plan
571
+ // line), else the no-plan line; then a subscriber whose env or settings make
572
+ // Claude Code bill an API key instead.
573
+ // Not right after ccc installed Claude Code: it has just said Claude Code asks to sign in.
574
+ if (found && !isInfoOnlyRun(claudeArgs) && printStartupSignInLines({
575
+ refused: creditMemory.refusedAtStart, plan: claudeSignIn.plan, signIn: claudeSignIn,
576
+ override: keyOverride, color: stderrColor,
577
+ })) {
506
578
  diagnostics.record("no_plan_warning", { auth: claudeSignIn.seen ?? claudeSignIn.auth });
507
579
  }
508
580
  reportStrandedResumeRepair(claudeArgs, nativeOneMillionContext, claude.command);
@@ -572,6 +644,21 @@ async function main() {
572
644
  stdio: "inherit",
573
645
  });
574
646
  let shuttingDown = false;
647
+ /** When the Windows console window was closed (SIGHUP): the exit drain counts from it. */
648
+ let consoleClosedAt;
649
+ /** When the terminal hung up (macOS, Linux SIGHUP). */
650
+ let terminalHungUp = false;
651
+ /**
652
+ * A terminal to hang up: under nohup neither stdout nor stderr is one. Without one
653
+ * (`ccc -p ... >out 2>&1`) SIGHUP keeps its default, as before: it ends ccc at once.
654
+ */
655
+ const hasTerminal = Boolean(process.stdout.isTTY || process.stderr.isTTY);
656
+ const markTerminalHungUp = () => {
657
+ if (terminalHungUp)
658
+ return;
659
+ terminalHungUp = true;
660
+ ignoreStreamErrors([process.stdout, process.stderr]);
661
+ };
575
662
  // Settles once the child has exited and the resume hint (if any) is written,
576
663
  // or the child failed to start. Awaited (bounded) just before exiting, so a
577
664
  // signal whose cleanup finishes first still lets the hint print.
@@ -590,14 +677,22 @@ async function main() {
590
677
  // finalize their records. Background indexing is a separate log producer:
591
678
  // stop and drain it too before waiting for scheduled JSONL appends on
592
679
  // disk.
593
- await proxy.drain(SHUTDOWN_PROXY_DRAIN_MS);
680
+ // After a console close every step ends by its mark (cli-lifecycle.ts).
681
+ const marks = CONSOLE_CLOSE_MARKS_MS;
682
+ await proxy.drain(closeBoundedMs(SHUTDOWN_PROXY_DRAIN_MS, consoleClosedAt, marks.proxyDrain));
594
683
  // A session ending now sends its final index at once (the idle timer
595
684
  // would never fire), inside the same bounded background drain.
596
- memtree.flushFinalIndexes();
597
- await memtree.drainBackground(SHUTDOWN_MEMTREE_DRAIN_MS);
685
+ const memtreeDrainMs = terminalHungUp
686
+ ? HANGUP_MEMTREE_DRAIN_MS
687
+ : shutdownMemtreeDrainMs(process.platform, consoleClosedAt);
688
+ memtree.flushFinalIndexes(memtreeDrainMs);
689
+ await memtree.drainBackground(memtreeDrainMs);
598
690
  // Before the final flushes, so a late child exit's diagnostics event is sent.
599
- await settleWithin(childDone, SHUTDOWN_OUTPUT_FLUSH_MS);
600
- await Promise.all([reqlog.flush(SHUTDOWN_LOG_FLUSH_MS), diagnostics.flush()]);
691
+ await settleWithin(childDone, closeBoundedMs(SHUTDOWN_OUTPUT_FLUSH_MS, consoleClosedAt, marks.childWait));
692
+ await Promise.all([
693
+ reqlog.flush(closeBoundedMs(SHUTDOWN_LOG_FLUSH_MS, consoleClosedAt, marks.flush)),
694
+ diagnostics.flush(closeBoundedMs(SHUTDOWN_FLUSH_MS, consoleClosedAt, marks.flush)),
695
+ ]);
601
696
  process.exit(code);
602
697
  };
603
698
  const handleShutdownSignal = createSignalShutdownHandler({
@@ -620,15 +715,21 @@ async function main() {
620
715
  });
621
716
  process.on("SIGINT", () => handleShutdownSignal("SIGINT"));
622
717
  process.on("SIGTERM", () => handleShutdownSignal("SIGTERM"));
623
- if (process.platform === "win32") {
624
- // Closing the console window (SIGHUP) gives ccc a few seconds: start the
625
- // update first, since the drains in shutdown may not finish in time.
626
- process.on("SIGHUP", () => {
627
- diagnostics.record("console_closed");
718
+ onHangup(process, (kind) => {
719
+ diagnostics.record("console_closed");
720
+ if (kind === "console-close") {
721
+ // Windows ends ccc a few seconds after its console window closes: start the
722
+ // update first, since the drains in shutdown may not finish in time.
723
+ consoleClosedAt ??= Date.now();
628
724
  autoUpdate?.installOnExit((result) => diagnostics.record("auto_update", { result }));
629
725
  handleShutdownSignal("SIGTERM");
630
- });
631
- }
726
+ return;
727
+ }
728
+ // macOS, Linux: the terminal is gone, but nothing ends ccc, so the final index
729
+ // gets a longer drain than an ordinary exit.
730
+ markTerminalHungUp();
731
+ handleShutdownSignal("SIGHUP");
732
+ }, hasTerminal);
632
733
  // The background install starts once Claude Code is up; it outlives this
633
734
  // process if the session ends first.
634
735
  autoUpdate?.scheduleInstall(undefined, (result) => {
@@ -648,6 +749,9 @@ async function main() {
648
749
  void shutdown(1);
649
750
  });
650
751
  child.on("exit", (code, signal) => {
752
+ // Before anything is written: the hangup may reach Claude Code before ccc.
753
+ if (hasTerminal && childExitMeansHangup(process.platform, code, signal))
754
+ markTerminalHungUp();
651
755
  if (code !== 0) {
652
756
  diagnostics.record("claude_exit", claudeExitFields(code, signal, claudeStartedAt));
653
757
  }
@@ -659,12 +763,15 @@ async function main() {
659
763
  color: terminalSupportsColor(),
660
764
  });
661
765
  // Print/non-TTY stdout is Claude's alone: the notice goes to stderr there.
766
+ // A new key the user may have declined at Claude Code's question isn't named.
767
+ const source = keyOverride?.asks ? undefined : keyOverride?.source;
662
768
  if (creditTooLow && !interactiveUi)
663
- console.error(creditNoticeText(false));
769
+ console.error(creditNoticeText(false, source));
664
770
  const credit = creditTooLow && interactiveUi
665
- ? `${creditNoticeText(terminalSupportsColor())}\n`
771
+ ? `${creditNoticeText(terminalSupportsColor(), source)}\n`
666
772
  : "";
667
- const exitText = `${credit}${hint ?? ""}`;
773
+ const limit = interactiveUi ? rateLimits.exitLine() : undefined;
774
+ const exitText = `${limit ? `${limit}\n` : ""}${credit}${hint ?? ""}`;
668
775
  // Writes to a Windows console or a pipe are asynchronous: let it land before exit.
669
776
  void (exitText ? writeStdout(exitText) : Promise.resolve()).then(markChildDone);
670
777
  void shutdown(exitCodeForChild(code, signal));
@@ -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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"}
@@ -36,6 +36,13 @@ export interface SizeSample {
36
36
  /** input_tokens + cache_read_input_tokens + cache_creation_input_tokens. */
37
37
  tokens: number;
38
38
  forwardedBytes: number;
39
+ /**
40
+ * The body's inline images: their base64 bytes (within forwardedBytes) and
41
+ * visual tokens (within tokens), so a later estimate scales only its text.
42
+ * Absent on a sample recorded without them: its images count as text.
43
+ */
44
+ imageBytes?: number;
45
+ imageTokens?: number;
39
46
  }
40
47
  /** Where a count call goes: the proxy's upstream. */
41
48
  export interface CountTokensUpstream {
@@ -94,7 +101,15 @@ export interface CountTokensSessionOptions {
94
101
  export interface CountTokensSession {
95
102
  count(body: Buffer): Promise<CountTokensResult>;
96
103
  peek(body: Buffer): CountTokensResult | undefined;
104
+ /**
105
+ * Count `body` again, once per request, after its count ran out of time
106
+ * (outcome "timeout" or "deadline"), with a fresh allowance for its size;
107
+ * undefined when it did not, or the retry was spent.
108
+ */
109
+ retry?(body: Buffer): Promise<CountTokensResult> | undefined;
97
110
  }
111
+ /** Outcomes a retry may follow: the count ran out of time, not refused. */
112
+ export declare const RETRYABLE_COUNT_OUTCOMES: ReadonlySet<CountTokensOutcome>;
98
113
  /**
99
114
  * Exact results belong to this request and body, never a shared sample slot.
100
115
  * All counts of one request share one allowance: the largest body's
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"count-tokens.d.ts","sourceRoot":"","sources":["../src/count-tokens.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,12 @@ export function exceedsRequestLimit(bytes) {
81
81
  export function plausibleSample(sample) {
82
82
  if (!sample || !(sample.tokens > 0) || !(sample.forwardedBytes > 0))
83
83
  return false;
84
- const ratio = sample.tokens / sample.forwardedBytes;
84
+ // Judged on its text: image bytes carry few tokens whatever their size.
85
+ const textBytes = sample.forwardedBytes - (sample.imageBytes ?? 0);
86
+ const textTokens = sample.tokens - (sample.imageTokens ?? 0);
87
+ if (!(textBytes > 0) || !(textTokens > 0))
88
+ return false;
89
+ const ratio = textTokens / textBytes;
85
90
  return ratio >= MIN_PLAUSIBLE_TOKENS_PER_BYTE && ratio <= MAX_PLAUSIBLE_TOKENS_PER_BYTE;
86
91
  }
87
92
  /**
@@ -134,6 +139,8 @@ export class CountTokensCooldowns {
134
139
  this.entries.set(key, now + cooldownDuration(result.retryAfter, now));
135
140
  }
136
141
  }
142
+ /** Outcomes a retry may follow: the count ran out of time, not refused. */
143
+ export const RETRYABLE_COUNT_OUTCOMES = new Set(["timeout", "deadline"]);
137
144
  /**
138
145
  * Exact results belong to this request and body, never a shared sample slot.
139
146
  * All counts of one request share one allowance: the largest body's
@@ -146,8 +153,23 @@ export function createCountTokensSession(options, cooldowns = new CountTokensCoo
146
153
  const account = countAccountKey(options);
147
154
  const clock = new CountingClock();
148
155
  let allowance = 0;
156
+ let retried = false;
149
157
  return {
150
158
  peek: (body) => completed.get(bodyHash(body)),
159
+ retry: (body) => {
160
+ const key = bodyHash(body);
161
+ const prior = completed.get(key);
162
+ if (retried || !prior || !RETRYABLE_COUNT_OUTCOMES.has(prior.outcome) ||
163
+ options.signal?.aborted || cooldowns.active(account))
164
+ return undefined;
165
+ retried = true;
166
+ const timeoutMs = requestAllowance(options, body.length);
167
+ const attempt = clock.track(() => countUpstreamTokens({ ...options, body, timeoutMs }))
168
+ .then((result) => recordAttempt(options, cooldowns, account, result))
169
+ .then((result) => { completed.set(key, result); return result; });
170
+ pending.set(key, attempt);
171
+ return attempt;
172
+ },
151
173
  count: (body) => {
152
174
  const key = bodyHash(body);
153
175
  const existing = pending.get(key);