claude-code-infinite 1.0.31 → 1.0.33

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 (79) hide show
  1. package/README.md +71 -56
  2. package/dist/claude-auth-status.d.ts +50 -0
  3. package/dist/claude-auth-status.d.ts.map +1 -0
  4. package/dist/claude-auth-status.js +213 -0
  5. package/dist/claude-auth-status.js.map +1 -0
  6. package/dist/claude-auth.d.ts +2 -1
  7. package/dist/claude-auth.d.ts.map +1 -1
  8. package/dist/claude-auth.js +2 -1
  9. package/dist/claude-auth.js.map +1 -1
  10. package/dist/claude-plan-warning.d.ts +13 -40
  11. package/dist/claude-plan-warning.d.ts.map +1 -1
  12. package/dist/claude-plan-warning.js +24 -75
  13. package/dist/claude-plan-warning.js.map +1 -1
  14. package/dist/cli-args.d.ts +7 -0
  15. package/dist/cli-args.d.ts.map +1 -1
  16. package/dist/cli-args.js +19 -0
  17. package/dist/cli-args.js.map +1 -1
  18. package/dist/cli-main.js +117 -17
  19. package/dist/cli-main.js.map +1 -1
  20. package/dist/count-tokens.d.ts +7 -3
  21. package/dist/count-tokens.d.ts.map +1 -1
  22. package/dist/count-tokens.js +6 -2
  23. package/dist/count-tokens.js.map +1 -1
  24. package/dist/diagnostics-schema.d.ts +5 -2
  25. package/dist/diagnostics-schema.d.ts.map +1 -1
  26. package/dist/diagnostics-schema.js +26 -6
  27. package/dist/diagnostics-schema.js.map +1 -1
  28. package/dist/diagnostics.d.ts +5 -1
  29. package/dist/diagnostics.d.ts.map +1 -1
  30. package/dist/diagnostics.js +7 -2
  31. package/dist/diagnostics.js.map +1 -1
  32. package/dist/hooks.d.ts +18 -1
  33. package/dist/hooks.d.ts.map +1 -1
  34. package/dist/hooks.js +57 -4
  35. package/dist/hooks.js.map +1 -1
  36. package/dist/memtree-mcp.d.ts +7 -0
  37. package/dist/memtree-mcp.d.ts.map +1 -1
  38. package/dist/memtree-mcp.js +12 -1
  39. package/dist/memtree-mcp.js.map +1 -1
  40. package/dist/memtree.d.ts +86 -3
  41. package/dist/memtree.d.ts.map +1 -1
  42. package/dist/memtree.js +305 -18
  43. package/dist/memtree.js.map +1 -1
  44. package/dist/notices.d.ts +2 -0
  45. package/dist/notices.d.ts.map +1 -1
  46. package/dist/notices.js +2 -0
  47. package/dist/notices.js.map +1 -1
  48. package/dist/open-url.d.ts +49 -0
  49. package/dist/open-url.d.ts.map +1 -0
  50. package/dist/open-url.js +100 -0
  51. package/dist/open-url.js.map +1 -0
  52. package/dist/proxy.d.ts +77 -1
  53. package/dist/proxy.d.ts.map +1 -1
  54. package/dist/proxy.js +618 -77
  55. package/dist/proxy.js.map +1 -1
  56. package/dist/reqlog.d.ts +21 -2
  57. package/dist/reqlog.d.ts.map +1 -1
  58. package/dist/reqlog.js.map +1 -1
  59. package/dist/request-sizing.d.ts +2 -0
  60. package/dist/request-sizing.d.ts.map +1 -1
  61. package/dist/request-sizing.js +5 -0
  62. package/dist/request-sizing.js.map +1 -1
  63. package/dist/resume-guidance.d.ts +102 -0
  64. package/dist/resume-guidance.d.ts.map +1 -0
  65. package/dist/resume-guidance.js +182 -0
  66. package/dist/resume-guidance.js.map +1 -0
  67. package/dist/route-fallback.d.ts +23 -0
  68. package/dist/route-fallback.d.ts.map +1 -1
  69. package/dist/route-fallback.js +44 -0
  70. package/dist/route-fallback.js.map +1 -1
  71. package/dist/sign-in-notice.d.ts +137 -0
  72. package/dist/sign-in-notice.d.ts.map +1 -0
  73. package/dist/sign-in-notice.js +300 -0
  74. package/dist/sign-in-notice.js.map +1 -0
  75. package/dist/subagent-hint.d.ts +31 -0
  76. package/dist/subagent-hint.d.ts.map +1 -0
  77. package/dist/subagent-hint.js +47 -0
  78. package/dist/subagent-hint.js.map +1 -0
  79. package/package.json +1 -1
