@sensigo/realm 0.31.2 → 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 (51) 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 +43 -0
  5. package/dist/engine/apply-resume.d.ts.map +1 -0
  6. package/dist/engine/apply-resume.js +80 -0
  7. package/dist/engine/apply-resume.js.map +1 -0
  8. package/dist/engine/defaulted-steps.d.ts +17 -0
  9. package/dist/engine/defaulted-steps.d.ts.map +1 -0
  10. package/dist/engine/defaulted-steps.js +26 -0
  11. package/dist/engine/defaulted-steps.js.map +1 -0
  12. package/dist/engine/eligibility.d.ts +20 -2
  13. package/dist/engine/eligibility.d.ts.map +1 -1
  14. package/dist/engine/eligibility.js +46 -24
  15. package/dist/engine/eligibility.js.map +1 -1
  16. package/dist/engine/execution-loop.d.ts +38 -3
  17. package/dist/engine/execution-loop.d.ts.map +1 -1
  18. package/dist/engine/execution-loop.js +1500 -112
  19. package/dist/engine/execution-loop.js.map +1 -1
  20. package/dist/engine/lifecycle.d.ts +14 -0
  21. package/dist/engine/lifecycle.d.ts.map +1 -1
  22. package/dist/engine/lifecycle.js +14 -0
  23. package/dist/engine/lifecycle.js.map +1 -1
  24. package/dist/engine/run-health.d.ts +1 -1
  25. package/dist/engine/run-health.d.ts.map +1 -1
  26. package/dist/engine/run-health.js +88 -4
  27. package/dist/engine/run-health.js.map +1 -1
  28. package/dist/engine/settlement.d.ts +38 -0
  29. package/dist/engine/settlement.d.ts.map +1 -0
  30. package/dist/engine/settlement.js +825 -0
  31. package/dist/engine/settlement.js.map +1 -0
  32. package/dist/index.d.ts +8 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +11 -2
  35. package/dist/index.js.map +1 -1
  36. package/dist/store/json-file-store.d.ts +56 -3
  37. package/dist/store/json-file-store.d.ts.map +1 -1
  38. package/dist/store/json-file-store.js +178 -22
  39. package/dist/store/json-file-store.js.map +1 -1
  40. package/dist/store/store-interface.d.ts +50 -1
  41. package/dist/store/store-interface.d.ts.map +1 -1
  42. package/dist/types/run-record.d.ts +90 -0
  43. package/dist/types/run-record.d.ts.map +1 -1
  44. package/dist/types/settlement.d.ts +248 -0
  45. package/dist/types/settlement.d.ts.map +1 -0
  46. package/dist/types/settlement.js +2 -0
  47. package/dist/types/settlement.js.map +1 -0
  48. package/dist/types/workflow-error.d.ts +1 -1
  49. package/dist/types/workflow-error.d.ts.map +1 -1
  50. package/dist/types/workflow-error.js.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"abandon-run.d.ts","sourceRoot":"","sources":["../../src/engine/abandon-run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAuDpB"}
