@excitedjs/agent-runtime-claude-code 0.7.0-alpha.gea3dc096ae44 → 0.7.0-beta.213
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 +92 -44
- package/dist/config.d.ts +2 -2
- package/dist/rpc.d.ts +30 -104
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +217 -404
- package/dist/rpc.js.map +1 -1
- package/dist/runtime-activity.d.ts +33 -0
- package/dist/runtime-activity.d.ts.map +1 -0
- package/dist/{runtime-submissions.js → runtime-activity.js} +23 -145
- package/dist/runtime-activity.js.map +1 -0
- package/dist/runtime-session.d.ts +6 -2
- package/dist/runtime-session.d.ts.map +1 -1
- package/dist/runtime-session.js +20 -11
- package/dist/runtime-session.js.map +1 -1
- package/dist/runtime.d.ts +4 -16
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +37 -169
- package/dist/runtime.js.map +1 -1
- package/dist/stream.d.ts +7 -5
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +20 -19
- package/dist/stream.js.map +1 -1
- package/dist/supervisor.d.ts.map +1 -1
- package/dist/supervisor.js +23 -47
- package/dist/supervisor.js.map +1 -1
- package/dist/types.d.ts +24 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/dist/admission-classify.d.ts +0 -7
- package/dist/admission-classify.d.ts.map +0 -1
- package/dist/admission-classify.js +0 -17
- package/dist/admission-classify.js.map +0 -1
- package/dist/control-rpc.d.ts +0 -21
- package/dist/control-rpc.d.ts.map +0 -1
- package/dist/control-rpc.js +0 -103
- package/dist/control-rpc.js.map +0 -1
- package/dist/runtime-submissions.d.ts +0 -58
- package/dist/runtime-submissions.d.ts.map +0 -1
- package/dist/runtime-submissions.js.map +0 -1
package/dist/supervisor.js
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
import { mkdir, open } from 'node:fs/promises';
|
|
10
10
|
import { dirname } from 'node:path';
|
|
11
11
|
import { removeEmptyLogFile, SupervisedChild, } from '@excitedjs/dreamux-utils';
|
|
12
|
-
import { ClaudeCodeStreamRpc
|
|
12
|
+
import { ClaudeCodeStreamRpc } from './rpc.js';
|
|
13
13
|
/** The live session: spawns and supervises the real `claude` child. */
|
|
14
14
|
class LiveClaudeCodeSession {
|
|
15
15
|
spec;
|
|
16
16
|
supervisor = null;
|
|
17
17
|
child = null;
|
|
18
|
-
|
|
18
|
+
exitError = null;
|
|
19
19
|
stopped = false;
|
|
20
20
|
stopRequested = false;
|
|
21
21
|
startTask = null;
|
|
@@ -26,7 +26,7 @@ class LiveClaudeCodeSession {
|
|
|
26
26
|
this.spec = spec;
|
|
27
27
|
}
|
|
28
28
|
isAlive() {
|
|
29
|
-
return this.child !== null && !this.
|
|
29
|
+
return this.child !== null && !this.stopRequested && this.exitError === null;
|
|
30
30
|
}
|
|
31
31
|
start() {
|
|
32
32
|
if (this.stopRequested || this.stopped) {
|
|
@@ -72,7 +72,7 @@ class LiveClaudeCodeSession {
|
|
|
72
72
|
supervisor.onError((error) => {
|
|
73
73
|
this.spec.log?.('warn', 'claude resident child error', error);
|
|
74
74
|
});
|
|
75
|
-
supervisor.onExit(() => this.onChildExit());
|
|
75
|
+
supervisor.onExit(() => this.onChildExit(new Error('claude resident child exited')));
|
|
76
76
|
// Publish group-termination authority before spawn resolves. If a later
|
|
77
77
|
// setup step fails, runtime cleanup can still prove that no child remains.
|
|
78
78
|
this.supervisor = supervisor;
|
|
@@ -90,9 +90,12 @@ class LiveClaudeCodeSession {
|
|
|
90
90
|
throw new Error('claude resident child spawned without stdin');
|
|
91
91
|
}
|
|
92
92
|
const rpc = new ClaudeCodeStreamRpc(stdin, {
|
|
93
|
+
sessionId: this.spec.sessionId,
|
|
94
|
+
outputSchemaEnabled: this.spec.outputSchemaEnabled,
|
|
93
95
|
turnTimeoutMs: this.spec.turnTimeoutMs,
|
|
94
96
|
log: this.spec.log,
|
|
95
|
-
reapOnTimeout: () => {
|
|
97
|
+
reapOnTimeout: (error) => {
|
|
98
|
+
this.onChildExit(error);
|
|
96
99
|
void this.stop().catch(() => {
|
|
97
100
|
/* reap is best-effort */
|
|
98
101
|
});
|
|
@@ -108,38 +111,15 @@ class LiveClaudeCodeSession {
|
|
|
108
111
|
if (this.spec.remoteControl)
|
|
109
112
|
rpc.enableRemoteControl();
|
|
110
113
|
}
|
|
111
|
-
|
|
112
|
-
if (this.
|
|
113
|
-
return Promise.
|
|
114
|
-
}
|
|
115
|
-
if (this.child === null || this.exited || this.rpc === null) {
|
|
116
|
-
return Promise.reject(new Error('claude resident child is not running'));
|
|
117
|
-
}
|
|
118
|
-
return this.rpc.submitTurn(prompt, options, commandUuid);
|
|
119
|
-
}
|
|
120
|
-
async steerTurn(prompt, options = {}, commandUuid) {
|
|
121
|
-
if (this.stopRequested || this.stopped) {
|
|
122
|
-
return Promise.reject(new ClaudeSteerAdmissionError('failed', 'claude resident session is stopped before live steer'));
|
|
123
|
-
}
|
|
124
|
-
if (this.child === null || this.exited || this.rpc === null) {
|
|
125
|
-
return Promise.reject(new ClaudeSteerAdmissionError('failed', 'claude resident child is not running before live steer'));
|
|
126
|
-
}
|
|
127
|
-
return this.rpc.steerTurn(prompt, options, commandUuid);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* A dead child has no turn to interrupt, so this answers `idle` rather than
|
|
131
|
-
* writing to its stdin. The liveness half matters on its own: a child that
|
|
132
|
-
* exited between the last stream line and this call still has an `rpc`, and
|
|
133
|
-
* writing to it surfaces an EPIPE as `Command /stop failed: write EPIPE`
|
|
134
|
-
* instead of the honest `No turn is running.`
|
|
135
|
-
*/
|
|
136
|
-
interruptTurn(reason) {
|
|
114
|
+
submit(prompt, options = {}, commandUuid) {
|
|
115
|
+
if (this.exitError !== null)
|
|
116
|
+
return Promise.resolve({ status: 'failed', error: this.exitError });
|
|
137
117
|
if (this.stopRequested || this.stopped)
|
|
138
|
-
return Promise.resolve(
|
|
139
|
-
if (this.child === null || this.
|
|
140
|
-
return Promise.resolve(
|
|
118
|
+
return Promise.resolve({ status: 'stopped' });
|
|
119
|
+
if (this.child === null || this.rpc === null) {
|
|
120
|
+
return Promise.resolve({ status: 'failed', error: new Error('claude resident child is not running') });
|
|
141
121
|
}
|
|
142
|
-
return this.rpc.
|
|
122
|
+
return this.rpc.submit(prompt, options, commandUuid);
|
|
143
123
|
}
|
|
144
124
|
async stop() {
|
|
145
125
|
if (this.stopped)
|
|
@@ -159,12 +139,9 @@ class LiveClaudeCodeSession {
|
|
|
159
139
|
}
|
|
160
140
|
}
|
|
161
141
|
async stopSession() {
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
|
|
165
|
-
// down.
|
|
166
|
-
this.exited = true;
|
|
167
|
-
this.rpc?.failPending(new Error('claude resident session stopped mid-turn'));
|
|
142
|
+
// stopRequested already suppresses the exit caused by this teardown.
|
|
143
|
+
// An earlier unexpected exit retains its failure cause through cleanup.
|
|
144
|
+
this.rpc?.stop();
|
|
168
145
|
const supervisorAtStop = this.supervisor;
|
|
169
146
|
const supervisorStop = supervisorAtStop?.stop() ?? null;
|
|
170
147
|
void supervisorStop?.catch(() => undefined);
|
|
@@ -172,7 +149,6 @@ class LiveClaudeCodeSession {
|
|
|
172
149
|
await (supervisor === supervisorAtStop && supervisorStop !== null
|
|
173
150
|
? supervisorStop
|
|
174
151
|
: supervisor?.stop());
|
|
175
|
-
this.exited = true;
|
|
176
152
|
this.rpc = null;
|
|
177
153
|
this.child = null;
|
|
178
154
|
this.supervisor = null;
|
|
@@ -187,12 +163,12 @@ class LiveClaudeCodeSession {
|
|
|
187
163
|
throw new Error('ClaudeCodeSession.start: stopped during start');
|
|
188
164
|
}
|
|
189
165
|
}
|
|
190
|
-
onChildExit() {
|
|
191
|
-
if (this.
|
|
166
|
+
onChildExit(error) {
|
|
167
|
+
if (this.stopRequested || this.exitError !== null)
|
|
192
168
|
return;
|
|
193
|
-
this.
|
|
194
|
-
this.rpc?.
|
|
195
|
-
this.onExitHandler?.();
|
|
169
|
+
this.exitError = error;
|
|
170
|
+
this.rpc?.fail(error);
|
|
171
|
+
this.onExitHandler?.(error);
|
|
196
172
|
}
|
|
197
173
|
setOnExit(handler) {
|
|
198
174
|
this.onExitHandler = handler;
|
package/dist/supervisor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These are data contracts only: no IO, no process spawning, no timers.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
import type { RuntimeAdmission } from '@excitedjs/dreamux-types';
|
|
7
|
+
/** A parsed JSON object. */
|
|
7
8
|
export type JsonObject = Record<string, unknown>;
|
|
8
9
|
/**
|
|
9
10
|
* One decoded stdout line. `kind` is Dreamux's coarse classification, not the
|
|
@@ -75,7 +76,9 @@ export interface ResultEnvelope {
|
|
|
75
76
|
/** `success` or one of the `error_*` subtypes. Unknown subtypes pass through. */
|
|
76
77
|
readonly subtype: string | null;
|
|
77
78
|
readonly isError: boolean;
|
|
78
|
-
/**
|
|
79
|
+
/** Why native generation ended; abort and hard failure share cancelled lifecycle. */
|
|
80
|
+
readonly terminalReason: string | null;
|
|
81
|
+
/** The success-arm text (`result`), including API error text; null for error subtypes. */
|
|
79
82
|
readonly text: string | null;
|
|
80
83
|
readonly sessionId: string | null;
|
|
81
84
|
/**
|
|
@@ -84,9 +87,10 @@ export interface ResultEnvelope {
|
|
|
84
87
|
*
|
|
85
88
|
* This is an optional attribution hint on the wire: `result` carries no
|
|
86
89
|
* `command_uuid`, its own `uuid` is server-generated, and `session_id` is
|
|
87
|
-
* shared by every
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
+
* shared by every native turn of the resident session. It can name an
|
|
91
|
+
* internal background input even when submitted commands joined that turn.
|
|
92
|
+
* A matching value adds that submitted command to the started group; an
|
|
93
|
+
* internal or absent value never vetoes any started command.
|
|
90
94
|
*/
|
|
91
95
|
readonly userMessageUuid: string | null;
|
|
92
96
|
/** Error subtypes may carry a message list; empty otherwise. */
|
|
@@ -116,6 +120,7 @@ export interface TurnSubmitOptions {
|
|
|
116
120
|
/** The reduced outcome of one assistant turn, terminated by a `result`. */
|
|
117
121
|
export interface TurnOutcome {
|
|
118
122
|
readonly isError: boolean;
|
|
123
|
+
readonly terminalReason: string | null;
|
|
119
124
|
/** Final reply text: the `result.result`, falling back to the last assistant snapshot. */
|
|
120
125
|
readonly text: string;
|
|
121
126
|
readonly sessionId: string | null;
|
|
@@ -137,11 +142,13 @@ export interface ClaudeCodeSessionSpec {
|
|
|
137
142
|
env: NodeJS.ProcessEnv;
|
|
138
143
|
/** Where to append the child's stderr (its stdout is the in-process data plane). */
|
|
139
144
|
stderrLogPath: string;
|
|
145
|
+
/** Pinned native identity and result contract for requests sent to this session. */
|
|
146
|
+
sessionId: string;
|
|
147
|
+
outputSchemaEnabled?: boolean;
|
|
140
148
|
/**
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* wedge forever. Must be > 0.
|
|
149
|
+
* Maximum idle interval (ms) while submitted requests await settlement. Every
|
|
150
|
+
* inbound stream line resets it; silence for the entire interval fails the
|
|
151
|
+
* pending commands and reaps the child. Must be > 0.
|
|
145
152
|
*/
|
|
146
153
|
turnTimeoutMs: number;
|
|
147
154
|
/**
|
|
@@ -169,6 +176,7 @@ export type ClaudeActivityLine = Extract<ParsedLine, {
|
|
|
169
176
|
export type ClaudeProtocolEvent = {
|
|
170
177
|
readonly kind: 'interrupted';
|
|
171
178
|
} | {
|
|
179
|
+
/** Public native observation; lifecycle alone does not supply a completion. */
|
|
172
180
|
readonly kind: 'command_lifecycle';
|
|
173
181
|
readonly commandUuid: string;
|
|
174
182
|
readonly state: CommandLifecycleState;
|
|
@@ -178,21 +186,18 @@ export type ClaudeProtocolEvent = {
|
|
|
178
186
|
} | {
|
|
179
187
|
readonly kind: 'result';
|
|
180
188
|
readonly outcome: TurnOutcome;
|
|
189
|
+
/** Submitted commands answered by this result; empty for background-only turns. */
|
|
190
|
+
readonly commandUuids: readonly string[];
|
|
181
191
|
};
|
|
182
192
|
/**
|
|
183
|
-
* A resident Claude Code session.
|
|
184
|
-
*
|
|
185
|
-
* turn without creating a second completion subscription.
|
|
193
|
+
* A resident Claude Code session. Every input follows the same write path;
|
|
194
|
+
* the CLI decides whether it folds into current work or queues for later.
|
|
186
195
|
*/
|
|
187
196
|
export interface ClaudeCodeSession {
|
|
188
197
|
/** Spawn the child and resolve once it is up (reject on spawn error). */
|
|
189
198
|
start(): Promise<void>;
|
|
190
|
-
/**
|
|
191
|
-
|
|
192
|
-
/** Send a user message into the active turn without awaiting a separate result. */
|
|
193
|
-
steerTurn(prompt: string, options?: TurnSubmitOptions, commandUuid?: string): Promise<void>;
|
|
194
|
-
/** Interrupt the native turn when one is currently running. */
|
|
195
|
-
interruptTurn(reason: string): Promise<boolean>;
|
|
199
|
+
/** Resolve native admission; the returned submission carries eventual settlement. */
|
|
200
|
+
submit(prompt: string, options?: TurnSubmitOptions, commandUuid?: string): Promise<RuntimeAdmission>;
|
|
196
201
|
/** Whether the child is currently alive. */
|
|
197
202
|
isAlive(): boolean;
|
|
198
203
|
/**
|
|
@@ -200,7 +205,7 @@ export interface ClaudeCodeSession {
|
|
|
200
205
|
* {@link stop}). The runtime uses it to mark itself degraded and re-spawn on
|
|
201
206
|
* the next turn. Register before {@link start}.
|
|
202
207
|
*/
|
|
203
|
-
setOnExit(handler: () => void): void;
|
|
208
|
+
setOnExit(handler: (error: Error) => void): void;
|
|
204
209
|
/** Reap the child (SIGTERM -> SIGKILL group). Idempotent. */
|
|
205
210
|
stop(): Promise<void>;
|
|
206
211
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@excitedjs/agent-runtime-claude-code",
|
|
3
|
-
"version": "0.7.0-
|
|
3
|
+
"version": "0.7.0-beta.213",
|
|
4
4
|
"description": "Built-in Claude Code Agent Runtime provider for Dreamux (alias builtin:claude-code). Implements the @excitedjs/dreamux-types AgentRuntimeProvider contract against a resident `claude` stream-json child; depends on @excitedjs/dreamux-types only, never on @excitedjs/dreamux core (issue excitedjs/dreamux#209).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"LICENSE"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@excitedjs/dreamux-types": "0.
|
|
36
|
-
"@excitedjs/dreamux-utils": "0.5.
|
|
35
|
+
"@excitedjs/dreamux-types": "0.9.0",
|
|
36
|
+
"@excitedjs/dreamux-utils": "0.5.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^22.10.0",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Native admission classification for the Claude Code stream-json child.
|
|
3
|
-
*/
|
|
4
|
-
import type { RuntimeAdmission } from '@excitedjs/dreamux-types';
|
|
5
|
-
export declare function asError(error: unknown): Error;
|
|
6
|
-
export declare function classifySteerFailure(error: unknown, stopped: boolean): RuntimeAdmission;
|
|
7
|
-
//# sourceMappingURL=admission-classify.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admission-classify.d.ts","sourceRoot":"","sources":["../src/admission-classify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAE7C;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GACf,gBAAgB,CASlB"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ClaudeSteerAdmissionError } from './rpc.js';
|
|
2
|
-
export function asError(error) {
|
|
3
|
-
return error instanceof Error ? error : new Error(String(error));
|
|
4
|
-
}
|
|
5
|
-
export function classifySteerFailure(error, stopped) {
|
|
6
|
-
if (error instanceof ClaudeSteerAdmissionError) {
|
|
7
|
-
if (error.admission === 'ambiguous') {
|
|
8
|
-
return { status: 'ambiguous', error };
|
|
9
|
-
}
|
|
10
|
-
if (!stopped)
|
|
11
|
-
return { status: 'failed', error };
|
|
12
|
-
}
|
|
13
|
-
if (stopped)
|
|
14
|
-
return { status: 'stopped' };
|
|
15
|
-
return { status: 'ambiguous', error: asError(error) };
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=admission-classify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admission-classify.js","sourceRoot":"","sources":["../src/admission-classify.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAc,EACd,OAAgB;IAEhB,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/control-rpc.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'node:stream';
|
|
2
|
-
interface InterruptibleTurn {
|
|
3
|
-
interruptRequested: boolean;
|
|
4
|
-
}
|
|
5
|
-
export declare class ClaudeCodeControlRpc {
|
|
6
|
-
private readonly stdin;
|
|
7
|
-
private readonly options;
|
|
8
|
-
private remoteControlRequestId;
|
|
9
|
-
private pendingInterrupt;
|
|
10
|
-
constructor(stdin: Writable, options: {
|
|
11
|
-
log?: (level: 'info' | 'warn' | 'error', msg: string, err?: unknown) => void;
|
|
12
|
-
onRemoteControlUrl?: (url: string) => void;
|
|
13
|
-
});
|
|
14
|
-
interruptTurn(turn: InterruptibleTurn | null, reason: string): Promise<boolean>;
|
|
15
|
-
settleTurn(turn: InterruptibleTurn, failure?: Error, interrupted?: boolean): void;
|
|
16
|
-
enableRemoteControl(): void;
|
|
17
|
-
onControlRequest(requestId: string | null, subtype: string | null, request: Record<string, unknown>): void;
|
|
18
|
-
onControlResponse(requestId: string | null, ok: boolean, response: Record<string, unknown> | null, error: string | null): void;
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=control-rpc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-rpc.d.ts","sourceRoot":"","sources":["../src/control-rpc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,UAAU,iBAAiB;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAUD,qBAAa,oBAAoB;IAK7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,gBAAgB,CAAiC;gBAGtC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE;QACxB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QAC7E,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC5C;IAGH,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/E,UAAU,CACR,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,KAAK,EACf,WAAW,UAAQ,GAClB,IAAI;IAQP,mBAAmB,IAAI,IAAI;IAM3B,gBAAgB,CACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI;IAoBP,iBAAiB,CACf,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,EAAE,EAAE,OAAO,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;CA+BR"}
|
package/dist/control-rpc.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/** Claude Code stream-json control requests and their one pending reply. */
|
|
2
|
-
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { buildCanUseToolAllow, buildControlAck, buildInterruptRequest, buildRemoteControlEnable, } from './stream.js';
|
|
4
|
-
export class ClaudeCodeControlRpc {
|
|
5
|
-
stdin;
|
|
6
|
-
options;
|
|
7
|
-
remoteControlRequestId = null;
|
|
8
|
-
pendingInterrupt = null;
|
|
9
|
-
constructor(stdin, options) {
|
|
10
|
-
this.stdin = stdin;
|
|
11
|
-
this.options = options;
|
|
12
|
-
}
|
|
13
|
-
interruptTurn(turn, reason) {
|
|
14
|
-
if (turn === null)
|
|
15
|
-
return Promise.resolve(false);
|
|
16
|
-
if (this.pendingInterrupt !== null)
|
|
17
|
-
return this.pendingInterrupt.promise;
|
|
18
|
-
const requestId = randomUUID();
|
|
19
|
-
let resolve;
|
|
20
|
-
let reject;
|
|
21
|
-
const promise = new Promise((resolvePromise, rejectPromise) => {
|
|
22
|
-
resolve = resolvePromise;
|
|
23
|
-
reject = rejectPromise;
|
|
24
|
-
});
|
|
25
|
-
const pending = { requestId, turn, promise, resolve, reject };
|
|
26
|
-
turn.interruptRequested = true;
|
|
27
|
-
this.pendingInterrupt = pending;
|
|
28
|
-
this.stdin.write(`${buildInterruptRequest(requestId, reason)}\n`, (error) => {
|
|
29
|
-
if (error != null && this.pendingInterrupt === pending) {
|
|
30
|
-
this.pendingInterrupt = null;
|
|
31
|
-
turn.interruptRequested = false;
|
|
32
|
-
reject(error);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return promise;
|
|
36
|
-
}
|
|
37
|
-
settleTurn(turn, failure, interrupted = false) {
|
|
38
|
-
const pending = this.pendingInterrupt;
|
|
39
|
-
if (pending?.turn !== turn)
|
|
40
|
-
return;
|
|
41
|
-
this.pendingInterrupt = null;
|
|
42
|
-
if (failure !== undefined)
|
|
43
|
-
pending.reject(failure);
|
|
44
|
-
else
|
|
45
|
-
pending.resolve(interrupted);
|
|
46
|
-
}
|
|
47
|
-
enableRemoteControl() {
|
|
48
|
-
if (!this.stdin.writable)
|
|
49
|
-
return;
|
|
50
|
-
this.remoteControlRequestId = randomUUID();
|
|
51
|
-
this.stdin.write(`${buildRemoteControlEnable(this.remoteControlRequestId)}\n`);
|
|
52
|
-
}
|
|
53
|
-
onControlRequest(requestId, subtype, request) {
|
|
54
|
-
if (requestId === null || !this.stdin.writable)
|
|
55
|
-
return;
|
|
56
|
-
// Unattended posture: answer permission callbacks so a turn never wedges
|
|
57
|
-
// waiting on a human.
|
|
58
|
-
let reply;
|
|
59
|
-
if (subtype === 'can_use_tool') {
|
|
60
|
-
const rawInput = request['input'];
|
|
61
|
-
const input = typeof rawInput === 'object' &&
|
|
62
|
-
rawInput !== null &&
|
|
63
|
-
!Array.isArray(rawInput)
|
|
64
|
-
? rawInput
|
|
65
|
-
: {};
|
|
66
|
-
reply = buildCanUseToolAllow(requestId, input);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
reply = buildControlAck(requestId);
|
|
70
|
-
}
|
|
71
|
-
this.stdin.write(`${reply}\n`);
|
|
72
|
-
}
|
|
73
|
-
onControlResponse(requestId, ok, response, error) {
|
|
74
|
-
if (requestId === null)
|
|
75
|
-
return;
|
|
76
|
-
const interrupt = this.pendingInterrupt;
|
|
77
|
-
if (interrupt !== null && requestId === interrupt.requestId) {
|
|
78
|
-
this.pendingInterrupt = null;
|
|
79
|
-
if (ok)
|
|
80
|
-
interrupt.resolve(true);
|
|
81
|
-
else {
|
|
82
|
-
interrupt.turn.interruptRequested = false;
|
|
83
|
-
interrupt.reject(new Error(error ?? 'claude interrupt request failed'));
|
|
84
|
-
}
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (requestId !== this.remoteControlRequestId)
|
|
88
|
-
return;
|
|
89
|
-
this.remoteControlRequestId = null;
|
|
90
|
-
if (ok && response !== null) {
|
|
91
|
-
const url = response['session_url'] ?? response['connect_url'];
|
|
92
|
-
if (typeof url === 'string') {
|
|
93
|
-
this.options.onRemoteControlUrl?.(url);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.options.log?.('warn', 'claude remote control enable succeeded without a URL');
|
|
97
|
-
}
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this.options.log?.('warn', `claude remote control enable failed${error !== null ? `: ${error}` : ''}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=control-rpc.js.map
|
package/dist/control-rpc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-rpc.js","sourceRoot":"","sources":["../src/control-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { ClaudeCodeSession } from './supervisor.js';
|
|
2
|
-
import type { ClaudeProtocolEvent } from './types.js';
|
|
3
|
-
import type { JsonValue, AgentRuntimeActivitySink, RuntimeSubmission, RuntimeSubmissionSettlement } from '@excitedjs/dreamux-types';
|
|
4
|
-
export interface SubmissionDeferred {
|
|
5
|
-
submission: RuntimeSubmission;
|
|
6
|
-
settle: (settlement: RuntimeSubmissionSettlement) => boolean;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* One resident execution window: the commands claude is serving together.
|
|
10
|
-
*
|
|
11
|
-
* It is not one native turn. A window is opened by an initial command and can
|
|
12
|
-
* legally produce several sequential `result` boundaries — one native turn each
|
|
13
|
-
* — as commands steered or queued into it run after the earlier ones were
|
|
14
|
-
* answered.
|
|
15
|
-
*/
|
|
16
|
-
export interface ActiveTurn {
|
|
17
|
-
initialCommandUuid: string;
|
|
18
|
-
submissions: Map<string, SubmissionDeferred>;
|
|
19
|
-
started: string[];
|
|
20
|
-
completedCommands: Set<string>;
|
|
21
|
-
activitySequence: number;
|
|
22
|
-
tools: Map<string, {
|
|
23
|
-
name: string;
|
|
24
|
-
arguments: JsonValue | null;
|
|
25
|
-
}>;
|
|
26
|
-
session: ClaudeCodeSession | null;
|
|
27
|
-
sessionReady: Promise<ClaudeCodeSession>;
|
|
28
|
-
resolveSession: (session: ClaudeCodeSession) => void;
|
|
29
|
-
rejectSession: (error: Error) => void;
|
|
30
|
-
steerQueue: Promise<void>;
|
|
31
|
-
generation: number;
|
|
32
|
-
}
|
|
33
|
-
export interface ProtocolEventContext {
|
|
34
|
-
threadId: string | null;
|
|
35
|
-
outputSchemaEnabled: boolean;
|
|
36
|
-
activitySink: AgentRuntimeActivitySink;
|
|
37
|
-
log: (level: 'info' | 'warn' | 'error', message: string, error?: unknown) => void;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Report a native turn's end on the display line.
|
|
41
|
-
*
|
|
42
|
-
* `status` and `reason` are claude's own terminal fact and nothing else: a
|
|
43
|
-
* `result` completed or failed with its errors, a run that died, a teardown
|
|
44
|
-
* that interrupted. What the push-back line then makes of it (a result text it
|
|
45
|
-
* cannot extract, a command it cannot attribute, a submission already settled)
|
|
46
|
-
* is push-back's own outcome and never colours the card.
|
|
47
|
-
*
|
|
48
|
-
* The runtime keeps no display state: it does not know, and does not ask,
|
|
49
|
-
* whether a native turn is open before reporting an end. Whether the end is
|
|
50
|
-
* *shown* is not this layer's decision. A card belongs to no turn
|
|
51
|
-
* (`feishu-cot-conversation-cards` requirement, rule 1), and a native end
|
|
52
|
-
* "closes an existing open card but never opens a new one; when no card is
|
|
53
|
-
* open, Feishu ignores it" (rule 8). This layer pushes; the Channel decides.
|
|
54
|
-
*/
|
|
55
|
-
export declare function endNativeTurn(status: 'completed' | 'failed' | 'interrupted', reason: string | null, sink: AgentRuntimeActivitySink): void;
|
|
56
|
-
export declare function createRuntimeSubmission(): SubmissionDeferred;
|
|
57
|
-
export declare function handleProtocolEvent(active: ActiveTurn, event: ClaudeProtocolEvent, context: ProtocolEventContext): void;
|
|
58
|
-
//# sourceMappingURL=runtime-submissions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-submissions.d.ts","sourceRoot":"","sources":["../src/runtime-submissions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,SAAS,EAET,wBAAwB,EAExB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,2BAA2B,KAAK,OAAO,CAAC;CAC9D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,wBAAwB,CAAC;IACvC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,aAAa,EAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,EAAE,wBAAwB,GAC7B,IAAI,CAEN;AAOD,wBAAgB,uBAAuB,IAAI,kBAAkB,CAiB5D;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAsCN"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-submissions.js","sourceRoot":"","sources":["../src/runtime-submissions.ts"],"names":[],"mappings":"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"}
|