@loomwork/replay-vm 0.0.0-stage → 0.1.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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +70 -2
- package/dist/ReplayVM.d.ts +59 -0
- package/dist/ReplayVM.d.ts.map +1 -0
- package/dist/ReplayVM.js +160 -0
- package/dist/ReplayVM.js.map +1 -0
- package/dist/eventHandlers.d.ts +65 -0
- package/dist/eventHandlers.d.ts.map +1 -0
- package/dist/eventHandlers.js +1563 -0
- package/dist/eventHandlers.js.map +1 -0
- package/dist/foldEvents.d.ts +23 -0
- package/dist/foldEvents.d.ts.map +1 -0
- package/dist/foldEvents.js +119 -0
- package/dist/foldEvents.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -3
- package/src/ReplayVM.ts +179 -0
- package/src/eventHandlers.ts +1760 -0
- package/src/foldEvents.ts +128 -0
- package/src/index.ts +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlers.js","sourceRoot":"","sources":["../src/eventHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EventEnvelope, ExecutionState } from "@loomwork/core";
|
|
2
|
+
export declare function foldEvents(events: EventEnvelope[], initial?: Partial<ExecutionState>,
|
|
3
|
+
/**
|
|
4
|
+
* R1a — the ownership set of a LIVE fold (see {@link useFoldOwnership}). Omit it for a
|
|
5
|
+
* one-shot fold: ownership then starts empty, so nothing the caller passed in is written to.
|
|
6
|
+
*/
|
|
7
|
+
owned?: WeakSet<object>): ExecutionState;
|
|
8
|
+
/**
|
|
9
|
+
* ADR 0105 (EVENT_SCHEMA 1.21.0) — read a SNAPSHOT's state as the current fold would have
|
|
10
|
+
* written it. Before 1.21.0 `STEP_FAILED` also set the EXECUTION's status to "failed", so a
|
|
11
|
+
* snapshot saved after a step failure the flow caught (or a parallel sibling's failure that
|
|
12
|
+
* landed after the flow parked) records a terminal status for a live execution. A log folds
|
|
13
|
+
* correctly on its own; a snapshot is a stored fold and does not.
|
|
14
|
+
*
|
|
15
|
+
* The artifact is recognisable in O(1) on the common path: the kernel's only
|
|
16
|
+
* `EXECUTION_FAILED` writer always records `error`, so a genuinely failed execution carries
|
|
17
|
+
* `variables._error`. "failed" with no `_error` and a failed step frame is the old fold's
|
|
18
|
+
* doing, and the status it hid is `suspended` when the execution is parked (`suspendedOn`
|
|
19
|
+
* survives only while parked) and `running` otherwise. Every other state is returned as-is
|
|
20
|
+
* (same object).
|
|
21
|
+
*/
|
|
22
|
+
export declare function normalizeSnapshotState<T extends Partial<ExecutionState>>(state: T): T;
|
|
23
|
+
//# sourceMappingURL=foldEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldEvents.d.ts","sourceRoot":"","sources":["../src/foldEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAkB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmBpF,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;AACjC;;;GAGG;AACH,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GACtB,cAAc,CAoChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAErF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.foldEvents = foldEvents;
|
|
4
|
+
exports.normalizeSnapshotState = normalizeSnapshotState;
|
|
5
|
+
const eventHandlers_1 = require("./eventHandlers");
|
|
6
|
+
const DEFAULT_STATE = {
|
|
7
|
+
status: "pending",
|
|
8
|
+
frames: {},
|
|
9
|
+
variables: {},
|
|
10
|
+
sequence: -1,
|
|
11
|
+
startedAt: 0,
|
|
12
|
+
updatedAt: 0,
|
|
13
|
+
};
|
|
14
|
+
function foldEvents(events, initial,
|
|
15
|
+
/**
|
|
16
|
+
* R1a — the ownership set of a LIVE fold (see {@link useFoldOwnership}). Omit it for a
|
|
17
|
+
* one-shot fold: ownership then starts empty, so nothing the caller passed in is written to.
|
|
18
|
+
*/
|
|
19
|
+
owned) {
|
|
20
|
+
// `state` is always an object this function created (the seed below, or a fresh
|
|
21
|
+
// handler result) — never the caller's `initial` — so setting `sequence` in
|
|
22
|
+
// place is safe and avoids a full-state spread per event.
|
|
23
|
+
let state = {
|
|
24
|
+
executionId: initial?.executionId ?? "",
|
|
25
|
+
workflowId: initial?.workflowId ?? "",
|
|
26
|
+
workflowVersion: initial?.workflowVersion ?? "",
|
|
27
|
+
...DEFAULT_STATE,
|
|
28
|
+
...initial,
|
|
29
|
+
};
|
|
30
|
+
// Fresh audit-list ownership for THIS fold pass, so in-place appends never touch the
|
|
31
|
+
// caller's `initial`/snapshot arrays (which we treat as immutable). See appendAudit.
|
|
32
|
+
if (owned === undefined)
|
|
33
|
+
(0, eventHandlers_1.resetFoldOwnership)();
|
|
34
|
+
else
|
|
35
|
+
(0, eventHandlers_1.useFoldOwnership)(owned);
|
|
36
|
+
for (const event of events) {
|
|
37
|
+
const handler = (0, eventHandlers_1.getHandler)(event.eventType);
|
|
38
|
+
if (handler) {
|
|
39
|
+
state = handler(state, event);
|
|
40
|
+
}
|
|
41
|
+
// 1.19.0 (ADR 0102) — the one fold step keyed on an envelope STAMP rather than an
|
|
42
|
+
// event type: a flow-level emit (`ctx.emit`/`ctx.stream`/`ctx.ui`, usually a domain
|
|
43
|
+
// event with no handler) may carry `metadata.flowEmit = <content digest>`, and
|
|
44
|
+
// `_flowEmits` counts the stamped emits per digest, so a re-run from the top can serve
|
|
45
|
+
// the emits the log already holds instead of appending them again. An unstamped log
|
|
46
|
+
// (legacy, or kernel facts only) never gains the key and folds byte-identically.
|
|
47
|
+
const stamp = event.metadata?.flowEmit;
|
|
48
|
+
if (typeof stamp === "string" && eventHandlers_1.FLOW_EMIT_DIGEST.test(stamp)) {
|
|
49
|
+
state.variables = (0, eventHandlers_1.countFlowEmit)(state.variables, stamp);
|
|
50
|
+
}
|
|
51
|
+
state.sequence = event.sequence;
|
|
52
|
+
}
|
|
53
|
+
return state;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* ADR 0105 (EVENT_SCHEMA 1.21.0) — read a SNAPSHOT's state as the current fold would have
|
|
57
|
+
* written it. Before 1.21.0 `STEP_FAILED` also set the EXECUTION's status to "failed", so a
|
|
58
|
+
* snapshot saved after a step failure the flow caught (or a parallel sibling's failure that
|
|
59
|
+
* landed after the flow parked) records a terminal status for a live execution. A log folds
|
|
60
|
+
* correctly on its own; a snapshot is a stored fold and does not.
|
|
61
|
+
*
|
|
62
|
+
* The artifact is recognisable in O(1) on the common path: the kernel's only
|
|
63
|
+
* `EXECUTION_FAILED` writer always records `error`, so a genuinely failed execution carries
|
|
64
|
+
* `variables._error`. "failed" with no `_error` and a failed step frame is the old fold's
|
|
65
|
+
* doing, and the status it hid is `suspended` when the execution is parked (`suspendedOn`
|
|
66
|
+
* survives only while parked) and `running` otherwise. Every other state is returned as-is
|
|
67
|
+
* (same object).
|
|
68
|
+
*/
|
|
69
|
+
function normalizeSnapshotState(state) {
|
|
70
|
+
return normalizeFailed(stripSettledInputs(state));
|
|
71
|
+
}
|
|
72
|
+
const SETTLED_FRAME = new Set(["completed", "failed", "cancelled"]);
|
|
73
|
+
/**
|
|
74
|
+
* ADR 0138 D8 (EVENT_SCHEMA 1.26.0) - the fold no longer keeps a SETTLED frame's `input` (the log, or the
|
|
75
|
+
* compaction archive, holds it). A snapshot written by an older fold still carries them; strip them in
|
|
76
|
+
* one O(frames) pass so `fold(snapshot, tail) == fold(events)` holds. Frames still in flight keep theirs.
|
|
77
|
+
* Returns the same object when there is nothing to strip.
|
|
78
|
+
*/
|
|
79
|
+
function stripSettledInputs(state) {
|
|
80
|
+
const frames = state.frames;
|
|
81
|
+
if (frames === undefined)
|
|
82
|
+
return state;
|
|
83
|
+
let stripped;
|
|
84
|
+
for (const stepId of Object.keys(frames)) {
|
|
85
|
+
const frame = frames[stepId];
|
|
86
|
+
if (frame !== undefined && frame.input !== undefined && SETTLED_FRAME.has(frame.status)) {
|
|
87
|
+
stripped ??= { ...frames };
|
|
88
|
+
const { input: _input, ...rest } = frame;
|
|
89
|
+
stripped[stepId] = rest;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return stripped === undefined ? state : { ...state, frames: stripped };
|
|
93
|
+
}
|
|
94
|
+
function normalizeFailed(state) {
|
|
95
|
+
if (state.status !== "failed" || state.variables?._error !== undefined)
|
|
96
|
+
return state;
|
|
97
|
+
const frames = state.frames ?? {};
|
|
98
|
+
let stepFailed = false;
|
|
99
|
+
for (const stepId of Object.keys(frames)) {
|
|
100
|
+
if (frames[stepId]?.status === "failed") {
|
|
101
|
+
stepFailed = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (!stepFailed)
|
|
106
|
+
return state;
|
|
107
|
+
// A parked artifact means the failure landed AFTER the park (a STEP_FAILED before it would
|
|
108
|
+
// have been overwritten by the park's "suspended"; a resume removes `suspendedOn`) — exactly
|
|
109
|
+
// what the current fold records as `_failedWhileParked`, so the repaired snapshot folds its
|
|
110
|
+
// tail as the full log would.
|
|
111
|
+
if (state.suspendedOn === undefined)
|
|
112
|
+
return { ...state, status: "running" };
|
|
113
|
+
return {
|
|
114
|
+
...state,
|
|
115
|
+
status: "suspended",
|
|
116
|
+
variables: { ...state.variables, [eventHandlers_1.FAILED_WHILE_PARKED]: true },
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=foldEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldEvents.js","sourceRoot":"","sources":["../src/foldEvents.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { foldEvents, normalizeSnapshotState } from "./foldEvents";
|
|
2
|
+
export { ReplayVM } from "./ReplayVM";
|
|
3
|
+
export { EVENT_SCHEMA_VERSION, FAILED_WHILE_PARKED, FLOW_DIVERGED_GATE, FLOW_EMIT_DIGEST, INBOX_DEDUPE_CAP, QUARANTINE_FOLD_CAP, KERNEL_STAMPED_EVENT_TYPES, BUILTIN_DIMENSION_NAMES, CUSTOM_DIMENSION_CEILING, CUSTOM_DIMENSION_MAX, CUSTOM_DIMENSION_PATTERN, flowEmitCount, knownEventTypes, } from "./eventHandlers";
|
|
4
|
+
export type { FlowEmitCounts, FlowEmitLeaf } from "./eventHandlers";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.knownEventTypes = exports.flowEmitCount = exports.CUSTOM_DIMENSION_PATTERN = exports.CUSTOM_DIMENSION_MAX = exports.CUSTOM_DIMENSION_CEILING = exports.BUILTIN_DIMENSION_NAMES = exports.KERNEL_STAMPED_EVENT_TYPES = exports.QUARANTINE_FOLD_CAP = exports.INBOX_DEDUPE_CAP = exports.FLOW_EMIT_DIGEST = exports.FLOW_DIVERGED_GATE = exports.FAILED_WHILE_PARKED = exports.EVENT_SCHEMA_VERSION = exports.ReplayVM = exports.normalizeSnapshotState = exports.foldEvents = void 0;
|
|
4
|
+
var foldEvents_1 = require("./foldEvents");
|
|
5
|
+
Object.defineProperty(exports, "foldEvents", { enumerable: true, get: function () { return foldEvents_1.foldEvents; } });
|
|
6
|
+
Object.defineProperty(exports, "normalizeSnapshotState", { enumerable: true, get: function () { return foldEvents_1.normalizeSnapshotState; } });
|
|
7
|
+
var ReplayVM_1 = require("./ReplayVM");
|
|
8
|
+
Object.defineProperty(exports, "ReplayVM", { enumerable: true, get: function () { return ReplayVM_1.ReplayVM; } });
|
|
9
|
+
var eventHandlers_1 = require("./eventHandlers");
|
|
10
|
+
Object.defineProperty(exports, "EVENT_SCHEMA_VERSION", { enumerable: true, get: function () { return eventHandlers_1.EVENT_SCHEMA_VERSION; } });
|
|
11
|
+
Object.defineProperty(exports, "FAILED_WHILE_PARKED", { enumerable: true, get: function () { return eventHandlers_1.FAILED_WHILE_PARKED; } });
|
|
12
|
+
Object.defineProperty(exports, "FLOW_DIVERGED_GATE", { enumerable: true, get: function () { return eventHandlers_1.FLOW_DIVERGED_GATE; } });
|
|
13
|
+
Object.defineProperty(exports, "FLOW_EMIT_DIGEST", { enumerable: true, get: function () { return eventHandlers_1.FLOW_EMIT_DIGEST; } });
|
|
14
|
+
Object.defineProperty(exports, "INBOX_DEDUPE_CAP", { enumerable: true, get: function () { return eventHandlers_1.INBOX_DEDUPE_CAP; } });
|
|
15
|
+
Object.defineProperty(exports, "QUARANTINE_FOLD_CAP", { enumerable: true, get: function () { return eventHandlers_1.QUARANTINE_FOLD_CAP; } });
|
|
16
|
+
Object.defineProperty(exports, "KERNEL_STAMPED_EVENT_TYPES", { enumerable: true, get: function () { return eventHandlers_1.KERNEL_STAMPED_EVENT_TYPES; } });
|
|
17
|
+
Object.defineProperty(exports, "BUILTIN_DIMENSION_NAMES", { enumerable: true, get: function () { return eventHandlers_1.BUILTIN_DIMENSION_NAMES; } });
|
|
18
|
+
Object.defineProperty(exports, "CUSTOM_DIMENSION_CEILING", { enumerable: true, get: function () { return eventHandlers_1.CUSTOM_DIMENSION_CEILING; } });
|
|
19
|
+
Object.defineProperty(exports, "CUSTOM_DIMENSION_MAX", { enumerable: true, get: function () { return eventHandlers_1.CUSTOM_DIMENSION_MAX; } });
|
|
20
|
+
Object.defineProperty(exports, "CUSTOM_DIMENSION_PATTERN", { enumerable: true, get: function () { return eventHandlers_1.CUSTOM_DIMENSION_PATTERN; } });
|
|
21
|
+
Object.defineProperty(exports, "flowEmitCount", { enumerable: true, get: function () { return eventHandlers_1.flowEmitCount; } });
|
|
22
|
+
Object.defineProperty(exports, "knownEventTypes", { enumerable: true, get: function () { return eventHandlers_1.knownEventTypes; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAkE;AAAzD,wGAAA,UAAU,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAC3C,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAcyB;AAbvB,qHAAA,oBAAoB,OAAA;AACpB,oHAAA,mBAAmB,OAAA;AACnB,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAChB,iHAAA,gBAAgB,OAAA;AAChB,oHAAA,mBAAmB,OAAA;AACnB,2HAAA,0BAA0B,OAAA;AAC1B,wHAAA,uBAAuB,OAAA;AACvB,yHAAA,wBAAwB,OAAA;AACxB,qHAAA,oBAAoB,OAAA;AACpB,yHAAA,wBAAwB,OAAA;AACxB,8GAAA,aAAa,OAAA;AACb,gHAAA,eAAe,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loomwork/replay-vm",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Deterministic replay engine for the Loom framework",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"require": "./dist/index.js",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@loomwork/core": "^0.1.0",
|
|
16
|
+
"@loomwork/event-runtime": "^0.1.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/node": "^22.0.0",
|
|
20
|
+
"typescript": "^5.6.3",
|
|
21
|
+
"vitest": "^2.1.8"
|
|
22
|
+
},
|
|
23
|
+
"license": "Apache-2.0",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/chhetrisushil/loom.git",
|
|
27
|
+
"directory": "packages/replay-vm"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"src",
|
|
32
|
+
"!src/**/*.test.ts",
|
|
33
|
+
"!src/**/*.test.tsx",
|
|
34
|
+
"!src/**/__tests__",
|
|
35
|
+
"!src/**/__fixtures__",
|
|
36
|
+
"!src/**/__snapshots__",
|
|
37
|
+
"!src/**/__golden__",
|
|
38
|
+
"LICENSE",
|
|
39
|
+
"NOTICE"
|
|
40
|
+
],
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public",
|
|
43
|
+
"tag": "next"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=20.0.0"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc --build",
|
|
50
|
+
"dev": "tsc --build --watch",
|
|
51
|
+
"test": "vitest run",
|
|
52
|
+
"test:watch": "vitest",
|
|
53
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
54
|
+
"typecheck:tests": "tsc -p tsconfig.test.json"
|
|
55
|
+
}
|
|
6
56
|
}
|
package/src/ReplayVM.ts
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { EventEnvelope, ExecutionState } from "@loomwork/core";
|
|
2
|
+
import { flowEmitCount } from "./eventHandlers";
|
|
3
|
+
import { foldEvents } from "./foldEvents";
|
|
4
|
+
|
|
5
|
+
export class ReplayVM {
|
|
6
|
+
private state: ExecutionState;
|
|
7
|
+
// R1a — the containers (frames, decision map, audit lists, emit trie) THIS VM created and
|
|
8
|
+
// may therefore write in place on the next commit. Dropped whenever the state escapes
|
|
9
|
+
// (`getState`), so a state a caller holds is never mutated afterwards.
|
|
10
|
+
private owned = new WeakSet<object>();
|
|
11
|
+
|
|
12
|
+
// ADR 0113 D3 — the step ids that completed AFTER the execution's last `EXECUTION_MIGRATED`
|
|
13
|
+
// (the replay-divergence detector's baseline resets there: a migration deliberately changes the
|
|
14
|
+
// frame set). `undefined` until a migration is known: then every completed frame is baseline.
|
|
15
|
+
// Allocated only for an execution that has been migrated, so the common path pays one string
|
|
16
|
+
// compare per applied event.
|
|
17
|
+
private postMigration: Set<string> | undefined;
|
|
18
|
+
|
|
19
|
+
constructor(events: EventEnvelope[], initial?: Partial<ExecutionState>) {
|
|
20
|
+
this.state = foldEvents(events, initial, this.owned);
|
|
21
|
+
// A snapshot taken after a migration carries `_migrations`, but not WHEN: everything the
|
|
22
|
+
// snapshot already holds is exempt, so only the tail's completions count.
|
|
23
|
+
const migrated = initial?.variables?._migrations;
|
|
24
|
+
if (Array.isArray(migrated) && migrated.length > 0) this.postMigration = new Set();
|
|
25
|
+
for (const e of events) this.track(e);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private track(event: EventEnvelope): void {
|
|
29
|
+
if (event.eventType === "EXECUTION_MIGRATED") {
|
|
30
|
+
this.postMigration = new Set();
|
|
31
|
+
} else if (this.postMigration !== undefined && event.eventType === "STEP_COMPLETED") {
|
|
32
|
+
const id = (event.payload as { stepId?: unknown } | null)?.stepId;
|
|
33
|
+
if (typeof id === "string") this.postMigration.add(id);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* ADR 0113 D3 — every recorded frame in the LOG's first-start order (by `firstSeq`, never by object
|
|
39
|
+
* key order, which floats integer-like ids to the front). A frame folded before `firstSeq` existed
|
|
40
|
+
* (an old snapshot) has none: those come first, in key order.
|
|
41
|
+
*/
|
|
42
|
+
recordedFrames(): Array<{ id: string; completed: boolean; seq?: number; scope?: string }> {
|
|
43
|
+
const frames = this.state.frames;
|
|
44
|
+
const out = Object.keys(frames).map((id, keyIndex) => {
|
|
45
|
+
const f = frames[id] as NonNullable<(typeof frames)[string]>;
|
|
46
|
+
return {
|
|
47
|
+
id,
|
|
48
|
+
keyIndex,
|
|
49
|
+
completed: f.status === "completed",
|
|
50
|
+
...(f.firstSeq !== undefined && { seq: f.firstSeq }),
|
|
51
|
+
...(f.scope !== undefined && { scope: f.scope }),
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
out.sort((a, b) => (a.seq ?? -1) - (b.seq ?? -1) || a.keyIndex - b.keyIndex);
|
|
55
|
+
return out.map(({ keyIndex: _k, ...rest }) => rest);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** ADR 0113 D3 — what a decision record says about the steps its decider ran. */
|
|
59
|
+
getDecisionInner(
|
|
60
|
+
decisionId: string
|
|
61
|
+
): { steps: readonly string[]; overflow?: { from: number; to: number } } | undefined {
|
|
62
|
+
const decisions = this.state.variables._decisions as
|
|
63
|
+
| Record<
|
|
64
|
+
string,
|
|
65
|
+
{
|
|
66
|
+
innerSteps?: unknown;
|
|
67
|
+
innerStepsOverflow?: unknown;
|
|
68
|
+
innerFrom?: number;
|
|
69
|
+
recordedAtSeq?: number;
|
|
70
|
+
}
|
|
71
|
+
>
|
|
72
|
+
| undefined;
|
|
73
|
+
if (decisions === undefined || !Object.hasOwn(decisions, decisionId)) return undefined;
|
|
74
|
+
const rec = decisions[decisionId];
|
|
75
|
+
if (rec === undefined || !Array.isArray(rec.innerSteps)) return undefined;
|
|
76
|
+
return {
|
|
77
|
+
steps: rec.innerSteps as string[],
|
|
78
|
+
...(rec.innerStepsOverflow === true &&
|
|
79
|
+
rec.innerFrom !== undefined &&
|
|
80
|
+
rec.recordedAtSeq !== undefined && {
|
|
81
|
+
overflow: { from: rec.innerFrom, to: rec.recordedAtSeq },
|
|
82
|
+
}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* ADR 0113 D3 — the ids of the COMPLETED frames a re-run of this execution is expected to
|
|
88
|
+
* visit: every completed frame, except those recorded before the execution's last
|
|
89
|
+
* `EXECUTION_MIGRATED` (a migration changes the frame set on purpose). A fresh array.
|
|
90
|
+
*/
|
|
91
|
+
expectedReplayFrames(): string[] {
|
|
92
|
+
const frames = this.state.frames;
|
|
93
|
+
const out: string[] = [];
|
|
94
|
+
for (const id of Object.keys(frames)) {
|
|
95
|
+
if (frames[id]?.status !== "completed") continue;
|
|
96
|
+
if (this.postMigration !== undefined && !this.postMigration.has(id)) continue;
|
|
97
|
+
out.push(id);
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
hasCompleted(stepId: string): boolean {
|
|
103
|
+
return this.state.frames[stepId]?.status === "completed";
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
hasFailed(stepId: string): boolean {
|
|
107
|
+
return this.state.frames[stepId]?.status === "failed";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// DE-4 (ADR 0060) — the typed-failure twin of hasCompleted/getOutput. Defined
|
|
111
|
+
// only when the step's frame failed ON A DECLARED CHANNEL (a 1.17.0 typed
|
|
112
|
+
// STEP_FAILED); untyped failures return undefined and keep the legacy
|
|
113
|
+
// re-execute-on-replay semantics.
|
|
114
|
+
getTypedFailure(
|
|
115
|
+
stepId: string
|
|
116
|
+
): { channel: string; payload: unknown; error?: unknown } | undefined {
|
|
117
|
+
const frame = this.state.frames[stepId];
|
|
118
|
+
if (frame?.status !== "failed" || frame.errorChannel === undefined) return undefined;
|
|
119
|
+
return {
|
|
120
|
+
channel: frame.errorChannel,
|
|
121
|
+
payload: frame.errorPayload,
|
|
122
|
+
...(frame.error !== undefined && { error: frame.error }),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
getOutput(stepId: string): unknown {
|
|
127
|
+
return this.state.frames[stepId]?.output;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Loom 2.0 (P9) — decision short-circuit, the twin of hasCompleted/getOutput.
|
|
131
|
+
// On replay, a decisionId already present in the log is served from state so the
|
|
132
|
+
// optimizer/router is never re-consulted.
|
|
133
|
+
hasDecision(decisionId: string): boolean {
|
|
134
|
+
const decisions = this.state.variables._decisions as Record<string, unknown> | undefined;
|
|
135
|
+
return decisions !== undefined && Object.hasOwn(decisions, decisionId);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
getDecision(decisionId: string): unknown {
|
|
139
|
+
const decisions = this.state.variables._decisions as
|
|
140
|
+
| Record<string, { choice: unknown }>
|
|
141
|
+
| undefined;
|
|
142
|
+
// Own-key check (matches hasDecision) so a `__proto__`/inherited name can never read
|
|
143
|
+
// through the prototype chain.
|
|
144
|
+
if (decisions === undefined || !Object.hasOwn(decisions, decisionId)) return undefined;
|
|
145
|
+
return decisions[decisionId]?.choice;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// ADR 0102 — how many stamped flow-level emits with this content digest the log holds
|
|
149
|
+
// (the `_flowEmits` fold). A re-run serves its n-th emit of a digest from the log while
|
|
150
|
+
// n < this count.
|
|
151
|
+
flowEmitCount(digest: string): number {
|
|
152
|
+
return flowEmitCount(this.state.variables, digest);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* The folded state, for a caller that may KEEP it (a snapshot save, a returned handle, a
|
|
157
|
+
* test). It is stable: later `applyEvent`s never write to it, at the price of one container
|
|
158
|
+
* copy on the next commit (ownership is dropped). Callers that only read and drop the value
|
|
159
|
+
* within the same synchronous turn should use {@link peekState}.
|
|
160
|
+
*/
|
|
161
|
+
getState(): ExecutionState {
|
|
162
|
+
this.owned = new WeakSet<object>();
|
|
163
|
+
return this.state;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* A BORROWED view of the live state: read it and let go before the next `applyEvent`. It
|
|
168
|
+
* does not retire fold ownership, so the commit path stays O(1) per event. Do not retain it,
|
|
169
|
+
* hand it to a caller, or mutate it.
|
|
170
|
+
*/
|
|
171
|
+
peekState(): ExecutionState {
|
|
172
|
+
return this.state;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
applyEvent(event: EventEnvelope): void {
|
|
176
|
+
this.state = foldEvents([event], this.state, this.owned);
|
|
177
|
+
this.track(event);
|
|
178
|
+
}
|
|
179
|
+
}
|