claude-code-infinite 1.0.26 → 1.0.28
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 +44 -16
- package/dist/claude-auth.d.ts +9 -1
- package/dist/claude-auth.d.ts.map +1 -1
- package/dist/claude-auth.js +26 -4
- package/dist/claude-auth.js.map +1 -1
- package/dist/claude-env.d.ts +11 -4
- package/dist/claude-env.d.ts.map +1 -1
- package/dist/claude-env.js +11 -4
- package/dist/claude-env.js.map +1 -1
- package/dist/claude-locate.d.ts +18 -0
- package/dist/claude-locate.d.ts.map +1 -1
- package/dist/claude-locate.js +82 -3
- package/dist/claude-locate.js.map +1 -1
- package/dist/claude-plan-warning.d.ts +55 -0
- package/dist/claude-plan-warning.d.ts.map +1 -0
- package/dist/claude-plan-warning.js +95 -0
- package/dist/claude-plan-warning.js.map +1 -0
- package/dist/cli-args.d.ts +5 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +9 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-lifecycle.d.ts +5 -0
- package/dist/cli-lifecycle.d.ts.map +1 -1
- package/dist/cli-lifecycle.js +13 -0
- package/dist/cli-lifecycle.js.map +1 -1
- package/dist/cli-main.js +170 -87
- package/dist/cli-main.js.map +1 -1
- package/dist/diagnostics-schema.d.ts +2 -0
- package/dist/diagnostics-schema.d.ts.map +1 -1
- package/dist/diagnostics-schema.js +13 -2
- package/dist/diagnostics-schema.js.map +1 -1
- package/dist/diagnostics.d.ts +8 -3
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +12 -3
- package/dist/diagnostics.js.map +1 -1
- package/dist/hooks.d.ts +8 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +57 -25
- package/dist/hooks.js.map +1 -1
- package/dist/key-page.d.ts +17 -0
- package/dist/key-page.d.ts.map +1 -0
- package/dist/key-page.js +32 -0
- package/dist/key-page.js.map +1 -0
- package/dist/key-status.d.ts +79 -0
- package/dist/key-status.d.ts.map +1 -0
- package/dist/key-status.js +143 -0
- package/dist/key-status.js.map +1 -0
- package/dist/memtree.d.ts +23 -0
- package/dist/memtree.d.ts.map +1 -1
- package/dist/memtree.js +39 -3
- package/dist/memtree.js.map +1 -1
- package/dist/notices.d.ts +5 -0
- package/dist/notices.d.ts.map +1 -1
- package/dist/notices.js +13 -0
- package/dist/notices.js.map +1 -1
- package/dist/paused-session.d.ts +29 -0
- package/dist/paused-session.d.ts.map +1 -0
- package/dist/paused-session.js +148 -0
- package/dist/paused-session.js.map +1 -0
- package/dist/payment-gate.d.ts +44 -13
- package/dist/payment-gate.d.ts.map +1 -1
- package/dist/payment-gate.js +82 -23
- package/dist/payment-gate.js.map +1 -1
- package/dist/payment-link.d.ts +68 -0
- package/dist/payment-link.d.ts.map +1 -0
- package/dist/payment-link.js +123 -0
- package/dist/payment-link.js.map +1 -0
- package/dist/project-trees.d.ts +100 -0
- package/dist/project-trees.d.ts.map +1 -0
- package/dist/project-trees.js +196 -0
- package/dist/project-trees.js.map +1 -0
- package/dist/proxy.d.ts +13 -0
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +70 -8
- package/dist/proxy.js.map +1 -1
- package/dist/reqlog.d.ts +2 -0
- package/dist/reqlog.d.ts.map +1 -1
- package/dist/reqlog.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
# Claude Code Infinite
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="#long-session-benchmark"><img width="640" alt="Long-session benchmark, Claude Opus 5.5, graded blind: MemTree 69% at 39M tokens per run, full context 69% at 113M, /compact 49% at 17M" src="https://raw.githubusercontent.com/crizCraig/claude-code-infinite/main/docs/images/benchmark-chart.png"></a>
|
|
9
|
+
</p>
|
|
10
|
+
<p align="center"><sub>Long-session benchmark on a 775k-token Claude Code session (Claude Opus 5.5, graded blind):
|
|
11
|
+
MemTree matched full context at 69% with a third of the tokens; <code>/compact</code> scored 49%.
|
|
12
|
+
<a href="#long-session-benchmark">Full results</a></sub></p>
|
|
13
|
+
|
|
14
|
+
Infinite context for Claude Code: memory for long-running agents. Claude Code Infinite indexes your Claude Code sessions with
|
|
8
15
|
[MemTree](https://memtree.dev) so their history can be easily searched, navigated, and understood,
|
|
9
16
|
by you and by Claude, within a session and across all of them.
|
|
10
17
|
|
|
@@ -30,14 +37,7 @@ work: your priorities, the nuances of your projects, your company and your envir
|
|
|
30
37
|
orchestrate dozens of subagents on your behalf.
|
|
31
38
|
|
|
32
39
|
> [!IMPORTANT]
|
|
33
|
-
>
|
|
34
|
-
|
|
35
|
-
<p align="center">
|
|
36
|
-
<picture>
|
|
37
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/crizCraig/claude-code-infinite/main/docs/images/benchmark-dark.svg">
|
|
38
|
-
<img width="600" alt="Long-session benchmark, judged score out of 100: Claude Code Infinite 69, full context 69, /compact 49" src="https://raw.githubusercontent.com/crizCraig/claude-code-infinite/main/docs/images/benchmark-light.svg">
|
|
39
|
-
</picture>
|
|
40
|
-
</p>
|
|
40
|
+
> Needs [Claude Code in your terminal](#setup), signed in with Claude Pro or Max.
|
|
41
41
|
|
|
42
42
|
## Search across sessions
|
|
43
43
|
|
|
@@ -82,25 +82,45 @@ tokens; `/compact`'s exclude the one-time `/compact` step. This is one task fami
|
|
|
82
82
|
|
|
83
83
|
## Requirements
|
|
84
84
|
|
|
85
|
+
* **[Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in
|
|
86
|
+
with Claude Pro or Max** ([don't have it yet?](#setup))
|
|
85
87
|
* [node.js 20.3 or newer](https://nodejs.org/en/download/)
|
|
86
|
-
* [Claude Code (the terminal version)](https://code.claude.com/docs/en/quickstart)
|
|
87
|
-
* **A Claude Pro or Max subscription**
|
|
88
88
|
|
|
89
|
-
<sub>Also works with an Anthropic API key, but that's far costlier than Pro or Max.</sub>
|
|
89
|
+
<sub>Also works with an Anthropic API key that has credit, but that's far costlier than Pro or Max.</sub>
|
|
90
90
|
|
|
91
91
|
## Setup
|
|
92
92
|
|
|
93
|
-
1. Install (Node ≥ 20.3; no git needed)
|
|
93
|
+
1. Install Claude Code Infinite (Node ≥ 20.3; no git needed)
|
|
94
94
|
```bash
|
|
95
95
|
npm install -g claude-code-infinite
|
|
96
96
|
```
|
|
97
|
-
2. Run
|
|
97
|
+
2. Run it from your project folder
|
|
98
98
|
```bash
|
|
99
99
|
ccc
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
This will guide you through setting up your PolyChat key which you can also get [here](https://polychat.co/auth?memtree=true).
|
|
103
103
|
|
|
104
|
+
Needs [Claude Code in your terminal](https://code.claude.com/docs/en/quickstart), signed in with
|
|
105
|
+
Claude Pro or Max.
|
|
106
|
+
|
|
107
|
+
<details>
|
|
108
|
+
<summary>Don't have Claude Code yet?</summary>
|
|
109
|
+
|
|
110
|
+
```powershell
|
|
111
|
+
# Windows PowerShell
|
|
112
|
+
irm https://claude.ai/install.ps1 | iex
|
|
113
|
+
```
|
|
114
|
+
```bash
|
|
115
|
+
# macOS / Linux
|
|
116
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Then open a new terminal and run `claude` once to sign in. The Claude desktop app isn't enough:
|
|
120
|
+
`ccc` needs the `claude` command in your terminal ([help](#claude-code-isnt-installed)).
|
|
121
|
+
|
|
122
|
+
</details>
|
|
123
|
+
|
|
104
124
|
## Environments
|
|
105
125
|
|
|
106
126
|
The tool supports multiple environments (this selects the MemTree compression API only — Anthropic traffic always goes directly from your machine to api.anthropic.com):
|
|
@@ -135,8 +155,9 @@ Environment variables, set when launching `ccc`:
|
|
|
135
155
|
| --- | --- |
|
|
136
156
|
| `CCC_COMPACT_TARGET=500k` | Compaction target for every session (useful for headless `-p` runs); `off` starts every session with compaction off. |
|
|
137
157
|
| `CCC_MEMTREE_MCP=0` | Turns off the `memtree` MCP tools ([details](#memory-tools)), in interactive and headless (`-p`) runs. |
|
|
158
|
+
| `CCC_PROJECT_TREES=0` | Interactive sessions in a git repository with an `origin` remote start with a short list of your earlier MemTree sessions in that repository (model context only); this turns it off. |
|
|
138
159
|
| `CCC_MEMTREE_LINK` | Where the MemTree link appears: `turn` (default, end of a turn with a new page), `message` (under every reply), `stop` (end of every turn), `success` (only after an optimized turn), or `off`. |
|
|
139
|
-
| `CCC_AUTO_COMPACT=1` | Restores Claude Code's own auto-compaction
|
|
160
|
+
| `CCC_AUTO_COMPACT=1` | Restores Claude Code's own auto-compaction and idle compaction settings ([details](#claude-code-auto-compaction)). |
|
|
140
161
|
| `CCC_NO_UPDATE_CHECK=1` | Turns off the update check, and with it automatic updates ([details](#upgrading)). |
|
|
141
162
|
| `CCC_DISABLE_AUTOUPDATE=1` | Keeps the update notice but never installs ([details](#automatic-updates)). |
|
|
142
163
|
| `CCC_NO_DIAGNOSTICS=1` | Turns off diagnostics ([details](#diagnostics)). So do `DO_NOT_TRACK=1`, Claude Code's `DISABLE_TELEMETRY=1` or `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`, and `"diagnostics": false` in `~/.claude-code-infinite/config.json`. |
|
|
@@ -148,6 +169,12 @@ kitty, VS Code, JetBrains, Windows Terminal); elsewhere you get the plain URL.
|
|
|
148
169
|
|
|
149
170
|
`ccc` disables Claude Code's automatic conversation compaction for the Claude process it launches. MemTree manages the context sent to the model, so letting Claude Code independently summarize the full local transcript can compact a conversation MemTree already reduced. Manual `/compact` remains available.
|
|
150
171
|
|
|
172
|
+
That includes idle compaction (Claude Code 2.1.286 and later), which summarizes a
|
|
173
|
+
long conversation while you're away, just before the prompt cache expires
|
|
174
|
+
("Compacted while idle, before the prompt cache expired"). The
|
|
175
|
+
`DISABLE_AUTO_COMPACT=1` that `ccc` sets turns it off too, so you don't need
|
|
176
|
+
`"idleCompaction": false` in your settings.
|
|
177
|
+
|
|
151
178
|
Claude Code 2.1.219 also recommends “Resume from summary” for any old session
|
|
152
179
|
above a fixed 100k-token threshold, even when the active model has a 1M window
|
|
153
180
|
and auto-compaction is disabled. `ccc` suppresses that resume-time
|
|
@@ -168,7 +195,8 @@ On `ccc --resume <id>`, `ccc` backs the transcript up to
|
|
|
168
195
|
recorded usage to half the window, so the next message is sent and MemTree
|
|
169
196
|
compresses it.
|
|
170
197
|
|
|
171
|
-
To restore Claude Code's native auto-compaction
|
|
198
|
+
To restore Claude Code's native auto-compaction and idle compaction settings for one
|
|
199
|
+
invocation, use:
|
|
172
200
|
|
|
173
201
|
```bash
|
|
174
202
|
CCC_AUTO_COMPACT=1 ccc
|
package/dist/claude-auth.d.ts
CHANGED
|
@@ -29,6 +29,14 @@ export interface ClaudeAuthOptions {
|
|
|
29
29
|
}
|
|
30
30
|
/** The sign-in type from env and Claude Code's config, before any request. */
|
|
31
31
|
export declare function claudeAuthFromConfig(opts?: ClaudeAuthOptions): ClaudeAuthType;
|
|
32
|
+
/**
|
|
33
|
+
* Whether a claude.ai login is on file, by key names only: `oauthAccount` in
|
|
34
|
+
* `~/.claude.json` without a Console key, or `claudeAiOauth` in
|
|
35
|
+
* `.credentials.json` (Linux and Windows), or a `claude setup-token` token in
|
|
36
|
+
* the environment. Unlike claudeAuthFromConfig it ignores env API keys, which
|
|
37
|
+
* Claude Code asks about before using.
|
|
38
|
+
*/
|
|
39
|
+
export declare function claudeSubscriptionLogin(opts?: ClaudeAuthOptions): boolean;
|
|
32
40
|
/**
|
|
33
41
|
* The Claude.ai plan tier Claude Code recorded locally: `organizationType` and
|
|
34
42
|
* `organizationRateLimitTier` in `~/.claude.json`, else `subscriptionType` in
|
|
@@ -40,7 +48,7 @@ export declare function claudePlanFromConfig(opts?: ClaudeAuthOptions): ClaudePl
|
|
|
40
48
|
export declare function claudeAuthFromHeaders(headers: Record<string, string | string[] | undefined>): ClaudeAuthType | undefined;
|
|
41
49
|
/** A known Anthropic error in a JSON error body, by code; undefined otherwise. */
|
|
42
50
|
export declare function upstreamErrorCode(body: Buffer | string): UpstreamErrorCode | undefined;
|
|
43
|
-
/** Printed once when Anthropic refused an API key for having no credit. */
|
|
51
|
+
/** Printed once when Anthropic refused an API key for having no credit: the no-plan advice. */
|
|
44
52
|
export declare function creditNoticeText(color: boolean): string;
|
|
45
53
|
/** "claude_max" + "default_claude_max_20x" → "max_20x"; "pro" → "pro". */
|
|
46
54
|
export declare function planFrom(type: string | undefined, rateTier: string | undefined): ClaudePlan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-auth.d.ts","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
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,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;;;;;;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,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AAoCD,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAQ3F"}
|
package/dist/claude-auth.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
import * as fs from "node:fs";
|
|
16
16
|
import * as os from "node:os";
|
|
17
17
|
import * as path from "node:path";
|
|
18
|
+
import { noPlanWarningText } from "./claude-plan-warning.js";
|
|
18
19
|
export const CLAUDE_AUTH_TYPES = [
|
|
19
20
|
"subscription", "api_key", "bedrock", "vertex", "foundry", "unknown",
|
|
20
21
|
];
|
|
@@ -41,11 +42,34 @@ export function claudeAuthFromConfig(opts = {}) {
|
|
|
41
42
|
if (settingsFiles(configDir, opts.cwd ?? process.cwd()).some((f) => hasApiKeyHelper(read(f)))) {
|
|
42
43
|
return "api_key";
|
|
43
44
|
}
|
|
45
|
+
// `claude setup-token`'s long-lived subscription token; below the keys, as in Claude Code.
|
|
46
|
+
if (nonEmpty(env.CLAUDE_CODE_OAUTH_TOKEN))
|
|
47
|
+
return "subscription";
|
|
44
48
|
const globalConfig = nonEmpty(env.CLAUDE_CONFIG_DIR)
|
|
45
49
|
? path.join(env.CLAUDE_CONFIG_DIR, ".claude.json")
|
|
46
50
|
: path.join(home, ".claude.json");
|
|
47
51
|
return authFromGlobalConfig(read(globalConfig));
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Whether a claude.ai login is on file, by key names only: `oauthAccount` in
|
|
55
|
+
* `~/.claude.json` without a Console key, or `claudeAiOauth` in
|
|
56
|
+
* `.credentials.json` (Linux and Windows), or a `claude setup-token` token in
|
|
57
|
+
* the environment. Unlike claudeAuthFromConfig it ignores env API keys, which
|
|
58
|
+
* Claude Code asks about before using.
|
|
59
|
+
*/
|
|
60
|
+
export function claudeSubscriptionLogin(opts = {}) {
|
|
61
|
+
const env = opts.env ?? process.env;
|
|
62
|
+
const read = opts.readFile ?? readTextOrNull;
|
|
63
|
+
const home = opts.homedir ?? os.homedir();
|
|
64
|
+
if (nonEmpty(env.CLAUDE_CODE_OAUTH_TOKEN))
|
|
65
|
+
return true;
|
|
66
|
+
const dir = nonEmpty(env.CLAUDE_CONFIG_DIR) ? env.CLAUDE_CONFIG_DIR : null;
|
|
67
|
+
const global = read(dir ? path.join(dir, ".claude.json") : path.join(home, ".claude.json"));
|
|
68
|
+
if (authFromGlobalConfig(global) === "subscription")
|
|
69
|
+
return true;
|
|
70
|
+
const credentials = read(path.join(dir ?? path.join(home, ".claude"), ".credentials.json"));
|
|
71
|
+
return credentials !== null && /"claudeAiOauth"\s*:\s*\{/.test(credentials);
|
|
72
|
+
}
|
|
49
73
|
/**
|
|
50
74
|
* The Claude.ai plan tier Claude Code recorded locally: `organizationType` and
|
|
51
75
|
* `organizationRateLimitTier` in `~/.claude.json`, else `subscriptionType` in
|
|
@@ -92,11 +116,9 @@ export function upstreamErrorCode(body) {
|
|
|
92
116
|
? CREDIT_BALANCE_TOO_LOW
|
|
93
117
|
: undefined;
|
|
94
118
|
}
|
|
95
|
-
/** Printed once when Anthropic refused an API key for having no credit. */
|
|
119
|
+
/** Printed once when Anthropic refused an API key for having no credit: the no-plan advice. */
|
|
96
120
|
export function creditNoticeText(color) {
|
|
97
|
-
|
|
98
|
-
"Sign in with a Claude Pro or Max plan (run `claude`, then /login) or add credit to the key.";
|
|
99
|
-
return color ? `\x1b[33m${text}\x1b[39m` : text;
|
|
121
|
+
return noPlanWarningText(color);
|
|
100
122
|
}
|
|
101
123
|
// ---------------------------------------------------------------------------
|
|
102
124
|
// Config files
|
package/dist/claude-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-auth.js","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-auth.js","sourceRoot":"","sources":["../src/claude-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/claude-env.d.ts
CHANGED
|
@@ -2,8 +2,15 @@
|
|
|
2
2
|
* Environment for the Claude Code child process.
|
|
3
3
|
*
|
|
4
4
|
* MemTree replaces Claude Code's built-in automatic compaction, so ccc disables
|
|
5
|
-
*
|
|
6
|
-
* Claude Code controls it with a separate setting.
|
|
5
|
+
* automatic compaction (threshold and idle) by default. Manual `/compact`
|
|
6
|
+
* remains available because Claude Code controls it with a separate setting.
|
|
7
|
+
*
|
|
8
|
+
* DISABLE_AUTO_COMPACT also turns off idle compaction (2.1.286+: "Compacted
|
|
9
|
+
* while idle, before the prompt cache expired"), the remote-only sleep
|
|
10
|
+
* compactor and cold compaction: all check the same auto-compact switch first
|
|
11
|
+
* (idle and sleep skip with `compaction_off`; 2.1.303, read from the binary;
|
|
12
|
+
* the settings reference documents it under `idleCompaction`). No separate
|
|
13
|
+
* `idleCompaction` setting is needed, so ccc never passes --settings for it.
|
|
7
14
|
*
|
|
8
15
|
* Claude Code normally treats a custom ANTHROPIC_BASE_URL as a third-party
|
|
9
16
|
* gateway. That suppresses native model capabilities it cannot verify through
|
|
@@ -28,8 +35,8 @@
|
|
|
28
35
|
* its own bounded retry/400. A value the user already exported is kept.
|
|
29
36
|
*
|
|
30
37
|
* `CCC_AUTO_COMPACT=1` is an escape hatch: remove ccc's override and let the
|
|
31
|
-
* user's native Claude Code
|
|
32
|
-
* (Claude Code's own limits then apply unchanged).
|
|
38
|
+
* user's native Claude Code settings decide whether auto-compaction and idle
|
|
39
|
+
* compaction are enabled (Claude Code's own limits then apply unchanged).
|
|
33
40
|
*/
|
|
34
41
|
/** Claude Code's local refusal limit under ccc: effectively never reached. */
|
|
35
42
|
export declare const UNREACHABLE_BLOCKING_LIMIT = "1000000000";
|
package/dist/claude-env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-env.d.ts","sourceRoot":"","sources":["../src/claude-env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-env.d.ts","sourceRoot":"","sources":["../src/claude-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAEvD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAAC,UAAU,CAuBnB;AAOD;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,CAAC,UAAU,GAC3B,OAAO,CAET"}
|
package/dist/claude-env.js
CHANGED
|
@@ -2,8 +2,15 @@
|
|
|
2
2
|
* Environment for the Claude Code child process.
|
|
3
3
|
*
|
|
4
4
|
* MemTree replaces Claude Code's built-in automatic compaction, so ccc disables
|
|
5
|
-
*
|
|
6
|
-
* Claude Code controls it with a separate setting.
|
|
5
|
+
* automatic compaction (threshold and idle) by default. Manual `/compact`
|
|
6
|
+
* remains available because Claude Code controls it with a separate setting.
|
|
7
|
+
*
|
|
8
|
+
* DISABLE_AUTO_COMPACT also turns off idle compaction (2.1.286+: "Compacted
|
|
9
|
+
* while idle, before the prompt cache expired"), the remote-only sleep
|
|
10
|
+
* compactor and cold compaction: all check the same auto-compact switch first
|
|
11
|
+
* (idle and sleep skip with `compaction_off`; 2.1.303, read from the binary;
|
|
12
|
+
* the settings reference documents it under `idleCompaction`). No separate
|
|
13
|
+
* `idleCompaction` setting is needed, so ccc never passes --settings for it.
|
|
7
14
|
*
|
|
8
15
|
* Claude Code normally treats a custom ANTHROPIC_BASE_URL as a third-party
|
|
9
16
|
* gateway. That suppresses native model capabilities it cannot verify through
|
|
@@ -28,8 +35,8 @@
|
|
|
28
35
|
* its own bounded retry/400. A value the user already exported is kept.
|
|
29
36
|
*
|
|
30
37
|
* `CCC_AUTO_COMPACT=1` is an escape hatch: remove ccc's override and let the
|
|
31
|
-
* user's native Claude Code
|
|
32
|
-
* (Claude Code's own limits then apply unchanged).
|
|
38
|
+
* user's native Claude Code settings decide whether auto-compaction and idle
|
|
39
|
+
* compaction are enabled (Claude Code's own limits then apply unchanged).
|
|
33
40
|
*/
|
|
34
41
|
/** Claude Code's local refusal limit under ccc: effectively never reached. */
|
|
35
42
|
export const UNREACHABLE_BLOCKING_LIMIT = "1000000000";
|
package/dist/claude-env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-env.js","sourceRoot":"","sources":["../src/claude-env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-env.js","sourceRoot":"","sources":["../src/claude-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAC;AAEvD,MAAM,UAAU,cAAc,CAC5B,SAA4B,EAC5B,gBAAwB;IAExB,MAAM,QAAQ,GAAsB;QAClC,GAAG,SAAS;QACZ,kBAAkB,EAAE,gBAAgB;QACpC,wCAAwC,EAAE,GAAG;QAC7C,kCAAkC,EAAE,YAAY;KACjD,CAAC;IAEF,gEAAgE;IAChE,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IAEjC,IAAI,SAAS,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;QACvC,oEAAoE;QACpE,iCAAiC;QACjC,OAAO,QAAQ,CAAC,oBAAoB,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,oBAAoB,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,EAAE,CAAC;YAClD,QAAQ,CAAC,mCAAmC,GAAG,0BAA0B,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAClD,SAA4B;IAE5B,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;AACnE,CAAC"}
|
package/dist/claude-locate.d.ts
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
/** Where Claude Code was found, for diagnostics (an enum, never a path). */
|
|
20
20
|
export declare const CLAUDE_SOURCES: readonly ["path", "registry-path", "native", "npm", "winget", "homebrew", "legacy-local"];
|
|
21
21
|
export type ClaudeSource = (typeof CLAUDE_SOURCES)[number];
|
|
22
|
+
/** `claude_found` in diagnostics: a source, or `desktop_only` (only the desktop app is installed). */
|
|
23
|
+
export declare const CLAUDE_FOUND: readonly ["path", "registry-path", "native", "npm", "winget", "homebrew", "legacy-local", "desktop_only"];
|
|
22
24
|
export interface ClaudeLocation {
|
|
23
25
|
/** What to spawn: `claude` when it is on PATH, else its absolute path. */
|
|
24
26
|
command: string;
|
|
@@ -37,10 +39,26 @@ export interface LocateClaudeOptions {
|
|
|
37
39
|
/** Directory entries (winget's package folders); [] when unreadable. */
|
|
38
40
|
listDir?: (dir: string) => string[];
|
|
39
41
|
}
|
|
42
|
+
export interface DesktopAppOptions {
|
|
43
|
+
platform?: NodeJS.Platform;
|
|
44
|
+
env?: NodeJS.ProcessEnv;
|
|
45
|
+
homedir?: string;
|
|
46
|
+
/** True when the path exists (file or folder). */
|
|
47
|
+
exists?: (file: string) => boolean;
|
|
48
|
+
}
|
|
40
49
|
/** Claude Code to launch, or null when it is not installed anywhere known. */
|
|
41
50
|
export declare function locateClaude(opts?: LocateClaudeOptions): ClaudeLocation | null;
|
|
42
51
|
/** The child's environment with `location.dir` first on PATH, when it was not on PATH. */
|
|
43
52
|
export declare function withClaudeOnPath(env: NodeJS.ProcessEnv, location: ClaudeLocation, platform?: NodeJS.Platform): NodeJS.ProcessEnv;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the Claude desktop app is installed (Windows, macOS). It runs Claude
|
|
55
|
+
* Code inside the app (its own copy, in the app's data folder, kept at the
|
|
56
|
+
* app's version), but puts no `claude` on the terminal's PATH, so ccc cannot
|
|
57
|
+
* use it. Only its own folders count, never `~/.claude`, which the CLI shares.
|
|
58
|
+
*/
|
|
59
|
+
export declare function claudeDesktopInstalled(opts?: DesktopAppOptions): boolean;
|
|
60
|
+
/** Said instead of claudeMissingText when only the desktop app is installed. */
|
|
61
|
+
export declare function claudeDesktopOnlyText(platform?: NodeJS.Platform): string;
|
|
44
62
|
/**
|
|
45
63
|
* Said once, instead of launching, when Claude Code is not installed: the
|
|
46
64
|
* official install command for this OS and the sign-in step.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-locate.d.ts","sourceRoot":"","sources":["../src/claude-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,2FAEjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-locate.d.ts","sourceRoot":"","sources":["../src/claude-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,2FAEjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,sGAAsG;AACtG,eAAO,MAAM,YAAY,2GAA+C,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACpC;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,cAAc,GAAG,IAAI,CAclF;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,EAAE,cAAc,EACxB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAMnB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAM5E;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAM1F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAStF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACnF,MAAM,GAAG,IAAI,CAoBf;AA+JD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAE/E;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D"}
|
package/dist/claude-locate.js
CHANGED
|
@@ -24,17 +24,21 @@ import * as path from "node:path";
|
|
|
24
24
|
export const CLAUDE_SOURCES = [
|
|
25
25
|
"path", "registry-path", "native", "npm", "winget", "homebrew", "legacy-local",
|
|
26
26
|
];
|
|
27
|
+
/** `claude_found` in diagnostics: a source, or `desktop_only` (only the desktop app is installed). */
|
|
28
|
+
export const CLAUDE_FOUND = [...CLAUDE_SOURCES, "desktop_only"];
|
|
27
29
|
/** Claude Code to launch, or null when it is not installed anywhere known. */
|
|
28
30
|
export function locateClaude(opts = {}) {
|
|
29
31
|
const platform = opts.platform ?? process.platform;
|
|
30
32
|
const env = opts.env ?? process.env;
|
|
31
33
|
const isExecutable = opts.isExecutable ?? defaultIsExecutable(platform);
|
|
32
|
-
const onPath =
|
|
34
|
+
const onPath = locateOnPath(pathDirs(env, platform), platform, env, isExecutable);
|
|
33
35
|
if (onPath)
|
|
34
|
-
return
|
|
36
|
+
return onPath;
|
|
35
37
|
const home = opts.homedir ?? os.homedir();
|
|
36
38
|
for (const candidate of candidates(platform, env, home, opts)) {
|
|
37
|
-
const file =
|
|
39
|
+
const file = candidate.dirs
|
|
40
|
+
.map((dir) => findOnPath("claude", [dir], platform, env, isExecutable))
|
|
41
|
+
.find((f) => f !== null && !isDesktopAppExe(f, platform));
|
|
38
42
|
if (file)
|
|
39
43
|
return { command: file, source: candidate.source, dir: pathFor(platform).dirname(file) };
|
|
40
44
|
}
|
|
@@ -49,6 +53,27 @@ export function withClaudeOnPath(env, location, platform = process.platform) {
|
|
|
49
53
|
const delimiter = platform === "win32" ? ";" : ":";
|
|
50
54
|
return { ...env, [key]: current ? `${location.dir}${delimiter}${current}` : location.dir };
|
|
51
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Whether the Claude desktop app is installed (Windows, macOS). It runs Claude
|
|
58
|
+
* Code inside the app (its own copy, in the app's data folder, kept at the
|
|
59
|
+
* app's version), but puts no `claude` on the terminal's PATH, so ccc cannot
|
|
60
|
+
* use it. Only its own folders count, never `~/.claude`, which the CLI shares.
|
|
61
|
+
*/
|
|
62
|
+
export function claudeDesktopInstalled(opts = {}) {
|
|
63
|
+
const platform = opts.platform ?? process.platform;
|
|
64
|
+
const env = opts.env ?? process.env;
|
|
65
|
+
const home = opts.homedir ?? os.homedir();
|
|
66
|
+
const exists = opts.exists ?? fs.existsSync;
|
|
67
|
+
return desktopAppPaths(platform, env, home).some((p) => exists(p));
|
|
68
|
+
}
|
|
69
|
+
/** Said instead of claudeMissingText when only the desktop app is installed. */
|
|
70
|
+
export function claudeDesktopOnlyText(platform = process.platform) {
|
|
71
|
+
const install = platform === "win32"
|
|
72
|
+
? "`irm https://claude.ai/install.ps1 | iex` (in PowerShell)"
|
|
73
|
+
: "`curl -fsSL https://claude.ai/install.sh | bash`";
|
|
74
|
+
return "Found the Claude desktop app, but ccc needs Claude Code in the terminal: " +
|
|
75
|
+
`install it with ${install}, then open a new terminal and run \`claude\` once to sign in.`;
|
|
76
|
+
}
|
|
52
77
|
/**
|
|
53
78
|
* Said once, instead of launching, when Claude Code is not installed: the
|
|
54
79
|
* official install command for this OS and the sign-in step.
|
|
@@ -116,6 +141,60 @@ function windowsCandidates(env, home, opts) {
|
|
|
116
141
|
{ source: "registry-path", get dirs() { return registryDirs(env, opts); } },
|
|
117
142
|
];
|
|
118
143
|
}
|
|
144
|
+
/** The desktop app's install and data folders (Squirrel, Microsoft Store/MSIX, macOS). */
|
|
145
|
+
function desktopAppPaths(platform, env, home) {
|
|
146
|
+
if (platform === "darwin") {
|
|
147
|
+
return ["/Applications/Claude.app", path.posix.join(home, "Applications", "Claude.app")];
|
|
148
|
+
}
|
|
149
|
+
if (platform !== "win32")
|
|
150
|
+
return [];
|
|
151
|
+
const w = path.win32;
|
|
152
|
+
const profile = envValue(env, "USERPROFILE") || home;
|
|
153
|
+
const localAppData = envValue(env, "LOCALAPPDATA") || w.join(profile, "AppData", "Local");
|
|
154
|
+
// Not %APPDATA%\Claude: MCP guides have people create it by hand.
|
|
155
|
+
return [
|
|
156
|
+
w.join(localAppData, "AnthropicClaude"),
|
|
157
|
+
w.join(localAppData, "Packages", DESKTOP_MSIX_FAMILY),
|
|
158
|
+
];
|
|
159
|
+
}
|
|
160
|
+
/** The Microsoft Store / MSIX package family of the Claude desktop app. */
|
|
161
|
+
const DESKTOP_MSIX_FAMILY = "Claude_pzs8sxrjxfjjc";
|
|
162
|
+
/**
|
|
163
|
+
* The desktop app's own `claude.exe` (Squirrel: %LOCALAPPDATA%\AnthropicClaude
|
|
164
|
+
* and its app-<version> folders; MSIX: WindowsApps\Claude_<version>_<arch>__<id>).
|
|
165
|
+
* Launched as Claude Code it opens the app instead, so it is skipped. So is a
|
|
166
|
+
* Store app execution alias (%LOCALAPPDATA%\Microsoft\WindowsApps): none of the
|
|
167
|
+
* CLI's installers puts claude.exe there.
|
|
168
|
+
*/
|
|
169
|
+
function isDesktopAppExe(file, platform) {
|
|
170
|
+
if (platform !== "win32")
|
|
171
|
+
return false;
|
|
172
|
+
const dir = path.win32.dirname(file).toLowerCase();
|
|
173
|
+
return /\\anthropicclaude(\\app-[^\\]+)?$/.test(dir) ||
|
|
174
|
+
/\\windowsapps\\claude_[^\\]*__pzs8sxrjxfjjc(\\app)?$/.test(dir) ||
|
|
175
|
+
/\\microsoft\\windowsapps(\\claude_pzs8sxrjxfjjc)?$/.test(dir);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* `claude` on PATH, skipping the desktop app's exe. Spawned by name when it is
|
|
179
|
+
* the first `claude` on PATH (as before); by full path when the desktop app's
|
|
180
|
+
* comes first, since spawning by name would start the app.
|
|
181
|
+
*/
|
|
182
|
+
function locateOnPath(dirs, platform, env, isExecutable) {
|
|
183
|
+
let skipped = false;
|
|
184
|
+
for (const dir of dirs) {
|
|
185
|
+
const file = findOnPath("claude", [dir], platform, env, isExecutable);
|
|
186
|
+
if (!file)
|
|
187
|
+
continue;
|
|
188
|
+
if (isDesktopAppExe(file, platform)) {
|
|
189
|
+
skipped = true;
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (!skipped)
|
|
193
|
+
return { command: "claude", source: "path" };
|
|
194
|
+
return { command: file, source: "path", dir: pathFor(platform).dirname(file) };
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
119
198
|
function registryDirs(env, opts) {
|
|
120
199
|
return (opts.registryPath ?? (() => readRegistryPath(env)))()
|
|
121
200
|
.flatMap((value) => splitPath(expandWindowsVars(value, env), "win32"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-locate.js","sourceRoot":"","sources":["../src/claude-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc;CACtE,CAAC;AAuBX,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,OAA4B,EAAE;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAC1F,IAAI,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC/E,IAAI,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,gBAAgB,CAC9B,GAAsB,EACtB,QAAwB,EACxB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC,QAAQ,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC7F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA4B,OAAO,CAAC,QAAQ;IAC5E,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO;QAClC,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,kDAAkD,CAAC;IACvD,OAAO;QACL,yEAAyE;QACzE,OAAO;QACP,4EAA4E;KAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,OAAkF,EAAE;IAEpF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ;YAClD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACjD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9D,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAAE,KAAK,GAAG,GAAG,CAAC;IACvF,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,KAAK,GAAG,kBAAkB,CAAC;IAC1E,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,0BAA0B,KAAK,2DAA2D;QAC/F,uCAAuC,CAAC;AAC5C,CAAC;AAWD,SAAS,UAAU,CACjB,QAAyB,EACzB,GAAsB,EACtB,IAAY,EACZ,IAAyB;IAEzB,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,OAAO;QACL,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;QAC3D,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;QACpE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,gCAAgC,CAAC,EAAE;QACvG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,GAAsB,EACtB,IAAY,EACZ,IAAyB;IAEzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,mFAAmF;IACnF,OAAO;QACL,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;QAC9D,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QACjD,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;QACzF,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,IAAI,KAAK,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAsB,EAAE,IAAyB;IACrE,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;SAC1D,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAyB;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CACjB,IAAY,EACZ,IAAc,EACd,QAAyB,EACzB,GAAsB,EACtB,YAAuC;IAEvC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO;QAC/B,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAChF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,IAAI,YAAY,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,GAAsB,EAAE,QAAyB;IACjE,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,QAAyB;IACzD,OAAO,KAAK;SACT,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;SACvC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SAClD,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,SAAS,OAAO,CAAC,GAAsB,EAAE,QAAyB;IAChE,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC;AAC1F,CAAC;AAED,SAAS,QAAQ,CAAC,GAAsB,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACjF,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,GAAsB;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,CAAC,GAAG,yCAAyC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAsB;IAC9C,iDAAiD;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,aAAa,CAAC;IACrF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG;QACX,mBAAmB;QACnB,wEAAwE;KACzE,CAAC;IACF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;gBAC1D,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI;aACnD,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClF,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,QAAyB;IACxC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAyB;IACpD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,QAAQ,KAAK,OAAO;gBAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"claude-locate.js","sourceRoot":"","sources":["../src/claude-locate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "no Claude plan" line. ccc runs the user's own Claude Code, so it only
|
|
3
|
+
* works well signed in with a Claude Pro or Max plan; on an API key every token
|
|
4
|
+
* is billed by Anthropic, and a key with no credit is refused outright
|
|
5
|
+
* (credit_balance_too_low, the most common first-prompt failure). The line is
|
|
6
|
+
* printed once before Claude Code starts when its sign-in is an API key or
|
|
7
|
+
* missing, and never for a subscription; the credit refusal gets the same text
|
|
8
|
+
* as ccc exits (claude-auth.ts creditNoticeText).
|
|
9
|
+
*
|
|
10
|
+
* Which sign-in Claude Code really used is only known from its requests'
|
|
11
|
+
* auth headers (claude-auth.ts claudeAuthFromHeaders). The last one seen is
|
|
12
|
+
* kept as a type name in ccc's config directory so the next launch decides on
|
|
13
|
+
* fact rather than on the config files' guess.
|
|
14
|
+
*/
|
|
15
|
+
import type { ClaudeAuthType, ClaudePlan } from "./claude-auth.js";
|
|
16
|
+
export declare const NO_PLAN_TEXT: string;
|
|
17
|
+
/** The file in ccc's config directory holding the last sign-in type Claude Code sent. */
|
|
18
|
+
export declare const SEEN_AUTH_FILE = "claude-auth-seen";
|
|
19
|
+
export interface PlanWarningInput {
|
|
20
|
+
/** From env and Claude Code's config files (claudeAuthFromConfig). */
|
|
21
|
+
auth: ClaudeAuthType;
|
|
22
|
+
/** From Claude Code's config files (claudePlanFromConfig). */
|
|
23
|
+
plan: ClaudePlan;
|
|
24
|
+
/** What Claude Code's own requests last showed, when known. */
|
|
25
|
+
seen?: ClaudeAuthType;
|
|
26
|
+
/** A claude.ai login is on file (claudeSubscriptionLogin), whatever else is set. */
|
|
27
|
+
subscriptionLogin?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* True when Claude Code is on an API key or not signed in, and nothing shows a
|
|
31
|
+
* paid plan. Any sign of a subscription wins, a stale API-key sighting
|
|
32
|
+
* included (the user may have run `/login` outside ccc since), so a subscriber
|
|
33
|
+
* is never warned.
|
|
34
|
+
*/
|
|
35
|
+
export declare function needsPlanWarning(input: PlanWarningInput): boolean;
|
|
36
|
+
/** `claude --version`, `claude doctor` and the like: no session, so no line. */
|
|
37
|
+
export declare function isInfoOnlyRun(args: readonly string[]): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Whether a credit_balance_too_low refusal gets the advice at exit: for an API
|
|
40
|
+
* key, or a request with no auth header ccc could read; not for a subscription
|
|
41
|
+
* token (extra usage spent) or a bearer ccc does not recognise.
|
|
42
|
+
*/
|
|
43
|
+
export declare function creditAdviceApplies(auth: ClaudeAuthType | undefined): boolean;
|
|
44
|
+
export declare function noPlanWarningText(color: boolean): string;
|
|
45
|
+
/**
|
|
46
|
+
* The line on stderr when it applies: stdout stays Claude Code's in print
|
|
47
|
+
* runs, and in a terminal stderr shows above the session just the same.
|
|
48
|
+
* Returns whether it was printed.
|
|
49
|
+
*/
|
|
50
|
+
export declare function printNoPlanWarning(input: PlanWarningInput, color: boolean): boolean;
|
|
51
|
+
/** The last sign-in type Claude Code's requests showed, or undefined. */
|
|
52
|
+
export declare function readSeenClaudeAuth(configDir: string): ClaudeAuthType | undefined;
|
|
53
|
+
/** Keep a subscription or API-key sign-in for the next launch; never throws. */
|
|
54
|
+
export declare function writeSeenClaudeAuth(configDir: string, auth: ClaudeAuthType): void;
|
|
55
|
+
//# sourceMappingURL=claude-plan-warning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-plan-warning.d.ts","sourceRoot":"","sources":["../src/claude-plan-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnE,eAAO,MAAM,YAAY,QAE4D,CAAC;AAEtF,yFAAyF;AACzF,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAKjD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,IAAI,EAAE,cAAc,CAAC;IACrB,8DAA8D;IAC9D,IAAI,EAAE,UAAU,CAAC;IACjB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAOjE;AAQD,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAInF;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAOhF;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAOjF"}
|