@loomwork/replay-vm 0.0.0-stage → 0.1.1

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.
@@ -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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"}
@@ -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.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
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.1",
16
+ "@loomwork/event-runtime": "^0.1.1"
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
  }
@@ -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
+ }