@enderfga/claw-orchestrator 7.5.4 → 7.5.5

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.
@@ -193,6 +193,8 @@ export declare class RunKernel extends EventEmitter {
193
193
  private readonly executors;
194
194
  private readonly nodeTimeoutMs;
195
195
  private readonly live;
196
+ /** Gate answers given while their run was not live, keyed by run id; see `approveStored`. */
197
+ private readonly _presetGates;
196
198
  /**
197
199
  * This kernel's identity as a run owner.
198
200
  *
@@ -241,11 +243,30 @@ export declare class RunKernel extends EventEmitter {
241
243
  secrets?: Record<string, unknown>;
242
244
  tag?: string;
243
245
  }): Promise<RunRecord>;
246
+ /**
247
+ * Steers logged for this run that no finished node consumed.
248
+ *
249
+ * The queue lives in memory, so a restart used to drop every steer that had
250
+ * arrived but not been taken — while the log still said it was sent. Steers are
251
+ * taken in log order and a node records how many it held only when it finishes,
252
+ * so the unconsumed ones are the tail of the log. A node that died holding some
253
+ * never recorded them, and they go to its retry: at-least-once, like the node.
254
+ */
255
+ private _unconsumedSteers;
244
256
  cancel(runId: string): boolean;
245
257
  /** Queue text for the current (or next) agent node. */
246
258
  steer(runId: string, text: string): boolean;
247
- /** Answer a parked `human_gate`. */
259
+ /** Answer a parked `human_gate` in a run that is live in this process. */
248
260
  approve(runId: string, approved: boolean): boolean;
261
+ /**
262
+ * Answer a parked `human_gate`, wherever the run was parked.
263
+ *
264
+ * After a restart a parked run is on disk but not live, so `approve` found no
265
+ * gate and quietly did nothing. Here the answer is attached to the gate the run
266
+ * was waiting at and the run is resumed; when it reaches that gate again, the
267
+ * answer is waiting. Attaching it before resuming leaves nothing to race.
268
+ */
269
+ approveStored(runId: string, approved: boolean): Promise<boolean>;
249
270
  get(runId: string): RunRecord | undefined;
250
271
  /**
251
272
  * The live engine object a running node published, if the run is still going
@@ -282,6 +303,23 @@ export declare class RunKernel extends EventEmitter {
282
303
  private _setNodeState;
283
304
  private _nodeSpec;
284
305
  private _nextInOrder;
306
+ /**
307
+ * Where `_run` starts: the node the run was on, not the first pending node.
308
+ *
309
+ * `_firstPending` scans in declaration order, and a node on a branch the run
310
+ * never took stays `pending` for good — so after a crash it found that node
311
+ * instead of the one that had been running, and a run could resume at a
312
+ * contingency gate nobody asked for. Execution is one cursor at a time and
313
+ * every node state change records `currentNode`, so the record already says
314
+ * where the run was:
315
+ *
316
+ * - `pending` (reset from `running` by `resume`) or `awaiting_human`: that node.
317
+ * - finished, with the process gone before the next node started: its
318
+ * successor, computed the way the loop computes it. A router's choice is not
319
+ * recorded, so a router is evaluated again — it reads recorded state only.
320
+ * - no `currentNode` yet: a run that has not started, so the first pending node.
321
+ */
322
+ private _resumePoint;
285
323
  private _firstPending;
286
324
  private _executeNode;
287
325
  /**
@@ -47,7 +47,7 @@ import { createConsoleLogger } from '../logger.js';
47
47
  import { normalizeContract } from '../verify/contract.js';
48
48
  import { captureBaseline, treeFingerprint } from '../verify/baseline.js';
49
49
  import { needsTestSnapshot, snapshotTests } from '../verify/protected-tests.js';
50
- import { acquireLease, commit, createAndAcquire, LEASE_HEARTBEAT_MS, renewLease, isValidRunId, releaseLease, deleteRunDir, listRuns, loadRun, nodeArtifactPath, runDir, summarize, } from './store.js';
50
+ import { acquireLease, commit, createAndAcquire, LEASE_HEARTBEAT_MS, renewLease, isValidRunId, releaseLease, deleteRunDir, listRuns, loadRun, nodeArtifactPath, readEvents, runDir, summarize, } from './store.js';
51
51
  import { isTerminalRunState, } from './types.js';
52
52
  export const DEFAULT_NODE_TIMEOUT_MS = 30 * 60_000;
53
53
  /** setTimeout fires at once for a delay past a signed 32-bit millisecond count. */
@@ -237,6 +237,8 @@ export class RunKernel extends EventEmitter {
237
237
  executors;
238
238
  nodeTimeoutMs;
239
239
  live = new Map();
240
+ /** Gate answers given while their run was not live, keyed by run id; see `approveStored`. */
241
+ _presetGates = new Map();
240
242
  /**
241
243
  * This kernel's identity as a run owner.
242
244
  *
@@ -424,6 +426,7 @@ export class RunKernel extends EventEmitter {
424
426
  // nodes, with every side effect happening twice.
425
427
  const guard = acquireLease(runId, this.ownerId);
426
428
  const { txn, signal } = this._open(guard, record);
429
+ const pendingSteers = this._unconsumedSteers(runId);
427
430
  const wasTerminal = isTerminalRunState(record.state);
428
431
  if (!txn.apply((draft) => {
429
432
  for (const n of Object.values(draft.nodes)) {
@@ -433,6 +436,11 @@ export class RunKernel extends EventEmitter {
433
436
  n.error = undefined;
434
437
  }
435
438
  }
439
+ if (opts.restart && wasTerminal) {
440
+ // Every node went back to pending above, so the run starts from the
441
+ // top; `currentNode` would otherwise point at wherever it finished.
442
+ draft.currentNode = undefined;
443
+ }
436
444
  if (opts.restart) {
437
445
  draft.endedAt = undefined;
438
446
  draft.outcome = 'unverified';
@@ -444,9 +452,36 @@ export class RunKernel extends EventEmitter {
444
452
  })) {
445
453
  throw new Error(`Run '${runId}' could not be checkpointed: the claim was lost before it resumed`);
446
454
  }
447
- this._launch(txn, signal);
455
+ this._launch(txn, signal, pendingSteers);
448
456
  return txn.record;
449
457
  }
458
+ /**
459
+ * Steers logged for this run that no finished node consumed.
460
+ *
461
+ * The queue lives in memory, so a restart used to drop every steer that had
462
+ * arrived but not been taken — while the log still said it was sent. Steers are
463
+ * taken in log order and a node records how many it held only when it finishes,
464
+ * so the unconsumed ones are the tail of the log. A node that died holding some
465
+ * never recorded them, and they go to its retry: at-least-once, like the node.
466
+ */
467
+ _unconsumedSteers(runId) {
468
+ let events;
469
+ try {
470
+ events = readEvents(runId);
471
+ }
472
+ catch {
473
+ return [];
474
+ }
475
+ const texts = [];
476
+ let consumed = 0;
477
+ for (const e of events) {
478
+ if (e.type === 'steer')
479
+ texts.push(e.text);
480
+ else if (e.type === 'steer_consumed')
481
+ consumed += e.count;
482
+ }
483
+ return texts.slice(consumed);
484
+ }
450
485
  cancel(runId) {
451
486
  const handle = this.live.get(runId);
452
487
  if (!handle)
@@ -487,7 +522,7 @@ export class RunKernel extends EventEmitter {
487
522
  });
488
523
  return true;
489
524
  }
490
- /** Answer a parked `human_gate`. */
525
+ /** Answer a parked `human_gate` in a run that is live in this process. */
491
526
  approve(runId, approved) {
492
527
  const handle = this.live.get(runId);
493
528
  if (!handle?.gate)
@@ -495,6 +530,35 @@ export class RunKernel extends EventEmitter {
495
530
  handle.gate.resolve(approved);
496
531
  return true;
497
532
  }
533
+ /**
534
+ * Answer a parked `human_gate`, wherever the run was parked.
535
+ *
536
+ * After a restart a parked run is on disk but not live, so `approve` found no
537
+ * gate and quietly did nothing. Here the answer is attached to the gate the run
538
+ * was waiting at and the run is resumed; when it reaches that gate again, the
539
+ * answer is waiting. Attaching it before resuming leaves nothing to race.
540
+ */
541
+ async approveStored(runId, approved) {
542
+ if (this.approve(runId, approved))
543
+ return true;
544
+ if (this.live.has(runId))
545
+ return false;
546
+ const record = loadRun(runId);
547
+ const gateId = record?.currentNode;
548
+ if (!record || record.state !== 'awaiting_human' || !gateId)
549
+ return false;
550
+ if (record.nodes[gateId]?.state !== 'awaiting_human')
551
+ return false;
552
+ this._presetGates.set(runId, { nodeId: gateId, approved });
553
+ try {
554
+ await this.resume(runId);
555
+ }
556
+ catch (err) {
557
+ this._presetGates.delete(runId);
558
+ throw err;
559
+ }
560
+ return true;
561
+ }
498
562
  get(runId) {
499
563
  return loadRun(runId);
500
564
  }
@@ -565,12 +629,14 @@ export class RunKernel extends EventEmitter {
565
629
  this.live.clear();
566
630
  }
567
631
  // ─── Execution ────────────────────────────────────────────────────────────
568
- _launch(txn, signal) {
632
+ _launch(txn, signal, steer = []) {
569
633
  const runId = txn.guard.runId;
570
634
  const handle = {
571
635
  txn,
572
636
  signal,
573
- steer: [],
637
+ // Seeded before `_run` starts: its first node can take steers before the
638
+ // first await, so pushing them afterwards would be too late.
639
+ steer,
574
640
  tag: this._tags.get(runId),
575
641
  inflight: new Set(),
576
642
  secrets: this._secrets.get(runId) ?? {},
@@ -650,6 +716,35 @@ export class RunKernel extends EventEmitter {
650
716
  const idx = record.spec.nodes.findIndex((n) => n.id === id);
651
717
  return idx >= 0 && idx + 1 < record.spec.nodes.length ? record.spec.nodes[idx + 1].id : undefined;
652
718
  }
719
+ /**
720
+ * Where `_run` starts: the node the run was on, not the first pending node.
721
+ *
722
+ * `_firstPending` scans in declaration order, and a node on a branch the run
723
+ * never took stays `pending` for good — so after a crash it found that node
724
+ * instead of the one that had been running, and a run could resume at a
725
+ * contingency gate nobody asked for. Execution is one cursor at a time and
726
+ * every node state change records `currentNode`, so the record already says
727
+ * where the run was:
728
+ *
729
+ * - `pending` (reset from `running` by `resume`) or `awaiting_human`: that node.
730
+ * - finished, with the process gone before the next node started: its
731
+ * successor, computed the way the loop computes it. A router's choice is not
732
+ * recorded, so a router is evaluated again — it reads recorded state only.
733
+ * - no `currentNode` yet: a run that has not started, so the first pending node.
734
+ */
735
+ _resumePoint(record) {
736
+ const id = record.currentNode;
737
+ const node = id ? record.nodes[id] : undefined;
738
+ const spec = id ? this._nodeSpec(record, id) : undefined;
739
+ if (!id || !node || !spec)
740
+ return this._firstPending(record);
741
+ if (node.state === 'pending' || node.state === 'running' || node.state === 'awaiting_human')
742
+ return id;
743
+ const carriedOn = node.state === 'succeeded' || (node.state === 'failed' && (spec.onFailure ?? 'fail') !== 'fail');
744
+ if (carriedOn)
745
+ return spec.kind === 'router' ? id : (spec.next ?? this._nextInOrder(record, id));
746
+ return this._firstPending(record);
747
+ }
653
748
  _firstPending(record) {
654
749
  for (const n of record.spec.nodes) {
655
750
  const rec = record.nodes[n.id];
@@ -728,7 +823,7 @@ export class RunKernel extends EventEmitter {
728
823
  const txn = handle.txn;
729
824
  const maxVisits = txn.record.spec.maxNodeVisits ?? DEFAULT_MAX_NODE_VISITS;
730
825
  this._setRunState(handle, 'running');
731
- let cursor = this._firstPending(txn.record);
826
+ let cursor = this._resumePoint(txn.record);
732
827
  while (cursor) {
733
828
  // Losing the run outranks everything else: this owner may not write, so
734
829
  // there is nothing left for it to do but stop.
@@ -764,6 +859,11 @@ export class RunKernel extends EventEmitter {
764
859
  const result = await this._runWithRetry(handle, spec);
765
860
  if (txn.finished)
766
861
  return txn.record;
862
+ if (handle.steerTaken) {
863
+ const count = handle.steerTaken;
864
+ handle.steerTaken = 0;
865
+ txn.emit({ ts: new Date().toISOString(), type: 'steer_consumed', node: nodeId, count });
866
+ }
767
867
  // Back to `running` once the checks are done: `verifying` was only ever
768
868
  // set on the way in, and a verifier that sits mid-chain (the solve repair
769
869
  // loop puts routers and another implement pass after it) left the record
@@ -857,7 +957,11 @@ export class RunKernel extends EventEmitter {
857
957
  attemptSignal.aborted = v;
858
958
  },
859
959
  },
860
- takeSteer: () => handle.steer.splice(0, handle.steer.length),
960
+ takeSteer: () => {
961
+ const taken = handle.steer.splice(0, handle.steer.length);
962
+ handle.steerTaken = (handle.steerTaken ?? 0) + taken.length;
963
+ return taken;
964
+ },
861
965
  // Fenced like everything else. It used to be the one context method that
862
966
  // wrote unguarded, so a superseded owner's node could still append to the
863
967
  // log its replacement was reading.
@@ -903,9 +1007,15 @@ export class RunKernel extends EventEmitter {
903
1007
  return false;
904
1008
  if (!this._setRunState(handle, 'awaiting_human'))
905
1009
  return false;
906
- const approved = await new Promise((resolve) => {
907
- handle.gate = { resolve };
908
- });
1010
+ const runId = handle.txn.guard.runId;
1011
+ const preset = this._presetGates.get(runId);
1012
+ if (preset)
1013
+ this._presetGates.delete(runId);
1014
+ const approved = preset && preset.nodeId === nodeId
1015
+ ? preset.approved
1016
+ : await new Promise((resolve) => {
1017
+ handle.gate = { resolve };
1018
+ });
909
1019
  handle.gate = undefined;
910
1020
  if (!handle.signal.aborted)
911
1021
  this._setRunState(handle, 'running');
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/kernel/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/kernel/engine.ts"],"names":[],"mappings":"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"}
@@ -339,6 +339,13 @@ export type KernelEvent = {
339
339
  type: 'steer';
340
340
  node: string;
341
341
  text: string;
342
+ }
343
+ /** A node finished holding `count` steers, taken in the order they were logged. */
344
+ | {
345
+ ts: string;
346
+ type: 'steer_consumed';
347
+ node: string;
348
+ count: number;
342
349
  } | {
343
350
  ts: string;
344
351
  type: 'evidence';
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwVH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7F,MAAM,UAAU,kBAAkB,CAAC,CAAW;IAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA0VH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7F,MAAM,UAAU,kBAAkB,CAAC,CAAW;IAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -194,9 +194,14 @@ export declare class SessionManager {
194
194
  workflowSteer(runId: string, text: string): {
195
195
  steered: boolean;
196
196
  };
197
- workflowApprove(runId: string, approved: boolean): {
197
+ /**
198
+ * Answer a parked `human_gate`. A run parked by a process that has since
199
+ * restarted is resumed with the answer attached, so a caller does not need to
200
+ * know whether the server restarted in between.
201
+ */
202
+ workflowApprove(runId: string, approved: boolean): Promise<{
198
203
  answered: boolean;
199
- };
204
+ }>;
200
205
  workflowDelete(runId: string): void;
201
206
  workflowEvidence(runId: string, evidenceId?: string): EvidenceBundle | undefined;
202
207
  /**
@@ -1033,8 +1033,13 @@ export class SessionManager {
1033
1033
  workflowSteer(runId, text) {
1034
1034
  return { steered: this.kernel.steer(runId, text) };
1035
1035
  }
1036
- workflowApprove(runId, approved) {
1037
- return { answered: this.kernel.approve(runId, approved) };
1036
+ /**
1037
+ * Answer a parked `human_gate`. A run parked by a process that has since
1038
+ * restarted is resumed with the answer attached, so a caller does not need to
1039
+ * know whether the server restarted in between.
1040
+ */
1041
+ async workflowApprove(runId, approved) {
1042
+ return { answered: await this.kernel.approveStored(runId, approved) };
1038
1043
  }
1039
1044
  workflowDelete(runId) {
1040
1045
  this.kernel.delete(runId);