package/README.md CHANGED
@@ -15,6 +15,51 @@ Infinite context for Claude Code: memory for long-running agents. Claude Code In
15
15
  [MemTree](https://memtree.dev) so their history can be easily searched, navigated, and understood,
16
16
  by you and by Claude, within a session and across all of them.
17
17
 
18
+ ## Requirements
19
+
20
+ * **[Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in
21
+ with Claude Pro or Max**
22
+ * [node.js 20.3 or newer](https://nodejs.org/en/download/)
23
+
24
+ <sub>Also works with an Anthropic API key that has credit, but that's far costlier than Pro or Max.</sub>
25
+
26
+ ## Setup
27
+
28
+ 1. Install Claude Code Infinite (Node ≥ 20.3; no git needed)
29
+ ```bash
30
+ npm install -g claude-code-infinite
31
+ ```
32
+ 2. Run it from your project folder
33
+ ```bash
34
+ ccc
35
+ ```
36
+
37
+ This will guide you through setting up your PolyChat key which you can also get [here](https://polychat.co/auth?memtree=true).
38
+
39
+ Needs [Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in with
40
+ Claude Pro or Max.
41
+
42
+ <details>
43
+ <summary>Don't have Claude Code in your terminal yet?</summary>
44
+
45
+ ```powershell
46
+ # Windows PowerShell
47
+ irm https://claude.ai/install.ps1 | iex
48
+ ```
49
+ ```bash
50
+ # macOS / Linux
51
+ curl -fsSL https://claude.ai/install.sh | bash
52
+ ```
53
+
54
+ Or just run `ccc`: when Claude Code isn't installed it offers to install it for you (with the
55
+ same official command) and starts it, and Claude Code asks you to sign in. The Claude desktop
56
+ app isn't enough: `ccc` needs the `claude` command in your terminal
57
+ ([help](#claude-code-isnt-installed)).
58
+
59
+ </details>
60
+
61
+ ## What it does
62
+
18
63
  While Claude works, MemTree summarizes each new batch of messages in the background and files it
19
64
  under a topic. Each topic gets its own summary, and the whole session gets one at the top. When a
20
65
  session outgrows the context window, Claude works from these summaries plus your most recent
@@ -38,9 +83,6 @@ work: your priorities, the nuances of your projects, your company and your envir
38
83
  `/compact` would wipe that detail, MemTree keeps it, so the thread becomes an expert in you. Let it
39
84
  orchestrate dozens of subagents on your behalf.
40
85
 
41
- > [!IMPORTANT]
42
- > Needs [Claude Code in your terminal](#setup), signed in with Claude Pro or Max.
43
-
44
86
  ## Search across sessions
45
87
 
46
88
  Every `ccc` session is indexed as it runs, and Claude gets read-only `memtree` tools over all of
@@ -58,7 +100,7 @@ your indexed sessions, so you can just ask:
58
100
  | `read_lines` | Reads the exact original transcript lines under a leaf. |
59
101
 
60
102
  Hits name their node, so Claude goes from a search hit to the summary around it and then to the
61
- exact lines. Type `/memtree-view` for the link to this session's tree. Details are under
103
+ exact lines. Type `/memtree-view` to open this session's tree in your browser. Details are under
62
104
  [Memory tools](#memory-tools).
63
105
 
64
106
  ## Long-session benchmark
@@ -130,49 +172,6 @@ the history doesn't fit. Grading used a fixed rubric (coverage 30, fix quality 3
130
172
  session's decisions 15, report accuracy 20, process 5); the harness and the answer key stay
131
173
  private because they come from a private codebase.
132
174
 
133
- ## Requirements
134
-
135
- * **[Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in
136
- with Claude Pro or Max** ([don't have it yet?](#setup))
137
- * [node.js 20.3 or newer](https://nodejs.org/en/download/)
138
-
139
- <sub>Also works with an Anthropic API key that has credit, but that's far costlier than Pro or Max.</sub>
140
-
141
- ## Setup
142
-
143
- 1. Install Claude Code Infinite (Node ≥ 20.3; no git needed)
144
- ```bash
145
- npm install -g claude-code-infinite
146
- ```
147
- 2. Run it from your project folder
148
- ```bash
149
- ccc
150
- ```
151
-
152
- This will guide you through setting up your PolyChat key which you can also get [here](https://polychat.co/auth?memtree=true).
153
-
154
- Needs [Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in with
155
- Claude Pro or Max.
156
-
157
- <details>
158
- <summary>Don't have Claude Code yet?</summary>
159
-
160
- ```powershell
161
- # Windows PowerShell
162
- irm https://claude.ai/install.ps1 | iex
163
- ```
164
- ```bash
165
- # macOS / Linux
166
- curl -fsSL https://claude.ai/install.sh | bash
167
- ```
168
-
169
- Or just run `ccc`: when Claude Code isn't installed it offers to install it for you (with the
170
- same official command) and starts it, and Claude Code asks you to sign in. The Claude desktop
171
- app isn't enough: `ccc` needs the `claude` command in your terminal
172
- ([help](#claude-code-isnt-installed)).
173
-
174
- </details>
175
-
176
175
  ## Environments
177
176
 
178
177
  The tool supports multiple environments (this selects the MemTree compression API only — Anthropic traffic always goes directly from your machine to api.anthropic.com):
@@ -190,7 +189,7 @@ locally, so they cost no model turn.
190
189
  | Command | What it does |
191
190
  | --- | --- |
192
191
  | `/ccc:memtree` | Lists the MemTree commands and links your usage dashboard. |
193
- | `/ccc:memtree-view` | Shows the link to this session's MemTree page. |
192
+ | `/ccc:memtree-view` | Opens this session's MemTree page (its newest tree) in your browser and prints its one link. It only prints the link in `-p`/non-TTY runs, over SSH, in CI, on Linux without a display, and for any URL that is not a page of the MemTree server `ccc` uses. |
194
193
  | `/ccc:memtree-compact [tokens]` | Compacts the session on your next message (to half the budget, or a target such as `400k`) and keeps the compressed history. |
195
194
  | `/ccc:memtree-compact off` | Goes back to sending the conversation whole. |
196
195
 
@@ -313,7 +312,7 @@ Turn diagnostics off with any of: `CCC_NO_DIAGNOSTICS=1`, `"diagnostics": false`
313
312
 
314
313
  ### Memory tools
315
314
 
316
- Every `ccc` session, interactive or headless (`-p` and non-TTY runs), gets a small MCP server, `memtree`, with four read-only tools (see [Search across sessions](#search-across-sessions)): `mcp__memtree__search` (`query`; optional `tree`, `"current"` for this session or omitted for all of your sessions; `mode` `text` (default, free) or `vector` (meaning, first page charged); `project`, `since`, `until`, `cursor`, `limit` (default 10, at most 50)), `mcp__memtree__read_node` (`node`, an address `<tree>#<id>` from search, or `id` with optional `tree`: summary, path from the root, children, leaf line range), `mcp__memtree__read_lines` (a leaf's `node`, or `block`, `start`, `end` with optional `tree`: exact transcript lines, at most 400 lines / 40k characters per call) (with `tail: true` instead, the newest messages after the tree that are not indexed yet) and `mcp__memtree__list` (your sessions, most recently active first; `since`, `until`, `project`, `q`, `cursor`, `limit`). Other sessions' trees are named explicitly by reference and authorized by your MemTree key. This session's tree (`tree: "current"`, or no `tree` on `read_node`/`read_lines`) is the one the current request was served from: the server asks the `ccc` proxy for `GET $ANTHROPIC_BASE_URL/memtree/current?session=<id>` (only that session's compression source page, or its stored source page on resume; `current.json?session=<id>` returns the page itself). Completed pages are cached. If the proxy temporarily serves an older prefix while a newer tree is indexing, the tools reuse that prefix during a 45-second cooldown, then check the page again. `ccc` registers it with `--mcp-config=<temp file>`, which keeps working under `--strict-mcp-config`, and pre-allows the four read-only tools; `CCC_MEMTREE_MCP=0` turns it off. The MCP process requires `CLAUDE_CODE_SESSION_ID` and checks that both the pointer and page belong to it. If Claude Code retains an MCP process with an old session ID after `/clear` or a session switch, reconnect the MCP server with the current session ID; it cannot infer a new identity from another session using the proxy. Your own choices win: if your `--mcp-config` already names a server `memtree`, `ccc` adds and pre-allows nothing (if it runs `ccc memtree-mcp`, or `ccc staging memtree-mcp`, the tools work as usual); `--allowedTools` lists are added together, so yours is kept and only the four memtree tools are pre-allowed; tools named by `--disallowedTools` (one tool, `mcp__memtree`, or `mcp__memtree__*`) are neither pre-allowed nor advertised. With `--continue`, Claude Code starts MCP servers under a new session id before it switches to the continued session, so this session's tree fails closed (`list` and searches across sessions still work); use `--resume <id>` instead. Whenever the tools are configured, compress calls carry `x-memtree-tools: search,read_node,read_lines,list` so MemTree tells the model how to use them.
315
+ Every `ccc` session, interactive or headless (`-p` and non-TTY runs), gets a small MCP server, `memtree`, with four read-only tools (see [Search across sessions](#search-across-sessions)): `mcp__memtree__search` (`query`; optional `tree`, `"current"` for this session or omitted for all of your sessions; `mode` `text` (default, free) or `vector` (meaning, first page charged); `project`, `since`, `until`, `cursor`, `limit` (default 10, at most 50)), `mcp__memtree__read_node` (`node`, an address `<tree>#<id>` from search, or `id` with optional `tree`: summary, path from the root, children, leaf line range), `mcp__memtree__read_lines` (a leaf's `node`, or `block`, `start`, `end` with optional `tree`: exact transcript lines, at most 400 lines / 40k characters per call) (with `tail: true` instead, the newest messages after the tree that are not indexed yet) and `mcp__memtree__list` (your sessions, most recently active first; `since`, `until`, `project`, `q`, `cursor`, `limit`). Other sessions' trees are named explicitly by reference and authorized by your MemTree key. This session's tree (`tree: "current"`, or no `tree` on `read_node`/`read_lines`) is the one the current request was served from: the server asks the `ccc` proxy for `GET $ANTHROPIC_BASE_URL/memtree/current?session=<id>` (only that session's compression source page, or its stored source page on resume; `current.json?session=<id>` returns the page itself). Completed pages are cached. If the proxy temporarily serves an older prefix while a newer tree is indexing, the tools reuse that prefix during a 45-second cooldown, then check the page again. `ccc` registers it with `--mcp-config=<temp file>`, which keeps working under `--strict-mcp-config`, and pre-allows the four read-only tools; `CCC_MEMTREE_MCP=0` turns it off. The MCP process requires `CLAUDE_CODE_SESSION_ID` and checks that both the pointer and page belong to it. If Claude Code retains an MCP process with an old session ID after `/clear` or a session switch, reconnect the MCP server with the current session ID; it cannot infer a new identity from another session using the proxy. Your own choices win: if your `--mcp-config` already names a server `memtree`, `ccc` adds and pre-allows nothing (if it runs `ccc memtree-mcp`, or `ccc staging memtree-mcp`, the tools work as usual); `--allowedTools` lists are added together, so yours is kept and only the four memtree tools are pre-allowed; tools named by `--disallowedTools` (one tool, `mcp__memtree`, or `mcp__memtree__*`) are neither pre-allowed nor advertised. With `--continue`, Claude Code starts MCP servers under a new session id before it switches to the continued session, so this session's tree fails closed (`list` and searches across sessions still work); use `--resume <id>` instead. Whenever the tools are configured, compress calls carry `x-memtree-tools: search,read_node,read_lines,list` so MemTree tells the model how to use them. The tools are loaded up front (`alwaysLoad`), in resumed sessions and subagents too; `search`'s description says so, because a resumed session keeps the MCP instructions and deferred-tools list it was first given, which may predate that. A subagent (the Agent/Task tool, foreground or background) gets one line at its start, from the SubagentStart hook while MemTree works: the parent's session id and newest tree, and to search it before re-deriving the parent's work.
317
316
 
318
317
  ### Headless / agents
319
318
 
@@ -379,13 +378,29 @@ If counting an assembled compressed prefix discovers that it is over budget,
379
378
  whether to forward or refuse it. The request log records that decision under
380
379
  `lateCountRecovery.outcome` as `compressed`, `forwarded`, or `refused`.
381
380
 
382
- A blocking compression call normally gets 15 seconds; when it fails, the request
383
- goes out on the old prefix or whole. When there is neither (no compressed prefix
384
- to ride, as on the first turn after `--resume`, and a whole request that delivery
385
- would refuse as over the window), the call gets 120 seconds instead, since a timeout
386
- could only end in a refusal. `CCC_COMPRESS_TIMEOUT_MS` overrides both. A Claude
387
- Code retry that arrives while the same session's compression of the same history
388
- is running waits for that call instead of starting another.
381
+ A blocking compression call normally gets 15 seconds plus 2.5 ms per KiB it uploads
382
+ (~79 seconds for a 26 MB session; MemTree has taken up to 53 seconds for one that size);
383
+ when it fails, the request goes out on the old prefix or whole. When there is neither
384
+ (no compressed prefix to ride, as on the first turn after `--resume`, and a whole
385
+ request that delivery would refuse as over the window), the call gets 120 seconds (or
386
+ its upload's budget, if longer) instead, since a timeout could only end in a refusal.
387
+ `CCC_COMPRESS_TIMEOUT_MS` overrides the 15 and 120 seconds. A Claude Code retry that
388
+ arrives while the same session's compression of the same history is running waits for
389
+ that call instead of starting another. On a 1M window, a main-thread compression the
390
+ turn stopped waiting for (or whose turn Claude Code abandoned) is not dropped: it runs on
391
+ to the long budget as the session's prepared prefix, and the next turn at the budget
392
+ waits for it and rides it instead of starting another (`compress.carriedOver` in
393
+ `requests.jsonl`). A compression whose connection drops before any answer (a Wi-Fi
394
+ switch: `ECONNRESET`, `EHOSTUNREACH`, ...) is sent once more within the same budget, and a
395
+ token count that loses its connection is retried like one that timed out.
396
+
397
+ Background indexing sends each conversation's history at most one call at a time, keeps
398
+ only the newest waiting call, and skips a call until the history has gained about 30,000
399
+ characters of text (the server's 10k-token index minimum) since the last one it sent.
400
+ A subagent is indexed once, when it ends (SubagentStop, or at exit for one still running),
401
+ and on every tool turn only once it passes half of its budget, so its tree is ready if
402
+ it ever needs compressing. Its tree, searchable with the MemTree tools and on its page,
403
+ therefore covers a running subagent's work only from the moment it ends.
389
404
 
390
405
  Before publishing a release, verify Claude subscription OAuth counting in a live
391
406
  session: launch this checkout's `node dist/cli.js --resume` with the normal Claude
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Claude Code's own answer to "am I signed in?": `claude auth status --json`
3
+ * (Claude Code 2.x). Unlike the config-file guess in claude-auth.ts, it knows
4
+ * where each OS keeps the credentials (macOS keychain, `.credentials.json` on
5
+ * Linux and Windows), which env key or setting wins, and that nobody is signed
6
+ * in at all, which the files cannot tell apart from "can't tell".
7
+ *
8
+ * Only four fields are read: loggedIn, authMethod, apiProvider and
9
+ * subscriptionType (plus apiKeySource's name). The email, organization and
10
+ * every other field are never parsed out or kept.
11
+ */
12
+ import type { ApiKeySource, ClaudeAuthType, ClaudePlan } from "./claude-auth.js";
13
+ /**
14
+ * How the probe went: answered, ran but said nothing usable, too slow, no such
15
+ * command, or not asked (the session's options change its sign-in).
16
+ */
17
+ export declare const AUTH_PROBE_RESULTS: readonly ["ok", "failed", "timeout", "unsupported", "skipped"];
18
+ export type AuthProbeResult = (typeof AUTH_PROBE_RESULTS)[number];
19
+ /** A slow Windows npm shim starts node twice; Claude Code itself answers in ~0.1 s. */
20
+ export declare const AUTH_PROBE_TIMEOUT_MS = 5000;
21
+ export interface ClaudeAuthStatus {
22
+ /** "none": Claude Code says nobody is signed in. */
23
+ auth: ClaudeAuthType;
24
+ plan: ClaudePlan;
25
+ /** The API key's source by name, for an env key or apiKeyHelper. */
26
+ keySource?: ApiKeySource;
27
+ /** Claude Code's "Anthropic Console account" sign-in (API usage billing). */
28
+ console: boolean;
29
+ }
30
+ export interface AuthProbe {
31
+ result: AuthProbeResult;
32
+ ms: number;
33
+ status?: ClaudeAuthStatus;
34
+ }
35
+ export interface ProbeOptions {
36
+ /** Arguments before `auth status --json` (tests run a script through node). */
37
+ leadingArgs?: string[];
38
+ env?: NodeJS.ProcessEnv;
39
+ timeoutMs?: number;
40
+ now?: () => number;
41
+ }
42
+ /** False when the session's own options may sign it in differently than the probe sees. */
43
+ export declare function probeAnswersForSession(args: readonly string[]): boolean;
44
+ /** The probe for a session it can't answer for: no sign-in guess (sign-in-notice.ts). */
45
+ export declare function skippedProbe(): AuthProbe;
46
+ /** Run `claude auth status --json`; never throws or rejects, and is bounded by timeoutMs. */
47
+ export declare function probeClaudeAuthStatus(command: string, opts?: ProbeOptions): Promise<AuthProbe>;
48
+ /** The sign-in from `claude auth status --json` output, or undefined when it is not that. */
49
+ export declare function parseAuthStatus(stdout: string, env?: NodeJS.ProcessEnv): ClaudeAuthStatus | undefined;
50
+ //# sourceMappingURL=claude-auth-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-auth-status.d.ts","sourceRoot":"","sources":["../src/claude-auth-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGjF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gEAAiE,CAAC;AACjG,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAS1C,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,oEAAoE;IACpE,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAGvE;AAED,yFAAyF;AACzF,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GACvC,OAAO,CAAC,SAAS,CAAC,CAmCpB;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnD,gBAAgB,GAAG,SAAS,CAoB9B"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Claude Code's own answer to "am I signed in?": `claude auth status --json`
3
+ * (Claude Code 2.x). Unlike the config-file guess in claude-auth.ts, it knows
4
+ * where each OS keeps the credentials (macOS keychain, `.credentials.json` on
5
+ * Linux and Windows), which env key or setting wins, and that nobody is signed
6
+ * in at all, which the files cannot tell apart from "can't tell".
7
+ *
8
+ * Only four fields are read: loggedIn, authMethod, apiProvider and
9
+ * subscriptionType (plus apiKeySource's name). The email, organization and
10
+ * every other field are never parsed out or kept.
11
+ */
12
+ import { spawn as spawnPlain } from "node:child_process";
13
+ import * as os from "node:os";
14
+ import * as path from "node:path";
15
+ import spawn from "cross-spawn";
16
+ import { planFrom } from "./claude-auth.js";
17
+ /**
18
+ * How the probe went: answered, ran but said nothing usable, too slow, no such
19
+ * command, or not asked (the session's options change its sign-in).
20
+ */
21
+ export const AUTH_PROBE_RESULTS = ["ok", "failed", "timeout", "unsupported", "skipped"];
22
+ /** A slow Windows npm shim starts node twice; Claude Code itself answers in ~0.1 s. */
23
+ export const AUTH_PROBE_TIMEOUT_MS = 5000;
24
+ const MAX_OUTPUT = 64 * 1024;
25
+ /**
26
+ * Session options that change which credentials Claude Code uses (an
27
+ * apiKeyHelper in --settings, --bare's key-only sign-in). `claude auth status`
28
+ * takes none of them, so its answer would not be this session's.
29
+ */
30
+ const SESSION_AUTH_OPTIONS = ["--settings", "--setting-sources", "--bare"];
31
+ /** False when the session's own options may sign it in differently than the probe sees. */
32
+ export function probeAnswersForSession(args) {
33
+ return !args.some((arg) => SESSION_AUTH_OPTIONS.some((option) => arg === option || arg.startsWith(`${option}=`)));
34
+ }
35
+ /** The probe for a session it can't answer for: no sign-in guess (sign-in-notice.ts). */
36
+ export function skippedProbe() {
37
+ return { result: "skipped", ms: 0 };
38
+ }
39
+ /** Run `claude auth status --json`; never throws or rejects, and is bounded by timeoutMs. */
40
+ export function probeClaudeAuthStatus(command, opts = {}) {
41
+ const now = opts.now ?? Date.now;
42
+ const started = now();
43
+ return new Promise((resolve) => {
44
+ let out = "";
45
+ let done = false;
46
+ const finish = (result, status) => {
47
+ if (done)
48
+ return;
49
+ done = true;
50
+ clearTimeout(timer);
51
+ process.removeListener("exit", onExit);
52
+ stopSignals();
53
+ resolve({ result, ms: Math.max(0, now() - started), ...(status ? { status } : {}) });
54
+ };
55
+ const child = startProbe(command, opts);
56
+ // Detached on POSIX, so the terminal's signals no longer reach it: ccc exiting early
57
+ // (process.exit, or SIGINT/SIGTERM/SIGHUP outside a raw-mode prompt) takes it along.
58
+ // Windows: not detached, so the console's events reach it anyway; no signal hooks.
59
+ const onExit = () => { if (child)
60
+ killTree(child); };
61
+ process.once("exit", onExit);
62
+ const stopSignals = process.platform === "win32" ? () => { } : killOnSignals(onExit);
63
+ const timer = setTimeout(() => {
64
+ finish("timeout");
65
+ if (child)
66
+ killTree(child);
67
+ }, opts.timeoutMs ?? AUTH_PROBE_TIMEOUT_MS);
68
+ if (!child)
69
+ return finish("failed");
70
+ child.stdout?.on("data", (chunk) => {
71
+ if (out.length < MAX_OUTPUT)
72
+ out += chunk.toString("utf8");
73
+ });
74
+ child.on("error", () => finish("failed"));
75
+ child.on("close", () => {
76
+ const status = parseAuthStatus(out, opts.env ?? process.env);
77
+ finish(status ? "ok" : probeFailure(out), status);
78
+ });
79
+ });
80
+ }
81
+ /** The sign-in from `claude auth status --json` output, or undefined when it is not that. */
82
+ export function parseAuthStatus(stdout, env = process.env) {
83
+ const json = jsonObject(stdout);
84
+ if (!json || typeof json.loggedIn !== "boolean" || typeof json.authMethod !== "string") {
85
+ return undefined;
86
+ }
87
+ const keySource = apiKeySource(json.apiKeySource);
88
+ const consoleLogin = json.apiKeySource === "/login managed key";
89
+ const base = { console: consoleLogin, ...(keySource ? { keySource } : {}) };
90
+ // A signed-out cloud gateway is not "no Claude plan": ccc can't tell, so it doesn't say.
91
+ if (!json.loggedIn) {
92
+ return json.apiProvider === "firstParty" || json.apiProvider === undefined
93
+ ? { auth: "none", plan: "unknown", ...base } : { auth: "unknown", plan: "unknown", ...base };
94
+ }
95
+ const cloud = cloudProvider(json.apiProvider);
96
+ if (cloud)
97
+ return { auth: cloud, plan: "unknown", ...base };
98
+ if (json.authMethod === "oauth_token" && nonEmpty(env.ANTHROPIC_AUTH_TOKEN)) {
99
+ // ANTHROPIC_AUTH_TOKEN wins over every other token in Claude Code: a bearer key.
100
+ return { auth: "api_key", plan: "unknown", ...base, keySource: "ANTHROPIC_AUTH_TOKEN" };
101
+ }
102
+ return { ...authFromMethod(json.authMethod, json.subscriptionType), ...base };
103
+ }
104
+ // ---------------------------------------------------------------------------
105
+ // Helpers
106
+ // ---------------------------------------------------------------------------
107
+ function startProbe(command, opts) {
108
+ try {
109
+ return spawn(command, [...(opts.leadingArgs ?? []), "auth", "status", "--json"], {
110
+ env: opts.env ?? process.env,
111
+ stdio: ["ignore", "pipe", "ignore"],
112
+ windowsHide: true,
113
+ // Its own process group on POSIX, so a timeout can kill it and its children.
114
+ detached: process.platform !== "win32",
115
+ });
116
+ }
117
+ catch {
118
+ return undefined;
119
+ }
120
+ }
121
+ const FATAL_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
122
+ /**
123
+ * While the probe runs: on a fatal signal, kill it, then let the signal act as it
124
+ * would have (re-raised when no other handler of ccc's takes it). Returns the undo.
125
+ */
126
+ function killOnSignals(kill) {
127
+ const handlers = FATAL_SIGNALS.map((signal) => {
128
+ const handler = () => {
129
+ kill();
130
+ stop();
131
+ // Exit as the signal would (128 + its number), but through process.exit, which
132
+ // restores a raw-mode terminal (a readline prompt); re-raising it would not.
133
+ if (process.listenerCount(signal) === 0)
134
+ process.exit(128 + os.constants.signals[signal]);
135
+ };
136
+ process.once(signal, handler);
137
+ return [signal, handler];
138
+ });
139
+ const stop = () => {
140
+ for (const [signal, handler] of handlers)
141
+ process.removeListener(signal, handler);
142
+ };
143
+ return stop;
144
+ }
145
+ /**
146
+ * Kill a timed-out probe and everything it started, never throwing. Windows:
147
+ * taskkill /T /F (a .cmd shim runs cmd.exe, then node). POSIX: SIGKILL to its
148
+ * process group, then to the process itself in case the group is gone.
149
+ */
150
+ function killTree(child) {
151
+ const pid = child.pid;
152
+ if (pid === undefined)
153
+ return;
154
+ try {
155
+ if (process.platform === "win32") {
156
+ const root = process.env.SystemRoot ?? "C:\\Windows";
157
+ spawnPlain(path.join(root, "System32", "taskkill.exe"), ["/pid", String(pid), "/T", "/F"], { stdio: "ignore", windowsHide: true }).on("error", () => child.kill());
158
+ return;
159
+ }
160
+ process.kill(-pid, "SIGKILL");
161
+ }
162
+ catch {
163
+ try {
164
+ child.kill("SIGKILL");
165
+ }
166
+ catch { /* already gone */ }
167
+ }
168
+ }
169
+ /** Older Claude Code has no `auth` command: it prints help or an error, never JSON. */
170
+ function probeFailure(stdout) {
171
+ return stdout.trim().startsWith("{") ? "failed" : "unsupported";
172
+ }
173
+ function authFromMethod(method, subscriptionType) {
174
+ const type = typeof subscriptionType === "string" ? subscriptionType : undefined;
175
+ if (method === "claude.ai")
176
+ return { auth: "subscription", plan: planFrom(type, undefined) };
177
+ // setup-token, a host-provided token, a token file or a profile login: a Claude login.
178
+ if (method === "oauth_token")
179
+ return { auth: "subscription", plan: "unknown" };
180
+ if (method === "api_key" || method === "api_key_helper") {
181
+ return { auth: "api_key", plan: "unknown" };
182
+ }
183
+ return { auth: "unknown", plan: "unknown" };
184
+ }
185
+ function cloudProvider(provider) {
186
+ if (provider === "bedrock" || provider === "vertex" || provider === "foundry")
187
+ return provider;
188
+ return undefined;
189
+ }
190
+ function apiKeySource(source) {
191
+ if (source === "ANTHROPIC_API_KEY" || source === "ANTHROPIC_AUTH_TOKEN")
192
+ return source;
193
+ if (source === "apiKeyHelper")
194
+ return "apiKeyHelper";
195
+ return undefined;
196
+ }
197
+ function nonEmpty(value) {
198
+ return typeof value === "string" && value.trim() !== "";
199
+ }
200
+ function jsonObject(text) {
201
+ const start = text.indexOf("{");
202
+ const end = text.lastIndexOf("}");
203
+ if (start === -1 || end < start)
204
+ return undefined;
205
+ try {
206
+ const value = JSON.parse(text.slice(start, end + 1));
207
+ return value && typeof value === "object" ? value : undefined;
208
+ }
209
+ catch {
210
+ return undefined;
211
+ }
212
+ }
213
+ //# sourceMappingURL=claude-auth-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-auth-status.js","sourceRoot":"","sources":["../src/claude-auth-status.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  * `x-api-key` or `sk-ant-api…` bearer is an API key. Only that classification
13
13
  * leaves this module.
14
14
  */
15
- export declare const CLAUDE_AUTH_TYPES: readonly ["subscription", "api_key", "bedrock", "vertex", "foundry", "unknown"];
15
+ /** "none": Claude Code says nobody is signed in (claude-auth-status.ts); "unknown": can't tell. */
16
+ export declare const CLAUDE_AUTH_TYPES: readonly ["subscription", "api_key", "bedrock", "vertex", "foundry", "none", "unknown"];
16
17
  export type ClaudeAuthType = (typeof CLAUDE_AUTH_TYPES)[number];
17
18
  /** A Claude.ai plan tier, by name only. */
18
19
  export declare const CLAUDE_PLANS: readonly ["free", "pro", "max", "max_5x", "max_20x", "team", "enterprise", "unknown"];
@@ -1 +1 @@
1
- {"version":3,"file":"claude-auth.d.ts","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,eAAO,MAAM,iBAAiB,iFAEpB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,2CAA2C;AAC3C,eAAO,MAAM,YAAY,uFAEf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,OAAO,sBAAsB,CAAC;AAE9D,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,cAAc,CAAC;AAEzF,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,iBAAsB,GAAG,cAAc,CAkBjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,iBAAiB,GAAG;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GACjD,cAAc,GAAG,SAAS,CAgB5B;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAW7E;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,cAAc,GAAG,SAAS,CAQ5B;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAWtF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE9E;AAwED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAQ3F"}
1
+ {"version":3,"file":"claude-auth.d.ts","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,yFAEpB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,2CAA2C;AAC3C,eAAO,MAAM,YAAY,uFAEf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,OAAO,sBAAsB,CAAC;AAE9D,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,cAAc,CAAC;AAEzF,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,iBAAsB,GAAG,cAAc,CAkBjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,iBAAiB,GAAG;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GACjD,cAAc,GAAG,SAAS,CAgB5B;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAW7E;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,cAAc,GAAG,SAAS,CAQ5B;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAWtF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE9E;AAwED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAQ3F"}
@@ -16,8 +16,9 @@ import * as fs from "node:fs";
16
16
  import * as os from "node:os";
17
17
  import * as path from "node:path";
18
18
  import { creditAdviceText } from "./claude-plan-warning.js";
19
+ /** "none": Claude Code says nobody is signed in (claude-auth-status.ts); "unknown": can't tell. */
19
20
  export const CLAUDE_AUTH_TYPES = [
20
- "subscription", "api_key", "bedrock", "vertex", "foundry", "unknown",
21
+ "subscription", "api_key", "bedrock", "vertex", "foundry", "none", "unknown",
21
22
  ];
22
23
  /** A Claude.ai plan tier, by name only. */
23
24
  export const CLAUDE_PLANS = [
@@ -1 +1 @@
1
- {"version":3,"file":"claude-auth.js","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-auth.js","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"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"}