@excitedjs/agent-runtime-claude-code 0.7.0-alpha.g5e5d9ff8fb89 → 0.7.0-alpha.g72af66e58ab3

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 CHANGED
@@ -35,24 +35,25 @@ through the same package-loader path as external `npm:` providers.
35
35
  ## Turn lifecycle
36
36
 
37
37
  The public runtime boundary returns one `RuntimeSubmission` handle per accepted
38
- send, settled by an immutable provider-owned `RuntimeCompletion` created at each
39
- real native result boundary. Inputs merged before session creation and supported
40
- live steering settle with the same completion object; queued sends settle with
41
- distinct completions in native order. Command UUIDs are private wire aliases;
42
- when `msg_lifecycle_v1` is available, all aliases must reach a terminal command
43
- state and a final result must be captured before the object settles. Live steer
44
- fails loudly without that capability. Runtime stop fences queued session work,
45
- terminates the supervised process group with absence proof, and resolves every
46
- unsettled public object as stopped.
38
+ send. Each native result creates one immutable `RuntimeCompletion` shared by the
39
+ submissions it answers. Folded inputs share that completion object; queued inputs
40
+ wait for their own result. RPC derives the answered command group from started
41
+ commands and matching result UUID evidence. Request-window drainage separately
42
+ waits for terminal lifecycle states and the attributed results.
47
43
 
48
- Source deduplication is provider-private. A source is reserved while its native
49
- admission is in flight, committed only after acceptance or an ambiguous
50
- post-write failure, and released after a proven pre-write failure. Concurrent
51
- uses of the same reserved source share the same admission outcome. Accordingly,
52
- `failed` means the command was proven not written, while `ambiguous` means a
53
- native write may have been accepted and must not be retried automatically.
54
- Runtime stop synchronously fences new input, releases pending capability/write
55
- waiters, and drains all already-started admission calls before it resolves.
44
+ Background native turns may run without a submission. Their activity and result
45
+ boundaries remain observable, but they settle no unrelated request and do not
46
+ terminate the resident process. Explicit inputs steered into a background turn
47
+ settle normally once they join it. Live steering fails loudly without
48
+ `msg_lifecycle_v1`; lifecycle-less sessions retain single-input compatibility.
49
+
50
+ Core owns source deduplication, captured recipients and completion-token delivery.
51
+ The provider owns native admission: `failed` means the command was proven not
52
+ written, while `ambiguous` means a native write may have been accepted and must
53
+ not be retried automatically. Runtime stop synchronously fences new input,
54
+ releases pending capability/write waiters, terminates the supervised process
55
+ group with absence proof, resolves unsettled submissions as stopped, and drains
56
+ already-started admission calls before it resolves.
56
57
 
57
58
  ## Native sessions and transcripts
58
59
 
@@ -72,3 +73,14 @@ message/tool blocks in chronological order, and owns opaque cursors, query and
72
73
  rewrite mismatch detection, payload redaction/truncation, and the fixed host
73
74
  output budget. Native command/session IDs and filesystem paths never appear in
74
75
  transcript pages.
76
+
77
+ ## Custom session factories
78
+
79
+ A custom `ClaudeCodeSessionFactory` that emits `onProtocolEvent` results must
80
+ include `commandUuids`: the submitted commands answered by that result. Use an
81
+ empty array for a native turn with no related submission. Folded inputs share
82
+ one result and its command group; a queued input is included only in the result
83
+ that answers it. The default session computes this group from native command
84
+ lifecycle and matching result UUID evidence. The turn's original trigger does
85
+ not decide completion delivery. This Claude-specific callback requirement does
86
+ not change the neutral `AgentRuntime` or `RuntimeSubmission` contracts.
package/dist/rpc.d.ts CHANGED
@@ -2,7 +2,8 @@
2
2
  * Claude Code stream-json turn RPC.
3
3
  *
4
4
  * The supervisor owns the child process. This class owns one in-flight command
5
- * group, stdout line demux, command drainage, and defensive control replies.
5
+ * group, resident native-turn aggregation, stdout line demux, command drainage,
6
+ * and defensive control replies.
6
7
  *
7
8
  * One resident CLI execution window can span several submitted commands: a
8
9
  * live steer is written while the CLI is already running. How the CLI answers them is
@@ -16,16 +17,17 @@
16
17
  * - **Or they do not.** A command that arrives between turns runs on its own
17
18
  * and gets its own `result`.
18
19
  * - **`result.user_message_uuid` is not a completion ledger.** It is present
