@sensigo/realm 0.32.0 → 0.33.0

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 (38) hide show
  1. package/dist/engine/abandon-run.d.ts.map +1 -1
  2. package/dist/engine/abandon-run.js +17 -9
  3. package/dist/engine/abandon-run.js.map +1 -1
  4. package/dist/engine/apply-resume.d.ts +11 -2
  5. package/dist/engine/apply-resume.d.ts.map +1 -1
  6. package/dist/engine/apply-resume.js +15 -4
  7. package/dist/engine/apply-resume.js.map +1 -1
  8. package/dist/engine/eligibility.d.ts +20 -2
  9. package/dist/engine/eligibility.d.ts.map +1 -1
  10. package/dist/engine/eligibility.js +46 -24
  11. package/dist/engine/eligibility.js.map +1 -1
  12. package/dist/engine/execution-loop.d.ts +7 -4
  13. package/dist/engine/execution-loop.d.ts.map +1 -1
  14. package/dist/engine/execution-loop.js +810 -87
  15. package/dist/engine/execution-loop.js.map +1 -1
  16. package/dist/engine/run-health.d.ts +1 -1
  17. package/dist/engine/run-health.d.ts.map +1 -1
  18. package/dist/engine/run-health.js +62 -1
  19. package/dist/engine/run-health.js.map +1 -1
  20. package/dist/engine/settlement.d.ts +11 -0
  21. package/dist/engine/settlement.d.ts.map +1 -1
  22. package/dist/engine/settlement.js +441 -30
  23. package/dist/engine/settlement.js.map +1 -1
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/store/json-file-store.d.ts +6 -4
  29. package/dist/store/json-file-store.d.ts.map +1 -1
  30. package/dist/store/json-file-store.js +26 -9
  31. package/dist/store/json-file-store.js.map +1 -1
  32. package/dist/store/store-interface.d.ts +11 -8
  33. package/dist/store/store-interface.d.ts.map +1 -1
  34. package/dist/types/run-record.d.ts +26 -3
  35. package/dist/types/run-record.d.ts.map +1 -1
  36. package/dist/types/settlement.d.ts +135 -11
  37. package/dist/types/settlement.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -20,11 +20,14 @@ function norm(t) {
20
20
  function tokensEqual(a, b) {
21
21
  return norm(a) === norm(b);
22
22
  }
23
- /** `M := {complete: completed_steps, fail: failed_steps, skip: skipped_steps}` — the membership
24
- * array a settled-map entry's `outcome` maps to. */
23
+ /** `M := {complete: completed_steps, fail: failed_steps, skip: skipped_steps, gate:
24
+ * completed_steps}` — the membership array a settled-map entry's `outcome` maps to. `gate`
25
+ * (issue #279, increment 2, PR-C — design record §2) joined alongside `completed_steps`: a
26
+ * resolved gate's step physically lands there, same as a `complete` settle_step outcome. */
25
27
  function membershipFor(fresh, outcome) {
26
28
  switch (outcome) {
27
29
  case 'complete':
30
+ case 'gate':
28
31
  return fresh.completed_steps;
29
32
  case 'fail':
30
33
  return fresh.failed_steps;
@@ -137,6 +140,41 @@ function mintFresh(record, definition, outcome) {
137
140
  return ledger;
138
141
  }
139
142
  // ---------------------------------------------------------------------------
143
+ // §4 shared APPLY postconditions (design record design-d5-increment2.md §4, hoisted — lens-2 F4:
144
+ // "one implementation, every kind routes through it"). Every kind whose APPLY can terminalize
145
+ // (settle_step complete/fail/abort [shipped]; settle_gate resolution-complete; settle_guard
146
+ // pass/resolution_error/abort [increment 2, PR-C]) calls this ONE function to (1) mint fresh
147
+ // finalizers on a genuine terminal false→true edge (§4.1), (2) stamp `defaulted_steps` on a
148
+ // COMPLETE-terminal edge only (§4.2), and (3) derive `run_phase` uniformly (§4.5) — regardless of
149
+ // whether this particular APPLY actually transitioned.
150
+ // ---------------------------------------------------------------------------
151
+ /**
152
+ * `record.terminal_state` must already reflect the kind-specific terminal decision (each arm
153
+ * computes its own `isComplete`/unconditional-abort logic BEFORE calling this) — every in-contract
154
+ * caller has already refused `run_terminal` earlier in its own arm, so `record.terminal_state` can
155
+ * only be transitioning `false → true` here, never `true → true`; `transitioned` is therefore
156
+ * simply the post-write value, read back explicitly (not assumed) so a future caller that ever
157
+ * violates that precondition fails loudly via a wrong `transitioned` value rather than silently.
158
+ */
159
+ function applyTerminalPostconditions(record, definition, mintOutcome, stampDefaulted) {
160
+ const transitioned = record.terminal_state === true;
161
+ let sealed = record;
162
+ if (transitioned) {
163
+ // On terminal false→true edge: mintFresh (§4.1), same atomic write.
164
+ const ledger = mintFresh(record, definition, mintOutcome);
165
+ sealed = { ...record, ...(ledger !== undefined ? { finalizer_ledger: ledger } : {}) };
166
+ // defaulted_steps stamped IFF a COMPLETE-terminal edge (§4.2; the FM-5/#232 guard) — never on
167
+ // a fail/abort seal, even one that terminalizes.
168
+ if (stampDefaulted) {
169
+ const defaultedSteps = deriveDefaultedSteps(sealed.evidence);
170
+ if (defaultedSteps.length > 0)
171
+ sealed = { ...sealed, defaulted_steps: defaultedSteps };
172
+ }
173
+ }
174
+ const withPhase = { ...sealed, run_phase: deriveRunPhase(sealed) };
175
+ return { run: withPhase, transitioned };
176
+ }
177
+ // ---------------------------------------------------------------------------
140
178
  // §3 settleStepArms
141
179
  // ---------------------------------------------------------------------------
142
180
  function applySettleStep(fresh, delta, definition, now) {
@@ -209,6 +247,7 @@ function applyAbortEdge(fresh, withMembership, step, abort, definition, now) {
209
247
  // nothing above has touched it.
210
248
  if (fresh.pending_gate !== undefined && fresh.pending_gate.step_name !== step) {
211
249
  const gateStepName = fresh.pending_gate.step_name;
250
+ const cancelledGateId = fresh.pending_gate.gate_id;
212
251
  const { pending_gate: _droppedGate, ...withoutGate } = aborted;
213
252
  aborted = {
214
253
  ...withoutGate,
@@ -217,7 +256,9 @@ function applyAbortEdge(fresh, withMembership, step, abort, definition, now) {
217
256
  skipped_steps: [...withoutGate.skipped_steps, gateStepName],
218
257
  skip_details: {
219
258
  ...withoutGate.skip_details,
220
- [gateStepName]: { kind: 'gate_cancelled_by_abort' },
259
+ // gate_id additive (design record §5 D-4) — the settle_gate run_terminal envelope's
260
+ // cancelled-variant discriminator binds by this once populated.
261
+ [gateStepName]: { kind: 'gate_cancelled_by_abort', gate_id: cancelledGateId },
221
262
  },
222
263
  evidence: [
223
264
  ...withoutGate.evidence,
@@ -226,24 +267,20 @@ function applyAbortEdge(fresh, withMembership, step, abort, definition, now) {
226
267
  startedAt: now,
227
268
  completedAt: now,
228
269
  input: {},
229
- output: { gate_cancelled_by_abort: true, aborted_by: step },
270
+ output: { gate_cancelled_by_abort: true, aborted_by: step, gate_id: cancelledGateId },
230
271
  }),
231
272
  ],
232
273
  };
233
274
  }
234
- // On terminal false→true edge: mintFresh (§4), same atomic write. abort NEVER stamps
235
- // defaulted_steps (the FM-5/#232 guard only the complete edge does).
236
- const ledger = mintFresh(aborted, definition, 'abort');
237
- const finalRun = {
238
- ...aborted,
239
- ...(ledger !== undefined ? { finalizer_ledger: ledger } : {}),
240
- };
241
- const withPhase = { ...finalRun, run_phase: deriveRunPhase(finalRun) };
275
+ // §4 shared postconditions: abort NEVER stamps defaulted_steps (the FM-5/#232 guard only the
276
+ // complete edge does); `transitioned` is always true here (isTerminal(fresh) was already
277
+ // refused above, and `aborted.terminal_state` is unconditionally true).
278
+ const { run, transitioned } = applyTerminalPostconditions(aborted, definition, 'abort', false);
242
279
  return {
243
280
  applied: true,
244
- run: withPhase,
245
- transitioned: true, // isTerminal(fresh) was already refused above — abort is always false→true
246
- pendingFinalizers: pendingFinalizerNames(withPhase.finalizer_ledger),
281
+ run,
282
+ transitioned,
283
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
247
284
  };
248
285
  }
249
286
  /** complete / fail: the TWO-DISJUNCT `isComplete` predicate (execution-loop.ts :2579-2583 /
@@ -270,25 +307,380 @@ function applyCompleteOrFailEdge(withMembership, step, outcome, failureMessage,
270
307
  }
271
308
  : {}),
272
309
  };
273
- let sealed = draft;
274
- if (isComplete) {
275
- // On terminal edge: mintFresh (§4), same atomic write.
276
- const ledger = mintFresh(draft, definition, outcome);
277
- sealed = { ...draft, ...(ledger !== undefined ? { finalizer_ledger: ledger } : {}) };
278
- // defaulted_steps stamped IFF complete-terminal edge (FM-5/#232 guard) — never on a fail seal,
279
- // even one that terminalizes.
280
- if (outcome === 'complete') {
281
- const defaultedSteps = deriveDefaultedSteps(sealed.evidence);
282
- if (defaultedSteps.length > 0)
283
- sealed = { ...sealed, defaulted_steps: defaultedSteps };
310
+ // §4 shared postconditions: defaulted_steps stamps IFF this is a COMPLETE-terminal edge — never
311
+ // on a fail seal, even one that terminalizes.
312
+ const { run, transitioned } = applyTerminalPostconditions(draft, definition, outcome, outcome === 'complete' && isComplete);
313
+ return {
314
+ applied: true,
315
+ run,
316
+ transitioned,
317
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
318
+ };
319
+ }
320
+ // ---------------------------------------------------------------------------
321
+ // §3 openGateArms (issue #279, increment 2, PR-C) — fence = claimToken; entry lookup FIRST
322
+ // (design record lens-2 F1).
323
+ // ---------------------------------------------------------------------------
324
+ function applyOpenGate(fresh, delta) {
325
+ const { step, claimToken, pendingGate, evidence } = delta;
326
+ // Idempotence arm BEFORE terminal/claim (mirrors settleStepArms's own ordering, L21 ii).
327
+ const existing = entryOf(fresh, step);
328
+ if (existing !== undefined) {
329
+ if (existing.outcome === 'gate' && existing.token === pendingGate.gate_id) {
330
+ // Exact-delta replay AFTER the gate already resolved (BU F6) — the gate this delta is
331
+ // trying to open is the SAME one already committed as resolved.
332
+ return { applied: false, reason: 'already_settled', run: fresh };
284
333
  }
334
+ // Envelope text stays neutral (N1 — no "by_other" amplification) at the caller (PR-D).
335
+ return { applied: false, reason: 'already_settled_by_other', run: fresh };
285
336
  }
286
- const withPhase = { ...sealed, run_phase: deriveRunPhase(sealed) };
337
+ if (isTerminal(fresh)) {
338
+ return { applied: false, reason: 'run_terminal', run: fresh };
339
+ }
340
+ if (fresh.pending_gate !== undefined) {
341
+ if (fresh.pending_gate.step_name === step) {
342
+ if (fresh.pending_gate.gate_id === pendingGate.gate_id) {
343
+ // Exact-delta replay, gate still open (e.g. a retried gate-open write).
344
+ return { applied: false, reason: 'already_settled', run: fresh };
345
+ }
346
+ const claim = fresh.claims?.[step];
347
+ if (claim !== undefined && tokensEqual(claim.token, claimToken)) {
348
+ // D-1: the LIVE gate wins, rendered VERBATIM. In-contract UNREACHABLE (claimStep's
349
+ // in-flight guard + reclaim's own open-gate refusal both prevent a second open_gate
350
+ // attempt from ever reaching here with a live claim) — defensive.
351
+ return { applied: false, reason: 'already_open', run: fresh, gate: fresh.pending_gate };
352
+ }
353
+ // Same step, different claimant — defensive (a claim can't be re-acquired under an open
354
+ // gate; findEligibleSteps returns [] while a gate is open).
355
+ return { applied: false, reason: 'claim_lost', run: fresh };
356
+ }
357
+ // A gate open on ANOTHER step — serialization; the step named here STAYS claimed (L13
358
+ // asserts this — the caller's recovery path is to wait for the live gate to resolve).
359
+ return { applied: false, reason: 'gate_mismatch', run: fresh };
360
+ }
361
+ const claim = fresh.claims?.[step];
362
+ if (claim === undefined || !tokensEqual(claim.token, claimToken)) {
363
+ return { applied: false, reason: 'claim_lost', run: fresh };
364
+ }
365
+ // APPLY OPEN: pending_gate set (delta-carried verbatim); evidence append; CLAIM RETAINED + step
366
+ // stays in_progress (execution-loop.ts:2958 — retention keeps isComplete sound, G-1). Never
367
+ // terminalizes (design record §4.1) — run_phase still derives (§4.5: transform-owned uniformly).
368
+ const withGate = {
369
+ ...fresh,
370
+ evidence: [...fresh.evidence, ...evidence],
371
+ pending_gate: pendingGate,
372
+ };
373
+ const run = { ...withGate, run_phase: deriveRunPhase(withGate) };
374
+ return {
375
+ applied: true,
376
+ run,
377
+ transitioned: false,
378
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
379
+ };
380
+ }
381
+ // ---------------------------------------------------------------------------
382
+ // §3 settleGateArms (issue #279, increment 2, PR-C) — fence = gateId ONLY (L20). ZERO claim arms.
383
+ // ---------------------------------------------------------------------------
384
+ /**
385
+ * Finds the (at most one, per G-2) `settled` entry recording a resolved gate matching `gateId` —
386
+ * searched by gateId (the settle_gate fence), not by a known step name, since a gate submission
387
+ * carries only the gate_id. `first` (design record §3): lookup runs FIRST for fail-safety under
388
+ * corruption (D3 §0.2) — soundness of both the lookup and the "first" quantifier rests on G-2
389
+ * (TERMINAL_GATE_EXCLUSION) plus per-attempt gate_id uniqueness plus the membership conjunct (the
390
+ * orphan rule, generalized): a G-2-violating corrupt both-match record makes iteration order
391
+ * store-dependent, which is exactly why the fail-safe direction (NOOP, never RESOLVE) is pinned
392
+ * at the CALLER (this function returns whichever match Object.entries visits first — a real store
393
+ * never produces two, so this never matters in-contract).
394
+ */
395
+ function findSettledGateEntry(fresh, gateId) {
396
+ for (const [step, entry] of Object.entries(fresh.settled ?? {})) {
397
+ if (entry.outcome !== 'gate' || entry.token !== gateId)
398
+ continue;
399
+ if (!membershipFor(fresh, entry.outcome).includes(step))
400
+ continue; // orphan rule
401
+ return { step, choice: entry.choice };
402
+ }
403
+ return undefined;
404
+ }
405
+ function applySettleGate(fresh, delta, definition) {
406
+ const { gateId, choice, evidence } = delta;
407
+ // Lookup FIRST (D3 §0.2 fail-safer-under-corruption; L21 ii: the own-commit may have already
408
+ // flipped terminal).
409
+ const hit = findSettledGateEntry(fresh, gateId);
410
+ if (hit !== undefined) {
411
+ if (hit.choice === choice) {
412
+ // Double-submit / two-gates delayed retry (TD F1) — same choice, idempotent no-op.
413
+ return { applied: false, reason: 'already_settled', run: fresh };
414
+ }
415
+ return {
416
+ applied: false,
417
+ reason: 'gate_choice_conflict',
418
+ run: fresh,
419
+ ...(hit.choice !== undefined ? { winningChoice: hit.choice } : {}),
420
+ };
421
+ }
422
+ // Zombie / stale submit — BEFORE the live-gate arm (matches the shipped `applySettleStep`
423
+ // terminal-first order `:215-217`, AND the live `submitHumanResponse` site's own terminal-first
424
+ // check `:3431`): a grandfathered terminal∧pending_gate record refuses run_terminal instead of
425
+ // resurrecting the run or falsely completing it.
426
+ if (isTerminal(fresh)) {
427
+ return { applied: false, reason: 'run_terminal', run: fresh };
428
+ }
429
+ if (fresh.pending_gate !== undefined && fresh.pending_gate.gate_id === gateId) {
430
+ if (!fresh.pending_gate.choices.includes(choice)) {
431
+ return {
432
+ applied: false,
433
+ reason: 'choice_not_eligible',
434
+ run: fresh,
435
+ choices: fresh.pending_gate.choices,
436
+ };
437
+ }
438
+ // APPLY RESOLVE: clear pending_gate; completed_steps += step_name; release claim +
439
+ // in_progress (execution-loop.ts:3519-3520 parity); settled[step] = {token: gateId,
440
+ // outcome:'gate', choice} — 'gate' LITERAL here, toSettledOutcome's own SettleStepOutcome
441
+ // domain stays untouched (§2).
442
+ const stepName = fresh.pending_gate.step_name;
443
+ const { pending_gate: _pg, ...rest } = fresh;
444
+ const withMembership = {
445
+ ...rest,
446
+ in_progress_steps: rest.in_progress_steps.filter((s) => s !== stepName),
447
+ claims: omitClaim(rest.claims, stepName),
448
+ completed_steps: [...rest.completed_steps, stepName],
449
+ evidence: [...rest.evidence, ...evidence],
450
+ settled: { ...rest.settled, [stepName]: { token: gateId, outcome: 'gate', choice } },
451
+ };
452
+ const propagated = propagateSkips(withMembership, definition);
453
+ const withSkipped = {
454
+ ...withMembership,
455
+ skipped_steps: propagated.skipped,
456
+ skip_details: propagated.details,
457
+ };
458
+ const isComplete = isWorkflowComplete(withSkipped, definition) ||
459
+ (withSkipped.in_progress_steps.length === 0 &&
460
+ findEligibleSteps(definition, withSkipped).length === 0 &&
461
+ findEligibleGuardSteps(definition, withSkipped).length === 0);
462
+ const draft = {
463
+ ...withSkipped,
464
+ terminal_state: isComplete,
465
+ // eligibility.ts:47 keys deriveRunPhase's 'completed' on this exact string.
466
+ ...(isComplete ? { terminal_reason: 'Workflow completed.' } : {}),
467
+ };
468
+ const { run, transitioned } = applyTerminalPostconditions(draft, definition, 'complete', isComplete);
469
+ return {
470
+ applied: true,
471
+ run,
472
+ transitioned,
473
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
474
+ };
475
+ }
476
+ // Superseded/unknown gateId on a live run.
477
+ return { applied: false, reason: 'gate_mismatch', run: fresh };
478
+ }
479
+ // ---------------------------------------------------------------------------
480
+ // §3 settleGuardArms (issue #279, increment 2, PR-C) — fence = ⊥ (guards are never claimed,
481
+ // eligibility.ts:418); writes NO settled entry (SE-4).
482
+ // ---------------------------------------------------------------------------
483
+ function ownMembershipFor(fresh, outcome) {
484
+ switch (outcome) {
485
+ case 'pass':
486
+ return fresh.completed_steps;
487
+ case 'resolution_error':
488
+ return fresh.failed_steps;
489
+ case 'abort':
490
+ return fresh.skipped_steps;
491
+ }
492
+ }
493
+ function applySettleGuard(fresh, delta, definition) {
494
+ const { step, outcome, evidence, resolutionError, abort } = delta;
495
+ if (outcome === 'resolution_error' && resolutionError === undefined) {
496
+ // Caller-programming-error, not a predicate outcome (the SettleStepDelta abort precedent).
497
+ throw new Error(`applySettlement contract violation: settle_guard delta for step '${step}' has ` +
498
+ `outcome:'resolution_error' but no 'resolutionError' payload`);
499
+ }
500
+ if (outcome === 'abort' && abort === undefined) {
501
+ throw new Error(`applySettlement contract violation: settle_guard delta for step '${step}' has ` +
502
+ `outcome:'abort' but no 'abort' payload`);
503
+ }
504
+ // A := {pass: completed_steps, resolution_error: failed_steps, abort: skipped_steps} (lens-1 F8).
505
+ if (ownMembershipFor(fresh, outcome).includes(step)) {
506
+ if (outcome === 'abort' && fresh.skip_details?.[step]?.kind !== 'guard_abort') {
507
+ // In skipped_steps, but NOT via a prior guard_abort (e.g. when_false/trigger_rule_
508
+ // unsatisfiable instead) — a genuine divergence, not this guard's own convergent retry.
509
+ return {
510
+ applied: false,
511
+ reason: 'settled_outcome_divergence',
512
+ run: fresh,
513
+ persisted: 'skip-non-abort',
514
+ };
515
+ }
516
+ // Convergence on own-APPLY coordinates (L21) — idempotent retry.
517
+ return { applied: false, reason: 'already_settled', run: fresh };
518
+ }
519
+ // Any OTHER membership array already containing this step is a genuine divergence — a
520
+ // different settle already committed a DIFFERENT outcome for the same guard.
521
+ if (fresh.completed_steps.includes(step)) {
522
+ return {
523
+ applied: false,
524
+ reason: 'settled_outcome_divergence',
525
+ run: fresh,
526
+ persisted: 'complete',
527
+ };
528
+ }
529
+ if (fresh.failed_steps.includes(step)) {
530
+ return { applied: false, reason: 'settled_outcome_divergence', run: fresh, persisted: 'fail' };
531
+ }
532
+ if (fresh.skipped_steps.includes(step)) {
533
+ return { applied: false, reason: 'settled_outcome_divergence', run: fresh, persisted: 'skip' };
534
+ }
535
+ if (isTerminal(fresh)) {
536
+ return { applied: false, reason: 'run_terminal', run: fresh }; // terminal by OTHER
537
+ }
538
+ if (fresh.pending_gate !== undefined && outcome !== 'pass') {
539
+ // D-2: the GATE WINS; quiet end-of-pass — the guard re-evaluates at the NEXT drive (N8).
540
+ return { applied: false, reason: 'gate_open_wait', run: fresh };
541
+ }
542
+ // APPLY GUARD.
543
+ if (outcome === 'resolution_error') {
544
+ const withFailed = {
545
+ ...fresh,
546
+ evidence: [...fresh.evidence, evidence],
547
+ failed_steps: [...fresh.failed_steps, step],
548
+ };
549
+ const propagated = propagateSkips(withFailed, definition);
550
+ const withSkipped = {
551
+ ...withFailed,
552
+ skipped_steps: propagated.skipped,
553
+ skip_details: propagated.details,
554
+ };
555
+ const draft = {
556
+ ...withSkipped,
557
+ terminal_state: true,
558
+ // execution-loop.ts:3671 parity.
559
+ terminal_reason: `Guard step '${step}' failed: unresolvable path '${resolutionError.unresolvable_path}'`,
560
+ };
561
+ const { run, transitioned } = applyTerminalPostconditions(draft, definition, 'fail', false);
562
+ return {
563
+ applied: true,
564
+ run,
565
+ transitioned,
566
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
567
+ };
568
+ }
569
+ if (outcome === 'abort') {
570
+ const withSkippedSelf = {
571
+ ...fresh,
572
+ evidence: [...fresh.evidence, evidence],
573
+ skipped_steps: [...fresh.skipped_steps, step],
574
+ };
575
+ const propagated = propagateSkips(withSkippedSelf, definition);
576
+ const withSkipped = {
577
+ ...withSkippedSelf,
578
+ skipped_steps: propagated.skipped,
579
+ // #111: the merge preserves any cascade details for OTHER now-unreachable steps alongside
580
+ // this guard's own guard_abort tag (execution-loop.ts:3728-3735 parity).
581
+ skip_details: { ...propagated.details, [step]: { kind: 'guard_abort' } },
582
+ };
583
+ const draft = {
584
+ ...withSkipped,
585
+ terminal_state: true,
586
+ // terminal_reason ABSENT — phase 'aborted' derives from aborted_at (§4 table).
587
+ aborted_at: {
588
+ step_id: step,
589
+ conditions: abort.conditions,
590
+ ...(abort.abort_message !== undefined ? { abort_message: abort.abort_message } : {}),
591
+ },
592
+ };
593
+ const { run, transitioned } = applyTerminalPostconditions(draft, definition, 'abort', false);
594
+ return {
595
+ applied: true,
596
+ run,
597
+ transitioned,
598
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
599
+ };
600
+ }
601
+ // pass: two-disjunct isComplete predicate (same shape as settleStepArms's own).
602
+ const withCompleted = {
603
+ ...fresh,
604
+ evidence: [...fresh.evidence, evidence],
605
+ completed_steps: [...fresh.completed_steps, step],
606
+ };
607
+ const propagated = propagateSkips(withCompleted, definition);
608
+ const withSkipped = {
609
+ ...withCompleted,
610
+ skipped_steps: propagated.skipped,
611
+ skip_details: propagated.details,
612
+ };
613
+ const isComplete = isWorkflowComplete(withSkipped, definition) ||
614
+ (withSkipped.in_progress_steps.length === 0 &&
615
+ findEligibleSteps(definition, withSkipped).length === 0 &&
616
+ findEligibleGuardSteps(definition, withSkipped).length === 0);
617
+ const draft = {
618
+ ...withSkipped,
619
+ terminal_state: isComplete,
620
+ // execution-loop.ts:3675-3705 parity; eligibility.ts:47 keys deriveRunPhase's 'completed' on
621
+ // this exact string.
622
+ ...(isComplete ? { terminal_reason: 'Workflow completed.' } : {}),
623
+ };
624
+ const { run, transitioned } = applyTerminalPostconditions(draft, definition, 'complete', isComplete);
625
+ return {
626
+ applied: true,
627
+ run,
628
+ transitioned,
629
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
630
+ };
631
+ }
632
+ // ---------------------------------------------------------------------------
633
+ // §3 releaseStepArms (issue #279, increment 2, PR-C) — fence = claimToken. NEVER terminal, writes
634
+ // NO settled entry — the step returns to eligible.
635
+ // ---------------------------------------------------------------------------
636
+ function applyReleaseStep(fresh, delta, now) {
637
+ const { step, claimToken, capabilityBlock, evidence } = delta;
638
+ if (entryOf(fresh, step) !== undefined) {
639
+ return { applied: false, reason: 'already_settled_by_other', run: fresh };
640
+ }
641
+ if (isTerminal(fresh)) {
642
+ return { applied: false, reason: 'run_terminal', run: fresh };
643
+ }
644
+ const claim = fresh.claims?.[step];
645
+ if (claim === undefined) {
646
+ // TD F10: the claim is already gone — the RELEASE intent already holds. Idempotent no-op.
647
+ return { applied: false, reason: 'already_released', run: fresh };
648
+ }
649
+ if (!tokensEqual(claim.token, claimToken)) {
650
+ // Never stomp a successor's claim (execution-loop.ts:660-671 parity).
651
+ return { applied: false, reason: 'claim_lost', run: fresh };
652
+ }
653
+ if (fresh.pending_gate?.step_name === step) {
654
+ // reclaim-step.ts:389 parity — a claim pinned by an open gate is never released this way.
655
+ return { applied: false, reason: 'gate_mismatch', run: fresh };
656
+ }
657
+ // APPLY RELEASE: release claim + in_progress; optional capability_blocks merge
658
+ // (execution-loop.ts:2461-2475 semantics); optional evidence append (execution-loop.ts:679
659
+ // semantics — the compensating un-claim's own audit snapshot). NEVER terminal, NO settled entry.
660
+ const withRelease = {
661
+ ...fresh,
662
+ in_progress_steps: fresh.in_progress_steps.filter((s) => s !== step),
663
+ claims: omitClaim(fresh.claims, step),
664
+ ...(capabilityBlock !== undefined
665
+ ? {
666
+ capability_blocks: {
667
+ ...fresh.capability_blocks,
668
+ [step]: {
669
+ requirement: capabilityBlock.requirement,
670
+ code: capabilityBlock.code,
671
+ at: now.toISOString(),
672
+ },
673
+ },
674
+ }
675
+ : {}),
676
+ ...(evidence !== undefined ? { evidence: [...fresh.evidence, ...evidence] } : {}),
677
+ };
678
+ const run = { ...withRelease, run_phase: deriveRunPhase(withRelease) };
287
679
  return {
288
680
  applied: true,
289
- run: withPhase,
290
- transitioned: isComplete,
291
- pendingFinalizers: pendingFinalizerNames(withPhase.finalizer_ledger),
681
+ run,
682
+ transitioned: false,
683
+ pendingFinalizers: pendingFinalizerNames(run.finalizer_ledger),
292
684
  };
293
685
  }
294
686
  // ---------------------------------------------------------------------------
@@ -409,6 +801,25 @@ export function applySettlement(fresh, delta, definition, options) {
409
801
  return applyLeaseFinalizer(fresh, delta, now);
410
802
  case 'mark_finalizer':
411
803
  return applyMarkFinalizer(fresh, delta);
804
+ case 'open_gate':
805
+ return applyOpenGate(fresh, delta);
806
+ case 'settle_gate':
807
+ return applySettleGate(fresh, delta, definition);
808
+ case 'settle_guard':
809
+ return applySettleGuard(fresh, delta, definition);
810
+ case 'release_step':
811
+ return applyReleaseStep(fresh, delta, now);
412
812
  }
413
813
  }
814
+ /**
815
+ * Named constant (issue #279, increment 2, PR-C; design record §4.3) tying reclaim-step.ts's own
816
+ * open-gate refusal (`reclaimStep`, ~line 389: "the claim is legitimately pinned by a human gate")
817
+ * to this design's "unfenced-release soundness rests on reclaim" premise: `settle_step` abort's
818
+ * cancel-gate write (`applyAbortEdge`, above) is the ONLY path that may release an open gate's
819
+ * claim; `reclaimStep`/`isAutoReclaimable` must NEVER also release it, or the two paths could race
820
+ * and double-release the same claim. Referenced (not asserted via) by this invariant's two
821
+ * existing pinning tests (`reclaim-step.test.ts` + the CLI's `reclaim.test.ts`) so a future reader
822
+ * can grep this name to find both, and reclaim-step.ts's own SOURCE stays untouched by this PR.
823
+ */
824
+ export const RECLAIM_REFUSES_GATE_STEP = 'reclaim never releases the open-gate claim (design record design-d5-increment2.md §4.3, unfenced-release soundness)';
414
825
  //# sourceMappingURL=settlement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../../src/engine/settlement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../../src/engine/settlement.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export { findEligibleSteps, isWorkflowComplete, deriveRunPhase, buildEvidenceByS
28
28
  export { adoptsLine, partitionBufferedEntries } from './engine/trace-adoption.js';
29
29
  export type { BufferedEntryPartition } from './engine/trace-adoption.js';
30
30
  export { deriveDefaultedSteps } from './engine/defaulted-steps.js';
31
- export { applySettlement, selectFinalizers } from './engine/settlement.js';
31
+ export { applySettlement, selectFinalizers, RECLAIM_REFUSES_GATE_STEP, } from './engine/settlement.js';
32
32
  export { applyResume } from './engine/apply-resume.js';
33
33
  export type { ApplyResumeResult, ApplyResumeVoidedFinalizer } from './engine/apply-resume.js';
34
34
  export { drainFinalizers } from './engine/execution-loop.js';
@@ -45,7 +45,7 @@ export type { Requirement, CapabilityBlockInfo } from './engine/capability.js';
45
45
  export { evaluatePrecondition, checkPreconditions, evaluateAllPreconditions, } from './engine/precondition.js';
46
46
  export type { PreconditionResult } from './engine/precondition.js';
47
47
  export type { StepDiagnostics } from './types/run-record.js';
48
- export declare const VERSION = "0.32.0";
48
+ export declare const VERSION = "0.33.0";
49
49
  export type { ToolCallRecord, McpServerConfig } from './types/mcp-types.js';
50
50
  export type { ServiceAdapter, ServiceResponse } from './extensions/service-adapter.js';
51
51
  export type { StepHandler, StepHandlerInputs, StepContext, StepHandlerResult, } from './extensions/step-handler.js';