@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.
- package/dist/engine/abandon-run.d.ts.map +1 -1
- package/dist/engine/abandon-run.js +17 -9
- package/dist/engine/abandon-run.js.map +1 -1
- package/dist/engine/apply-resume.d.ts +11 -2
- package/dist/engine/apply-resume.d.ts.map +1 -1
- package/dist/engine/apply-resume.js +15 -4
- package/dist/engine/apply-resume.js.map +1 -1
- package/dist/engine/eligibility.d.ts +20 -2
- package/dist/engine/eligibility.d.ts.map +1 -1
- package/dist/engine/eligibility.js +46 -24
- package/dist/engine/eligibility.js.map +1 -1
- package/dist/engine/execution-loop.d.ts +7 -4
- package/dist/engine/execution-loop.d.ts.map +1 -1
- package/dist/engine/execution-loop.js +810 -87
- package/dist/engine/execution-loop.js.map +1 -1
- package/dist/engine/run-health.d.ts +1 -1
- package/dist/engine/run-health.d.ts.map +1 -1
- package/dist/engine/run-health.js +62 -1
- package/dist/engine/run-health.js.map +1 -1
- package/dist/engine/settlement.d.ts +11 -0
- package/dist/engine/settlement.d.ts.map +1 -1
- package/dist/engine/settlement.js +441 -30
- package/dist/engine/settlement.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/store/json-file-store.d.ts +6 -4
- package/dist/store/json-file-store.d.ts.map +1 -1
- package/dist/store/json-file-store.js +26 -9
- package/dist/store/json-file-store.js.map +1 -1
- package/dist/store/store-interface.d.ts +11 -8
- package/dist/store/store-interface.d.ts.map +1 -1
- package/dist/types/run-record.d.ts +26 -3
- package/dist/types/run-record.d.ts.map +1 -1
- package/dist/types/settlement.d.ts +135 -11
- package/dist/types/settlement.d.ts.map +1 -1
- 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
|
|
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
|
-
|
|
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
|
-
//
|
|
235
|
-
//
|
|
236
|
-
|
|
237
|
-
const
|
|
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
|
|
245
|
-
transitioned
|
|
246
|
-
pendingFinalizers: pendingFinalizerNames(
|
|
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
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
-
|
|
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
|
|
290
|
-
transitioned:
|
|
291
|
-
pendingFinalizers: pendingFinalizerNames(
|
|
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.
|
|
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';
|