1
+ {"version":3,"file":"abandon-run.d.ts","sourceRoot":"","sources":["../../src/engine/abandon-run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8DpB"}
@@ -1,4 +1,5 @@
1
1
  import { WorkflowError } from '../types/workflow-error.js';
2
+ import { deriveRunPhase } from './eligibility.js';
2
3
  /**
3
4
  * Explicitly abandon a run by stamping the authoritative `abandoned_at` marker. The run's phase
4
5
  * derives to `abandoned` (via {@link deriveRunPhase}) regardless of `failed_steps`/`terminal_reason`.
@@ -21,20 +22,27 @@ export async function abandonRun(store, runId, reason) {
21
22
  if (run.abandoned_at !== undefined) {
22
23
  return run;
23
24
  }
24
- // Gate abandonment is deliberately out of scope.
25
- if (run.run_phase === 'gate_waiting' || run.pending_gate !== undefined) {
26
- throw new WorkflowError(`Run '${runId}' is waiting on a human gate; resolve or reject the gate via submit_human_response before abandoning.`, {
27
- code: 'STATE_TRANSITION_DENIED',
25
+ // issue #279 (increment 2, PR-C — D-3 leg v): the terminal arm is HOISTED ABOVE the gate arm —
26
+ // a terminal run carrying a leftover/stale pending_gate (the #282 class) must report "already
27
+ // terminal" here, not "waiting on a human gate" (a grandfathered record can be terminal AND
28
+ // still carry a stale pending_gate; only a genuinely LIVE gate should ever reach the gate arm
29
+ // below). Do not clobber a finished run.
30
+ if (run.terminal_state) {
31
+ // Derive-for-message: render the TRUE (derived) phase, never the possibly-stale persisted one.
32
+ const derivedPhase = deriveRunPhase(run);
33
+ throw new WorkflowError(`Run '${runId}' is already terminal (${derivedPhase}); cannot abandon a finished run.`, {
34
+ code: 'STATE_RUN_TERMINAL',
28
35
  category: 'STATE',
29
36
  agentAction: 'report_to_user',
30
37
  retryable: false,
31
- details: { runId, run_phase: run.run_phase },
38
+ details: { runId, run_phase: derivedPhase, persisted_run_phase: run.run_phase },
32
39
  });
33
40
  }
34
- // Do not clobber a finished run.
35
- if (run.terminal_state) {
36
- throw new WorkflowError(`Run '${runId}' is already terminal (${run.run_phase}); cannot abandon a finished run.`, {
37
- code: 'STATE_RUN_TERMINAL',
41
+ // Gate abandonment is deliberately out of scope — reached only for a genuinely LIVE gate now
42
+ // (the terminal check above already caught a stale/grandfathered one).
43
+ if (run.run_phase === 'gate_waiting' || run.pending_gate !== undefined) {
44
+ throw new WorkflowError(`Run '${runId}' is waiting on a human gate; resolve or reject the gate via submit_human_response before abandoning.`, {
45
+ code: 'STATE_TRANSITION_DENIED',
38
46
  category: 'STATE',
39
47
  agentAction: 'report_to_user',
40
48
  retryable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"abandon-run.js","sourceRoot":"","sources":["../../src/engine/abandon-run.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAe,EACf,KAAa,EACb,MAAe;IAEf,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnC,wCAAwC;IACxC,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iDAAiD;IACjD,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,aAAa,CACrB,QAAQ,KAAK,uGAAuG,EACpH;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SAC7C,CACF,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,IAAI,aAAa,CACrB,QAAQ,KAAK,0BAA0B,GAAG,CAAC,SAAS,mCAAmC,EACvF;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SAC7C,CACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,IAAI,2BAA2B,CAAC;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC;YACxB,GAAG,GAAG;YACN,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,eAAe;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC3E,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,QAAQ,CAAC,CAAC,8DAA8D;YACjF,CAAC;YACD,MAAM,GAAG,CAAC,CAAC,+DAA+D;QAC5E,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"abandon-run.js","sourceRoot":"","sources":["../../src/engine/abandon-run.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAe,EACf,KAAa,EACb,MAAe;IAEf,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnC,wCAAwC;IACxC,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,+FAA+F;IAC/F,8FAA8F;IAC9F,4FAA4F;IAC5F,8FAA8F;IAC9F,yCAAyC;IACzC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,+FAA+F;QAC/F,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,aAAa,CACrB,QAAQ,KAAK,0BAA0B,YAAY,mCAAmC,EACtF;YACE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,CAAC,SAAS,EAAE;SAChF,CACF,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,uEAAuE;IACvE,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,aAAa,CACrB,QAAQ,KAAK,uGAAuG,EACpH;YACE,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SAC7C,CACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,IAAI,2BAA2B,CAAC;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC;YACxB,GAAG,GAAG;YACN,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,eAAe;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC3E,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,QAAQ,CAAC,CAAC,8DAA8D;YACjF,CAAC;YACD,MAAM,GAAG,CAAC,CAAC,+DAA+D;QAC5E,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { RunRecord } from '../types/run-record.js';
2
+ import type { WorkflowDefinition } from '../types/workflow-definition.js';
3
+ /** One finalizer voided by a resume, with its lease-discriminated disclosure message (design
4
+ * record §5: "never executed, superseded by resume" vs "may have executed without a recorded
5
+ * mark — may re-execute at the next terminal edge"). */
6
+ export interface ApplyResumeVoidedFinalizer {
7
+ name: string;
8
+ disclosure: string;
9
+ }
10
+ export interface ApplyResumeResult {
11
+ /** The fully-mutated record — pass directly to `store.update()` for the atomic write. */
12
+ run: RunRecord;
13
+ /** Every pending finalizer ledger entry this resume voided, in `Object.entries` order. Empty
14
+ * when the run carried no pending finalizers (the common case). */
15
+ voided: ApplyResumeVoidedFinalizer[];
16
+ /** Issue #279 (increment 2, PR-C — the #282 class closure, D-3 leg ii): one disclosure line per
17
+ * carried `pending_gate` this resume stripped — a grandfathered/zombie gate on a run that
18
+ * somehow reached `RESUMABLE_PHASES` (`failed`/`abandoned`) while still carrying a leftover
19
+ * `pending_gate` (the #282 class). Empty (never populated) on the overwhelming common case — a
20
+ * genuinely resumable run has no gate open at all. Printed by the CLI through the same `⚠` loop
21
+ * the voided-finalizer disclosures already use, AFTER them.
22
+ */
23
+ disclosures: string[];
24
+ }
25
+ /**
26
+ * Resumes `stepName` (design record §5) — filters it out of `failed_steps`, wipes and re-derives
27
+ * `skipped_steps`/`skip_details` from scratch (NOTE — final-gate F9 cross-reference: this
28
+ * wipe+re-derive relies on the premise that handler/guard-abort runs are never resumable; the
29
+ * CLI's own `aborted_at` refusal, run BEFORE this function, is what makes that premise
30
+ * STRUCTURALLY true rather than merely conventional), resets `terminal_state:false`, strips
31
+ * `terminal_reason` AND `abandoned_at` (issue #281 — the load-bearing fix for the `aborted_at`
32
+ * mask: leaving a stale `abandoned_at` on a resumed-and-re-terminalized run would let a future
33
+ * PR-A-vintage `isTerminal` reader mis-read it as abandoned again), projects `settled` down to
34
+ * still-live membership (L17: `settled′ = {s ∈ settled | s ∈ completed′∪failed′∪skipped′}`), VOIDS
35
+ * every pending finalizer ledger entry (leases dropped, each disclosed), strips a carried
36
+ * `pending_gate` (issue #279, increment 2, PR-C — D-3 leg ii: the #282 class closure's resume-side
37
+ * leg, disclosed when it fires), and releases every remaining claim unconditionally.
38
+ *
39
+ * Pure — no I/O, no `Date.now()`/randomness. Returns the mutated record; the caller performs the
40
+ * single atomic `store.update()`.
41
+ */
42
+ export declare function applyResume(snapshot: RunRecord, stepName: string, definition: WorkflowDefinition): ApplyResumeResult;
43
+ //# sourceMappingURL=apply-resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-resume.d.ts","sourceRoot":"","sources":["../../src/engine/apply-resume.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E;;yDAEyD;AACzD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,GAAG,EAAE,SAAS,CAAC;IACf;wEACoE;IACpE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,kBAAkB,GAC7B,iBAAiB,CAuEnB"}
@@ -0,0 +1,80 @@
1
+ import { propagateSkips } from './eligibility.js';
2
+ /**
3
+ * Resumes `stepName` (design record §5) — filters it out of `failed_steps`, wipes and re-derives
4
+ * `skipped_steps`/`skip_details` from scratch (NOTE — final-gate F9 cross-reference: this
5
+ * wipe+re-derive relies on the premise that handler/guard-abort runs are never resumable; the
6
+ * CLI's own `aborted_at` refusal, run BEFORE this function, is what makes that premise
7
+ * STRUCTURALLY true rather than merely conventional), resets `terminal_state:false`, strips
8
+ * `terminal_reason` AND `abandoned_at` (issue #281 — the load-bearing fix for the `aborted_at`
9
+ * mask: leaving a stale `abandoned_at` on a resumed-and-re-terminalized run would let a future
10
+ * PR-A-vintage `isTerminal` reader mis-read it as abandoned again), projects `settled` down to
11
+ * still-live membership (L17: `settled′ = {s ∈ settled | s ∈ completed′∪failed′∪skipped′}`), VOIDS
12
+ * every pending finalizer ledger entry (leases dropped, each disclosed), strips a carried
13
+ * `pending_gate` (issue #279, increment 2, PR-C — D-3 leg ii: the #282 class closure's resume-side
14
+ * leg, disclosed when it fires), and releases every remaining claim unconditionally.
15
+ *
16
+ * Pure — no I/O, no `Date.now()`/randomness. Returns the mutated record; the caller performs the
17
+ * single atomic `store.update()`.
18
+ */
19
+ export function applyResume(snapshot, stepName, definition) {
20
+ const failedSteps = snapshot.failed_steps.filter((s) => s !== stepName);
21
+ const { skipped: skippedSteps, details: skipDetails } = propagateSkips({
22
+ ...snapshot,
23
+ failed_steps: failedSteps,
24
+ skipped_steps: [],
25
+ skip_details: {},
26
+ }, definition);
27
+ // settled L17 PROJECTION.
28
+ const liveMembership = new Set([...snapshot.completed_steps, ...failedSteps, ...skippedSteps]);
29
+ const settled = snapshot.settled !== undefined
30
+ ? Object.fromEntries(Object.entries(snapshot.settled).filter(([s]) => liveMembership.has(s)))
31
+ : undefined;
32
+ // VOID every pending finalizer ledger entry, loudly, with lease discrimination.
33
+ const voided = [];
34
+ let finalizerLedger = snapshot.finalizer_ledger;
35
+ if (finalizerLedger !== undefined) {
36
+ const nextLedger = {};
37
+ for (const [name, entry] of Object.entries(finalizerLedger)) {
38
+ if (entry.status !== 'pending') {
39
+ nextLedger[name] = entry;
40
+ continue;
41
+ }
42
+ const neverLeased = entry.lease_token === undefined;
43
+ nextLedger[name] = { status: 'voided', rank: entry.rank };
44
+ voided.push({
45
+ name,
46
+ disclosure: neverLeased
47
+ ? `finalizer '${name}' voided by resume — never executed, superseded by resume`
48
+ : `finalizer '${name}' voided by resume — may have executed without a recorded mark; ` +
49
+ `may re-execute at the next terminal edge`,
50
+ });
51
+ }
52
+ finalizerLedger = nextLedger;
53
+ }
54
+ // Issue #279 (increment 2, PR-C — D-3 leg ii): strip a carried `pending_gate` in the SAME
55
+ // atomic payload — the #282 class closure's own resume-side leg. A genuinely resumable run
56
+ // (RESUMABLE_PHASES: failed/abandoned) never legitimately has a LIVE open gate (the CLI's own
57
+ // aborted_at/lease/claim refusals run before this, but none of them check pending_gate — a
58
+ // grandfathered/mixed-fleet record could still carry one), so this is defensive: it can never
59
+ // silently strip a live decision out from under a human, only a stale, zombie one.
60
+ const disclosures = [];
61
+ const { terminal_reason: _tr, abandoned_at: _aa, pending_gate: strippedGate, ...rest } = snapshot;
62
+ if (strippedGate !== undefined) {
63
+ disclosures.push(`zombie gate '${strippedGate.gate_id}' on '${strippedGate.step_name}' cleared by resume — step will re-drive`);
64
+ }
65
+ // Strip terminal_reason + abandoned_at (issue #281); release ALL remaining claims
66
+ // unconditionally (the CLI refusals guarantee none are healthy by the time this runs).
67
+ const run = {
68
+ ...rest,
69
+ failed_steps: failedSteps,
70
+ skipped_steps: skippedSteps,
71
+ skip_details: skipDetails,
72
+ terminal_state: false,
73
+ in_progress_steps: [],
74
+ claims: {},
75
+ ...(settled !== undefined ? { settled } : {}),
76
+ ...(finalizerLedger !== undefined ? { finalizer_ledger: finalizerLedger } : {}),
77
+ };
78
+ return { run, voided, disclosures };
79
+ }
80
+ //# sourceMappingURL=apply-resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-resume.js","sourceRoot":"","sources":["../../src/engine/apply-resume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { RunRecord } from '../types/run-record.js';
2
+ /**
3
+ * Scans `evidence` for entries stamped `diagnostics.settled_by_default === true` and returns their
4
+ * distinct `step_id`s, deduped in first-occurrence (declaration) order — identical to
5
+ * `stampDefaultedSteps`'s own loop, now shared. Pure, no I/O, and safe to call on ANY evidence
6
+ * array regardless of the run's terminal state or how it sealed (complete/failed/aborted/still
7
+ * running) — the derivation itself carries no seal-outcome assumption; callers decide what to do
8
+ * with an empty result (e.g. `stampDefaultedSteps` still applies it ONLY at the `'complete'` seal;
9
+ * the read surfaces call it unconditionally and simply omit the field when empty).
10
+ *
11
+ * `gate_response` evidence snapshots carry no `diagnostics.settled_by_default` (that diagnostic is
12
+ * only ever stamped on the ONE synthesized SUCCESS execution snapshot a declared default-settle
13
+ * mints — see `StepDiagnostics.settled_by_default`'s own doc) — no special-casing needed here
14
+ * beyond reusing the same `=== true` predicate every other consumer of this diagnostic uses.
15
+ */
16
+ export declare function deriveDefaultedSteps(evidence: RunRecord['evidence']): string[];
17
+ //# sourceMappingURL=defaulted-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaulted-steps.d.ts","sourceRoot":"","sources":["../../src/engine/defaulted-steps.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAU9E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Scans `evidence` for entries stamped `diagnostics.settled_by_default === true` and returns their
3
+ * distinct `step_id`s, deduped in first-occurrence (declaration) order — identical to
4
+ * `stampDefaultedSteps`'s own loop, now shared. Pure, no I/O, and safe to call on ANY evidence
5
+ * array regardless of the run's terminal state or how it sealed (complete/failed/aborted/still
6
+ * running) — the derivation itself carries no seal-outcome assumption; callers decide what to do
7
+ * with an empty result (e.g. `stampDefaultedSteps` still applies it ONLY at the `'complete'` seal;
8
+ * the read surfaces call it unconditionally and simply omit the field when empty).
9
+ *
10
+ * `gate_response` evidence snapshots carry no `diagnostics.settled_by_default` (that diagnostic is
11
+ * only ever stamped on the ONE synthesized SUCCESS execution snapshot a declared default-settle
12
+ * mints — see `StepDiagnostics.settled_by_default`'s own doc) — no special-casing needed here
13
+ * beyond reusing the same `=== true` predicate every other consumer of this diagnostic uses.
14
+ */
15
+ export function deriveDefaultedSteps(evidence) {
16
+ const steps = [];
17
+ const seen = new Set();
18
+ for (const snap of evidence) {
19
+ if (snap.diagnostics?.settled_by_default === true && !seen.has(snap.step_id)) {
20
+ seen.add(snap.step_id);
21
+ steps.push(snap.step_id);
22
+ }
23
+ }
24
+ return steps;
25
+ }
26
+ //# sourceMappingURL=defaulted-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaulted-steps.js","sourceRoot":"","sources":["../../src/engine/defaulted-steps.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA+B;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,kBAAkB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -2,8 +2,26 @@ import type { WorkflowDefinition, StepDefinition } from '../types/workflow-defin
2
2
  import type { RunRecord, SkipDetail } from '../types/run-record.js';
3
3
  import type { RunPhase } from '../types/run-record.js';
4
4
  /**
5
- * Derives the run_phase from the run record fields.
6
- * Called after every store write to keep run_phase consistent.
5
+ * Derives the run_phase from the run record fields. Called after every store write to keep
6
+ * run_phase consistent this function's return value is ALWAYS what gets persisted (issue #279,
7
+ * increment 2, PR-C — the PHASE_IS_GENERATED law): callers must never persist a raw/stale
8
+ * `run_phase` value, and every reader that needs the true phase should prefer this derivation over
9
+ * a possibly-stale persisted field (design record `design-d5-increment2.md` §5 D-3's disposal
10
+ * rule: "control flow keys on `terminal_state`, the terminal marker fields, or DERIVED phase —
11
+ * never on persisted `run_phase`; persisted `run_phase` is render-only, and rendered only after
12
+ * derivation").
13
+ *
14
+ * Issue #279 (increment 2, PR-C — the #282 class closure, D-3 leg i): the WHOLE terminal cluster
15
+ * (abandoned_at → aborted_at → terminal_state's own completed/failed/abandoned split) is now
16
+ * checked ABOVE `pending_gate` — reordered from a prior shape that checked `pending_gate` SECOND,
17
+ * right after `abandoned_at`, before `terminal_state` was ever consulted. That prior order let a
18
+ * TERMINAL run that still carries a leftover/grandfathered `pending_gate` (the #282 class: any
19
+ * write path that terminalizes a run without also clearing `pending_gate` — a legacy/pre-#279
20
+ * writer, or a mixed-fleet reintroduction) derive as `'gate_waiting'` forever, even though the run
21
+ * had already reached a real terminal outcome. The fix is a pure reordering — every non-#282
22
+ * record (a genuinely non-terminal run with a live open gate, or a terminal run that legitimately
23
+ * never had a gate) derives IDENTICALLY either way; only the one previously-mis-derived class
24
+ * changes, and it changes to the CORRECT phase.
7
25
  */
8
26
  export declare function deriveRunPhase(run: Pick<RunRecord, 'pending_gate' | 'terminal_state' | 'failed_steps' | 'terminal_reason' | 'aborted_at' | 'abandoned_at'>): RunPhase;
9
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../src/engine/eligibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAEf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,CACP,SAAS,EACP,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,cAAc,CACjB,GACA,QAAQ,CAsBV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CA0ClF;AAgDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,OAAO,CA+CT;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,OAAO,CAGT;AAoDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwB3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,GACb,MAAM,CAAC,MAAM,EAAE;IAAE,kBAAkB,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO/E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CAiC1F;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CA6B/F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAe1F;AAkHD,sGAAsG;AACtG,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mGAAmG;IACnG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,kBAAkB,GAC7B,oBAAoB,CAgEtB"}
1
+ {"version":3,"file":"eligibility.d.ts","sourceRoot":"","sources":["../../src/engine/eligibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAEf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,CACP,SAAS,EACP,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,cAAc,CACjB,GACA,QAAQ,CA2BV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CA0ClF;AAgDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,OAAO,CA+CT;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,OAAO,CAGT;AAoDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwB3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,GACb,MAAM,CAAC,MAAM,EAAE;IAAE,kBAAkB,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO/E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CAiC1F;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CA6B/F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAe1F;AAkHD,sGAAsG;AACtG,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mGAAmG;IACnG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,kBAAkB,GAC7B,oBAAoB,CAgEtB"}
@@ -2,37 +2,59 @@ import { resolvePath } from './render-template.js';
2
2
  import { splitComparison } from './comparison-expr.js';
3
3
  import { boundResolvedValue } from '../utils/redaction.js';
4
4
  /**
5
- * Derives the run_phase from the run record fields.
6
- * Called after every store write to keep run_phase consistent.
5
+ * Derives the run_phase from the run record fields. Called after every store write to keep
6
+ * run_phase consistent this function's return value is ALWAYS what gets persisted (issue #279,
7
+ * increment 2, PR-C — the PHASE_IS_GENERATED law): callers must never persist a raw/stale
8
+ * `run_phase` value, and every reader that needs the true phase should prefer this derivation over
9
+ * a possibly-stale persisted field (design record `design-d5-increment2.md` §5 D-3's disposal
10
+ * rule: "control flow keys on `terminal_state`, the terminal marker fields, or DERIVED phase —
11
+ * never on persisted `run_phase`; persisted `run_phase` is render-only, and rendered only after
12
+ * derivation").
13
+ *
14
+ * Issue #279 (increment 2, PR-C — the #282 class closure, D-3 leg i): the WHOLE terminal cluster
15
+ * (abandoned_at → aborted_at → terminal_state's own completed/failed/abandoned split) is now
16
+ * checked ABOVE `pending_gate` — reordered from a prior shape that checked `pending_gate` SECOND,
17
+ * right after `abandoned_at`, before `terminal_state` was ever consulted. That prior order let a
18
+ * TERMINAL run that still carries a leftover/grandfathered `pending_gate` (the #282 class: any
19
+ * write path that terminalizes a run without also clearing `pending_gate` — a legacy/pre-#279
20
+ * writer, or a mixed-fleet reintroduction) derive as `'gate_waiting'` forever, even though the run
21
+ * had already reached a real terminal outcome. The fix is a pure reordering — every non-#282
22
+ * record (a genuinely non-terminal run with a live open gate, or a terminal run that legitimately
23
+ * never had a gate) derives IDENTICALLY either way; only the one previously-mis-derived class
24
+ * changes, and it changes to the CORRECT phase.
7
25
  */
8
26
  export function deriveRunPhase(run) {
9
27
  // abandoned_at is authoritative — explicit operator/cleanup abandonment wins over any field
10
- // (failed_steps, pending_gate, terminal_reason). It is only ever set on a running run
11
- // (gate_waiting abandonment is refused by abandonRun), so it never co-occurs with pending_gate
12
- // in practice; top placement is future-proof and mirrors the aborted_at promotion rationale below.
28
+ // (failed_steps, pending_gate, terminal_reason, and now checked before the whole terminal
29
+ // cluster below too). It is only ever set on a running run (gate_waiting abandonment is refused
30
+ // by abandonRun), so it never co-occurs with pending_gate in practice; top placement is
31
+ // future-proof and mirrors the aborted_at promotion rationale below.
13
32
  if (run.abandoned_at !== undefined)
14
33
  return 'abandoned';
15
- if (run.pending_gate !== undefined)
16
- return 'gate_waiting';
17
- // aborted_at is authoritative and is checked before both !terminal_state and the
18
- // 'Workflow completed.' check. The only records that carry aborted_at are guard/handler-aborted
19
- // runs (always written terminal_state:true); legitimately resumable runs (failed/abandoned) never
20
- // carry it. Promoting this branch means an aborted run can never revert to 'running' if a
21
- // write-path recomputes terminal_state while the record still carries aborted_at, and a stale
22
- // success reason can never mask an abort — while every normal derivation is unchanged.
34
+ // aborted_at is authoritative and is checked before pending_gate AND before the terminal_state
35
+ // split below. The only records that carry aborted_at are guard/handler-aborted runs (always
36
+ // written terminal_state:true); legitimately resumable runs (failed/abandoned) never carry it,
37
+ // and an aborted run's cancel-gate write (design record §3 applyAbortEdge) clears any OTHER
38
+ // step's pending_gate in the same write but a grandfathered/legacy record could still carry
39
+ // both, and aborted_at must win regardless.
23
40
  if (run.aborted_at !== undefined)
24
41
  return 'aborted';
25
- if (!run.terminal_state)
26
- return 'running';
27
- // A terminal run that completed successfully sets terminal_reason to 'Workflow completed.'.
28
- // Recovery workflows end with failed_steps non-empty but are still considered completed
29
- // when the final recovery step succeeds, so terminal_reason takes precedence over failed_steps.
30
- if (run.terminal_reason === 'Workflow completed.')
31
- return 'completed';
32
- if (run.failed_steps.length > 0)
33
- return 'failed';
34
- // terminal_state is true but the run neither completed normally nor failed — it was abandoned.
35
- return 'abandoned';
42
+ if (run.terminal_state) {
43
+ // A terminal run that completed successfully sets terminal_reason to 'Workflow completed.'.
44
+ // Recovery workflows end with failed_steps non-empty but are still considered completed
45
+ // when the final recovery step succeeds, so terminal_reason takes precedence over failed_steps.
46
+ if (run.terminal_reason === 'Workflow completed.')
47
+ return 'completed';
48
+ if (run.failed_steps.length > 0)
49
+ return 'failed';
50
+ // terminal_state is true but the run neither completed normally nor failed — it was abandoned.
51
+ return 'abandoned';
52
+ }
53
+ // Only a genuinely NON-terminal run can still be gate_waiting — the #282 fix: a terminal run
54
+ // carrying a leftover pending_gate NEVER reaches this branch anymore.
55
+ if (run.pending_gate !== undefined)
56
+ return 'gate_waiting';
57
+ return 'running';
36
58
  }
37
59
  /**
38
60
  * Evaluates whether a step's trigger_rule is satisfied given the current run state.
@@ -1 +1 @@
1
- {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/engine/eligibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/engine/eligibility.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,13 @@ export interface SubmitGateOptions {
63
63
  * gates on workflows with finalizers should thread their run registry here.
64
64
  */
65
65
  registry?: ExtensionRegistry;
66
+ /**
67
+ * Issue #279 (increment 2, PR-D; design record D-5): unenforced attribution passthrough — flows
68
+ * into the `SettleGateDelta.respondedBy` field AND the gate_response evidence snapshot's own
69
+ * `responded_by` field when supplied. RECORDED, not enforced (the bearer-gateId-as-sole-
70
+ * credential model stays authoritative); no arm ever reads it.
71
+ */
72
+ respondedBy?: string;
66
73
  }
67
74
  export interface ExecuteChainOptions {
68
75
  runId: string;
@@ -113,11 +120,39 @@ export declare function buildPreExecutionErrorEnvelope(command: string, runId: s
113
120
  * a ResponseEnvelope containing the outcome and the next eligible actions.
114
121
  */
115
122
  export declare function executeStep(store: RunStore, definition: WorkflowDefinition, options: ExecuteStepOptions): Promise<ResponseEnvelope>;
123
+ export declare function submitHumanResponse(store: RunStore, definition: WorkflowDefinition, options: SubmitGateOptions): Promise<ResponseEnvelope>;
116
124
  /**
117
- * Submits a human response for a gate-waiting run.
118
- * Validates the gate_id and choice, then moves the step to completed_steps.
125
+ * Post-commit finalizer drain (design record §6, D2, issue #279 increment 1 PR-B). Drains the
126
+ * LOWEST-ranked pending finalizer, re-reading the record returned by the LAST settle/lease/mark at
127
+ * every step — NEVER a pass-start snapshot (the DRAIN_REREADS_LEDGER pin: a snapshot taken once at
128
+ * the top of this function would go stale the instant the first lease/mark commits, silently
129
+ * reintroducing exactly the kind of pre-commit assumption #279 exists to eliminate).
130
+ *
131
+ * Lives here (not in settlement.ts) so the module-private `withTimeout`/`callHandler` — already
132
+ * proven by `buildFinalizedSeal` above — are reused without exporting them; `settlement.ts` stays
133
+ * pure/no-I/O (design record §7 CS-purity).
134
+ *
135
+ * Registry pre-check: an absent handler leaves the entry pending and discloses why, rather than
136
+ * burning it (leasing it, failing the call, and marking it 'failed' would destroy the "recoverable
137
+ * on a capable runner" property a still-pending entry carries). Rank-monotonic: a pass HALTS at the
138
+ * first entry it cannot lease/execute, so a lower-ranked absent-handler or held-lease entry
139
+ * withholds every higher-ranked (later) finalizer behind it (R11) — this is deliberate: rank order
140
+ * is a DELIVERY order guarantee, not just a preference.
141
+ *
142
+ * `not_eligible` at lease OR mark time is a contract violation (an unknown finalizer id — mintFresh
143
+ * only ever mints real workflow finalizer names) and aborts the pass LOUD (throws), distinct from
144
+ * `ledger_not_pending` at lease time, which ADVANCES (someone else already resolved it). A
145
+ * non-BUSY infra throw from `mark_finalizer` also aborts loud, with the remaining-pending list in
146
+ * the message. The executed-but-not-recorded warning (three reasons: `lease_lost`,
147
+ * `ledger_not_pending`-AFTER-execution, `run_not_terminal`) halts the pass rather than continuing —
148
+ * each of those three reasons refuses the mark WITHOUT mutating the ledger entry's `'pending'`
149
+ * status, so continuing would re-select the SAME entry next iteration (an infinite loop); halting
150
+ * is the only forward-progress-safe response until an operator or a later terminal edge resolves it.
119
151
  */
120
- export declare function submitHumanResponse(store: RunStore, definition: WorkflowDefinition, options: SubmitGateOptions): Promise<ResponseEnvelope>;
152
+ export declare function drainFinalizers(store: RunStore, definition: WorkflowDefinition, registry: ExtensionRegistry | undefined, runId: string): Promise<{
153
+ run: RunRecord;
154
+ warnings: string[];
155
+ }>;
121
156
  /**
122
157
  * Executes a step and automatically chains into subsequent `execution: auto` steps.
123
158
  * Stops at agent steps, gate steps (returning confirm_required), errors, or terminal state.
@@ -1 +1 @@
1
- {"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"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"}