@sentropic/llm-mesh 0.34.0 → 0.34.1
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/dist/node/claude-code-cli-runner.d.ts +56 -0
- package/dist/node/claude-code-cli-runner.d.ts.map +1 -0
- package/dist/node/claude-code-cli-runner.js +590 -0
- package/dist/node/claude-code-cli-runner.js.map +1 -0
- package/dist/node/claude-code-cli-wire.d.ts +55 -0
- package/dist/node/claude-code-cli-wire.d.ts.map +1 -0
- package/dist/node/claude-code-cli-wire.js +144 -0
- package/dist/node/claude-code-cli-wire.js.map +1 -0
- package/dist/node/index.d.ts +5 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +3 -0
- package/dist/node/index.js.map +1 -1
- package/dist/transport/claude-code-runtime-client.d.ts +24 -0
- package/dist/transport/claude-code-runtime-client.d.ts.map +1 -1
- package/dist/transport/claude-code-runtime-client.js +66 -3
- package/dist/transport/claude-code-runtime-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { AnthropicAdapterClient } from '../adapters.js';
|
|
2
|
+
import { ClaudeCodeRuntimeClient, type ClaudeCodeAccessProjection, type ClaudeCodeCliCapabilities, type ClaudeCodeCliEvent, type ClaudeCodeCliRequest, type ClaudeCodeCliRunner } from '../transport/claude-code-runtime-client.js';
|
|
3
|
+
export declare const CLAUDE_CODE_OAUTH_ENV_VAR = "CLAUDE_CODE_OAUTH_TOKEN";
|
|
4
|
+
export declare const CLAUDE_CODE_STREAM_PROTOCOL = "claude-code-stream-json-v1";
|
|
5
|
+
export declare const DEFAULT_CLAUDE_CODE_CLI_PATH = "claude";
|
|
6
|
+
export declare const DEFAULT_CLAUDE_CODE_EFFORT = "medium";
|
|
7
|
+
export declare const DEFAULT_CLAUDE_CODE_TIMEOUT_MS = 300000;
|
|
8
|
+
export declare const CLAUDE_CODE_RESULT_TIMEOUT_MS = 15000;
|
|
9
|
+
export interface NodeClaudeCodeCliRunnerOptions {
|
|
10
|
+
readonly cliPath?: string;
|
|
11
|
+
readonly effort?: string;
|
|
12
|
+
readonly systemPromptFile?: string;
|
|
13
|
+
readonly timeoutMs?: number;
|
|
14
|
+
readonly collectStderrBytes?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class NodeClaudeCodeCliRunner implements ClaudeCodeCliRunner {
|
|
17
|
+
private readonly cliPath;
|
|
18
|
+
private readonly effort;
|
|
19
|
+
private readonly systemPromptFile?;
|
|
20
|
+
private readonly timeoutMs;
|
|
21
|
+
private readonly stderrTailBytes;
|
|
22
|
+
constructor(options?: NodeClaudeCodeCliRunnerOptions);
|
|
23
|
+
run(input: {
|
|
24
|
+
access: ClaudeCodeAccessProjection;
|
|
25
|
+
request: ClaudeCodeCliRequest;
|
|
26
|
+
signal: AbortSignal;
|
|
27
|
+
}): AsyncIterable<ClaudeCodeCliEvent>;
|
|
28
|
+
private execute;
|
|
29
|
+
private consume;
|
|
30
|
+
}
|
|
31
|
+
export interface ClaudeSeatAnthropicClientOptions {
|
|
32
|
+
readonly capabilities: ClaudeCodeCliCapabilities;
|
|
33
|
+
readonly cliPath?: string;
|
|
34
|
+
readonly effort?: string;
|
|
35
|
+
readonly systemPromptFile?: string;
|
|
36
|
+
readonly timeoutMs?: number;
|
|
37
|
+
readonly fallback?: AnthropicAdapterClient;
|
|
38
|
+
readonly now?: () => number;
|
|
39
|
+
}
|
|
40
|
+
/** Host capability attestation for a locally qualified `claude` CLI. */
|
|
41
|
+
export interface ClaudeCodeCliProbeOptions {
|
|
42
|
+
readonly cliPath?: string;
|
|
43
|
+
readonly source: string;
|
|
44
|
+
readonly qualificationRef: string;
|
|
45
|
+
readonly timeoutMs?: number;
|
|
46
|
+
}
|
|
47
|
+
/** Probe `claude --version` and `claude --help` with a token-free env; never runs a workload. */
|
|
48
|
+
export declare const probeClaudeCodeCliCapabilities: (options: ClaudeCodeCliProbeOptions) => Promise<ClaudeCodeCliCapabilities>;
|
|
49
|
+
/**
|
|
50
|
+
* Factory for the consumer: builds the `clients.anthropic` runtime client
|
|
51
|
+
* over a dedicated Claude seat. Wire with
|
|
52
|
+
* `createDefaultProviderAdapters({ anthropic })`.
|
|
53
|
+
*/
|
|
54
|
+
export declare const createClaudeSeatAnthropicClient: (options: ClaudeSeatAnthropicClientOptions) => ClaudeCodeRuntimeClient;
|
|
55
|
+
export type { ClaudeCodeAccessProjection, ClaudeCodeCliCapabilities, ClaudeCodeCliContent, ClaudeCodeCliEvent, ClaudeCodeCliRequest, ClaudeCodeCliRunner, } from '../transport/claude-code-runtime-client.js';
|
|
56
|
+
//# sourceMappingURL=claude-code-cli-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-cli-runner.d.ts","sourceRoot":"","sources":["../../src/node/claude-code-cli-runner.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAEL,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,4CAA4C,CAAC;AAIpD,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,4BAA4B,WAAW,CAAC;AACrD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AACnD,eAAO,MAAM,8BAA8B,SAAU,CAAC;AACtD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAwBpD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA2ID,qBAAa,uBAAwB,YAAW,mBAAmB;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,OAAO,GAAE,8BAAmC;IAyBxD,GAAG,CAAC,KAAK,EAAE;QACT,MAAM,EAAE,0BAA0B,CAAC;QAAC,OAAO,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;KACxF,GAAG,aAAa,CAAC,kBAAkB,CAAC;YAMtB,OAAO;YAiFP,OAAO;CAwIvB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wEAAwE;AACxE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AA6DD,iGAAiG;AACjG,eAAO,MAAM,8BAA8B,YAChC,yBAAyB,KACjC,QAAQ,yBAAyB,CAgCnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,YACjC,gCAAgC,KACxC,uBAaF,CAAC;AAEF,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC"}
|
|
@@ -0,0 +1,590 @@
|
|
|
1
|
+
// @sentropic/llm-mesh/node/claude-code-cli-runner.ts
|
|
2
|
+
//
|
|
3
|
+
// Concrete Node host for the Claude Code runtime client. Spawns the `claude`
|
|
4
|
+
// CLI headless (`-p --verbose --output-format stream-json --model --effort`,
|
|
5
|
+
// optional `--system-prompt-file`, plus confinement flags), feeds the
|
|
6
|
+
// projected prompt over stdin, and normalizes stream-json output to
|
|
7
|
+
// ClaudeCodeCliEvent.
|
|
8
|
+
//
|
|
9
|
+
// Secret boundary: the seat OAuth access projection travels as
|
|
10
|
+
// CLAUDE_CODE_OAUTH_TOKEN in the CHILD env only. It never appears on argv,
|
|
11
|
+
// in logs, or in thrown messages. The child env is an allowlist (PATH and a
|
|
12
|
+
// few locale/timezone knobs copied from the parent); every known
|
|
13
|
+
// authentication, endpoint, and cloud carrier is purged before the seat token
|
|
14
|
+
// is injected, so the CLI cannot prefer ambient key auth over the seat grant
|
|
15
|
+
// and ambient secrets never reach the CLI or its hook/MCP descendants.
|
|
16
|
+
// Confinement: the CLI runs with `--tools ""`, `--strict-mcp-config` (no
|
|
17
|
+
// MCP config, so no MCP servers), and `--no-session-persistence`, inside a
|
|
18
|
+
// fresh sandbox directory used as cwd, HOME, and CLAUDE_CONFIG_DIR; ambient
|
|
19
|
+
// hooks, skills, plugins, and settings never load from the sandbox. A
|
|
20
|
+
// non-empty tool/MCP inventory in the CLI `init` line fails the run closed
|
|
21
|
+
// immediately, before any further event is emitted, and a successful run
|
|
22
|
+
// always observed an `init` line. Requests carrying tool definitions are
|
|
23
|
+
// refused before spawning: the CLI host never silently drops them.
|
|
24
|
+
// Quota signals (5-hour session limit, rate limits, overload) surface as
|
|
25
|
+
// ClaudeCliQuotaError; every other host failure is a fixed-message runner
|
|
26
|
+
// error with no CLI output attached.
|
|
27
|
+
import { spawn } from 'node:child_process';
|
|
28
|
+
import { mkdtemp, rm } from 'node:fs/promises';
|
|
29
|
+
import { tmpdir } from 'node:os';
|
|
30
|
+
import { join } from 'node:path';
|
|
31
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
32
|
+
import { ClaudeCliQuotaError, ClaudeCodeRuntimeClient, } from '../transport/claude-code-runtime-client.js';
|
|
33
|
+
import { appendCappedTail, diagnoseClaudeCodeQuota, extractQuotaText, parseClaudeCodeLine, renderClaudeCodeCliPrompt } from './claude-code-cli-wire.js';
|
|
34
|
+
export const CLAUDE_CODE_OAUTH_ENV_VAR = 'CLAUDE_CODE_OAUTH_TOKEN';
|
|
35
|
+
export const CLAUDE_CODE_STREAM_PROTOCOL = 'claude-code-stream-json-v1';
|
|
36
|
+
export const DEFAULT_CLAUDE_CODE_CLI_PATH = 'claude';
|
|
37
|
+
export const DEFAULT_CLAUDE_CODE_EFFORT = 'medium';
|
|
38
|
+
export const DEFAULT_CLAUDE_CODE_TIMEOUT_MS = 300_000;
|
|
39
|
+
export const CLAUDE_CODE_RESULT_TIMEOUT_MS = 15_000;
|
|
40
|
+
/** SIGTERM grace before the group SIGKILL escalation. */
|
|
41
|
+
const KILL_GRACE_MS = 2_000;
|
|
42
|
+
/** One NDJSON line past this fails the run instead of growing the buffer. */
|
|
43
|
+
const MAX_STDOUT_LINE_CHARS = 1_048_576;
|
|
44
|
+
/** Whole-run stdout past this fails the run instead of growing memory. */
|
|
45
|
+
const MAX_STDOUT_TOTAL_BYTES = 33_554_432;
|
|
46
|
+
/** Probe output past this fails the probe instead of growing memory. */
|
|
47
|
+
const MAX_PROBE_OUTPUT_BYTES = 65_536;
|
|
48
|
+
/** Oldest qualified CLI line: every confinement flag below was verified on 2.1.x. */
|
|
49
|
+
const MIN_CLAUDE_CODE_MAJOR = 2;
|
|
50
|
+
const MIN_CLAUDE_CODE_MINOR = 1;
|
|
51
|
+
const REQUIRED_CLAUDE_CODE_FLAGS = [
|
|
52
|
+
'--verbose',
|
|
53
|
+
'--output-format',
|
|
54
|
+
'--model',
|
|
55
|
+
'--effort',
|
|
56
|
+
'--system-prompt-file',
|
|
57
|
+
'--tools',
|
|
58
|
+
'--strict-mcp-config',
|
|
59
|
+
'--no-session-persistence',
|
|
60
|
+
];
|
|
61
|
+
const STDERR_TAIL_BYTES = 8_192;
|
|
62
|
+
const nonEmpty = (value) => typeof value === 'string' && value.length > 0 && value.length <= 4096
|
|
63
|
+
&& !/[\0-\x1f\x7f]/.test(value);
|
|
64
|
+
const validEffort = (value) => /^[A-Za-z0-9-]{1,16}$/.test(value);
|
|
65
|
+
const validModelId = (value) => /^[a-zA-Z0-9][a-zA-Z0-9._:-]*$/.test(value) && value.length <= 256;
|
|
66
|
+
/**
|
|
67
|
+
* Parent env names copied into the CLI child. Everything else — ambient
|
|
68
|
+
* secrets, auth carriers, endpoints, cloud credentials — never crosses.
|
|
69
|
+
*/
|
|
70
|
+
const CHILD_ENV_COPY = ['PATH', 'LANG', 'LC_ALL', 'TZ', 'NO_COLOR'];
|
|
71
|
+
/**
|
|
72
|
+
* Auth/endpoint/cloud carriers purged from the child env before the seat
|
|
73
|
+
* token is injected. The allowlist above already excludes them; this is
|
|
74
|
+
* belt-and-suspenders in case the allowlist ever grows.
|
|
75
|
+
*/
|
|
76
|
+
const PURGED_ENV_PREFIXES = [
|
|
77
|
+
'ANTHROPIC_',
|
|
78
|
+
'CLAUDE_CODE_',
|
|
79
|
+
'AWS_',
|
|
80
|
+
'GOOGLE_',
|
|
81
|
+
'GEMINI_',
|
|
82
|
+
'AZURE_',
|
|
83
|
+
'VERTEX_',
|
|
84
|
+
'BEDROCK_',
|
|
85
|
+
];
|
|
86
|
+
/**
|
|
87
|
+
* Minimal child env: allowlist copy, purge, then the sandbox dirs and — when
|
|
88
|
+
* a seat projection is supplied — the seat token. The probe passes no token
|
|
89
|
+
* and never runs a workload.
|
|
90
|
+
*/
|
|
91
|
+
const buildChildEnv = (sandboxDir, accessToken) => {
|
|
92
|
+
const env = {};
|
|
93
|
+
for (const name of CHILD_ENV_COPY) {
|
|
94
|
+
const value = process.env[name];
|
|
95
|
+
if (value !== undefined)
|
|
96
|
+
env[name] = value;
|
|
97
|
+
}
|
|
98
|
+
if (process.platform === 'win32') {
|
|
99
|
+
const systemRoot = process.env['SystemRoot'];
|
|
100
|
+
if (systemRoot !== undefined)
|
|
101
|
+
env['SystemRoot'] = systemRoot;
|
|
102
|
+
}
|
|
103
|
+
for (const name of Object.keys(env)) {
|
|
104
|
+
if (PURGED_ENV_PREFIXES.some((prefix) => name.startsWith(prefix)))
|
|
105
|
+
delete env[name];
|
|
106
|
+
}
|
|
107
|
+
if (accessToken !== undefined)
|
|
108
|
+
env[CLAUDE_CODE_OAUTH_ENV_VAR] = accessToken;
|
|
109
|
+
env['CLAUDE_CONFIG_DIR'] = sandboxDir;
|
|
110
|
+
env['HOME'] = sandboxDir;
|
|
111
|
+
env['TMPDIR'] = sandboxDir;
|
|
112
|
+
env['TMP'] = sandboxDir;
|
|
113
|
+
env['TEMP'] = sandboxDir;
|
|
114
|
+
env['XDG_CONFIG_HOME'] = sandboxDir;
|
|
115
|
+
env['XDG_CACHE_HOME'] = sandboxDir;
|
|
116
|
+
env['XDG_DATA_HOME'] = sandboxDir;
|
|
117
|
+
env['XDG_STATE_HOME'] = sandboxDir;
|
|
118
|
+
return env;
|
|
119
|
+
};
|
|
120
|
+
const abortedError = () => {
|
|
121
|
+
const error = new Error('claude CLI runner aborted');
|
|
122
|
+
error.name = 'AbortError';
|
|
123
|
+
return error;
|
|
124
|
+
};
|
|
125
|
+
const runnerError = (message) => {
|
|
126
|
+
const error = new Error(message);
|
|
127
|
+
error.name = 'ClaudeCliRunnerError';
|
|
128
|
+
return error;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Signal the whole process group on POSIX (the child is spawned detached, so
|
|
132
|
+
* its pid is the group id) and the direct child on win32. Skipped only when
|
|
133
|
+
* our own stdio pipes are already closed — while they are open the group is
|
|
134
|
+
* necessarily alive, so there is no pid-reuse race.
|
|
135
|
+
*/
|
|
136
|
+
const killTree = (child, closed, signal) => {
|
|
137
|
+
if (!child || closed())
|
|
138
|
+
return;
|
|
139
|
+
// POSIX: signal the detached process group first (the child is spawned
|
|
140
|
+
// detached, so its pid is the group id). When the group is already gone
|
|
141
|
+
// (ESRCH) fall back to the direct child so a non-group-leader child is
|
|
142
|
+
// still reaped; win32 has no process groups.
|
|
143
|
+
if (child.pid !== undefined && process.platform !== 'win32') {
|
|
144
|
+
try {
|
|
145
|
+
process.kill(-child.pid, signal);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
catch { /* group gone: fall through to the direct child */ }
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
if (child.exitCode === null)
|
|
152
|
+
child.kill(signal);
|
|
153
|
+
}
|
|
154
|
+
catch { /* already gone */ }
|
|
155
|
+
};
|
|
156
|
+
const destroyPipes = (child) => {
|
|
157
|
+
try {
|
|
158
|
+
child?.stdin?.destroy();
|
|
159
|
+
}
|
|
160
|
+
catch { /* already gone */ }
|
|
161
|
+
try {
|
|
162
|
+
child?.stdout?.destroy();
|
|
163
|
+
}
|
|
164
|
+
catch { /* already gone */ }
|
|
165
|
+
try {
|
|
166
|
+
child?.stderr?.destroy();
|
|
167
|
+
}
|
|
168
|
+
catch { /* already gone */ }
|
|
169
|
+
};
|
|
170
|
+
const waitForClose = async (child, closed, timeoutMs) => {
|
|
171
|
+
if (closed())
|
|
172
|
+
return true;
|
|
173
|
+
return new Promise((resolve) => {
|
|
174
|
+
const timer = setTimeout(() => resolve(false), timeoutMs);
|
|
175
|
+
timer.unref?.();
|
|
176
|
+
child.once('close', () => { clearTimeout(timer); resolve(true); });
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Hard teardown: SIGTERM the group, escalate to a group SIGKILL past the
|
|
181
|
+
* grace, destroy our pipe ends so a surviving grandchild holding stdout can
|
|
182
|
+
* neither block nor orphan the run, then await the close.
|
|
183
|
+
*/
|
|
184
|
+
const shutdown = async (child, closed) => {
|
|
185
|
+
if (!child)
|
|
186
|
+
return;
|
|
187
|
+
killTree(child, closed, 'SIGTERM');
|
|
188
|
+
if (await waitForClose(child, closed, KILL_GRACE_MS))
|
|
189
|
+
return;
|
|
190
|
+
killTree(child, closed, 'SIGKILL');
|
|
191
|
+
destroyPipes(child);
|
|
192
|
+
await waitForClose(child, closed, CLAUDE_CODE_RESULT_TIMEOUT_MS);
|
|
193
|
+
};
|
|
194
|
+
export class NodeClaudeCodeCliRunner {
|
|
195
|
+
cliPath;
|
|
196
|
+
effort;
|
|
197
|
+
systemPromptFile;
|
|
198
|
+
timeoutMs;
|
|
199
|
+
stderrTailBytes;
|
|
200
|
+
constructor(options = {}) {
|
|
201
|
+
if (options.cliPath !== undefined && !nonEmpty(options.cliPath)) {
|
|
202
|
+
throw new Error('claude CLI path must be a non-empty string');
|
|
203
|
+
}
|
|
204
|
+
if (options.effort !== undefined && !validEffort(options.effort)) {
|
|
205
|
+
throw new Error('claude CLI effort must match [A-Za-z0-9-]{1,16}');
|
|
206
|
+
}
|
|
207
|
+
if (options.systemPromptFile !== undefined && !nonEmpty(options.systemPromptFile)) {
|
|
208
|
+
throw new Error('claude CLI system prompt file must be a non-empty string');
|
|
209
|
+
}
|
|
210
|
+
if (options.timeoutMs !== undefined
|
|
211
|
+
&& (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0)) {
|
|
212
|
+
throw new Error('claude CLI timeout must be a positive number of milliseconds');
|
|
213
|
+
}
|
|
214
|
+
if (options.collectStderrBytes !== undefined
|
|
215
|
+
&& (!Number.isSafeInteger(options.collectStderrBytes) || options.collectStderrBytes < 0)) {
|
|
216
|
+
throw new Error('claude CLI stderr cap must be a non-negative safe integer');
|
|
217
|
+
}
|
|
218
|
+
this.cliPath = options.cliPath ?? DEFAULT_CLAUDE_CODE_CLI_PATH;
|
|
219
|
+
this.effort = options.effort ?? DEFAULT_CLAUDE_CODE_EFFORT;
|
|
220
|
+
this.systemPromptFile = options.systemPromptFile;
|
|
221
|
+
this.timeoutMs = options.timeoutMs ?? DEFAULT_CLAUDE_CODE_TIMEOUT_MS;
|
|
222
|
+
this.stderrTailBytes = options.collectStderrBytes ?? STDERR_TAIL_BYTES;
|
|
223
|
+
}
|
|
224
|
+
run(input) {
|
|
225
|
+
return {
|
|
226
|
+
[Symbol.asyncIterator]: () => this.execute(input.access, input.request, input.signal),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
async *execute(access, request, signal) {
|
|
230
|
+
if (!nonEmpty(access.accessToken) || /[\r\n]/.test(access.accessToken)) {
|
|
231
|
+
throw runnerError('claude CLI runner refused an invalid access projection');
|
|
232
|
+
}
|
|
233
|
+
if (!validModelId(request.modelId))
|
|
234
|
+
throw runnerError('claude CLI runner refused an invalid model id');
|
|
235
|
+
// Tool definitions are never forwarded: the CLI runs with `--tools ""`,
|
|
236
|
+
// so accepting them would silently drop caller intent. Refuse instead.
|
|
237
|
+
if (request.tools !== undefined && request.tools.length > 0) {
|
|
238
|
+
throw runnerError('claude CLI runner refused a request with tool definitions');
|
|
239
|
+
}
|
|
240
|
+
// No token-bearing process exists before this point: abort and prompt
|
|
241
|
+
// rendering both precede the spawn.
|
|
242
|
+
if (signal.aborted)
|
|
243
|
+
throw abortedError();
|
|
244
|
+
const prompt = renderClaudeCodeCliPrompt(request);
|
|
245
|
+
if (signal.aborted)
|
|
246
|
+
throw abortedError();
|
|
247
|
+
const sandboxDir = await mkdtemp(join(tmpdir(), 'claude-seat-')).catch(() => {
|
|
248
|
+
throw runnerError('claude CLI runner failed to isolate the CLI workspace');
|
|
249
|
+
});
|
|
250
|
+
let child;
|
|
251
|
+
let closed = false;
|
|
252
|
+
const isClosed = () => closed;
|
|
253
|
+
try {
|
|
254
|
+
// --verbose is required with -p --output-format stream-json on the 2.1
|
|
255
|
+
// line; --tools "" disables every built-in (local) tool; with
|
|
256
|
+
// --strict-mcp-config and no --mcp-config no MCP server can load;
|
|
257
|
+
// --no-session-persistence keeps the seat run off disk.
|
|
258
|
+
const args = ['-p', '--verbose', '--output-format', 'stream-json',
|
|
259
|
+
'--model', request.modelId, '--effort', this.effort,
|
|
260
|
+
'--tools', '', '--strict-mcp-config', '--no-session-persistence',
|
|
261
|
+
...(this.systemPromptFile ? ['--system-prompt-file', this.systemPromptFile] : [])];
|
|
262
|
+
const env = buildChildEnv(sandboxDir, access.accessToken);
|
|
263
|
+
try {
|
|
264
|
+
child = spawn(this.cliPath, args, { env: env, stdio: ['pipe', 'pipe', 'pipe'],
|
|
265
|
+
cwd: sandboxDir, detached: process.platform !== 'win32' });
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
throw runnerError('claude CLI runner failed to spawn the CLI');
|
|
269
|
+
}
|
|
270
|
+
child.once('close', () => { closed = true; });
|
|
271
|
+
// The internal stop fires on external abort and on timeout; consume
|
|
272
|
+
// observes it so a SIGTERM-ignoring CLI cannot hold the run open.
|
|
273
|
+
const stop = new AbortController();
|
|
274
|
+
const onAbort = () => { stop.abort(); void shutdown(child, isClosed); };
|
|
275
|
+
if (signal.aborted) {
|
|
276
|
+
onAbort();
|
|
277
|
+
throw abortedError();
|
|
278
|
+
}
|
|
279
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
280
|
+
let timer;
|
|
281
|
+
let timedOut = false;
|
|
282
|
+
try {
|
|
283
|
+
timer = setTimeout(() => {
|
|
284
|
+
timedOut = true;
|
|
285
|
+
stop.abort();
|
|
286
|
+
void shutdown(child, isClosed);
|
|
287
|
+
}, this.timeoutMs);
|
|
288
|
+
timer.unref?.();
|
|
289
|
+
yield* this.consume(child, prompt, stop.signal);
|
|
290
|
+
if (stop.signal.aborted) {
|
|
291
|
+
if (signal.aborted)
|
|
292
|
+
throw abortedError();
|
|
293
|
+
if (timedOut)
|
|
294
|
+
throw runnerError('claude CLI runner timed out waiting for the CLI result');
|
|
295
|
+
throw runnerError('claude CLI runner stopped before the CLI result');
|
|
296
|
+
}
|
|
297
|
+
if (timedOut)
|
|
298
|
+
throw runnerError('claude CLI runner timed out waiting for the CLI result');
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
if (signal.aborted)
|
|
302
|
+
throw abortedError();
|
|
303
|
+
if (timedOut)
|
|
304
|
+
throw runnerError('claude CLI runner timed out waiting for the CLI result');
|
|
305
|
+
if (error instanceof ClaudeCliQuotaError)
|
|
306
|
+
throw error;
|
|
307
|
+
if (error instanceof Error && error.name === 'ClaudeCliRunnerError')
|
|
308
|
+
throw error;
|
|
309
|
+
throw runnerError('claude CLI runner failed while reading CLI output');
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
clearTimeout(timer);
|
|
313
|
+
signal.removeEventListener('abort', onAbort);
|
|
314
|
+
await shutdown(child, isClosed);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
finally {
|
|
318
|
+
await rm(sandboxDir, { recursive: true, force: true }).catch(() => undefined);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
async *consume(child, prompt, stop) {
|
|
322
|
+
const stdout = child.stdout;
|
|
323
|
+
const stderr = child.stderr;
|
|
324
|
+
if (!stdout || !stderr)
|
|
325
|
+
throw runnerError('claude CLI runner lost the CLI pipes');
|
|
326
|
+
// Byte-capped tail: the pipe is always drained, but at most
|
|
327
|
+
// collectStderrBytes are retained (0 keeps nothing).
|
|
328
|
+
let stderrTail = Buffer.from('');
|
|
329
|
+
stderr.on('data', (chunk) => {
|
|
330
|
+
stderrTail = appendCappedTail(stderrTail, chunk, this.stderrTailBytes);
|
|
331
|
+
});
|
|
332
|
+
const failures = [];
|
|
333
|
+
child.once('error', (error) => { failures.push(error); });
|
|
334
|
+
const stdinError = new Promise((resolve) => {
|
|
335
|
+
child.stdin?.once('error', () => resolve());
|
|
336
|
+
child.stdin?.once('close', () => resolve());
|
|
337
|
+
});
|
|
338
|
+
const writePrompt = (async () => {
|
|
339
|
+
try {
|
|
340
|
+
if (!child.stdin)
|
|
341
|
+
return;
|
|
342
|
+
await new Promise((resolve, reject) => {
|
|
343
|
+
child.stdin.write(prompt, (error) => { if (error)
|
|
344
|
+
reject(error);
|
|
345
|
+
else
|
|
346
|
+
resolve(); });
|
|
347
|
+
child.stdin.end();
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
catch { /* the exit path below reports the failure */ }
|
|
351
|
+
})();
|
|
352
|
+
void stdinError;
|
|
353
|
+
const decoder = new StringDecoder('utf8');
|
|
354
|
+
let buffer = '';
|
|
355
|
+
let totalBytes = 0;
|
|
356
|
+
let toolCalls = 0;
|
|
357
|
+
let textEmitted = false;
|
|
358
|
+
let lastStopReason;
|
|
359
|
+
let sawInit = false;
|
|
360
|
+
let toolsInventory;
|
|
361
|
+
let mcpInventory;
|
|
362
|
+
let result;
|
|
363
|
+
let errorPayload;
|
|
364
|
+
const applyOutcome = (outcome) => {
|
|
365
|
+
if (outcome.type === 'system_init') {
|
|
366
|
+
sawInit = true;
|
|
367
|
+
toolsInventory = outcome.init.tools;
|
|
368
|
+
mcpInventory = outcome.init.mcpServers;
|
|
369
|
+
// Fail fast at the init line: a build ignoring `--tools ""` must be
|
|
370
|
+
// rejected before any further event is consumed or emitted.
|
|
371
|
+
if ((Array.isArray(toolsInventory) && toolsInventory.length > 0)
|
|
372
|
+
|| (Array.isArray(mcpInventory) && mcpInventory.length > 0)) {
|
|
373
|
+
throw runnerError('claude CLI runner refused a non-empty CLI tool inventory');
|
|
374
|
+
}
|
|
375
|
+
return [];
|
|
376
|
+
}
|
|
377
|
+
if (outcome.type === 'text') {
|
|
378
|
+
textEmitted = true;
|
|
379
|
+
return [{ type: 'text_delta', text: outcome.text }];
|
|
380
|
+
}
|
|
381
|
+
// Local tools are disabled at the CLI, so a tool_use block can only
|
|
382
|
+
// describe a server-side execution. It is republished verbatim; the
|
|
383
|
+
// non-empty init inventory above is the fail-closed enforcement point.
|
|
384
|
+
if (outcome.type === 'tool_use') {
|
|
385
|
+
toolCalls += 1;
|
|
386
|
+
return [outcome.event];
|
|
387
|
+
}
|
|
388
|
+
if (outcome.type === 'stop_reason') {
|
|
389
|
+
lastStopReason = outcome.reason;
|
|
390
|
+
return [];
|
|
391
|
+
}
|
|
392
|
+
if (outcome.type === 'result') {
|
|
393
|
+
result = outcome.result;
|
|
394
|
+
return [];
|
|
395
|
+
}
|
|
396
|
+
errorPayload = outcome.payload;
|
|
397
|
+
return [];
|
|
398
|
+
};
|
|
399
|
+
const exitCode = new Promise((resolve) => {
|
|
400
|
+
child.once('exit', (code) => resolve(code));
|
|
401
|
+
child.once('error', () => resolve(null));
|
|
402
|
+
});
|
|
403
|
+
try {
|
|
404
|
+
for await (const chunk of stdout) {
|
|
405
|
+
if (stop.aborted)
|
|
406
|
+
return;
|
|
407
|
+
totalBytes += chunk.length;
|
|
408
|
+
if (totalBytes > MAX_STDOUT_TOTAL_BYTES) {
|
|
409
|
+
throw runnerError('claude CLI runner refused an oversized CLI output');
|
|
410
|
+
}
|
|
411
|
+
buffer += decoder.write(chunk);
|
|
412
|
+
if (buffer.length > MAX_STDOUT_LINE_CHARS) {
|
|
413
|
+
throw runnerError('claude CLI runner refused an oversized CLI output line');
|
|
414
|
+
}
|
|
415
|
+
let boundary = buffer.indexOf('\n');
|
|
416
|
+
while (boundary >= 0) {
|
|
417
|
+
const line = buffer.slice(0, boundary).trim();
|
|
418
|
+
buffer = buffer.slice(boundary + 1);
|
|
419
|
+
boundary = buffer.indexOf('\n');
|
|
420
|
+
if (!line)
|
|
421
|
+
continue;
|
|
422
|
+
for (const outcome of parseClaudeCodeLine(line)) {
|
|
423
|
+
const events = applyOutcome(outcome);
|
|
424
|
+
for (const event of events)
|
|
425
|
+
yield event;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
// A final line without a trailing newline is still a line.
|
|
430
|
+
buffer += decoder.end();
|
|
431
|
+
if (buffer.trim().length > 0) {
|
|
432
|
+
for (const outcome of parseClaudeCodeLine(buffer.trim())) {
|
|
433
|
+
const events = applyOutcome(outcome);
|
|
434
|
+
for (const event of events)
|
|
435
|
+
yield event;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
if (error instanceof Error && error.name === 'ClaudeCliRunnerError')
|
|
441
|
+
throw error;
|
|
442
|
+
throw runnerError('claude CLI runner failed while reading CLI output');
|
|
443
|
+
}
|
|
444
|
+
await writePrompt;
|
|
445
|
+
const code = await exitCode;
|
|
446
|
+
if (errorPayload !== undefined || result === undefined) {
|
|
447
|
+
const structuredText = errorPayload === undefined ? undefined : extractQuotaText(errorPayload);
|
|
448
|
+
const structured = structuredText === undefined
|
|
449
|
+
? { quota: false }
|
|
450
|
+
: diagnoseClaudeCodeQuota(structuredText);
|
|
451
|
+
const diagnosis = structured.quota
|
|
452
|
+
? structured
|
|
453
|
+
: diagnoseClaudeCodeQuota(stderrTail.toString('utf8'));
|
|
454
|
+
if (diagnosis.quota)
|
|
455
|
+
throw new ClaudeCliQuotaError(diagnosis.retryAfterMs);
|
|
456
|
+
if (code !== 0) {
|
|
457
|
+
const spawnFailure = failures.length > 0;
|
|
458
|
+
throw runnerError(spawnFailure
|
|
459
|
+
? 'claude CLI runner failed to run the CLI executable'
|
|
460
|
+
: `claude CLI runner exited with code ${String(code)}`);
|
|
461
|
+
}
|
|
462
|
+
throw runnerError('claude CLI runner ended without a CLI result');
|
|
463
|
+
}
|
|
464
|
+
// A successful run always observed the `init` line: without it the tool
|
|
465
|
+
// inventory gate above never ran, so the result is untrusted.
|
|
466
|
+
if (!sawInit)
|
|
467
|
+
throw runnerError('claude CLI runner ended without a CLI init line');
|
|
468
|
+
const finishReason = toolCalls > 0 ? 'tool_calls'
|
|
469
|
+
: lastStopReason === 'max_tokens' ? 'length' : result.finishReason;
|
|
470
|
+
if (result.resultText !== undefined && !textEmitted && result.resultText.trim().length > 0) {
|
|
471
|
+
yield { type: 'text_delta', text: result.resultText };
|
|
472
|
+
}
|
|
473
|
+
yield result.usage !== undefined
|
|
474
|
+
? { type: 'result', finishReason, usage: result.usage }
|
|
475
|
+
: { type: 'result', finishReason };
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Run one probe command with a token-free allowlist env inside the sandbox;
|
|
480
|
+
* never runs a workload. Output is byte-capped; stderr is drained.
|
|
481
|
+
*/
|
|
482
|
+
const runProbeCommand = (cliPath, args, env, sandboxDir, timeoutMs) => new Promise((resolve, reject) => {
|
|
483
|
+
let child;
|
|
484
|
+
try {
|
|
485
|
+
// Detached like the workload spawn so the timeout below can signal the
|
|
486
|
+
// whole group (killTree falls back to the direct child on win32).
|
|
487
|
+
child = spawn(cliPath, args, { env: env, stdio: ['ignore', 'pipe', 'pipe'],
|
|
488
|
+
cwd: sandboxDir, detached: process.platform !== 'win32' });
|
|
489
|
+
}
|
|
490
|
+
catch {
|
|
491
|
+
reject(runnerError('claude CLI probe failed to spawn the CLI'));
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
let closed = false;
|
|
495
|
+
child.once('close', () => { closed = true; });
|
|
496
|
+
const isClosed = () => closed;
|
|
497
|
+
let received = 0;
|
|
498
|
+
let output = Buffer.from('');
|
|
499
|
+
child.stdout?.on('data', (chunk) => {
|
|
500
|
+
received += chunk.length;
|
|
501
|
+
if (received <= MAX_PROBE_OUTPUT_BYTES)
|
|
502
|
+
output = Buffer.concat([output, chunk]);
|
|
503
|
+
});
|
|
504
|
+
child.stderr?.on('data', () => { });
|
|
505
|
+
const timer = setTimeout(() => {
|
|
506
|
+
killTree(child, isClosed, 'SIGKILL');
|
|
507
|
+
destroyPipes(child);
|
|
508
|
+
reject(runnerError('claude CLI probe timed out'));
|
|
509
|
+
}, timeoutMs);
|
|
510
|
+
timer.unref?.();
|
|
511
|
+
child.once('error', () => {
|
|
512
|
+
clearTimeout(timer);
|
|
513
|
+
reject(runnerError('claude CLI probe failed to run the CLI'));
|
|
514
|
+
});
|
|
515
|
+
// Resolve on `close`, not `exit`, so all stdio is drained: `exit` can fire
|
|
516
|
+
// while the last output bytes are still in flight. Buffer.concat keeps
|
|
517
|
+
// multi-byte characters split across chunks intact.
|
|
518
|
+
child.once('close', (code) => {
|
|
519
|
+
clearTimeout(timer);
|
|
520
|
+
if (code !== 0) {
|
|
521
|
+
reject(runnerError('claude CLI probe could not read the CLI'));
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
524
|
+
if (received > MAX_PROBE_OUTPUT_BYTES) {
|
|
525
|
+
reject(runnerError('claude CLI probe refused an oversized CLI output'));
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
resolve(output.toString('utf8'));
|
|
529
|
+
});
|
|
530
|
+
});
|
|
531
|
+
/** Probe `claude --version` and `claude --help` with a token-free env; never runs a workload. */
|
|
532
|
+
export const probeClaudeCodeCliCapabilities = (options) => {
|
|
533
|
+
if (!nonEmpty(options.source))
|
|
534
|
+
throw new Error('claude CLI probe needs a trusted source label');
|
|
535
|
+
if (!nonEmpty(options.qualificationRef))
|
|
536
|
+
throw new Error('claude CLI probe needs a qualification reference');
|
|
537
|
+
const cliPath = options.cliPath ?? DEFAULT_CLAUDE_CODE_CLI_PATH;
|
|
538
|
+
const timeoutMs = options.timeoutMs ?? CLAUDE_CODE_RESULT_TIMEOUT_MS;
|
|
539
|
+
return (async () => {
|
|
540
|
+
const sandboxDir = await mkdtemp(join(tmpdir(), 'claude-seat-probe-')).catch(() => {
|
|
541
|
+
throw runnerError('claude CLI probe failed to isolate the CLI workspace');
|
|
542
|
+
});
|
|
543
|
+
try {
|
|
544
|
+
const env = buildChildEnv(sandboxDir);
|
|
545
|
+
const version = await runProbeCommand(cliPath, ['--version'], env, sandboxDir, timeoutMs);
|
|
546
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
547
|
+
const major = match === null ? NaN : Number(match[1]);
|
|
548
|
+
const minor = match === null ? NaN : Number(match[2]);
|
|
549
|
+
if (!Number.isSafeInteger(major) || !Number.isSafeInteger(minor)
|
|
550
|
+
|| major < MIN_CLAUDE_CODE_MAJOR || (major === MIN_CLAUDE_CODE_MAJOR && minor < MIN_CLAUDE_CODE_MINOR)) {
|
|
551
|
+
throw runnerError('claude CLI probe requires claude 2.1 or newer');
|
|
552
|
+
}
|
|
553
|
+
const help = await runProbeCommand(cliPath, ['--help'], env, sandboxDir, timeoutMs);
|
|
554
|
+
const missing = REQUIRED_CLAUDE_CODE_FLAGS.filter((flag) => !help.includes(flag));
|
|
555
|
+
if (missing.length > 0)
|
|
556
|
+
throw runnerError('claude CLI probe found a CLI missing confinement flags');
|
|
557
|
+
// Flags alone are not enough: the probe pins the stream-json value and
|
|
558
|
+
// the `-p` headless switch the runner relies on.
|
|
559
|
+
if (!help.includes('stream-json'))
|
|
560
|
+
throw runnerError('claude CLI probe found a CLI without stream-json output');
|
|
561
|
+
if (!/(^|\s)-p(\s|,|$)/m.test(help))
|
|
562
|
+
throw runnerError('claude CLI probe found a CLI without headless print mode');
|
|
563
|
+
return { protocol: CLAUDE_CODE_STREAM_PROTOCOL, cliVersion: `${major}.${minor}.${Number(match[3])}`,
|
|
564
|
+
source: options.source, qualificationRef: options.qualificationRef };
|
|
565
|
+
}
|
|
566
|
+
finally {
|
|
567
|
+
await rm(sandboxDir, { recursive: true, force: true }).catch(() => undefined);
|
|
568
|
+
}
|
|
569
|
+
})();
|
|
570
|
+
};
|
|
571
|
+
/**
|
|
572
|
+
* Factory for the consumer: builds the `clients.anthropic` runtime client
|
|
573
|
+
* over a dedicated Claude seat. Wire with
|
|
574
|
+
* `createDefaultProviderAdapters({ anthropic })`.
|
|
575
|
+
*/
|
|
576
|
+
export const createClaudeSeatAnthropicClient = (options) => {
|
|
577
|
+
const runner = new NodeClaudeCodeCliRunner({
|
|
578
|
+
...(options.cliPath !== undefined ? { cliPath: options.cliPath } : {}),
|
|
579
|
+
...(options.effort !== undefined ? { effort: options.effort } : {}),
|
|
580
|
+
...(options.systemPromptFile !== undefined ? { systemPromptFile: options.systemPromptFile } : {}),
|
|
581
|
+
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
582
|
+
});
|
|
583
|
+
return new ClaudeCodeRuntimeClient({
|
|
584
|
+
runner,
|
|
585
|
+
capabilities: { ...options.capabilities },
|
|
586
|
+
...(options.fallback !== undefined ? { fallback: options.fallback } : {}),
|
|
587
|
+
...(options.now !== undefined ? { now: options.now } : {}),
|
|
588
|
+
});
|
|
589
|
+
};
|
|
590
|
+
//# sourceMappingURL=claude-code-cli-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-cli-runner.js","sourceRoot":"","sources":["../../src/node/claude-code-cli-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ClaudeCodeCliEvent, ClaudeCodeCliRequest } from '../transport/claude-code-runtime-client.js';
|
|
2
|
+
/** Deterministic prompt rendering; pinned by unit tests with a fake CLI. */
|
|
3
|
+
export declare const renderClaudeCodeCliPrompt: (request: ClaudeCodeCliRequest) => string;
|
|
4
|
+
export interface QuotaDiagnosis {
|
|
5
|
+
readonly quota: boolean;
|
|
6
|
+
readonly retryAfterMs?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Quota-relevant text out of a CLI error payload: CLI-owned message fields
|
|
10
|
+
* only (`result`, `message`, `error`, string or numeric `code`). Numeric
|
|
11
|
+
* telemetry beside them (token usage, costs) is never signal, so a bare
|
|
12
|
+
* `429` buried in `usage` cannot trip the quota circuit.
|
|
13
|
+
*/
|
|
14
|
+
export declare const extractQuotaText: (payload: unknown) => string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Append a chunk to a byte-capped stderr tail. A non-positive cap keeps
|
|
17
|
+
* nothing (the caller still drains the pipe, but stores no bytes).
|
|
18
|
+
*/
|
|
19
|
+
export declare const appendCappedTail: (current: Buffer, chunk: Uint8Array, capBytes: number) => Buffer;
|
|
20
|
+
/** Match quota prose in CLI-owned text only (stderr, error payloads). */
|
|
21
|
+
export declare const diagnoseClaudeCodeQuota: (text: unknown) => QuotaDiagnosis;
|
|
22
|
+
export type ClaudeCodeLineOutcome = {
|
|
23
|
+
type: 'system_init';
|
|
24
|
+
init: {
|
|
25
|
+
tools?: unknown;
|
|
26
|
+
mcpServers?: unknown;
|
|
27
|
+
};
|
|
28
|
+
} | {
|
|
29
|
+
type: 'text';
|
|
30
|
+
text: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: 'tool_use';
|
|
33
|
+
event: Extract<ClaudeCodeCliEvent, {
|
|
34
|
+
type: 'tool_use';
|
|
35
|
+
}>;
|
|
36
|
+
} | {
|
|
37
|
+
type: 'stop_reason';
|
|
38
|
+
reason: unknown;
|
|
39
|
+
} | {
|
|
40
|
+
type: 'result';
|
|
41
|
+
result: {
|
|
42
|
+
finishReason: 'stop' | 'length' | 'tool_calls';
|
|
43
|
+
usage?: {
|
|
44
|
+
inputTokens?: number;
|
|
45
|
+
outputTokens?: number;
|
|
46
|
+
};
|
|
47
|
+
resultText?: string;
|
|
48
|
+
};
|
|
49
|
+
} | {
|
|
50
|
+
type: 'error_payload';
|
|
51
|
+
payload: unknown;
|
|
52
|
+
};
|
|
53
|
+
/** Normalize one stream-json line; unknown and noise lines yield nothing. */
|
|
54
|
+
export declare const parseClaudeCodeLine: (line: string) => ClaudeCodeLineOutcome[];
|
|
55
|
+
//# sourceMappingURL=claude-code-cli-wire.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-cli-wire.d.ts","sourceRoot":"","sources":["../../src/node/claude-code-cli-wire.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,4CAA4C,CAAC;AAEpD,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,YAAa,oBAAoB,KAAG,MAezE,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,OAAO,KAAG,MAAM,GAAG,SAW5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,SAAS,UAAU,YAAY,MAAM,KAAG,MAIvF,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,SAAU,OAAO,KAAG,cAKvD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;QACzE,KAAK,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAQhD,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,qBAAqB,EAgDvE,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// @sentropic/llm-mesh/node/claude-code-cli-wire.ts
|
|
2
|
+
//
|
|
3
|
+
// Pure stream-json wire for the `claude` CLI host: deterministic prompt
|
|
4
|
+
// rendering, quota prose diagnosis, and line normalization to
|
|
5
|
+
// ClaudeCodeCliEvent outcomes. No process, clock, or network access —
|
|
6
|
+
// safe to unit-test without a CLI.
|
|
7
|
+
/** Deterministic prompt rendering; pinned by unit tests with a fake CLI. */
|
|
8
|
+
export const renderClaudeCodeCliPrompt = (request) => {
|
|
9
|
+
const lines = [];
|
|
10
|
+
for (const message of request.messages) {
|
|
11
|
+
for (const part of message.content) {
|
|
12
|
+
if (part.type === 'text') {
|
|
13
|
+
lines.push(`${message.role}: ${part.text}`);
|
|
14
|
+
}
|
|
15
|
+
else if (part.type === 'tool_use') {
|
|
16
|
+
lines.push(`${message.role} tool_use ${part.name} ${part.id}: ${JSON.stringify(part.input)}`);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
lines.push(`${message.role} tool_result ${part.tool_use_id}: ${part.content}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (message.content.length === 0)
|
|
23
|
+
lines.push(`${message.role}:`);
|
|
24
|
+
}
|
|
25
|
+
return `${lines.join('\n')}\n`;
|
|
26
|
+
};
|
|
27
|
+
const QUOTA_PATTERN = /5-hour|usage.?limit|rate.?limit|too many requests|\b429\b|quota|overloaded/i;
|
|
28
|
+
const STRUCTURED_QUOTA_KEYS = ['result', 'message', 'error'];
|
|
29
|
+
const RETRY_AFTER_PATTERN = /(\d+)\s*(milliseconds?|seconds?|minutes?|hours?)/i;
|
|
30
|
+
const readRetryAfterMs = (text) => {
|
|
31
|
+
const match = RETRY_AFTER_PATTERN.exec(text);
|
|
32
|
+
if (!match)
|
|
33
|
+
return undefined;
|
|
34
|
+
const amount = Number(match[1]);
|
|
35
|
+
const unit = match[2].toLowerCase();
|
|
36
|
+
if (!Number.isSafeInteger(amount) || amount < 0)
|
|
37
|
+
return undefined;
|
|
38
|
+
const factor = unit.startsWith('millis') ? 1 : unit.startsWith('s') ? 1_000
|
|
39
|
+
: unit.startsWith('m') ? 60_000 : 3_600_000;
|
|
40
|
+
const ms = amount * factor;
|
|
41
|
+
return Number.isSafeInteger(ms) ? ms : undefined;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Quota-relevant text out of a CLI error payload: CLI-owned message fields
|
|
45
|
+
* only (`result`, `message`, `error`, string or numeric `code`). Numeric
|
|
46
|
+
* telemetry beside them (token usage, costs) is never signal, so a bare
|
|
47
|
+
* `429` buried in `usage` cannot trip the quota circuit.
|
|
48
|
+
*/
|
|
49
|
+
export const extractQuotaText = (payload) => {
|
|
50
|
+
if (!isRecord(payload))
|
|
51
|
+
return undefined;
|
|
52
|
+
const parts = [];
|
|
53
|
+
for (const key of STRUCTURED_QUOTA_KEYS) {
|
|
54
|
+
const value = payload[key];
|
|
55
|
+
if (typeof value === 'string' && value.length > 0)
|
|
56
|
+
parts.push(value);
|
|
57
|
+
}
|
|
58
|
+
const code = payload['code'];
|
|
59
|
+
if (typeof code === 'string' && code.length > 0)
|
|
60
|
+
parts.push(code);
|
|
61
|
+
else if (typeof code === 'number' && Number.isSafeInteger(code))
|
|
62
|
+
parts.push(String(code));
|
|
63
|
+
return parts.length > 0 ? parts.join(' ') : undefined;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Append a chunk to a byte-capped stderr tail. A non-positive cap keeps
|
|
67
|
+
* nothing (the caller still drains the pipe, but stores no bytes).
|
|
68
|
+
*/
|
|
69
|
+
export const appendCappedTail = (current, chunk, capBytes) => {
|
|
70
|
+
if (capBytes <= 0)
|
|
71
|
+
return Buffer.from('');
|
|
72
|
+
const next = Buffer.concat([current, Buffer.from(chunk)]);
|
|
73
|
+
return next.length <= capBytes ? next : Buffer.from(next.subarray(next.length - capBytes));
|
|
74
|
+
};
|
|
75
|
+
/** Match quota prose in CLI-owned text only (stderr, error payloads). */
|
|
76
|
+
export const diagnoseClaudeCodeQuota = (text) => {
|
|
77
|
+
if (typeof text !== 'string' || text.length === 0)
|
|
78
|
+
return { quota: false };
|
|
79
|
+
if (!QUOTA_PATTERN.test(text))
|
|
80
|
+
return { quota: false };
|
|
81
|
+
const retryAfterMs = readRetryAfterMs(text);
|
|
82
|
+
return retryAfterMs === undefined ? { quota: true } : { quota: true, retryAfterMs };
|
|
83
|
+
};
|
|
84
|
+
const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
85
|
+
const safeInt = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : undefined;
|
|
86
|
+
/** Normalize one stream-json line; unknown and noise lines yield nothing. */
|
|
87
|
+
export const parseClaudeCodeLine = (line) => {
|
|
88
|
+
let parsed;
|
|
89
|
+
try {
|
|
90
|
+
parsed = JSON.parse(line);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
if (!isRecord(parsed) || typeof parsed.type !== 'string')
|
|
96
|
+
return [];
|
|
97
|
+
if (parsed.type === 'system' && parsed.subtype === 'init') {
|
|
98
|
+
const init = {};
|
|
99
|
+
if ('tools' in parsed)
|
|
100
|
+
init.tools = parsed['tools'];
|
|
101
|
+
if ('mcp_servers' in parsed)
|
|
102
|
+
init.mcpServers = parsed['mcp_servers'];
|
|
103
|
+
else if ('mcpServers' in parsed)
|
|
104
|
+
init.mcpServers = parsed['mcpServers'];
|
|
105
|
+
return [{ type: 'system_init', init }];
|
|
106
|
+
}
|
|
107
|
+
if (parsed.type === 'assistant') {
|
|
108
|
+
const message = parsed.message;
|
|
109
|
+
if (!isRecord(message) || !Array.isArray(message.content))
|
|
110
|
+
return [];
|
|
111
|
+
const outcomes = [];
|
|
112
|
+
for (const block of message.content) {
|
|
113
|
+
if (!isRecord(block) || typeof block.type !== 'string')
|
|
114
|
+
continue;
|
|
115
|
+
if (block.type === 'text' && typeof block.text === 'string' && block.text.length > 0) {
|
|
116
|
+
outcomes.push({ type: 'text', text: block.text });
|
|
117
|
+
}
|
|
118
|
+
else if (block.type === 'tool_use' && typeof block.id === 'string'
|
|
119
|
+
&& typeof block.name === 'string' && isRecord(block.input)) {
|
|
120
|
+
outcomes.push({ type: 'tool_use',
|
|
121
|
+
event: { type: 'tool_use', id: block.id, name: block.name, input: block.input } });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (message.stop_reason !== undefined) {
|
|
125
|
+
outcomes.push({ type: 'stop_reason', reason: message.stop_reason });
|
|
126
|
+
}
|
|
127
|
+
return outcomes;
|
|
128
|
+
}
|
|
129
|
+
if (parsed.type === 'result') {
|
|
130
|
+
if (parsed.subtype === 'success' && parsed.is_error !== true) {
|
|
131
|
+
const usage = isRecord(parsed.usage) ? {
|
|
132
|
+
...(safeInt(parsed.usage.input_tokens) !== undefined ? { inputTokens: safeInt(parsed.usage.input_tokens) } : {}),
|
|
133
|
+
...(safeInt(parsed.usage.output_tokens) !== undefined ? { outputTokens: safeInt(parsed.usage.output_tokens) } : {}),
|
|
134
|
+
} : undefined;
|
|
135
|
+
const resultText = typeof parsed.result === 'string' ? parsed.result : undefined;
|
|
136
|
+
return [{ type: 'result', result: { finishReason: 'stop',
|
|
137
|
+
...(usage && Object.keys(usage).length ? { usage } : {}),
|
|
138
|
+
...(resultText !== undefined ? { resultText } : {}) } }];
|
|
139
|
+
}
|
|
140
|
+
return [{ type: 'error_payload', payload: parsed }];
|
|
141
|
+
}
|
|
142
|
+
return [];
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=claude-code-cli-wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-cli-wire.js","sourceRoot":"","sources":["../../src/node/claude-code-cli-wire.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -20,4 +20,9 @@ export type { SeatCellConfigDirs, SeatCellInput, SeatCellReceipt, SeatCellReceip
|
|
|
20
20
|
export { SEAT_RECORD_REL_PATH, eraseSeatHome, materialiseCellHome, materialiseSeatEnvelopes, } from './seat-onboarding-materialize.js';
|
|
21
21
|
export type { CodexMcpServerSpec, CodexSeatIntent } from '../enrollment/seat-onboarding-projections.js';
|
|
22
22
|
export { CODEX_TRUST_DIALOG_PROBE, projectClaudeOnboarding, projectCodexIntent, projectMuseTrust, renderCodexSeatConfig, } from '../enrollment/seat-onboarding-projections.js';
|
|
23
|
+
export type { ClaudeCodeCliProbeOptions, ClaudeSeatAnthropicClientOptions, NodeClaudeCodeCliRunnerOptions, } from './claude-code-cli-runner.js';
|
|
24
|
+
export { CLAUDE_CODE_OAUTH_ENV_VAR, CLAUDE_CODE_RESULT_TIMEOUT_MS, CLAUDE_CODE_STREAM_PROTOCOL, DEFAULT_CLAUDE_CODE_CLI_PATH, DEFAULT_CLAUDE_CODE_EFFORT, DEFAULT_CLAUDE_CODE_TIMEOUT_MS, NodeClaudeCodeCliRunner, createClaudeSeatAnthropicClient, probeClaudeCodeCliCapabilities, } from './claude-code-cli-runner.js';
|
|
25
|
+
export { ClaudeCliQuotaError } from '../transport/claude-code-runtime-client.js';
|
|
26
|
+
export type { ClaudeCodeLineOutcome, QuotaDiagnosis } from './claude-code-cli-wire.js';
|
|
27
|
+
export { diagnoseClaudeCodeQuota, parseClaudeCodeLine, renderClaudeCodeCliPrompt, } from './claude-code-cli-wire.js';
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.js
CHANGED
|
@@ -11,4 +11,7 @@ export { AGY_REQUIRED_COMPLETED_STEPS, CODEX_APPROVAL_POLICY_VALUES, MUSE_TRUST_
|
|
|
11
11
|
export { CAPTURE_SOURCES, captureSeatOnboarding } from './seat-onboarding-capture.js';
|
|
12
12
|
export { SEAT_RECORD_REL_PATH, eraseSeatHome, materialiseCellHome, materialiseSeatEnvelopes, } from './seat-onboarding-materialize.js';
|
|
13
13
|
export { CODEX_TRUST_DIALOG_PROBE, projectClaudeOnboarding, projectCodexIntent, projectMuseTrust, renderCodexSeatConfig, } from '../enrollment/seat-onboarding-projections.js';
|
|
14
|
+
export { CLAUDE_CODE_OAUTH_ENV_VAR, CLAUDE_CODE_RESULT_TIMEOUT_MS, CLAUDE_CODE_STREAM_PROTOCOL, DEFAULT_CLAUDE_CODE_CLI_PATH, DEFAULT_CLAUDE_CODE_EFFORT, DEFAULT_CLAUDE_CODE_TIMEOUT_MS, NodeClaudeCodeCliRunner, createClaudeSeatAnthropicClient, probeClaudeCodeCliCapabilities, } from './claude-code-cli-runner.js';
|
|
15
|
+
export { ClaudeCliQuotaError } from '../transport/claude-code-runtime-client.js';
|
|
16
|
+
export { diagnoseClaudeCodeQuota, parseClaudeCodeLine, renderClaudeCodeCliPrompt, } from './claude-code-cli-wire.js';
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAgB3E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAiBtF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAgB3E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAiBtF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAMtD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC"}
|
|
@@ -60,6 +60,30 @@ export interface ClaudeCodeCliRunner {
|
|
|
60
60
|
signal: AbortSignal;
|
|
61
61
|
}): AsyncIterable<ClaudeCodeCliEvent>;
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Typed quota signal from a Claude CLI host: the 5-hour session limit, a
|
|
65
|
+
* rate limit, or an overloaded backend. Fixed message and numeric fields
|
|
66
|
+
* only — never carries CLI output, so rethrowing it cannot leak seat
|
|
67
|
+
* material. `AnthropicAdapter.normalizeError` maps the 429 status to a
|
|
68
|
+
* retryable `rate_limit`, letting the consumer quota circuit fail over.
|
|
69
|
+
*/
|
|
70
|
+
export declare class ClaudeCliQuotaError extends Error {
|
|
71
|
+
readonly code = "claude_cli_rate_limited";
|
|
72
|
+
readonly status = 429;
|
|
73
|
+
readonly retryable = true;
|
|
74
|
+
readonly retryReason: "rate_limit";
|
|
75
|
+
readonly retryAfterMs?: number;
|
|
76
|
+
constructor(retryAfterMs?: number);
|
|
77
|
+
}
|
|
78
|
+
export declare const isClaudeCliQuotaError: (value: unknown) => value is ClaudeCliQuotaError;
|
|
79
|
+
/**
|
|
80
|
+
* Structural quota match for foreign runners that signal 429 with their own
|
|
81
|
+
* error shape. Matches status/code only; the caller must build a fresh typed
|
|
82
|
+
* error and never forward the original message, cause, or stack.
|
|
83
|
+
*/
|
|
84
|
+
export declare const readClaudeCliQuotaSignal: (value: unknown) => {
|
|
85
|
+
retryAfterMs?: number;
|
|
86
|
+
} | undefined;
|
|
63
87
|
/** Trusted host attestations, never inferred from the installed CLI version. */
|
|
64
88
|
export interface ClaudeCodeCliCapabilities {
|
|
65
89
|
readonly protocol: 'claude-code-stream-json-v1';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-runtime-client.d.ts","sourceRoot":"","sources":["../../src/transport/claude-code-runtime-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claude-code-runtime-client.d.ts","sourceRoot":"","sources":["../../src/transport/claude-code-runtime-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,70 @@
|
|
|
1
1
|
import { getSecretAuthMaterial } from '../auth.js';
|
|
2
|
+
/**
|
|
3
|
+
* Typed quota signal from a Claude CLI host: the 5-hour session limit, a
|
|
4
|
+
* rate limit, or an overloaded backend. Fixed message and numeric fields
|
|
5
|
+
* only — never carries CLI output, so rethrowing it cannot leak seat
|
|
6
|
+
* material. `AnthropicAdapter.normalizeError` maps the 429 status to a
|
|
7
|
+
* retryable `rate_limit`, letting the consumer quota circuit fail over.
|
|
8
|
+
*/
|
|
9
|
+
export class ClaudeCliQuotaError extends Error {
|
|
10
|
+
code = 'claude_cli_rate_limited';
|
|
11
|
+
status = 429;
|
|
12
|
+
retryable = true;
|
|
13
|
+
retryReason = 'rate_limit';
|
|
14
|
+
retryAfterMs;
|
|
15
|
+
constructor(retryAfterMs) {
|
|
16
|
+
super('Claude CLI quota exhausted');
|
|
17
|
+
this.name = 'ClaudeCliQuotaError';
|
|
18
|
+
if (retryAfterMs !== undefined)
|
|
19
|
+
this.retryAfterMs = retryAfterMs;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const isClaudeCliQuotaError = (value) => value instanceof ClaudeCliQuotaError;
|
|
23
|
+
/**
|
|
24
|
+
* Structural quota match for foreign runners that signal 429 with their own
|
|
25
|
+
* error shape. Matches status/code only; the caller must build a fresh typed
|
|
26
|
+
* error and never forward the original message, cause, or stack.
|
|
27
|
+
*/
|
|
28
|
+
export const readClaudeCliQuotaSignal = (value) => {
|
|
29
|
+
if (isClaudeCliQuotaError(value)) {
|
|
30
|
+
return value.retryAfterMs !== undefined ? { retryAfterMs: value.retryAfterMs } : {};
|
|
31
|
+
}
|
|
32
|
+
if (!value || typeof value !== 'object')
|
|
33
|
+
return undefined;
|
|
34
|
+
const record = value;
|
|
35
|
+
const status = record.status ?? record.statusCode;
|
|
36
|
+
const code = record.code ?? record.type;
|
|
37
|
+
const quotaCode = typeof code === 'string'
|
|
38
|
+
&& /rate.?limit|too.?many.?requests|quota|usage.?limit|overload/i.test(code);
|
|
39
|
+
if (status !== 429 && !quotaCode)
|
|
40
|
+
return undefined;
|
|
41
|
+
const retryAfterMs = record.retryAfterMs;
|
|
42
|
+
return typeof retryAfterMs === 'number' && Number.isFinite(retryAfterMs) && retryAfterMs >= 0
|
|
43
|
+
? { retryAfterMs }
|
|
44
|
+
: {};
|
|
45
|
+
};
|
|
2
46
|
class ClaudeCodeFailure extends Error {
|
|
3
47
|
code;
|
|
4
|
-
|
|
5
|
-
|
|
48
|
+
status;
|
|
49
|
+
retryable;
|
|
50
|
+
retryReason;
|
|
51
|
+
retryAfterMs;
|
|
52
|
+
constructor(code, quota) {
|
|
53
|
+
super(`Claude CLI ${code === 'aborted' ? 'request aborted'
|
|
54
|
+
: code === 'rate_limited' ? 'quota exhausted' : `${code} unavailable`}`);
|
|
6
55
|
this.code = `claude_cli_${code}`;
|
|
7
56
|
if (code === 'aborted')
|
|
8
57
|
this.name = 'AbortError';
|
|
58
|
+
if (code === 'rate_limited') {
|
|
59
|
+
this.status = 429;
|
|
60
|
+
this.retryable = true;
|
|
61
|
+
this.retryReason = 'rate_limit';
|
|
62
|
+
if (quota?.retryAfterMs !== undefined)
|
|
63
|
+
this.retryAfterMs = quota.retryAfterMs;
|
|
64
|
+
}
|
|
9
65
|
}
|
|
10
66
|
}
|
|
11
|
-
const failure = (code) => new ClaudeCodeFailure(code);
|
|
67
|
+
const failure = (code, quota) => new ClaudeCodeFailure(code, quota);
|
|
12
68
|
const textValue = (value) => typeof value === 'string' && value.trim().length > 0 && !value.includes('\0');
|
|
13
69
|
const jsonCopy = (value, canonical = false) => {
|
|
14
70
|
if (value === null || typeof value === 'string' || typeof value === 'boolean'
|
|
@@ -264,6 +320,13 @@ export class ClaudeCodeRuntimeClient {
|
|
|
264
320
|
throw failure('aborted');
|
|
265
321
|
if (error instanceof ClaudeCodeFailure)
|
|
266
322
|
throw error;
|
|
323
|
+
// A quota signal crosses the runner seam as a FRESH typed failure with
|
|
324
|
+
// numeric fields only; the original message, cause, and stack never
|
|
325
|
+
// cross, preserving the secret boundary while the consumer quota
|
|
326
|
+
// circuit still sees the retryable 429.
|
|
327
|
+
const quota = readClaudeCliQuotaSignal(error);
|
|
328
|
+
if (quota)
|
|
329
|
+
throw failure('rate_limited', quota);
|
|
267
330
|
throw failure('runner');
|
|
268
331
|
}
|
|
269
332
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-runtime-client.js","sourceRoot":"","sources":["../../src/transport/claude-code-runtime-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code-runtime-client.js","sourceRoot":"","sources":["../../src/transport/claude-code-runtime-client.ts"],"names":[],"mappings":"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"}
|