19
- * only sometimes and is not reliably the first-submitted uuid of a fold. It
20
- * is present on the artifact an accepted interrupt produces (measured
21
- * against claude 2.1.263), so presence does not mean "this is an answer".
20
+ * only sometimes, is not reliably the first-submitted uuid of a fold, and
21
+ * is absent entirely on the `error_during_execution` artifact an
22
+ * interrupt produces.
22
23
  * - **`command_lifecycle` is the attribution signal.** Started commands identify
23
24
  * the submissions represented by the next native `result`; terminal states
24
25
  * drain the resident execution window. Its ordering against `result` is not
25
26
  * stable.
26
27
  *
27
- * Every valid `result` is forwarded immediately as its own native completion
28
- * boundary. Lifecycle terminality only decides when the command group has
28
+ * Every valid `result` is forwarded immediately as its own native boundary,
29
+ * including background results with no submitted group. Lifecycle terminality
30
+ * and attributed results decide when the command group has
29
31
  * drained and the resident session may accept a new initial command; it never
30
32
  * aggregates several results into one completion.
31
33
  */
@@ -47,36 +49,26 @@ export declare class ClaudeCodeStreamRpc {
47
49
  private readonly stdin;
48
50
  private readonly options;
49
51
  private readonly lineBuf;
52
+ private readonly aggregator;
50
53
  private pending;
51
54
  private lifecycleSupported;
52
- private readonly control;
55
+ private remoteControlRequestId;
53
56
  constructor(stdin: Writable, options: ClaudeCodeStreamRpcOptions);
54
57
  submitTurn(prompt: string, options?: TurnSubmitOptions, commandUuid?: string): Promise<void>;
55
58
  steerTurn(prompt: string, options?: TurnSubmitOptions, commandUuid?: string): Promise<void>;
56
59
  private writeSteer;
57
60
  onStdoutChunk(chunk: string): void;
58
61
  failPending(err: Error): void;
59
- interruptTurn(reason: string): Promise<boolean>;
60
62
  enableRemoteControl(): void;
61
63
  /**
62
64
  * Detach the in-flight turn: clear its deadline timer and null `pending`,
63
65
  * returning it so the caller can resolve or reject it exactly once.
64
66
  */
65
67
  private settlePending;
66
- /**
67
- * End the execution window on the artifact of an accepted interrupt. This is
68
- * the only settlement an interrupt has, deliberately: a lifecycle
69
- * `cancelled` for the same command arrives *after* the artifact and is then
70
- * a no-op, so no path can settle the turn early and leave the artifact to
71
- * arrive against an empty `pending` — which the `result` case reads as an
72
- * unattributable envelope and answers by reaping the resident child.
73
- */
74
- private settleInterrupted;
75
68
  /**
76
69
  * Mark a submitted command as producing nothing further, then re-check
77
- * settlement. `abnormalReason` is `null` for the normal ending (`completed`)
78
- * and a short phrase for a command that never ran those are logged,
79
- * because the CLI gives no other trace of a command it declined.
70
+ * drainage. `abnormalReason` is `null` for the normal ending (`completed`)
71
+ * and a short phrase for a command declined or cancelled by the CLI.
80
72
  *
81
73
  * A command ending abnormally never fails the turn by itself: the probe
82
74
  * shows a `cancelled` command coexisting with another that answers normally
@@ -86,21 +78,22 @@ export declare class ClaudeCodeStreamRpc {
86
78
  private markCommandTerminal;
87
79
  /**
88
80
  * The drainage gate: every submitted command has reached a terminal
89
- * lifecycle state AND at least one valid `result` has been seen. Result
90
- * identity and settlement have already been forwarded one-by-one.
81
+ * lifecycle state, no started command awaits a result, AND a result has
82
+ * answered a submitted command. Background results do not satisfy that last
83
+ * condition. Each native boundary has already been forwarded separately.
91
84
  *
92
85
  * Two escapes, both anti-hang:
93
86
  *
94
87
  * - no lifecycle signal at all (`msg_lifecycle_v1` absent, so no
95
88
  * `command_lifecycle` will ever arrive) — the `result` is then the only
96
89
  * terminal event there is, so settle on it;
97
- * - every command terminal, none of them ever ran, and no result — nothing
98
- * can answer this turn, so fail it loudly. The idle deadline is not an
90
+ * - every command terminal, none completed, and no attributed result —
91
+ * nothing can answer this window, so fail it loudly. The idle deadline is not an
99
92
  * acceptable backstop here: it reaps the resident child, and any inbound
100
93
  * line re-arms it, so a healthy session could be killed long after the
101
94
  * turn became unanswerable.
102
95
  *
103
- * When a command *did* run but no result has arrived yet, this waits: the
96
+ * When a command completed but no result has arrived yet, this waits: the
104
97
  * probe shows terminal lifecycle states arriving both before and after the
105
98
  * result they belong to, so "terminal, therefore no result is coming" is not
106
99
  * a sound inference.
@@ -121,5 +114,7 @@ export declare class ClaudeCodeStreamRpc {
121
114
  private resolveWriteWaiter;
122
115
  private rejectWriteWaiter;
123
116
  private rejectWriteWaiters;
117
+ private onControlRequest;
118
+ private onControlResponse;
124
119
  }
125
120
  //# sourceMappingURL=rpc.d.ts.map
package/dist/rpc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAU5C,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAqDhE,gFAAgF;AAChF,qBAAa,yBAA0B,SAAQ,KAAK;IAEhD,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW;gBAAjC,SAAS,EAAE,QAAQ,GAAG,WAAW,EAC1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;CACjF;AAED,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAG5B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,0BAA0B;IAKhD,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,EAC/B,WAAW,GAAE,MAAqB,GACjC,OAAO,CAAC,IAAI,CAAC;IA+CV,SAAS,CACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,EAC/B,WAAW,GAAE,MAAqB,GACjC,OAAO,CAAC,IAAI,CAAC;IAuBhB,OAAO,CAAC,UAAU;IA6ClB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI7B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C,mBAAmB,IAAI,IAAI;IAI3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,MAAM;IA6Id,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,kBAAkB;CAU3B"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAkDhE,gFAAgF;AAChF,qBAAa,yBAA0B,SAAQ,KAAK;IAEhD,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW;gBAAjC,SAAS,EAAE,QAAQ,GAAG,WAAW,EAC1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,YAAY,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;CACjF;AAED,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,sBAAsB,CAAuB;gBAGlC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,0BAA0B;IAGhD,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,EAC/B,WAAW,GAAE,MAAqB,GACjC,OAAO,CAAC,IAAI,CAAC;IA6CV,SAAS,CACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,EAC/B,WAAW,GAAE,MAAqB,GACjC,OAAO,CAAC,IAAI,CAAC;IAuBhB,OAAO,CAAC,UAAU;IA6ClB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI7B,mBAAmB,IAAI,IAAI;IAM3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,MAAM;IAoHd,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,iBAAiB;CAyB1B"}
package/dist/rpc.js CHANGED
@@ -2,7 +2,8 @@
2
2
  * Claude Code stream-json turn RPC.
3
3
  *
4
4
  * The supervisor owns the child process. This class owns one in-flight command
5
- * group, stdout line demux, command drainage, and defensive control replies.
5
+ * group, resident native-turn aggregation, stdout line demux, command drainage,
6
+ * and defensive control replies.
6
7
  *
7
8
  * One resident CLI execution window can span several submitted commands: a
8
9
  * live steer is written while the CLI is already running. How the CLI answers them is
@@ -16,22 +17,22 @@
16
17
  * - **Or they do not.** A command that arrives between turns runs on its own
17
18
  * and gets its own `result`.
18
19
  * - **`result.user_message_uuid` is not a completion ledger.** It is present
19
- * only sometimes and is not reliably the first-submitted uuid of a fold. It
20
- * is present on the artifact an accepted interrupt produces (measured
21
- * against claude 2.1.263), so presence does not mean "this is an answer".
20
+ * only sometimes, is not reliably the first-submitted uuid of a fold, and
21
+ * is absent entirely on the `error_during_execution` artifact an
22
+ * interrupt produces.
22
23
  * - **`command_lifecycle` is the attribution signal.** Started commands identify
23
24
  * the submissions represented by the next native `result`; terminal states
24
25
  * drain the resident execution window. Its ordering against `result` is not
25
26
  * stable.
26
27
  *
27
- * Every valid `result` is forwarded immediately as its own native completion
28
- * boundary. Lifecycle terminality only decides when the command group has
28
+ * Every valid `result` is forwarded immediately as its own native boundary,
29
+ * including background results with no submitted group. Lifecycle terminality
30
+ * and attributed results decide when the command group has
29
31
  * drained and the resident session may accept a new initial command; it never
30
32
  * aggregates several results into one completion.
31
33
  */
32
34
  import { randomUUID } from 'node:crypto';
33
- import { buildUserMessage, LineBuffer, parseLine, TurnAggregator, } from './stream.js';
34
- import { ClaudeCodeControlRpc } from './control-rpc.js';
35
+ import { buildCanUseToolAllow, buildControlAck, buildRemoteControlEnable, buildUserMessage, LineBuffer, parseLine, TurnAggregator, } from './stream.js';
35
36
  /** Provider-private admission classification; never crosses the neutral API. */
36
37
  export class ClaudeSteerAdmissionError extends Error {
37
38
  admission;
@@ -45,13 +46,13 @@ export class ClaudeCodeStreamRpc {
45
46
  stdin;
46
47
  options;
47
48
  lineBuf = new LineBuffer();
49
+ aggregator = new TurnAggregator();
48
50
  pending = null;
49
51
  lifecycleSupported = null;
50
- control;
52
+ remoteControlRequestId = null;
51
53
  constructor(stdin, options) {
52
54
  this.stdin = stdin;
53
55
  this.options = options;
54
- this.control = new ClaudeCodeControlRpc(stdin, options);
55
56
  }
56
57
  async submitTurn(prompt, options = {}, commandUuid = randomUUID()) {
57
58
  if (!this.stdin.writable) {
@@ -64,14 +65,12 @@ export class ClaudeCodeStreamRpc {
64
65
  const pending = {
65
66
  resolve,
66
67
  reject,
67
- aggregator: new TurnAggregator(),
68
68
  timer: null,
69
69
  submitted: [commandUuid],
70
70
  terminal: new Set(),
71
71
  startedSinceResult: new Set(),
72
72
  ranAnyCommand: false,
73
73
  sawResult: false,
74
- interruptRequested: false,
75
74
  lastAbnormalReason: null,
76
75
  capabilityWaiters: [],
77
76
  writeWaiters: new Map(),
@@ -155,24 +154,23 @@ export class ClaudeCodeStreamRpc {
155
154
  failPending(err) {
156
155
  this.settlePending(err)?.reject(err);
157
156
  }
158
- interruptTurn(reason) {
159
- return this.control.interruptTurn(this.pending, reason);
160
- }
161
157
  enableRemoteControl() {
162
- this.control.enableRemoteControl();
158
+ if (!this.stdin.writable)
159
+ return;
160
+ this.remoteControlRequestId = randomUUID();
161
+ this.stdin.write(`${buildRemoteControlEnable(this.remoteControlRequestId)}\n`);
163
162
  }
164
163
  /**
165
164
  * Detach the in-flight turn: clear its deadline timer and null `pending`,
166
165
  * returning it so the caller can resolve or reject it exactly once.
167
166
  */
168
- settlePending(failure, interruptOutcome = false) {
167
+ settlePending(failure) {
169
168
  const pending = this.pending;
170
169
  if (pending === null)
171
170
  return null;
172
171
  if (pending.timer !== null)
173
172
  clearTimeout(pending.timer);
174
173
  this.pending = null;
175
- this.control.settleTurn(pending, failure, interruptOutcome);
176
174
  // On an explicit failure (write error, stop, idle reap) both waiter kinds
177
175
  // get the real error. On a clean `result` settlement there is no error:
178
176
  // capability waiters never got a decision, while write waiters were written
@@ -181,25 +179,10 @@ export class ClaudeCodeStreamRpc {
181
179
  this.rejectWriteWaiters(pending, failure ?? steerWriteUnconfirmedError());
182
180
  return pending;
183
181
  }
184
- /**
185
- * End the execution window on the artifact of an accepted interrupt. This is
186
- * the only settlement an interrupt has, deliberately: a lifecycle
187
- * `cancelled` for the same command arrives *after* the artifact and is then
188
- * a no-op, so no path can settle the turn early and leave the artifact to
189
- * arrive against an empty `pending` — which the `result` case reads as an
190
- * unattributable envelope and answers by reaping the resident child.
191
- */
192
- settleInterrupted(pending) {
193
- if (this.pending !== pending)
194
- return;
195
- this.options.onProtocolEvent?.({ kind: 'interrupted' });
196
- this.settlePending(undefined, true)?.resolve();
197
- }
198
182
  /**
199
183
  * Mark a submitted command as producing nothing further, then re-check
200
- * settlement. `abnormalReason` is `null` for the normal ending (`completed`)
201
- * and a short phrase for a command that never ran those are logged,
202
- * because the CLI gives no other trace of a command it declined.
184
+ * drainage. `abnormalReason` is `null` for the normal ending (`completed`)
185
+ * and a short phrase for a command declined or cancelled by the CLI.
203
186
  *
204
187
  * A command ending abnormally never fails the turn by itself: the probe
205
188
  * shows a `cancelled` command coexisting with another that answers normally
@@ -224,21 +207,22 @@ export class ClaudeCodeStreamRpc {
224
207
  }
225
208
  /**
226
209
  * The drainage gate: every submitted command has reached a terminal
227
- * lifecycle state AND at least one valid `result` has been seen. Result
228
- * identity and settlement have already been forwarded one-by-one.
210
+ * lifecycle state, no started command awaits a result, AND a result has
211
+ * answered a submitted command. Background results do not satisfy that last
212
+ * condition. Each native boundary has already been forwarded separately.
229
213
  *
230
214
  * Two escapes, both anti-hang:
231
215
  *
232
216
  * - no lifecycle signal at all (`msg_lifecycle_v1` absent, so no
233
217
  * `command_lifecycle` will ever arrive) — the `result` is then the only
234
218
  * terminal event there is, so settle on it;
235
- * - every command terminal, none of them ever ran, and no result — nothing
236
- * can answer this turn, so fail it loudly. The idle deadline is not an
219
+ * - every command terminal, none completed, and no attributed result —
220
+ * nothing can answer this window, so fail it loudly. The idle deadline is not an
237
221
  * acceptable backstop here: it reaps the resident child, and any inbound
238
222
  * line re-arms it, so a healthy session could be killed long after the
239
223
  * turn became unanswerable.
240
224
  *
241
- * When a command *did* run but no result has arrived yet, this waits: the
225
+ * When a command completed but no result has arrived yet, this waits: the
242
226
  * probe shows terminal lifecycle states arriving both before and after the
243
227
  * result they belong to, so "terminal, therefore no result is coming" is not
244
228
  * a sound inference.
@@ -291,18 +275,17 @@ export class ClaudeCodeStreamRpc {
291
275
  }, this.options.turnTimeoutMs);
292
276
  }
293
277
  onLine(line) {
294
- // Idle-timeout reset: any inbound stream line for the pending turn is
295
- // activity, so push the deadline out. The terminal `result` clears the
296
- // timer via `settlePending` below.
278
+ // Native activity refreshes the pending commands' idle deadline, even
279
+ // during a background turn. Only command drainage clears the timer.
297
280
  if (this.pending !== null)
298
281
  this.armIdleTimer(this.pending);
299
282
  switch (line.kind) {
300
283
  case 'init':
301
284
  this.decideLifecycleSupport(line.capabilities.includes('msg_lifecycle_v1'));
302
- this.pending?.aggregator.accept(line);
285
+ this.aggregator.accept(line);
303
286
  break;
304
287
  case 'assistant':
305
- this.pending?.aggregator.accept(line);
288
+ this.aggregator.accept(line);
306
289
  this.options.onProtocolEvent?.({ kind: 'stream', line });
307
290
  break;
308
291
  case 'user':
@@ -311,24 +294,26 @@ export class ClaudeCodeStreamRpc {
311
294
  break;
312
295
  case 'command_lifecycle': {
313
296
  const pending = this.pending;
314
- if (pending === null || line.commandUuid === null)
297
+ if (line.commandUuid === null || line.state === null)
315
298
  break;
316
- if (line.state !== null) {
317
- this.options.onProtocolEvent?.({
318
- kind: 'command_lifecycle',
319
- commandUuid: line.commandUuid,
320
- state: line.state,
321
- });
322
- }
323
- if (line.state === 'started')
324
- pending.startedSinceResult.add(line.commandUuid);
299
+ this.options.onProtocolEvent?.({
300
+ kind: 'command_lifecycle',
301
+ commandUuid: line.commandUuid,
302
+ state: line.state,
303
+ });
325
304
  // `command_lifecycle` does double duty: it coordinates live-steer
326
305
  // admission (writeWaiters) and proves lifecycle capability, and its
327
306
  // terminal states are the drainage gate when the CLI represents several
328
307
  // started commands with one `result`.
329
308
  const newlySupported = this.lifecycleSupported === null;
330
- if (newlySupported)
331
- this.lifecycleSupported = true;
309
+ this.lifecycleSupported = true;
310
+ if (line.state === 'cancelled')
311
+ this.aggregator.discard();
312
+ if (pending === null)
313
+ break;
314
+ if (line.state === 'started' && pending.submitted.includes(line.commandUuid)) {
315
+ pending.startedSinceResult.add(line.commandUuid);
316
+ }
332
317
  this.resolveWriteWaiter(pending, line.commandUuid);
333
318
  if (newlySupported && this.pending === pending) {
334
319
  this.flushCapabilityWaiters(pending);
@@ -346,62 +331,49 @@ export class ClaudeCodeStreamRpc {
346
331
  }
347
332
  case 'result': {
348
333
  const pending = this.pending;
349
- if (pending === null) {
350
- const error = new Error('claude result envelope arrived without an attributable command group');
351
- this.options.log?.('error', error.message, error);
352
- this.options.reapOnTimeout();
353
- break;
354
- }
355
- const commandUuid = line.outcome.userMessageUuid;
356
- if (commandUuid !== null && !pending.submitted.includes(commandUuid)) {
357
- const error = new Error(`claude result envelope for unsubmitted command ${commandUuid}; ` +
358
- 'native completion ownership is ambiguous');
359
- this.options.log?.('error', error.message, error);
360
- this.settlePending(error)?.reject(error);
361
- this.options.reapOnTimeout();
362
- break;
363
- }
364
- // The artifact an accepted interrupt leaves behind is not a native
365
- // answer boundary. Measured against claude 2.1.263 (both an interrupted
366
- // stream and an interrupted tool call): it is a `result` with subtype
367
- // `error_during_execution`, `is_error: true`, no result text, and the
368
- // interrupted command's own `user_message_uuid`. Nothing in its shape
369
- // separates it from a genuine execution error, so our own accepted
370
- // request is the discriminator — an `error_during_execution` nobody
371
- // asked for stays a real failure and falls through below.
372
- if (pending.interruptRequested &&
373
- line.outcome.subtype === 'error_during_execution') {
374
- this.settleInterrupted(pending);
375
- break;
376
- }
377
- // Inherited from #342: an `error_during_execution` carrying neither a
378
- // uuid nor result text is nobody's answer and mints no boundary. Its
379
- // premise was not reproduced here — a steer sent mid-tool-call did not
380
- // abort the turn and produced no artifact at all (claude 2.1.263) —
381
- // and the streaming-phase steer was not probed, so it stays as it was
382
- // rather than being deleted on one negative observation.
334
+ this.aggregator.accept(line);
335
+ const outcome = this.aggregator.takeOutcome();
336
+ // The interrupt artifact (`error_during_execution` with no result) is
337
+ // not a native answer boundary. Older valid results may omit the uuid.
383
338
  if (line.outcome.subtype === 'error_during_execution' &&
384
339
  line.outcome.userMessageUuid === null &&
385
340
  line.outcome.text === null) {
386
341
  this.options.log?.('warn', 'claude interrupt result artifact ignored');
387
342
  break;
388
343
  }
389
- pending.aggregator.accept(line);
390
- const outcome = pending.aggregator.takeOutcome();
391
- pending.startedSinceResult.clear();
392
- pending.sawResult = true;
344
+ // Every started command participates, including background steers.
345
+ // A matching result UUID also identifies a submitted input whose
346
+ // started event was omitted; a foreign UUID never vetoes the group.
347
+ const commandUuids = new Set(pending?.startedSinceResult);
348
+ if (pending !== null) {
349
+ const commandUuid = line.outcome.userMessageUuid;
350
+ if (commandUuid !== null && pending.submitted.includes(commandUuid)) {
351
+ commandUuids.add(commandUuid);
352
+ }
353
+ // Without lifecycle, admission allows only the initial input. Its
354
+ // legacy UUID-less result is attributable, but an explicit foreign
355
+ // UUID is not. Lifecycle-capable background results stay unassigned.
356
+ if (this.lifecycleSupported !== true && commandUuid === null) {
357
+ commandUuids.add(pending.submitted[0]);
358
+ }
359
+ pending.startedSinceResult.clear();
360
+ if (commandUuids.size > 0)
361
+ pending.sawResult = true;
362
+ }
393
363
  this.options.onProtocolEvent?.({
394
364
  kind: 'result',
395
365
  outcome,
366
+ commandUuids: [...commandUuids],
396
367
  });
397
- this.settleIfReady(pending);
368
+ if (pending !== null)
369
+ this.settleIfReady(pending);
398
370
  break;
399
371
  }
400
372
  case 'control_request':
401
- this.control.onControlRequest(line.requestId, line.subtype, line.request);
373
+ this.onControlRequest(line.requestId, line.subtype, line.request);
402
374
  break;
403
375
  case 'control_response':
404
- this.control.onControlResponse(line.requestId, line.ok, line.response, line.error);
376
+ this.onControlResponse(line.requestId, line.ok, line.response, line.error);
405
377
  break;
406
378
  case 'parse_error':
407
379
  this.options.log?.('warn', `claude stream-json parse error: ${line.raw}`);
@@ -465,6 +437,42 @@ export class ClaudeCodeStreamRpc {
465
437
  for (const waiter of waiters)
466
438
  waiter.reject(failure);
467
439
  }
440
+ onControlRequest(requestId, subtype, request) {
441
+ if (requestId === null || !this.stdin.writable)
442
+ return;
443
+ // Unattended posture: answer permission callbacks so a turn never wedges
444
+ // waiting on a human.
445
+ let reply;
446
+ if (subtype === 'can_use_tool') {
447
+ const rawInput = request['input'];
448
+ const input = typeof rawInput === 'object' &&
449
+ rawInput !== null &&
450
+ !Array.isArray(rawInput)
451
+ ? rawInput
452
+ : {};
453
+ reply = buildCanUseToolAllow(requestId, input);
454
+ }
455
+ else {
456
+ reply = buildControlAck(requestId);
457
+ }
458
+ this.stdin.write(`${reply}\n`);
459
+ }
460
+ onControlResponse(requestId, ok, response, error) {
461
+ if (requestId === null || requestId !== this.remoteControlRequestId)
462
+ return;
463
+ this.remoteControlRequestId = null;
464
+ if (ok && response !== null) {
465
+ const url = response['session_url'] ?? response['connect_url'];
466
+ if (typeof url === 'string') {
467
+ this.options.onRemoteControlUrl?.(url);
468
+ }
469
+ else {
470
+ this.options.log?.('warn', 'claude remote control enable succeeded without a URL');
471
+ }
472
+ return;
473
+ }
474
+ this.options.log?.('warn', `claude remote control enable failed${error !== null ? `: ${error}` : ''}`);
475
+ }
468
476
  }
469
477
  function lifecycleUnsupportedError() {
470
478
  return preAdmissionError('claude resident session cannot prove live-steer lifecycle: ' +
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAsDxD,gFAAgF;AAChF,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAEvC;IADX,YACW,SAAiC,EAC1C,OAAe,EACf,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAJf,cAAS,GAAT,SAAS,CAAwB;QAK1C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAUD,MAAM,OAAO,mBAAmB;IAOX;IACA;IAPF,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,OAAO,GAAuB,IAAI,CAAC;IACnC,kBAAkB,GAAmB,IAAI,CAAC;IACjC,OAAO,CAAuB;IAE/C,YACmB,KAAe,EACf,OAAmC;QADnC,UAAK,GAAL,KAAK,CAAU;QACf,YAAO,GAAP,OAAO,CAA4B;QAEpD,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,UAA6B,EAAE,EAC/B,cAAsB,UAAU,EAAE;QAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,6CAA6C,CAAC,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAgB;gBAC3B,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,IAAI,cAAc,EAAE;gBAChC,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,CAAC,WAAW,CAAC;gBACxB,QAAQ,EAAE,IAAI,GAAG,EAAE;gBACnB,kBAAkB,EAAE,IAAI,GAAG,EAAE;gBAC7B,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,KAAK;gBAChB,kBAAkB,EAAE,KAAK;gBACzB,kBAAkB,EAAE,IAAI;gBACxB,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,IAAI,GAAG,EAAE;aACxB,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,0EAA0E;YAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,KAAK,CACd,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EACrD,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,UAA6B,EAAE,EAC/B,cAAsB,UAAU,EAAE;QAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CACnB,iBAAiB,CAAC,sCAAsC,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,iBAAiB,CAAC,4CAA4C,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAEO,UAAU,CAChB,OAAoB,EACpB,MAAc,EACd,OAA0B,EAC1B,cAAsB,UAAU,EAAE;QAElC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,iCAAiC,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CACnB,iBAAiB,CAAC,sCAAsC,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,+EAA+E;QAC/E,kEAAkE;QAClE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,CAAC,KAAc,EAAQ,EAAE;gBACpC,6DAA6D;gBAC7D,qEAAqE;gBACrE,sEAAsE;gBACtE,qEAAqE;gBACrE,sDAAsD;gBACtD,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;YACvE,CAAC,CAAC;YACF,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,KAAK,CACd,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EACrD,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;wBACV,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAChD,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,WAAW,CAAC,GAAU;QACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACK,aAAa,CACnB,OAAe,EACf,gBAAgB,GAAG,KAAK;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;YAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC5D,0EAA0E;QAC1E,wEAAwE;QACxE,4EAA4E;QAC5E,+DAA+D;QAC/D,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,OAAO,IAAI,iCAAiC,EAAE,CAC/C,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CAAC,OAAoB;QAC5C,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED;;;;;;;;;;OAUG;IACK,mBAAmB,CACzB,OAAoB,EACpB,WAAmB,EACnB,cAA6B;QAE7B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAClC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,kBAAkB,GAAG,cAAc,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAChB,MAAM,EACN,kBAAkB,WAAW,IAAI,cAAc,gBAAgB;oBAC7D,sCAAsC,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,aAAa,CAAC,OAAoB;QACxC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QACrC,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO;QAChD,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,OAAO;QACjD,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,aAAa;YAAE,OAAO;QAClC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,wDAAwD;YACtD,UAAU,OAAO,CAAC,kBAAkB,IAAI,4BAA4B,GAAG,CAC1E,CAAC;QACF,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,OAAoB;QACvC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;YAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,OAAO;YACrC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,wDAAwD,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CACvF,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAChB,OAAO,EACP,+CAA+C,IAAI,CAAC,OAAO,CAAC,aAAa,4BAA4B,CACtG,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,IAAgB;QAC7B,sEAAsE;QACtE,uEAAuE;QACvE,mCAAmC;QACnC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,IAAI,CAAC,sBAAsB,CACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAC/C,CAAC;gBACF,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,kBAAkB;gBACrB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;oBAAE,MAAM;gBACzD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;wBAC7B,IAAI,EAAE,mBAAmB;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;oBAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/E,kEAAkE;gBAClE,oEAAoE;gBACpE,wEAAwE;gBACxE,sCAAsC;gBACtC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC;gBACxD,IAAI,cAAc;oBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC/C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;oBAAE,MAAM;gBACpC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpD,IAAI,CAAC,mBAAmB,CACtB,OAAO,EACP,IAAI,CAAC,WAAW,EAChB,OAAO,IAAI,CAAC,KAAK,YAAY,CAC9B,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,sEAAsE,CACvE,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC7B,MAAM;gBACR,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBACjD,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrE,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,kDAAkD,WAAW,IAAI;wBAC/D,0CAA0C,CAC7C,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC7B,MAAM;gBACR,CAAC;gBACD,mEAAmE;gBACnE,wEAAwE;gBACxE,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,oEAAoE;gBACpE,0DAA0D;gBAC1D,IACE,OAAO,CAAC,kBAAkB;oBAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,wBAAwB,EACjD,CAAC;oBACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAChC,MAAM;gBACR,CAAC;gBACD,sEAAsE;gBACtE,qEAAqE;gBACrE,uEAAuE;gBACvE,oEAAoE;gBACpE,sEAAsE;gBACtE,yDAAyD;gBACzD,IACE,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,wBAAwB;oBACjD,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI;oBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,EAC1B,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;oBACvE,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAG,CAAC;gBAClD,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBACnC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC7B,IAAI,EAAE,QAAQ;oBACd,OAAO;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB;gBACpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1E,MAAM;YACR,KAAK,kBAAkB;gBACrB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACX,CAAC;gBACF,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAChB,MAAM,EACN,mCAAmC,IAAI,CAAC,GAAG,EAAE,CAC9C,CAAC;gBACF,MAAM;YACR;gBACE,yDAAyD;gBACzD,sCAAsC;gBACtC,oEAAoE;gBACpE,2DAA2D;gBAC3D,MAAM;QACV,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,SAAkB;QAC/C,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAAE,OAAO;QAC7C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,sBAAsB,CAAC,OAAoB;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,UAAU,CAClB,OAAO,EACP,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,CACnB,CAAC,IAAI,CACJ,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,OAAoB,EAAE,KAAY;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,YAAY,yBAAyB;YACxD,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,kBAAkB,CAAC,OAAoB,EAAE,WAAmB;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAEO,iBAAiB,CACvB,OAAoB,EACpB,WAAmB,EACnB,KAAY;QAEZ,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,kBAAkB,CAAC,OAAoB,EAAE,KAAY;QAC3D,MAAM,OAAO,GAAG,KAAK,YAAY,yBAAyB;YACxD,KAAK,CAAC,SAAS,KAAK,WAAW;YAC/B,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CAEF;AAED,SAAS,yBAAyB;IAChC,OAAO,iBAAiB,CACtB,6DAA6D;QAC3D,iCAAiC,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO,iBAAiB,CACtB,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO,IAAI,yBAAyB,CAClC,WAAW,EACX,iEAAiE,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAa;IACvD,OAAO,IAAI,yBAAyB,CAClC,QAAQ,EACR,OAAO,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,IAAI,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}