@excitedjs/agent-runtime-claude-code 0.6.1 → 0.7.0-alpha.g1e011989dff1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +92 -44
  2. package/dist/config.d.ts +2 -2
  3. package/dist/control-rpc.d.ts +32 -0
  4. package/dist/control-rpc.d.ts.map +1 -0
  5. package/dist/control-rpc.js +112 -0
  6. package/dist/control-rpc.js.map +1 -0
  7. package/dist/rpc.d.ts +37 -93
  8. package/dist/rpc.d.ts.map +1 -1
  9. package/dist/rpc.js +242 -405
  10. package/dist/rpc.js.map +1 -1
  11. package/dist/runtime-activity.d.ts +33 -0
  12. package/dist/runtime-activity.d.ts.map +1 -0
  13. package/dist/runtime-activity.js +221 -0
  14. package/dist/runtime-activity.js.map +1 -0
  15. package/dist/runtime-session.d.ts +6 -2
  16. package/dist/runtime-session.d.ts.map +1 -1
  17. package/dist/runtime-session.js +20 -11
  18. package/dist/runtime-session.js.map +1 -1
  19. package/dist/runtime.d.ts +13 -15
  20. package/dist/runtime.d.ts.map +1 -1
  21. package/dist/runtime.js +53 -152
  22. package/dist/runtime.js.map +1 -1
  23. package/dist/stream.d.ts +17 -3
  24. package/dist/stream.d.ts.map +1 -1
  25. package/dist/stream.js +75 -11
  26. package/dist/stream.js.map +1 -1
  27. package/dist/supervisor.d.ts.map +1 -1
  28. package/dist/supervisor.js +35 -31
  29. package/dist/supervisor.js.map +1 -1
  30. package/dist/types.d.ts +38 -17
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/types.js +0 -5
  33. package/dist/types.js.map +1 -1
  34. package/package.json +3 -3
  35. package/dist/admission-classify.d.ts +0 -7
  36. package/dist/admission-classify.d.ts.map +0 -1
  37. package/dist/admission-classify.js +0 -17
  38. package/dist/admission-classify.js.map +0 -1
  39. package/dist/runtime-submissions.d.ts +0 -58
  40. package/dist/runtime-submissions.d.ts.map +0 -1
  41. package/dist/runtime-submissions.js +0 -281
  42. package/dist/runtime-submissions.js.map +0 -1
package/dist/runtime.js CHANGED
@@ -5,9 +5,7 @@ import { claudeCodeResidentArgs } from './args.js';
5
5
  import { stringifyClaudeCodeMcpConfig } from './mcp-config.js';
6
6
  import { materializeClaudeSkillAddDir } from './skill-materializer.js';
7
7
  import { consoleFallbackLogger } from './logger.js';
8
- import { ClaudeSteerAdmissionError } from './rpc.js';
9
- import { createRuntimeSubmission, endNativeTurn, handleProtocolEvent, } from './runtime-submissions.js';
10
- import { asError, classifySteerFailure } from './admission-classify.js';
8
+ import { endNativeTurn, handleProtocolEvent, } from './runtime-activity.js';
11
9
  import { buildClaudeProcessEnv } from './runtime-session.js';
12
10
  import { RuntimeStateFence } from '@excitedjs/dreamux-utils';
