claude-code-infinite 1.0.21 → 1.0.24
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.
- package/README.md +129 -44
- package/dist/claude-env.d.ts +14 -1
- package/dist/claude-env.d.ts.map +1 -1
- package/dist/claude-env.js +17 -1
- package/dist/claude-env.js.map +1 -1
- package/dist/cli-args.d.ts +15 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +17 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-lifecycle.d.ts +4 -0
- package/dist/cli-lifecycle.d.ts.map +1 -1
- package/dist/cli-lifecycle.js +18 -0
- package/dist/cli-lifecycle.js.map +1 -1
- package/dist/cli-main.js +174 -51
- package/dist/cli-main.js.map +1 -1
- package/dist/cli-output.d.ts +15 -0
- package/dist/cli-output.d.ts.map +1 -0
- package/dist/cli-output.js +26 -0
- package/dist/cli-output.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/count-tokens.d.ts.map +1 -1
- package/dist/count-tokens.js +7 -1
- package/dist/count-tokens.js.map +1 -1
- package/dist/diagnostics-schema.d.ts +44 -0
- package/dist/diagnostics-schema.d.ts.map +1 -0
- package/dist/diagnostics-schema.js +162 -0
- package/dist/diagnostics-schema.js.map +1 -0
- package/dist/diagnostics.d.ts +116 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +316 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/first-tree.d.ts +11 -0
- package/dist/first-tree.d.ts.map +1 -0
- package/dist/first-tree.js +45 -0
- package/dist/first-tree.js.map +1 -0
- package/dist/hooks.d.ts +37 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +69 -9
- package/dist/hooks.js.map +1 -1
- package/dist/link-command.d.ts +50 -0
- package/dist/link-command.d.ts.map +1 -0
- package/dist/link-command.js +168 -0
- package/dist/link-command.js.map +1 -0
- package/dist/memtree-links.d.ts +2 -0
- package/dist/memtree-links.d.ts.map +1 -1
- package/dist/memtree-links.js +4 -0
- package/dist/memtree-links.js.map +1 -1
- package/dist/memtree-mcp-config.d.ts +28 -5
- package/dist/memtree-mcp-config.d.ts.map +1 -1
- package/dist/memtree-mcp-config.js +116 -47
- package/dist/memtree-mcp-config.js.map +1 -1
- package/dist/memtree-mcp.js +1 -1
- package/dist/memtree-newest.d.ts +1 -0
- package/dist/memtree-newest.d.ts.map +1 -1
- package/dist/memtree-newest.js +1 -1
- package/dist/memtree-newest.js.map +1 -1
- package/dist/memtree.d.ts +7 -0
- package/dist/memtree.d.ts.map +1 -1
- package/dist/memtree.js +8 -0
- package/dist/memtree.js.map +1 -1
- package/dist/prefix-store.js +3 -0
- package/dist/prefix-store.js.map +1 -1
- package/dist/proxy.d.ts +28 -2
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +88 -9
- package/dist/proxy.js.map +1 -1
- package/dist/reqlog.d.ts +17 -1
- package/dist/reqlog.d.ts.map +1 -1
- package/dist/reqlog.js.map +1 -1
- package/dist/resume-hint.d.ts +25 -0
- package/dist/resume-hint.d.ts.map +1 -0
- package/dist/resume-hint.js +36 -0
- package/dist/resume-hint.js.map +1 -0
- 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";
|
|
@@ -27,15 +28,21 @@ 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";
|
|
29
30
|
import { setupAutoUpdate } from "./auto-update-setup.js";
|
|
30
|
-
import { compactTargetFromEnv, isPrintInvocation, parseWrapperArgs, memtreeLinkPlacementFromEnv, } from "./cli-args.js";
|
|
31
|
+
import { compactTargetFromEnv, isPrintInvocation, parseWrapperArgs, memtreeLinkPlacementFromEnv, environmentOf, subcommandArgs, } from "./cli-args.js";
|
|
32
|
+
import { routeConsoleToStderr } from "./cli-output.js";
|
|
31
33
|
import { runMemtreeFetchCommand } from "./memtree-fetch.js";
|
|
34
|
+
import { runLinkCommand } from "./link-command.js";
|
|
32
35
|
import { runMemtreeMcpServer } from "./memtree-mcp.js";
|
|
33
36
|
import { readProjectMeta } from "./project-meta.js";
|
|
34
|
-
import {
|
|
37
|
+
import { planMemtreeMcp, withMemtreeMcpArgs, writeMemtreeMcpConfig, } from "./memtree-mcp-config.js";
|
|
35
38
|
import { claudeChildEnv, claudeNativeOneMillionContextEnabled, } from "./claude-env.js";
|
|
36
|
-
import { createSignalShutdownHandler, exitCodeForChild, } from "./cli-lifecycle.js";
|
|
39
|
+
import { createSignalShutdownHandler, exitCodeForChild, settleWithin, writeStdout, } from "./cli-lifecycle.js";
|
|
37
40
|
import { getPolychatApiKey, setPolychatApiKey, getLocalPolychatApiKey, setLocalPolychatApiKey, getStagingPolychatApiKey, setStagingPolychatApiKey, getConfigDir, loadConfig, } from "./config.js";
|
|
38
41
|
import { repairStrandedResume, resumeSessionId } from "./resume-repair.js";
|
|
42
|
+
import { Diagnostics, DiagnosticsRequestSink, recordError } from "./diagnostics.js";
|
|
43
|
+
import { signalName } from "./diagnostics-schema.js";
|
|
44
|
+
import { PACKAGE_DIR, detectInstallMethod } from "./auto-update.js";
|
|
45
|
+
import { exitResumeHint } from "./resume-hint.js";
|
|
39
46
|
// MemTree (polychat) API hosts — /v1/context_memory lives at the app root.
|
|
40
47
|
const POLYCHAT_BASE_URL = "https://api.polychat.co";
|
|
41
48
|
const STAGING_BASE_URL = "https://polychat-staging-421312241218.us-west2.run.app";
|
|
@@ -45,10 +52,14 @@ const POLYCHAT_AUTH_URL = "https://polychat.co/auth?memtree=true&utm_source=ccc"
|
|
|
45
52
|
const SHUTDOWN_PROXY_DRAIN_MS = 5_000;
|
|
46
53
|
const SHUTDOWN_MEMTREE_DRAIN_MS = 2_000;
|
|
47
54
|
const SHUTDOWN_LOG_FLUSH_MS = 2_000;
|
|
55
|
+
/** Shutdown's wait for the child's exit and the resume hint's (asynchronous) write. */
|
|
56
|
+
const SHUTDOWN_OUTPUT_FLUSH_MS = 1_000;
|
|
48
57
|
// Payment gate: how long "subscribe now" waits for the Stripe webhook to flip
|
|
49
58
|
// the key to paid, and how often it re-asks the status probe meanwhile.
|
|
50
59
|
const SUBSCRIBE_WAIT_MS = 180_000;
|
|
51
60
|
const SUBSCRIBE_POLL_MS = 3_000;
|
|
61
|
+
/** This launch's diagnostics, for the top-level error handler. */
|
|
62
|
+
let activeDiagnostics = null;
|
|
52
63
|
function openUrl(url) {
|
|
53
64
|
const platform = process.platform;
|
|
54
65
|
const command = platform === "darwin" ? "open" : platform === "win32" ? "explorer" : "xdg-open";
|
|
@@ -56,11 +67,8 @@ function openUrl(url) {
|
|
|
56
67
|
? exec(`${command} "${url}"`, { shell: "cmd.exe" })
|
|
57
68
|
: exec(`${command} "${url}"`);
|
|
58
69
|
}
|
|
59
|
-
async function promptForApiKey(mode) {
|
|
60
|
-
const rl = readline.createInterface({
|
|
61
|
-
input: process.stdin,
|
|
62
|
-
output: process.stdout,
|
|
63
|
-
});
|
|
70
|
+
async function promptForApiKey(mode, output) {
|
|
71
|
+
const rl = readline.createInterface({ input: process.stdin, output });
|
|
64
72
|
const url = mode === "local"
|
|
65
73
|
? "http://local.polychat.co:5173/memtree-api"
|
|
66
74
|
: POLYCHAT_AUTH_URL;
|
|
@@ -85,7 +93,7 @@ async function promptForApiKey(mode) {
|
|
|
85
93
|
* mean "unknown" (null): the caller stays quiet. Bounded by a short timeout
|
|
86
94
|
* and never throws, so startup is never gated on polychat availability.
|
|
87
95
|
*/
|
|
88
|
-
async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
|
|
96
|
+
async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000, diagnostics) {
|
|
89
97
|
try {
|
|
90
98
|
const res = await fetch(`${baseUrl.replace(/\/$/, "")}/v1/context_memory/status`, {
|
|
91
99
|
headers: {
|
|
@@ -95,11 +103,23 @@ async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
|
|
|
95
103
|
},
|
|
96
104
|
signal: AbortSignal.timeout(timeoutMs),
|
|
97
105
|
});
|
|
98
|
-
if (!res.ok)
|
|
106
|
+
if (!res.ok) {
|
|
107
|
+
diagnostics?.record("key_status", {
|
|
108
|
+
result: res.status === 401 ? "invalid" : res.status === 402 ? "payment_required" : "unknown",
|
|
109
|
+
status: res.status,
|
|
110
|
+
});
|
|
99
111
|
return null;
|
|
100
|
-
|
|
112
|
+
}
|
|
113
|
+
const status = parsePaymentStatus(await res.json());
|
|
114
|
+
diagnostics?.record("key_status", {
|
|
115
|
+
result: status?.paid === false ? "payment_required" : status ? "ok" : "unknown",
|
|
116
|
+
status: res.status,
|
|
117
|
+
});
|
|
118
|
+
return status;
|
|
101
119
|
}
|
|
102
|
-
catch {
|
|
120
|
+
catch (err) {
|
|
121
|
+
if (diagnostics)
|
|
122
|
+
recordError(diagnostics, "status_probe_failed", err);
|
|
103
123
|
return null;
|
|
104
124
|
}
|
|
105
125
|
}
|
|
@@ -110,13 +130,16 @@ async function fetchPaymentStatus(baseUrl, apiKey, timeoutMs = 2000) {
|
|
|
110
130
|
* the webhook to flip the key to paid), use claude without MemTree (launch
|
|
111
131
|
* uncompressed, the in-session notice still fires), or quit.
|
|
112
132
|
*/
|
|
113
|
-
async function runPaymentGate(status, recheck) {
|
|
133
|
+
async function runPaymentGate(status, recheck, diagnostics) {
|
|
114
134
|
let current = status;
|
|
115
135
|
for (;;) {
|
|
116
136
|
console.warn(`\x1b[1;33m${formatPaymentNotice(current, { hyperlinks: true })}\x1b[0m\n`);
|
|
117
137
|
const choice = parsePaymentChoice(await askLine(PAYMENT_GATE_PROMPT));
|
|
118
|
-
|
|
138
|
+
diagnostics.record("payment_gate", { choice });
|
|
139
|
+
if (choice === "quit") {
|
|
140
|
+
await diagnostics.flush();
|
|
119
141
|
process.exit(0);
|
|
142
|
+
}
|
|
120
143
|
if (choice === "continue") {
|
|
121
144
|
console.log("\nStarting claude without MemTree.\n");
|
|
122
145
|
return;
|
|
@@ -124,6 +147,7 @@ async function runPaymentGate(status, recheck) {
|
|
|
124
147
|
openUrl(current.url ?? FALLBACK_SUBSCRIBE_URL);
|
|
125
148
|
console.log("\nOpened the subscribe page. Waiting for payment to complete…");
|
|
126
149
|
const paid = await waitUntilPaid(recheck, SUBSCRIBE_WAIT_MS, SUBSCRIBE_POLL_MS);
|
|
150
|
+
diagnostics.record("payment_gate", { choice: paid ? "paid" : "still_unpaid" });
|
|
127
151
|
if (paid) {
|
|
128
152
|
console.log("\x1b[1;32m✓ MemTree is on — thank you.\x1b[0m\n");
|
|
129
153
|
return;
|
|
@@ -164,6 +188,19 @@ function installedClaudeSupportsMessageDisplay() {
|
|
|
164
188
|
return false;
|
|
165
189
|
}
|
|
166
190
|
}
|
|
191
|
+
/** `ccc link` in this environment: its server, its saved key, real stdio. */
|
|
192
|
+
function linkDeps(mode) {
|
|
193
|
+
return {
|
|
194
|
+
fetch: globalThis.fetch,
|
|
195
|
+
baseUrl: mode === "local" ? LOCAL_BASE_URL : mode === "staging" ? STAGING_BASE_URL : POLYCHAT_BASE_URL,
|
|
196
|
+
apiKey: mode === "local" ? getLocalPolychatApiKey() :
|
|
197
|
+
mode === "staging" ? getStagingPolychatApiKey() :
|
|
198
|
+
getPolychatApiKey(),
|
|
199
|
+
command: mode === "production" ? "ccc" : `ccc ${mode}`,
|
|
200
|
+
stdout: (text) => process.stdout.write(text),
|
|
201
|
+
stderr: (text) => process.stderr.write(text),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
167
204
|
async function main() {
|
|
168
205
|
const parsedArgs = parseWrapperArgs(process.argv.slice(2));
|
|
169
206
|
const isDebugMode = parsedArgs.debug;
|
|
@@ -171,20 +208,35 @@ async function main() {
|
|
|
171
208
|
// `ccc fetch <memtree-url>`: read one of the user's MemTree pages with the
|
|
172
209
|
// stored key and print it. No proxy, no Claude — an agent's escape hatch
|
|
173
210
|
// when it is not running inside a ccc session.
|
|
174
|
-
if (filteredArgs[0] === "fetch") {
|
|
175
|
-
process.exit(await runMemtreeFetchCommand(filteredArgs.slice(1)));
|
|
176
|
-
}
|
|
177
211
|
// `ccc memtree-mcp`: the `memtree` MCP server over stdio (memtree-mcp.ts),
|
|
178
212
|
// for an --mcp-config a caller writes (e.g. the memory recall probe). It
|
|
179
213
|
// reads the tree through the ccc proxy in its inherited ANTHROPIC_BASE_URL.
|
|
180
|
-
|
|
214
|
+
// Both also follow `local`/`staging`, whose proxy the base URL already is.
|
|
215
|
+
const subcommand = subcommandArgs(filteredArgs);
|
|
216
|
+
if (subcommand?.name === "fetch") {
|
|
217
|
+
process.exit(await runMemtreeFetchCommand(subcommand.args));
|
|
218
|
+
}
|
|
219
|
+
if (subcommand?.name === "memtree-mcp") {
|
|
181
220
|
runMemtreeMcpServer();
|
|
182
221
|
return;
|
|
183
222
|
}
|
|
184
|
-
const mode = filteredArgs
|
|
185
|
-
|
|
186
|
-
|
|
223
|
+
const mode = environmentOf(filteredArgs);
|
|
224
|
+
// `ccc [staging|local] link <session-id>`: the session's newest MemTree page.
|
|
225
|
+
if (subcommand?.name === "link") {
|
|
226
|
+
// exitCode, not exit(): a piped stdout (async on macOS) gets its line out first.
|
|
227
|
+
process.exitCode = await runLinkCommand(subcommand.args, linkDeps(mode));
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
187
230
|
const claudeArgs = mode !== "production" ? filteredArgs.slice(1) : filteredArgs;
|
|
231
|
+
// Interactive UI only: print/non-TTY invocations are programmatic
|
|
232
|
+
// interfaces whose output must stay byte-for-byte vanilla, and they get no
|
|
233
|
+
// notice plugin to deliver a banner anyway. Their stdout is Claude's alone:
|
|
234
|
+
// ccc's own lines (banner, mode, request log, debug) go to stderr.
|
|
235
|
+
const interactiveUi = !isPrintInvocation(claudeArgs) &&
|
|
236
|
+
process.stdin.isTTY === true &&
|
|
237
|
+
process.stdout.isTTY === true;
|
|
238
|
+
if (!interactiveUi)
|
|
239
|
+
routeConsoleToStderr();
|
|
188
240
|
printBanner();
|
|
189
241
|
if (isDebugMode) {
|
|
190
242
|
console.log("\x1b[1;36m🔍 DEBUG MODE\x1b[0m\n");
|
|
@@ -195,16 +247,31 @@ async function main() {
|
|
|
195
247
|
else if (mode === "staging") {
|
|
196
248
|
console.log("\x1b[1;35m🚧 STAGING MODE\x1b[0m\n");
|
|
197
249
|
}
|
|
250
|
+
const memtreeBaseUrl = mode === "local" ? LOCAL_BASE_URL :
|
|
251
|
+
mode === "staging" ? STAGING_BASE_URL :
|
|
252
|
+
POLYCHAT_BASE_URL;
|
|
198
253
|
// Get or prompt for the MemTree API key (separate keys per environment)
|
|
199
254
|
let polychatApiKey = mode === "local" ? getLocalPolychatApiKey() :
|
|
200
255
|
mode === "staging" ? getStagingPolychatApiKey() :
|
|
201
256
|
getPolychatApiKey();
|
|
257
|
+
// Client diagnostics (diagnostics.ts): versions, OS and errors, never content.
|
|
258
|
+
// Started before the key prompt so a signup that stalls there is visible too.
|
|
259
|
+
const diagnostics = startDiagnostics(mode, memtreeBaseUrl, polychatApiKey);
|
|
202
260
|
if (!polychatApiKey) {
|
|
203
|
-
|
|
261
|
+
diagnostics.record("sign_in_prompt");
|
|
262
|
+
// The user may quit at the prompt: send what is known now.
|
|
263
|
+
diagnostics.flushNow();
|
|
264
|
+
// Only a terminal can answer; a print run's stdout stays Claude's.
|
|
265
|
+
polychatApiKey = process.stdin.isTTY === true
|
|
266
|
+
? await promptForApiKey(mode, interactiveUi ? process.stdout : process.stderr)
|
|
267
|
+
: undefined;
|
|
204
268
|
if (!polychatApiKey) {
|
|
205
|
-
console.error("A MemTree API key is required.");
|
|
269
|
+
console.error("A MemTree API key is required: run `ccc` in a terminal once to save one.");
|
|
270
|
+
await diagnostics.flush();
|
|
206
271
|
process.exit(1);
|
|
207
272
|
}
|
|
273
|
+
diagnostics.record("key_saved");
|
|
274
|
+
diagnostics.setApiKey(polychatApiKey);
|
|
208
275
|
if (mode === "local") {
|
|
209
276
|
setLocalPolychatApiKey(polychatApiKey);
|
|
210
277
|
}
|
|
@@ -216,15 +283,6 @@ async function main() {
|
|
|
216
283
|
}
|
|
217
284
|
console.log("API key saved.\n");
|
|
218
285
|
}
|
|
219
|
-
const memtreeBaseUrl = mode === "local" ? LOCAL_BASE_URL :
|
|
220
|
-
mode === "staging" ? STAGING_BASE_URL :
|
|
221
|
-
POLYCHAT_BASE_URL;
|
|
222
|
-
// Interactive UI only: print/non-TTY invocations are programmatic
|
|
223
|
-
// interfaces whose output must stay byte-for-byte vanilla, and they get no
|
|
224
|
-
// notice plugin to deliver a banner anyway.
|
|
225
|
-
const interactiveUi = !isPrintInvocation(claudeArgs) &&
|
|
226
|
-
process.stdin.isTTY === true &&
|
|
227
|
-
process.stdout.isTTY === true;
|
|
228
286
|
// Check the key's payment status before claude takes over the terminal.
|
|
229
287
|
// Bounded (2s) and null on error — startup never fails or hangs on polychat
|
|
230
288
|
// availability. The npm update check runs concurrently under the same
|
|
@@ -236,7 +294,7 @@ async function main() {
|
|
|
236
294
|
// call so sessions can be found by project; read once, never fails.
|
|
237
295
|
const config = loadConfig();
|
|
238
296
|
const [paymentStatus, updateAvailable, projectMeta] = await Promise.all([
|
|
239
|
-
fetchPaymentStatus(memtreeBaseUrl, polychatApiKey),
|
|
297
|
+
fetchPaymentStatus(memtreeBaseUrl, polychatApiKey, undefined, diagnostics),
|
|
240
298
|
interactiveUi
|
|
241
299
|
? checkForUpdate({
|
|
242
300
|
currentVersion: CLIENT_VERSION,
|
|
@@ -248,7 +306,7 @@ async function main() {
|
|
|
248
306
|
]);
|
|
249
307
|
if (paymentStatus?.paid === false) {
|
|
250
308
|
if (interactiveUi) {
|
|
251
|
-
await runPaymentGate(paymentStatus, () => fetchPaymentStatus(memtreeBaseUrl, polychatApiKey));
|
|
309
|
+
await runPaymentGate(paymentStatus, () => fetchPaymentStatus(memtreeBaseUrl, polychatApiKey), diagnostics);
|
|
252
310
|
}
|
|
253
311
|
else {
|
|
254
312
|
console.warn(`\x1b[1;33m${formatPaymentNotice(paymentStatus)}\x1b[0m`);
|
|
@@ -269,33 +327,42 @@ async function main() {
|
|
|
269
327
|
: null;
|
|
270
328
|
if (isDebugMode && autoUpdate)
|
|
271
329
|
console.log(`[DEBUG] ${autoUpdate.debugLine}`);
|
|
330
|
+
diagnostics.setContext({ interactive: interactiveUi });
|
|
331
|
+
if (autoUpdate?.bannerUpdate) {
|
|
332
|
+
diagnostics.record("update_hint", { latest: autoUpdate.bannerUpdate.latest });
|
|
333
|
+
}
|
|
272
334
|
// Always-on request/timing log (reqlog.ts): messages, MemTree calls, and
|
|
273
335
|
// successful notice claims, so incidents can be reconstructed after the
|
|
274
336
|
// fact without --debug. Never blocks or throws.
|
|
275
337
|
const reqlog = new RequestLogger();
|
|
338
|
+
// The proxy and MemTree client log through this tee: unchanged lines in the
|
|
339
|
+
// request log, plus a few allowlisted numbers for diagnostics.
|
|
340
|
+
const observedLog = new DiagnosticsRequestSink(reqlog, diagnostics);
|
|
276
341
|
// The `memtree` MCP server (memtree-mcp-config.ts): registered by ccc for
|
|
277
|
-
//
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
|
|
281
|
-
const
|
|
342
|
+
// every session, interactive or print/non-TTY, unless CCC_MEMTREE_MCP=0,
|
|
343
|
+
// the caller's own --mcp-config names a `memtree` server, or its
|
|
344
|
+
// --disallowedTools covers all four tools. MemTree is told
|
|
345
|
+
// (x-memtree-tools) only which tools the session really has.
|
|
346
|
+
const memtreeMcpPlan = planMemtreeMcp(claudeArgs, process.env);
|
|
282
347
|
// Start the local proxy. Claude Code's OAuth token flows through it straight
|
|
283
348
|
// to api.anthropic.com and never reaches polychat.co.
|
|
284
349
|
const memtree = new MemtreeClient({
|
|
285
350
|
baseUrl: memtreeBaseUrl,
|
|
286
351
|
apiKey: polychatApiKey,
|
|
287
352
|
debug: isDebugMode,
|
|
288
|
-
reqlog,
|
|
353
|
+
reqlog: observedLog,
|
|
289
354
|
// Mutable below: a failed config write withdraws it before any call.
|
|
290
|
-
memtreeTools:
|
|
355
|
+
memtreeTools: memtreeMcpPlan.tools.length ? memtreeMcpPlan.tools.join(",") : undefined,
|
|
291
356
|
});
|
|
292
357
|
const nativeOneMillionContext = claudeNativeOneMillionContextEnabled(process.env);
|
|
293
358
|
const memtreeLinkPlacement = memtreeLinkPlacementFromEnv(process.env.CCC_MEMTREE_LINK);
|
|
359
|
+
const memtreeLinkStore = new MemtreeLinkStore();
|
|
294
360
|
const transcriptUsage = new ClaudeTranscriptUsage();
|
|
295
361
|
const proxy = await startProxy({
|
|
296
362
|
memtree,
|
|
297
363
|
debug: isDebugMode,
|
|
298
|
-
reqlog,
|
|
364
|
+
reqlog: observedLog,
|
|
365
|
+
diagnostics,
|
|
299
366
|
nativeOneMillionContext,
|
|
300
367
|
// Kill switch for tool-turn COMPACTION only: CCC_TOOL_ROUTE_RECOVERY=0
|
|
301
368
|
// makes tool turns pure passthrough — no size check, no compress call;
|
|
@@ -321,7 +388,9 @@ async function main() {
|
|
|
321
388
|
// CCC_MEMTREE_LINK=message|stop|success|off picks where the MemTree page
|
|
322
389
|
// link is shown while the placement is being tried out; see ProxyOptions.
|
|
323
390
|
memtreeLinkPlacement,
|
|
324
|
-
memtreeLinkStore
|
|
391
|
+
memtreeLinkStore,
|
|
392
|
+
// A session's first tree gets a one-time notice saying what it is.
|
|
393
|
+
firstTreeIntro: new FirstTreeMarker(memtreeLinkStore),
|
|
325
394
|
// Each session's adopted compressed prefix, so a resumed session's first
|
|
326
395
|
// turn rides it instead of blocking on a fresh compress.
|
|
327
396
|
stablePrefixStore: new StablePrefixStore(),
|
|
@@ -379,16 +448,15 @@ async function main() {
|
|
|
379
448
|
}
|
|
380
449
|
}
|
|
381
450
|
let memtreeMcpConfig = null;
|
|
382
|
-
if (
|
|
451
|
+
if (memtreeMcpPlan.register) {
|
|
383
452
|
try {
|
|
384
453
|
memtreeMcpConfig = writeMemtreeMcpConfig(`http://127.0.0.1:${proxy.port}`);
|
|
385
|
-
childArgs = withMemtreeMcpArgs(childArgs, memtreeMcpConfig.path);
|
|
454
|
+
childArgs = withMemtreeMcpArgs(childArgs, memtreeMcpConfig.path, memtreeMcpPlan.tools);
|
|
386
455
|
}
|
|
387
456
|
catch (err) {
|
|
388
457
|
// Optional like the notice plugin; without it MemTree must not name
|
|
389
|
-
// tools the session lacks.
|
|
390
|
-
|
|
391
|
-
memtree.setMemtreeTools(undefined);
|
|
458
|
+
// tools the session lacks (ccc registers only when the caller has none).
|
|
459
|
+
memtree.setMemtreeTools(undefined);
|
|
392
460
|
if (isDebugMode) {
|
|
393
461
|
console.error(`[DEBUG] MemTree MCP server disabled: ${String(err)}`);
|
|
394
462
|
}
|
|
@@ -401,6 +469,11 @@ async function main() {
|
|
|
401
469
|
stdio: "inherit",
|
|
402
470
|
});
|
|
403
471
|
let shuttingDown = false;
|
|
472
|
+
// Settles once the child has exited and the resume hint (if any) is written,
|
|
473
|
+
// or the child failed to start. Awaited (bounded) just before exiting, so a
|
|
474
|
+
// signal whose cleanup finishes first still lets the hint print.
|
|
475
|
+
let markChildDone = () => { };
|
|
476
|
+
const childDone = new Promise((resolve) => { markChildDone = resolve; });
|
|
404
477
|
const shutdown = async (code) => {
|
|
405
478
|
if (shuttingDown)
|
|
406
479
|
return;
|
|
@@ -416,7 +489,9 @@ async function main() {
|
|
|
416
489
|
// would never fire), inside the same bounded background drain.
|
|
417
490
|
memtree.flushFinalIndexes();
|
|
418
491
|
await memtree.drainBackground(SHUTDOWN_MEMTREE_DRAIN_MS);
|
|
419
|
-
|
|
492
|
+
// Before the final flushes, so a late child exit's diagnostics event is sent.
|
|
493
|
+
await settleWithin(childDone, SHUTDOWN_OUTPUT_FLUSH_MS);
|
|
494
|
+
await Promise.all([reqlog.flush(SHUTDOWN_LOG_FLUSH_MS), diagnostics.flush()]);
|
|
420
495
|
process.exit(code);
|
|
421
496
|
};
|
|
422
497
|
const handleShutdownSignal = createSignalShutdownHandler({
|
|
@@ -441,24 +516,72 @@ async function main() {
|
|
|
441
516
|
process.on("SIGTERM", () => handleShutdownSignal("SIGTERM"));
|
|
442
517
|
// The background install starts once Claude Code is up; it outlives this
|
|
443
518
|
// process if the session ends first.
|
|
444
|
-
autoUpdate?.scheduleInstall()
|
|
519
|
+
autoUpdate?.scheduleInstall(undefined, (result) => {
|
|
520
|
+
diagnostics.record("auto_update", { result });
|
|
521
|
+
diagnostics.flushNow();
|
|
522
|
+
});
|
|
445
523
|
child.on("error", (err) => {
|
|
446
524
|
if (err.code === "ENOENT") {
|
|
525
|
+
diagnostics.record("claude_missing");
|
|
447
526
|
console.error("Could not find 'claude' command. Make sure Claude Code is installed.");
|
|
448
527
|
}
|
|
449
528
|
else {
|
|
529
|
+
recordError(diagnostics, "spawn_failed", err);
|
|
450
530
|
console.error("Failed to start claude:", err.message);
|
|
451
531
|
}
|
|
532
|
+
markChildDone();
|
|
452
533
|
void shutdown(1);
|
|
453
534
|
});
|
|
454
535
|
child.on("exit", (code, signal) => {
|
|
536
|
+
if (code !== 0) {
|
|
537
|
+
diagnostics.record("claude_exit", { code: code ?? undefined, signal: signalName(signal) });
|
|
538
|
+
}
|
|
539
|
+
// Under Claude Code's own "claude --resume <id>", which would skip MemTree.
|
|
540
|
+
const hint = exitResumeHint({
|
|
541
|
+
interactive: interactiveUi,
|
|
542
|
+
sessionId: proxy.mainSessionId(),
|
|
543
|
+
mode,
|
|
544
|
+
color: terminalSupportsColor(),
|
|
545
|
+
});
|
|
546
|
+
// Writes to a Windows console or a pipe are asynchronous: let it land before exit.
|
|
547
|
+
void (hint ? writeStdout(hint) : Promise.resolve()).then(markChildDone);
|
|
455
548
|
void shutdown(exitCodeForChild(code, signal));
|
|
456
549
|
});
|
|
457
550
|
}
|
|
458
|
-
main().catch((err) => {
|
|
551
|
+
main().catch(async (err) => {
|
|
459
552
|
console.error(err);
|
|
553
|
+
if (activeDiagnostics) {
|
|
554
|
+
recordError(activeDiagnostics, "startup_failed", err);
|
|
555
|
+
await activeDiagnostics.flush();
|
|
556
|
+
}
|
|
460
557
|
process.exit(1);
|
|
461
558
|
});
|
|
559
|
+
/**
|
|
560
|
+
* This launch's diagnostics: environment context, install method, the first
|
|
561
|
+
* run of this install, and a periodic background flush. Off under any opt-out.
|
|
562
|
+
*/
|
|
563
|
+
function startDiagnostics(mode, baseUrl, apiKey) {
|
|
564
|
+
const diagnostics = new Diagnostics({
|
|
565
|
+
baseUrl, configDir: getConfigDir(), clientName: CLIENT_NAME, clientVersion: CLIENT_VERSION,
|
|
566
|
+
config: loadConfig(), apiKey,
|
|
567
|
+
});
|
|
568
|
+
activeDiagnostics = diagnostics;
|
|
569
|
+
if (!diagnostics.enabled)
|
|
570
|
+
return diagnostics;
|
|
571
|
+
try {
|
|
572
|
+
const method = detectInstallMethod({
|
|
573
|
+
packageDir: PACKAGE_DIR, env: process.env, uid: process.getuid?.(),
|
|
574
|
+
});
|
|
575
|
+
diagnostics.setContext({ mode, install_method: method.kind });
|
|
576
|
+
}
|
|
577
|
+
catch {
|
|
578
|
+
diagnostics.setContext({ mode });
|
|
579
|
+
}
|
|
580
|
+
if (diagnostics.firstRun)
|
|
581
|
+
diagnostics.record("first_run");
|
|
582
|
+
diagnostics.start();
|
|
583
|
+
return diagnostics;
|
|
584
|
+
}
|
|
462
585
|
/** `CCC_COMPACT_TARGET` ("500k", "20000", "off"): see cli-args.ts. */
|
|
463
586
|
/**
|
|
464
587
|
* A resumed session whose last response was recorded past Claude Code's limit
|
package/dist/cli-main.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface ConsoleLike {
|
|
2
|
+
log: (...args: unknown[]) => void;
|
|
3
|
+
info: (...args: unknown[]) => void;
|
|
4
|
+
debug: (...args: unknown[]) => void;
|
|
5
|
+
}
|
|
6
|
+
interface StreamLike {
|
|
7
|
+
isTTY?: boolean;
|
|
8
|
+
write(text: string): boolean;
|
|
9
|
+
}
|
|
10
|
+
/** Send `console.log`/`info`/`debug` to stderr for the rest of this process. */
|
|
11
|
+
export declare function routeConsoleToStderr(target?: ConsoleLike, stderr?: StreamLike): void;
|
|
12
|
+
/** SGR colour codes and OSC 8 hyperlinks (keeping their text) removed. */
|
|
13
|
+
export declare function stripAnsi(text: string): string;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=cli-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-output.d.ts","sourceRoot":"","sources":["../src/cli-output.ts"],"names":[],"mappings":"AASA,UAAU,WAAW;IACnB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,MAAM,GAAE,WAAqB,EAC7B,MAAM,GAAE,UAA2B,GAClC,IAAI,CASN;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where ccc's own lines go. In print (`-p`) and non-TTY runs stdout belongs
|
|
3
|
+
* to Claude Code: agents parse `--output-format json|stream-json` from it, so
|
|
4
|
+
* ccc's banner, mode line, request-log path and debug lines go to stderr
|
|
5
|
+
* instead (uncoloured when stderr is not a terminal). Claude Code itself
|
|
6
|
+
* inherits the real stdout and is unaffected.
|
|
7
|
+
*/
|
|
8
|
+
import { format } from "node:util";
|
|
9
|
+
/** Send `console.log`/`info`/`debug` to stderr for the rest of this process. */
|
|
10
|
+
export function routeConsoleToStderr(target = console, stderr = process.stderr) {
|
|
11
|
+
const plain = stderr.isTTY !== true;
|
|
12
|
+
const write = (...args) => {
|
|
13
|
+
const text = format(...args);
|
|
14
|
+
stderr.write(`${plain ? stripAnsi(text) : text}\n`);
|
|
15
|
+
};
|
|
16
|
+
target.log = write;
|
|
17
|
+
target.info = write;
|
|
18
|
+
target.debug = write;
|
|
19
|
+
}
|
|
20
|
+
/** SGR colour codes and OSC 8 hyperlinks (keeping their text) removed. */
|
|
21
|
+
export function stripAnsi(text) {
|
|
22
|
+
return text
|
|
23
|
+
.replace(/\x1b\]8;[^\x07\x1b]*(?:\x07|\x1b\\)/g, "")
|
|
24
|
+
.replace(/\x1b\[[0-9;]*[A-Za-z]/g, "");
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=cli-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-output.js","sourceRoot":"","sources":["../src/cli-output.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAanC,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAClC,SAAsB,OAAO,EAC7B,SAAqB,OAAO,CAAC,MAAM;IAEnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAe,EAAQ,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;IACnB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC;SACnD,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export interface Config {
|
|
|
6
6
|
updateCheck?: boolean;
|
|
7
7
|
/** false keeps the update hint but never installs in the background (auto-update.ts). */
|
|
8
8
|
autoUpdate?: boolean;
|
|
9
|
+
/** false turns off client diagnostics (diagnostics.ts). */
|
|
10
|
+
diagnostics?: boolean;
|
|
9
11
|
}
|
|
10
12
|
export declare function getConfigDir(): string;
|
|
11
13
|
export declare function loadConfig(): Config;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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;IACtB,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
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"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"count-tokens.d.ts","sourceRoot":"","sources":["../src/count-tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/count-tokens.js
CHANGED
|
@@ -26,6 +26,12 @@ import { approxTokensFromBytes } from "./reqlog.js";
|
|
|
26
26
|
* count is slow: a fast count returns as soon as it is done.
|
|
27
27
|
*/
|
|
28
28
|
export const COUNT_TOKENS_TIMEOUT_MS = 3_000;
|
|
29
|
+
/**
|
|
30
|
+
* Less deadline than this left is none: no count completes that fast, and a
|
|
31
|
+
* timer can fire a millisecond before Date.now() says it is due (Node 20), so
|
|
32
|
+
* a timed-out attempt would otherwise leave a sliver for a pointless second one.
|
|
33
|
+
*/
|
|
34
|
+
const MIN_COUNT_ATTEMPT_MS = 5;
|
|
29
35
|
/** Upload rate the allowance still covers, in bytes per ms (1 MB/s). */
|
|
30
36
|
export const COUNT_UPLOAD_BYTES_PER_MS = 1_000;
|
|
31
37
|
/** Most a request waits on counting, however large its bodies. */
|
|
@@ -153,7 +159,7 @@ export function createCountTokensSession(options, cooldowns = new CountTokensCoo
|
|
|
153
159
|
const remaining = allowance - clock.spent();
|
|
154
160
|
const skipped = options.signal?.aborted ? "aborted"
|
|
155
161
|
: tooLarge ? "too-large" : cooldowns.active(account) ? "cooldown"
|
|
156
|
-
: remaining
|
|
162
|
+
: remaining < MIN_COUNT_ATTEMPT_MS ? "deadline" : undefined;
|
|
157
163
|
const attempt = skipped
|
|
158
164
|
? Promise.resolve({ ms: 0, outcome: skipped, bytes: body.length })
|
|
159
165
|
: clock.track(() => countUpstreamTokens({ ...options, body, timeoutMs: remaining }))
|