13
11
  function errMessage(err) {
@@ -15,9 +13,9 @@ function errMessage(err) {
15
13
  }
16
14
  /**
17
15
  * The Claude Code agent runtime for one dispatcher. A single resident
18
- * stream-json child serves every turn. Turns run serially (one at a time) and
19
- * `submit` returns after the message is accepted not after the turn
20
- * completes matching the Codex runtime's submit-then-serialize contract.
16
+ * stream-json child accepts every input through the same native write path.
17
+ * Admission returns after the write is acknowledged; each request is settled
18
+ * by the session that consumed it, independently of later inputs.
21
19
  */
22
20
  export class ClaudeCodeRuntime {
23
21
  deps;
@@ -51,14 +49,11 @@ export class ClaudeCodeRuntime {
51
49
  });
52
50
  stopped = false;
53
51
  pendingAdmissions = new Set();
54
- queue = Promise.resolve();
55
52
  session = null;
56
53
  sessionStarting = null;
57
54
  startTask = null;
58
55
  stopTask = null;
59
56
  generation = 0;
60
- activeTurn = null;
61
- queuedTurnCount = 0;
62
57
  constructor(identity, deps) {
63
58
  this.deps = deps;
64
59
  const priorSessionId = identity.sessionId;
@@ -147,10 +142,8 @@ export class ClaudeCodeRuntime {
147
142
  // and Core stops that runtime before revoking its generation, so an end
148
143
  // here would close the card ahead of Core's own failed end carrying the
149
144
  // start error.
150
- if (this.session !== null)
145
+ if (this.session?.isAlive())
151
146
  this.endNativeTurn('interrupted', null);
152
- if (this.activeTurn !== null)
153
- this.stopUnsettled(this.activeTurn);
154
147
  return this.track(this.stopRuntime());
155
148
  }
156
149
  /** Single-flight the stop task, releasing the slot so a failure can retry. */
@@ -189,7 +182,6 @@ export class ClaudeCodeRuntime {
189
182
  }
190
183
  // Same quiescence as an ordinary stop, on both paths.
191
184
  await this.drainAdmissions();
192
- await this.queue;
193
185
  this.status = 'stopped';
194
186
  }
195
187
  async stopRuntime() {
@@ -206,7 +198,6 @@ export class ClaudeCodeRuntime {
206
198
  this.session = null;
207
199
  }
208
200
  await this.drainAdmissions();
209
- await this.queue;
210
201
  await this.settleStatus('stopped');
211
202
  }
212
203
  /**
@@ -217,49 +208,43 @@ export class ClaudeCodeRuntime {
217
208
  submit(input) {
218
209
  return this.trackAdmission(this.acceptInput(input.text));
219
210
  }
211
+ /**
212
+ * Interrupt the resident session's outstanding work.
213
+ *
214
+ * The session is only asked when one is already up: an interrupt must not
215
+ * wait for, or inherit the failure of, a spawn it did not initiate. A session
216
+ * with nothing outstanding answers false and this answers `idle`, so the
217
+ * caller can say no turn is running rather than claim it stopped one.
218
+ */
219
+ async interrupt() {
220
+ const session = this.session;
221
+ if (this.stopped || session === null || !session.isAlive())
222
+ return { status: 'idle' };
223
+ return await session.interrupt('Interrupted by Dreamux user command.')
224
+ ? { status: 'interrupted' }
225
+ : { status: 'idle' };
226
+ }
220
227
  async acceptInput(text) {
221
228
  if (this.stopped)
222
229
  return { status: 'stopped' };
223
- const commandUuid = randomUUID();
224
- const deferred = createRuntimeSubmission();
225
- const active = this.activeTurn;
226
- if (active !== null) {
227
- active.submissions.set(commandUuid, deferred);
228
- try {
229
- await this.steerActiveTurn(active, text, commandUuid);
230
- return { status: 'submitted', submission: deferred.submission };
231
- }
232
- catch (error) {
233
- active.submissions.delete(commandUuid);
234
- deferred.settle({ kind: 'failed', error: asError(error) });
235
- return classifySteerFailure(error, this.stopped);
236
- }
230
+ let session;
231
+ try {
232
+ session = await this.ensureSession();
237
233
  }
238
- this.recordQueuedTurnStart();
239
- let resolveSession;
240
- let rejectSession;
241
- const sessionReady = new Promise((resolve, reject) => {
242
- resolveSession = resolve;
243
- rejectSession = reject;
244
- });
245
- void sessionReady.catch(() => undefined);
246
- const turn = {
247
- initialCommandUuid: commandUuid,
248
- submissions: new Map([[commandUuid, deferred]]),
249
- started: [],
250
- completedCommands: new Set(),
251
- activitySequence: 0,
252
- tools: new Map(),
253
- session: null,
254
- sessionReady,
255
- resolveSession,
256
- rejectSession,
257
- steerQueue: Promise.resolve(),
258
- generation: this.generation,
259
- };
260
- this.activeTurn = turn;
261
- void this.runActiveTurnOnQueue(text, turn).then(() => this.markTurnSucceeded(turn), (err) => this.markTurnFailed(turn, err));
262
- return { status: 'submitted', submission: deferred.submission };
234
+ catch (error) {
235
+ if (this.stopped)
236
+ return { status: 'stopped' };
237
+ this.setStatus('degraded', error);
238
+ return { status: 'failed', error: error instanceof Error ? error : new Error(String(error)) };
239
+ }
240
+ if (this.stopped)
241
+ return { status: 'stopped' };
242
+ const admission = await session.submit(text);
243
+ if (!this.stopped && this.session === session && session.isAlive() &&
244
+ admission.status === 'submitted' && this.status !== 'ready') {
245
+ this.setStatus('ready');
246
+ }
247
+ return admission;
263
248
  }
264
249
  trackAdmission(admission) {
265
250
  this.pendingAdmissions.add(admission);
@@ -273,92 +258,9 @@ export class ClaudeCodeRuntime {
273
258
  await Promise.allSettled([...this.pendingAdmissions]);
274
259
  }
275
260
  }
276
- runActiveTurnOnQueue(prompt, active) {
277
- const run = this.queue.then(() => this.runActiveTurn(prompt, active));
278
- this.queue = run.then(() => undefined, () => undefined);
279
- return run;
280
- }
281
- async runActiveTurn(prompt, active) {
282
- try {
283
- this.assertGeneration(active.generation);
284
- const session = await this.ensureSession();
285
- this.assertGeneration(active.generation);
286
- const outcome = session.submitTurn(prompt, {}, active.initialCommandUuid);
287
- active.session = session;
288
- active.resolveSession(session);
289
- await outcome;
290
- this.assertGeneration(active.generation);
291
- this.log('info', 'claude-code turn completed');
292
- }
293
- finally {
294
- active.session = null;
295
- if (this.activeTurn === active)
296
- this.activeTurn = null;
297
- }
298
- }
299
- async steerActiveTurn(active, prompt, commandUuid) {
300
- this.assertGeneration(active.generation);
301
- const session = active.session ?? await active.sessionReady;
302
- const steer = active.steerQueue.then(() => {
303
- this.assertGeneration(active.generation);
304
- if (active.session !== session || this.session !== session) {
305
- throw new ClaudeSteerAdmissionError('failed', 'claude-code session changed before live steer');
306
- }
307
- return session.steerTurn(prompt, {}, commandUuid);
308
- });
309
- active.steerQueue = steer.then(() => undefined, () => undefined);
310
- await steer;
311
- this.assertGeneration(active.generation);
312
- }
313
- markTurnSucceeded(turn) {
314
- this.recordQueuedTurnEnd();
315
- this.stopUnsettled(turn);
316
- if (this.stopped)
317
- return;
318
- if (this.status !== 'ready')
319
- this.setStatus('ready');
320
- }
321
- markTurnFailed(turn, err) {
322
- this.recordQueuedTurnEnd();
323
- this.log('error', 'claude-code turn failed', err);
324
- turn.rejectSession(asError(err));
325
- // The run died, which is claude's own terminal for whatever native turn it
326
- // was on — reported before any settlement, and whether or not there is a
327
- // submission left to settle. After stop() the teardown has already
328
- // reported the interrupted end; this run died of that teardown.
329
- if (!this.stopped)
330
- this.endNativeTurn('failed', asError(err).message);
331
- // A turn that fails after stop() was requested (the resident child is being
332
- // torn down) is a `stopped` settlement; otherwise it is a genuine `failed`.
333
- // Fire before the stopped early-return so an interrupted teammate turn is
334
- // never lost.
335
- for (const deferred of turn.submissions.values()) {
336
- deferred.settle(this.stopped
337
- ? { kind: 'stopped' }
338
- : { kind: 'failed', error: asError(err) });
339
- }
340
- if (this.stopped)
341
- return;
342
- // Surface the failure as durable runtime state rather than swallowing it.
343
- this.setStatus('degraded', err);
344
- }
345
- stopUnsettled(turn) {
346
- // Push-back only: reached from stop, the fatal fence, and a window that
347
- // closed with a submission still unanswered. The display line is not
348
- // consulted here; the teardown that closed the window reported its end.
349
- for (const deferred of turn.submissions.values()) {
350
- deferred.settle({ kind: 'stopped' });
351
- }
352
- }
353
261
  endNativeTurn(status, reason) {
354
262
  endNativeTurn(status, reason, this.deps.activitySink);
355
263
  }
356
- recordQueuedTurnStart() {
357
- this.queuedTurnCount += 1;
358
- }
359
- recordQueuedTurnEnd() {
360
- this.queuedTurnCount = Math.max(0, this.queuedTurnCount - 1);
361
- }
362
264
  /** Ensure a live resident session exists, resuming after a child exit. */
363
265
  async ensureSession() {
364
266
  if (this.stopped)
@@ -400,12 +302,15 @@ export class ClaudeCodeRuntime {
400
302
  disableFeatures: this.deps.disableFeatures,
401
303
  outputSchema: this.deps.outputSchema,
402
304
  });
305
+ const activity = { activitySequence: 0, tools: new Map() };
403
306
  const session = this.deps.sessionFactory({
404
307
  bin: this.bin,
405
308
  args,
406
309
  cwd: this.cwd,
407
310
  env: buildClaudeProcessEnv(this.deps.injectEnv, this.config.extra_env),
408
311
  stderrLogPath: this.stderrLogPath,
312
+ sessionId: candidateSessionId,
313
+ outputSchemaEnabled: this.deps.outputSchema !== undefined,
409
314
  turnTimeoutMs: this.config.turn_timeout_ms,
410
315
  remoteControl: this.config.remote_control,
411
316
  onRemoteControlUrl: this.config.remote_control
@@ -413,11 +318,11 @@ export class ClaudeCodeRuntime {
413
318
  this.log('info', `claude-code remote control URL: ${url}`);
414
319
  }
415
320
  : undefined,
416
- onProtocolEvent: (event) => this.onProtocolEvent(event),
321
+ onProtocolEvent: (event) => this.onProtocolEvent(event, activity),
417
322
  log: (level, msg, err) => this.log(level, msg, err),
418
323
  });
419
- session.setOnExit(() => {
420
- void this.onSessionExit(session);
324
+ session.setOnExit((error) => {
325
+ void this.onSessionExit(session, error);
421
326
  });
422
327
  // Retain termination authority before spawn.
423
328
  this.session = session;
@@ -451,12 +356,13 @@ export class ClaudeCodeRuntime {
451
356
  return session;
452
357
  }
453
358
  /** React to an unexpected resident-child exit: degrade and drop the session. */
454
- async onSessionExit(session) {
359
+ async onSessionExit(session, error) {
455
360
  if (this.session !== session)
456
361
  return; // already replaced/stopped
457
362
  if (this.stopped)
458
363
  return;
459
364
  this.log('error', 'claude-code resident child exited unexpectedly');
365
+ this.endNativeTurn('failed', error.message);
460
366
  try {
461
367
  await session.stop();
462
368
  if (this.session === session)
@@ -467,18 +373,15 @@ export class ClaudeCodeRuntime {
467
373
  return;
468
374
  }
469
375
  if (!this.stopped) {
470
- this.setStatus('degraded', new Error('claude resident child exited'));
376
+ this.setStatus('degraded', error);
471
377
  }
472
378
  }
473
- onProtocolEvent(event) {
474
- const active = this.activeTurn;
475
- if (active === null)
379
+ onProtocolEvent(event, activity) {
380
+ if (this.stopped)
476
381
  return;
477
- handleProtocolEvent(active, event, {
478
- threadId: this.threadId,
479
- outputSchemaEnabled: this.deps.outputSchema !== undefined,
382
+ handleProtocolEvent(event, {
383
+ activity,
480
384
  activitySink: this.deps.activitySink,
481
- log: (level, message, error) => this.log(level, message, error),
482
385
  });
483
386
  }
484
387
  assertGeneration(generation) {
@@ -499,16 +402,14 @@ export class ClaudeCodeRuntime {
499
402
  async terminateForFence() {
500
403
  this.stopped = true;
501
404
  this.generation += 1;
502
- const turn = this.activeTurn;
503
- if (turn !== null)
504
- this.stopUnsettled(turn);
505
405
  const session = this.session;
506
406
  if (session !== null) {
507
407
  // Killing a live child interrupts whatever it was running; the end is
508
408
  // reported for that child and not otherwise. A fence that fires while a
509
409
  // start is still failing has no child, and the card is then closed by
510
410
  // Core's own failed end carrying the start error.
511
- this.endNativeTurn('interrupted', null);
411
+ if (session.isAlive())
412
+ this.endNativeTurn('interrupted', null);
512
413
  // The reference is dropped only once this child's own stop succeeded; a
513
414
  // failure propagates to `RuntimeStateFence.terminated()` with the
514
415
  // termination authority intact, and leaves the status alone so a later
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/stream.d.ts CHANGED
@@ -61,6 +61,15 @@ export declare function parseLine(line: string): ParsedLine;
61
61
  export declare function buildUserMessage(text: string, options?: TurnSubmitOptions, commandUuid?: string): string;
62
62
  /** Enable Claude Code Remote Control via a stream-json control request. */
63
63
  export declare function buildRemoteControlEnable(requestId: string): string;
64
+ /**
65
+ * Interrupt the running turn, leaving commands queued behind it to run.
66
+ *
67
+ * Cancelling them is available — the CLI honours `cancel_queued` under the
68
+ * `interrupt_cancel_queued_v1` capability — and deliberately not used: a
69
+ * `/stop` ends the turn the conversation is watching, and the messages someone
70
+ * already sent are not that turn.
71
+ */
72
+ export declare function buildInterruptRequest(requestId: string, reason: string): string;
64
73
  /**
65
74
  * Answer a `can_use_tool` control request with `allow`. A Dreamux dispatcher
66
75
  * runs unattended, so the answer for a runtime that has no human to consult is
@@ -75,9 +84,11 @@ export declare function buildCanUseToolAllow(requestId: string, input: JsonObjec
75
84
  /** Acknowledge any other control request with a bare success so the CLI proceeds. */
76
85
  export declare function buildControlAck(requestId: string): string;
77
86
  /**
78
- * Accumulates the envelopes of a single turn and resolves a `TurnOutcome` when
79
- * the `result` lands. One aggregator per turn: feed every `ParsedLine`, then
80
- * read `outcome()` once `done` is true.
87
+ * Accumulates native-turn envelopes across a resident session. Feed each
88
+ * `ParsedLine`; `done` becomes true when a result arrives, and `outcome()`
89
+ * reads it without consuming it. Use `takeOutcome()` at a result boundary
90
+ * or `discard()` on cancellation to clear turn content for reuse while
91
+ * retaining the session identity.
81
92
  *
82
93
  * The final text prefers the `result.result` (the CLI's own canonical answer)
83
94
  * and falls back to the latest `assistant` snapshot — so a turn that ends
@@ -86,6 +97,7 @@ export declare function buildControlAck(requestId: string): string;
86
97
  */
87
98
  export declare class TurnAggregator {
88
99
  private lastAssistantText;
100
+ private contextTokens;
89
101
  private result;
90
102
  private initSessionId;
91
103
  /** Returns `true` once the terminal `result` has been seen. */
@@ -96,5 +108,7 @@ export declare class TurnAggregator {
96
108
  outcome(): TurnOutcome | null;
97
109
  /** Consume one native result boundary while retaining the session identity. */
98
110
  takeOutcome(): TurnOutcome | null;
111
+ /** Discard accumulated native-turn content, retaining the session identity. */
112
+ discard(): void;
99
113
  }
100
114
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,WAAW,EACX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAYpB;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAM;IAEjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAc7B,wEAAwE;IACxE,KAAK,IAAI,MAAM,GAAG,IAAI;CAKvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CActD;AAuCD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAoFlD;AA2BD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,EAC/B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CASjF;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD;AAID;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAuB;IAE5C,+DAA+D;IAC/D,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,8DAA8D;IAC9D,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAgB9B,OAAO,IAAI,WAAW,GAAG,IAAI;IAe7B,+EAA+E;IAC/E,WAAW,IAAI,WAAW,GAAG,IAAI;CAOlC"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,WAAW,EACX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAYpB;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAM;IAEjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAc7B,wEAAwE;IACxE,KAAK,IAAI,MAAM,GAAG,IAAI;CAKvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CActD;AA8ED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAoFlD;AA2BD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,EAC/B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CASjF;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD;AAID;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAuB;IAE5C,+DAA+D;IAC/D,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,8DAA8D;IAC9D,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAiB9B,OAAO,IAAI,WAAW,GAAG,IAAI;IAiB7B,+EAA+E;IAC/E,WAAW,IAAI,WAAW,GAAG,IAAI;IAOjC,+EAA+E;IAC/E,OAAO,IAAI,IAAI;CAKhB"}
package/dist/stream.js CHANGED
@@ -86,6 +86,39 @@ export function assistantText(message) {
86
86
  }
87
87
  return parts.join('');
88
88
  }
89
+ function sumTokenCounts(...values) {
90
+ let total = 0;
91
+ for (const value of values) {
92
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < 0)
93
+ return undefined;
94
+ total += value;
95
+ }
96
+ return total;
97
+ }
98
+ function parseModelUsage(value) {
99
+ if (!isObject(value) || Object.keys(value).length === 0)
100
+ return undefined;
101
+ let inputTokens = 0;
102
+ let outputTokens = 0;
103
+ for (const model of Object.values(value)) {
104
+ if (!isObject(model))
105
+ return undefined;
106
+ const input = sumTokenCounts(model['inputTokens'], model['cacheReadInputTokens'] ?? 0, model['cacheCreationInputTokens'] ?? 0);
107
+ const output = sumTokenCounts(model['outputTokens']);
108
+ if (input === undefined || output === undefined)
109
+ return undefined;
110
+ inputTokens += input;
111
+ outputTokens += output;
112
+ }
113
+ return { inputTokens, outputTokens };
114
+ }
115
+ function mainContextTokens(raw) {
116
+ const message = raw['message'];
117
+ if (!isObject(message) || !isObject(message['usage']))
118
+ return null;
119
+ const usage = message['usage'];
120
+ return sumTokenCounts(usage['input_tokens'], usage['cache_read_input_tokens'] ?? 0, usage['cache_creation_input_tokens'] ?? 0) ?? null;
121
+ }
89
122
  function parseResult(o) {
90
123
  const subtype = str(o['subtype']);
91
124
  const errorsRaw = o['errors'];
@@ -94,11 +127,13 @@ function parseResult(o) {
94
127
  : [];
95
128
  let isError;
96
129
  if (subtype !== null) {
97
- isError = subtype !== 'success';
130
+ // The success arm also carries API failures, with error text in `result`.
131
+ isError = subtype !== 'success' || o['is_error'] === true;
98
132
  }
99
133
  else {
100
134
  isError = o['is_error'] === true || errors.length > 0;
101
135
  }
136
+ const tokenUsage = parseModelUsage(o['modelUsage']);
102
137
  // In --json-schema mode Claude Code surfaces the validated object in
103
138
  // `structured_output`; prefer it over the free-form `result` text so the
104
139
  // workflow always receives clean, schema-conformant JSON to parse.
@@ -113,14 +148,16 @@ function parseResult(o) {
113
148
  return {
114
149
  subtype,
115
150
  isError,
151
+ terminalReason: str(o['terminal_reason']),
116
152
  text,
117
153
  sessionId: str(o['session_id']),
118
154
  // The client-supplied `uuid` of a user message associated with this result.
119
- // It is optional and is validated as a hint; command lifecycle remains the
120
- // ownership source when one result represents several started commands.
155
+ // It is optional and may name an internal background input; command
156
+ // lifecycle owns which submitted commands this result answers.
121
157
  userMessageUuid: str(o['user_message_uuid']),
122
158
  errors,
123
159
  hasStructuredOutput,
160
+ ...(tokenUsage === undefined ? {} : { tokenUsage }),
124
161
  };
125
162
  }
126
163
  /**
@@ -213,8 +250,8 @@ export function parseLine(line) {
213
250
  }
214
251
  /**
215
252
  * Parse a `command_lifecycle` envelope. The resident CLI emits it as a
216
- * top-level `type`; older streams (and the test fixture) emit it as a
217
- * `system` subtype. Both shapes carry the same `command_uuid`/`state` fields.
253
+ * top-level `type`; older streams emit it as a `system` subtype. Both shapes
254
+ * carry the same `command_uuid`/`state` fields.
218
255
  */
219
256
  function parseCommandLifecycle(parsed) {
220
257
  const state = str(parsed['state']);
@@ -225,8 +262,8 @@ function parseCommandLifecycle(parsed) {
225
262
  state === 'started' ||
226
263
  state === 'completed' ||
227
264
  state === 'cancelled' ||
228
- state === 'discarded'
229
- || state === 'refused'
265
+ state === 'discarded' ||
266
+ state === 'refused'
230
267
  ? state
231
268
  : null,
232
269
  raw: parsed,
@@ -260,6 +297,21 @@ export function buildRemoteControlEnable(requestId) {
260
297
  request: { subtype: 'remote_control', enabled: true },
261
298
  });
262
299
  }
300
+ /**
301
+ * Interrupt the running turn, leaving commands queued behind it to run.
302
+ *
303
+ * Cancelling them is available — the CLI honours `cancel_queued` under the
304
+ * `interrupt_cancel_queued_v1` capability — and deliberately not used: a
305
+ * `/stop` ends the turn the conversation is watching, and the messages someone
306
+ * already sent are not that turn.
307
+ */
308
+ export function buildInterruptRequest(requestId, reason) {
309
+ return JSON.stringify({
310
+ type: 'control_request',
311
+ request_id: requestId,
312
+ request: { subtype: 'interrupt', reason },
313
+ });
314
+ }
263
315
  /**
264
316
  * Answer a `can_use_tool` control request with `allow`. A Dreamux dispatcher
265
317
  * runs unattended, so the answer for a runtime that has no human to consult is
@@ -289,9 +341,11 @@ export function buildControlAck(requestId) {
289
341
  }
290
342
  // ─── Turn aggregation ───────────────────────────────────────────────────────
291
343
  /**
292
- * Accumulates the envelopes of a single turn and resolves a `TurnOutcome` when
293
- * the `result` lands. One aggregator per turn: feed every `ParsedLine`, then
294
- * read `outcome()` once `done` is true.
344
+ * Accumulates native-turn envelopes across a resident session. Feed each
345
+ * `ParsedLine`; `done` becomes true when a result arrives, and `outcome()`
346
+ * reads it without consuming it. Use `takeOutcome()` at a result boundary
347
+ * or `discard()` on cancellation to clear turn content for reuse while
348
+ * retaining the session identity.
295
349
  *
296
350
  * The final text prefers the `result.result` (the CLI's own canonical answer)
297
351
  * and falls back to the latest `assistant` snapshot — so a turn that ends
@@ -300,6 +354,7 @@ export function buildControlAck(requestId) {
300
354
  */
301
355
  export class TurnAggregator {
302
356
  lastAssistantText = '';
357
+ contextTokens = null;
303
358
  result = null;
304
359
  initSessionId = null;
305
360
  /** Returns `true` once the terminal `result` has been seen. */
@@ -319,6 +374,8 @@ export class TurnAggregator {
319
374
  case 'assistant':
320
375
  if (line.text.length > 0)
321
376
  this.lastAssistantText = line.text;
377
+ if (line.raw['parent_tool_use_id'] == null)
378
+ this.contextTokens = mainContextTokens(line.raw);
322
379
  break;
323
380
  case 'result':
324
381
  this.result = line.outcome;
@@ -337,8 +394,10 @@ export class TurnAggregator {
337
394
  text,
338
395
  sessionId: r.sessionId ?? this.initSessionId,
339
396
  subtype: r.subtype,
397
+ terminalReason: r.terminalReason,
340
398
  errors: r.errors,
341
399
  hasStructuredOutput: r.hasStructuredOutput,
400
+ ...(r.tokenUsage === undefined ? {} : { tokenUsage: r.tokenUsage, contextTokens: this.contextTokens }),
342
401
  };
343
402
  }
344
403
  /** Consume one native result boundary while retaining the session identity. */
@@ -346,9 +405,14 @@ export class TurnAggregator {
346
405
  const outcome = this.outcome();
347
406
  if (outcome === null)
348
407
  return null;
408
+ this.discard();
409
+ return outcome;
410
+ }
411
+ /** Discard accumulated native-turn content, retaining the session identity. */
412
+ discard() {
349
413
  this.result = null;
350
414
  this.lastAssistantText = '';
351
- return outcome;
415
+ this.contextTokens = null;
352
416
  }
353
417
  }
354
418
  //# sourceMappingURL=stream.js.map