@proophboard/exploration-runtime 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.
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/connectionRules.d.ts +39 -0
- package/dist/lib/connectionRules.d.ts.map +1 -0
- package/dist/lib/connectionRules.js +475 -0
- package/dist/lib/connectionRules.js.map +1 -0
- package/dist/lib/toClassName.d.ts +42 -0
- package/dist/lib/toClassName.d.ts.map +1 -0
- package/dist/lib/toClassName.js +82 -0
- package/dist/lib/toClassName.js.map +1 -0
- package/dist/playFunction/ambientTypes.d.ts +30 -0
- package/dist/playFunction/ambientTypes.d.ts.map +1 -0
- package/dist/playFunction/ambientTypes.js +174 -0
- package/dist/playFunction/ambientTypes.js.map +1 -0
- package/dist/playFunction/cascadeBudget.d.ts +53 -0
- package/dist/playFunction/cascadeBudget.d.ts.map +1 -0
- package/dist/playFunction/cascadeBudget.js +74 -0
- package/dist/playFunction/cascadeBudget.js.map +1 -0
- package/dist/playFunction/clock.d.ts +58 -0
- package/dist/playFunction/clock.d.ts.map +1 -0
- package/dist/playFunction/clock.js +104 -0
- package/dist/playFunction/clock.js.map +1 -0
- package/dist/playFunction/modelTypes.d.ts +74 -0
- package/dist/playFunction/modelTypes.d.ts.map +1 -0
- package/dist/playFunction/modelTypes.js +345 -0
- package/dist/playFunction/modelTypes.js.map +1 -0
- package/dist/playFunction/playLog.d.ts +29 -0
- package/dist/playFunction/playLog.d.ts.map +1 -0
- package/dist/playFunction/playLog.js +64 -0
- package/dist/playFunction/playLog.js.map +1 -0
- package/dist/playFunction/playType.d.ts +52 -0
- package/dist/playFunction/playType.d.ts.map +1 -0
- package/dist/playFunction/playType.js +94 -0
- package/dist/playFunction/playType.js.map +1 -0
- package/dist/playFunction/runtimeFold.d.ts +51 -0
- package/dist/playFunction/runtimeFold.d.ts.map +1 -0
- package/dist/playFunction/runtimeFold.js +620 -0
- package/dist/playFunction/runtimeFold.js.map +1 -0
- package/dist/playFunction/runtimeSteps.d.ts +45 -0
- package/dist/playFunction/runtimeSteps.d.ts.map +1 -0
- package/dist/playFunction/runtimeSteps.js +112 -0
- package/dist/playFunction/runtimeSteps.js.map +1 -0
- package/dist/playFunction/sandbox.d.ts +52 -0
- package/dist/playFunction/sandbox.d.ts.map +1 -0
- package/dist/playFunction/sandbox.js +91 -0
- package/dist/playFunction/sandbox.js.map +1 -0
- package/dist/playFunction/scenarioRunner.d.ts +49 -0
- package/dist/playFunction/scenarioRunner.d.ts.map +1 -0
- package/dist/playFunction/scenarioRunner.js +331 -0
- package/dist/playFunction/scenarioRunner.js.map +1 -0
- package/dist/playFunction/transpile.d.ts +33 -0
- package/dist/playFunction/transpile.d.ts.map +1 -0
- package/dist/playFunction/transpile.js +71 -0
- package/dist/playFunction/transpile.js.map +1 -0
- package/dist/types/eventModel.d.ts +79 -0
- package/dist/types/eventModel.d.ts.map +1 -0
- package/dist/types/eventModel.js +12 -0
- package/dist/types/eventModel.js.map +1 -0
- package/dist/types/exploration.d.ts +143 -0
- package/dist/types/exploration.d.ts.map +1 -0
- package/dist/types/exploration.js +28 -0
- package/dist/types/exploration.js.map +1 -0
- package/package.json +48 -4
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeFold.js","sourceRoot":"","sources":["../../src/playFunction/runtimeFold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtimeSteps — the pure, framework-free helpers the Exploration fold builds on
|
|
3
|
+
* (extracted from eventflow-designer `useExplorationRuntime.ts`, which is React-
|
|
4
|
+
* coupled). These touch no React/DOM/worker API:
|
|
5
|
+
*
|
|
6
|
+
* deriveRuntimeSteps — slice list → ordered runtime steps (step rule).
|
|
7
|
+
* seedState — ImplicitScenario → seeded RuntimeState.
|
|
8
|
+
* mergeProjection — two-level leaf-replace projection merge (R13).
|
|
9
|
+
* defaultDecide — default command→events (R11 pass-through).
|
|
10
|
+
*
|
|
11
|
+
* The in-app module should re-export these from here (or from a shared module) so
|
|
12
|
+
* the browser and this package run byte-identical logic. The parity test guards it.
|
|
13
|
+
*/
|
|
14
|
+
import type { Chapter, Element, Slice } from '../types/eventModel.js';
|
|
15
|
+
import type { ImplicitScenario, RuntimeCommand, RuntimeEvent, RuntimeState } from '../types/exploration.js';
|
|
16
|
+
/**
|
|
17
|
+
* Two-level leaf-replace merge (R13). Merges `patch` into
|
|
18
|
+
* `target[context][element]` so writing one Information leaf never wipes its
|
|
19
|
+
* siblings in the same context.
|
|
20
|
+
*/
|
|
21
|
+
export declare function mergeProjection(state: RuntimeState, context: string, element: string, patch: Record<string, unknown>): void;
|
|
22
|
+
/** Build the seeded starting state from the implicit scenario (R7, R8, R26). */
|
|
23
|
+
export declare function seedState(scenario: ImplicitScenario, clockISO: string): RuntimeState;
|
|
24
|
+
/** One runtime step: a slice plus its elements grouped by type. */
|
|
25
|
+
export interface RuntimeStep {
|
|
26
|
+
slice: Slice;
|
|
27
|
+
stepIndex: number;
|
|
28
|
+
commands: Element[];
|
|
29
|
+
events: Element[];
|
|
30
|
+
information: Element[];
|
|
31
|
+
uiElement: Element | undefined;
|
|
32
|
+
automationElement: Element | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Derive runtime steps: a slice is a step if it carries UI, Automation, or Event
|
|
36
|
+
* (mirrors usePresentationMode's step rule so geometry/step-count match).
|
|
37
|
+
*/
|
|
38
|
+
export declare function deriveRuntimeSteps(chapter: Chapter | undefined): RuntimeStep[];
|
|
39
|
+
/**
|
|
40
|
+
* DEFAULT `decide(command, state) → Event[]` for a command: emit one runtime
|
|
41
|
+
* event per event element in the command's slice, each carrying the command's
|
|
42
|
+
* payload (R11 pass-through). index/timestamp are assigned by the fold.
|
|
43
|
+
*/
|
|
44
|
+
export declare function defaultDecide(step: RuntimeStep, command: RuntimeCommand): Array<Omit<RuntimeEvent, 'index' | 'timestamp'>>;
|
|
45
|
+
//# sourceMappingURL=runtimeSteps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeSteps.d.ts","sourceRoot":"","sources":["../../src/playFunction/runtimeSteps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,yBAAyB,CAAC;AAYjC;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CASN;AAeD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA4BpF;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,EAAE,CA2B9E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,GACtB,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAMlD"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtimeSteps — the pure, framework-free helpers the Exploration fold builds on
|
|
3
|
+
* (extracted from eventflow-designer `useExplorationRuntime.ts`, which is React-
|
|
4
|
+
* coupled). These touch no React/DOM/worker API:
|
|
5
|
+
*
|
|
6
|
+
* deriveRuntimeSteps — slice list → ordered runtime steps (step rule).
|
|
7
|
+
* seedState — ImplicitScenario → seeded RuntimeState.
|
|
8
|
+
* mergeProjection — two-level leaf-replace projection merge (R13).
|
|
9
|
+
* defaultDecide — default command→events (R11 pass-through).
|
|
10
|
+
*
|
|
11
|
+
* The in-app module should re-export these from here (or from a shared module) so
|
|
12
|
+
* the browser and this package run byte-identical logic. The parity test guards it.
|
|
13
|
+
*/
|
|
14
|
+
import { toClassName } from '../lib/toClassName.js';
|
|
15
|
+
/** Shallow structured clone of a plain JSON-ish value. */
|
|
16
|
+
function clone(value) {
|
|
17
|
+
return value == null ? value : JSON.parse(JSON.stringify(value));
|
|
18
|
+
}
|
|
19
|
+
function isPlainObject(v) {
|
|
20
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Two-level leaf-replace merge (R13). Merges `patch` into
|
|
24
|
+
* `target[context][element]` so writing one Information leaf never wipes its
|
|
25
|
+
* siblings in the same context.
|
|
26
|
+
*/
|
|
27
|
+
export function mergeProjection(state, context, element, patch) {
|
|
28
|
+
const ctxKey = toClassName(context || 'App');
|
|
29
|
+
const elKey = toClassName(element);
|
|
30
|
+
const ctx = isPlainObject(state[ctxKey]) ? state[ctxKey] : {};
|
|
31
|
+
const existing = isPlainObject(ctx[elKey]) ? ctx[elKey] : {};
|
|
32
|
+
ctx[elKey] = { ...existing, ...patch };
|
|
33
|
+
state[ctxKey] = ctx;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Seeded events have no slice context to resolve a target Information, so the
|
|
37
|
+
* default seeding only records the event into $events (projection seeding comes
|
|
38
|
+
* from initialState). Kept as a named seam.
|
|
39
|
+
*/
|
|
40
|
+
function applyDefaultMergeForSeeded(_state, _event, _scenario) {
|
|
41
|
+
/* no-op: seeded projections come from initialState; seeded events only $events */
|
|
42
|
+
}
|
|
43
|
+
/** Build the seeded starting state from the implicit scenario (R7, R8, R26). */
|
|
44
|
+
export function seedState(scenario, clockISO) {
|
|
45
|
+
const state = { $events: [] };
|
|
46
|
+
for (const [ctx, elements] of Object.entries(scenario.initialState ?? {})) {
|
|
47
|
+
if (!isPlainObject(elements))
|
|
48
|
+
continue;
|
|
49
|
+
const ctxKey = toClassName(ctx);
|
|
50
|
+
const bucket = isPlainObject(state[ctxKey])
|
|
51
|
+
? state[ctxKey]
|
|
52
|
+
: {};
|
|
53
|
+
for (const [el, val] of Object.entries(elements)) {
|
|
54
|
+
bucket[toClassName(el)] = clone(val);
|
|
55
|
+
}
|
|
56
|
+
state[ctxKey] = bucket;
|
|
57
|
+
}
|
|
58
|
+
(scenario.seededEvents ?? []).forEach((e, i) => {
|
|
59
|
+
const seeded = {
|
|
60
|
+
name: e.name,
|
|
61
|
+
context: e.context,
|
|
62
|
+
payload: clone(e.payload) ?? {},
|
|
63
|
+
index: i,
|
|
64
|
+
timestamp: e.timestamp ?? clockISO,
|
|
65
|
+
};
|
|
66
|
+
state.$events.push(seeded);
|
|
67
|
+
applyDefaultMergeForSeeded(state, seeded, scenario);
|
|
68
|
+
});
|
|
69
|
+
return state;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Derive runtime steps: a slice is a step if it carries UI, Automation, or Event
|
|
73
|
+
* (mirrors usePresentationMode's step rule so geometry/step-count match).
|
|
74
|
+
*/
|
|
75
|
+
export function deriveRuntimeSteps(chapter) {
|
|
76
|
+
if (!chapter)
|
|
77
|
+
return [];
|
|
78
|
+
const sorted = [...chapter.slices].sort((a, b) => (a.index ?? 0) - (b.index ?? 0));
|
|
79
|
+
const steps = [];
|
|
80
|
+
let stepIndex = 0;
|
|
81
|
+
for (const slice of sorted) {
|
|
82
|
+
const sliceElements = chapter.elements
|
|
83
|
+
.filter((e) => e.sliceId === slice.id)
|
|
84
|
+
.sort((a, b) => (a.index ?? 0) - (b.index ?? 0));
|
|
85
|
+
const commands = sliceElements.filter((e) => e.type === 'command');
|
|
86
|
+
const events = sliceElements.filter((e) => e.type === 'event');
|
|
87
|
+
const information = sliceElements.filter((e) => e.type === 'information');
|
|
88
|
+
const uiElement = sliceElements.find((e) => e.type === 'ui');
|
|
89
|
+
const automationElement = sliceElements.find((e) => e.type === 'automation');
|
|
90
|
+
const hasUI = !!uiElement;
|
|
91
|
+
const hasAutomation = !!automationElement;
|
|
92
|
+
const hasEvent = events.length > 0;
|
|
93
|
+
if (!hasUI && !hasAutomation && !hasEvent)
|
|
94
|
+
continue;
|
|
95
|
+
steps.push({ slice, stepIndex, commands, events, information, uiElement, automationElement });
|
|
96
|
+
stepIndex++;
|
|
97
|
+
}
|
|
98
|
+
return steps;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* DEFAULT `decide(command, state) → Event[]` for a command: emit one runtime
|
|
102
|
+
* event per event element in the command's slice, each carrying the command's
|
|
103
|
+
* payload (R11 pass-through). index/timestamp are assigned by the fold.
|
|
104
|
+
*/
|
|
105
|
+
export function defaultDecide(step, command) {
|
|
106
|
+
return step.events.map((evtEl) => ({
|
|
107
|
+
name: evtEl.name,
|
|
108
|
+
context: evtEl.context || 'App',
|
|
109
|
+
payload: clone(command.payload) ?? {},
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=runtimeSteps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeSteps.js","sourceRoot":"","sources":["../../src/playFunction/runtimeSteps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sandbox — build a callable handler from transpiled Play Function JS plus the
|
|
3
|
+
* injected runtime surface (Exploration R10, R18, R31/R32, draft §4.6).
|
|
4
|
+
*
|
|
5
|
+
* The authored source defines a named function (`interact`/`decide`/`apply`/
|
|
6
|
+
* `read`/`react`/`process`) — either as a declaration or `export default`. We
|
|
7
|
+
* compile it with `new Function` and invoke the right handler with its arguments,
|
|
8
|
+
* injecting the deterministic helpers (`uuid`/`now`/`today`/`advanceClock`) and
|
|
9
|
+
* `reject` as in-scope globals so the handler calls them without imports.
|
|
10
|
+
*
|
|
11
|
+
* ISOLATION NOTE: `new Function` here is the EXECUTION mechanism, but isolation is
|
|
12
|
+
* provided by WHERE this runs — inside the Web Worker (handlerWorker.ts), which
|
|
13
|
+
* has no DOM/window/app-state and whose infinite loops are killed by terminating
|
|
14
|
+
* the worker (R15/N1). On the main-thread sync fast-path this is only ever reached
|
|
15
|
+
* when NO element has a playFunction (so no author code runs); authored handlers
|
|
16
|
+
* always go through the worker. `state` is passed as a deep-frozen clone so a
|
|
17
|
+
* handler cannot mutate the fold's state in place (replay purity, R5/R12).
|
|
18
|
+
*
|
|
19
|
+
* `reject(msg)` throws a tagged RejectSignal so the fold can distinguish an
|
|
20
|
+
* intentional command rejection from a thrown bug.
|
|
21
|
+
*/
|
|
22
|
+
import type { ClockSurface } from './clock.js';
|
|
23
|
+
export type HandlerKind = 'interact' | 'decide' | 'apply' | 'read' | 'react' | 'process';
|
|
24
|
+
/** Thrown by reject(msg); caught by the fold as an intentional command rejection. */
|
|
25
|
+
export declare class RejectSignal extends Error {
|
|
26
|
+
readonly reason: string;
|
|
27
|
+
/** Stable brand so detection survives cross-chunk/realm `instanceof` failures. */
|
|
28
|
+
readonly __playSignal: "reject";
|
|
29
|
+
constructor(reason: string);
|
|
30
|
+
}
|
|
31
|
+
/** Robust detector: tag-based (survives duplicated module instances in the worker). */
|
|
32
|
+
export declare function isRejectSignal(err: unknown): err is RejectSignal;
|
|
33
|
+
/** Deep-freeze a structured-clone-able value so handlers can't mutate state. */
|
|
34
|
+
export declare function deepFreeze<T>(value: T): T;
|
|
35
|
+
/**
|
|
36
|
+
* Compile the authored source into a callable that returns the named handler
|
|
37
|
+
* function. Supports both `function decide(...) {}` declarations and
|
|
38
|
+
* `export default function (...) {}` / `export default (...) => {}`.
|
|
39
|
+
*
|
|
40
|
+
* The `export default` form is rewritten to an assignment because `new Function`
|
|
41
|
+
* bodies are not modules. Returns the handler function, or throws if the expected
|
|
42
|
+
* handler name is not found.
|
|
43
|
+
*/
|
|
44
|
+
export declare function compileHandler(source: string, kind: HandlerKind): (...args: unknown[]) => unknown;
|
|
45
|
+
/**
|
|
46
|
+
* Run a compiled handler factory with the given clock surface and arguments.
|
|
47
|
+
* `state` (expected as the last positional arg per the handler contract) is
|
|
48
|
+
* deep-frozen by the caller. Returns the handler's return value; a RejectSignal
|
|
49
|
+
* propagates to the fold.
|
|
50
|
+
*/
|
|
51
|
+
export declare function runHandler(factory: (...args: unknown[]) => unknown, clock: ClockSurface, args: unknown[]): unknown;
|
|
52
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/playFunction/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzF,qFAAqF;AACrF,qBAAa,YAAa,SAAQ,KAAK;aAGT,MAAM,EAAE,MAAM;IAF1C,kFAAkF;IAClF,QAAQ,CAAC,YAAY,EAAG,QAAQ,CAAU;gBACd,MAAM,EAAE,MAAM;CAI3C;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY,CAKhE;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAiCjG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACxC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,OAAO,EAAE,GACd,OAAO,CAcT"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sandbox — build a callable handler from transpiled Play Function JS plus the
|
|
3
|
+
* injected runtime surface (Exploration R10, R18, R31/R32, draft §4.6).
|
|
4
|
+
*
|
|
5
|
+
* The authored source defines a named function (`interact`/`decide`/`apply`/
|
|
6
|
+
* `read`/`react`/`process`) — either as a declaration or `export default`. We
|
|
7
|
+
* compile it with `new Function` and invoke the right handler with its arguments,
|
|
8
|
+
* injecting the deterministic helpers (`uuid`/`now`/`today`/`advanceClock`) and
|
|
9
|
+
* `reject` as in-scope globals so the handler calls them without imports.
|
|
10
|
+
*
|
|
11
|
+
* ISOLATION NOTE: `new Function` here is the EXECUTION mechanism, but isolation is
|
|
12
|
+
* provided by WHERE this runs — inside the Web Worker (handlerWorker.ts), which
|
|
13
|
+
* has no DOM/window/app-state and whose infinite loops are killed by terminating
|
|
14
|
+
* the worker (R15/N1). On the main-thread sync fast-path this is only ever reached
|
|
15
|
+
* when NO element has a playFunction (so no author code runs); authored handlers
|
|
16
|
+
* always go through the worker. `state` is passed as a deep-frozen clone so a
|
|
17
|
+
* handler cannot mutate the fold's state in place (replay purity, R5/R12).
|
|
18
|
+
*
|
|
19
|
+
* `reject(msg)` throws a tagged RejectSignal so the fold can distinguish an
|
|
20
|
+
* intentional command rejection from a thrown bug.
|
|
21
|
+
*/
|
|
22
|
+
/** Thrown by reject(msg); caught by the fold as an intentional command rejection. */
|
|
23
|
+
export class RejectSignal extends Error {
|
|
24
|
+
constructor(reason) {
|
|
25
|
+
super(reason);
|
|
26
|
+
this.reason = reason;
|
|
27
|
+
/** Stable brand so detection survives cross-chunk/realm `instanceof` failures. */
|
|
28
|
+
this.__playSignal = 'reject';
|
|
29
|
+
this.name = 'RejectSignal';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Robust detector: tag-based (survives duplicated module instances in the worker). */
|
|
33
|
+
export function isRejectSignal(err) {
|
|
34
|
+
return (err instanceof RejectSignal ||
|
|
35
|
+
(!!err && typeof err === 'object' && err.__playSignal === 'reject'));
|
|
36
|
+
}
|
|
37
|
+
/** Deep-freeze a structured-clone-able value so handlers can't mutate state. */
|
|
38
|
+
export function deepFreeze(value) {
|
|
39
|
+
if (value && typeof value === 'object') {
|
|
40
|
+
for (const key of Object.keys(value)) {
|
|
41
|
+
deepFreeze(value[key]);
|
|
42
|
+
}
|
|
43
|
+
Object.freeze(value);
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Compile the authored source into a callable that returns the named handler
|
|
49
|
+
* function. Supports both `function decide(...) {}` declarations and
|
|
50
|
+
* `export default function (...) {}` / `export default (...) => {}`.
|
|
51
|
+
*
|
|
52
|
+
* The `export default` form is rewritten to an assignment because `new Function`
|
|
53
|
+
* bodies are not modules. Returns the handler function, or throws if the expected
|
|
54
|
+
* handler name is not found.
|
|
55
|
+
*/
|
|
56
|
+
export function compileHandler(source, kind) {
|
|
57
|
+
const normalised = source
|
|
58
|
+
// `export default function name(...)` → `__handler = function name(...)`
|
|
59
|
+
.replace(/export\s+default\s+/g, '__handler = ');
|
|
60
|
+
// Body that evaluates the source then resolves the handler by name or __handler.
|
|
61
|
+
const body = `
|
|
62
|
+
"use strict";
|
|
63
|
+
let __handler = undefined;
|
|
64
|
+
${normalised}
|
|
65
|
+
if (typeof __handler === 'function') return __handler;
|
|
66
|
+
if (typeof ${kind} === 'function') return ${kind};
|
|
67
|
+
throw new Error('Play function must define "${kind}" (or export default a function).');
|
|
68
|
+
`;
|
|
69
|
+
// The injected surface names are declared as parameters so they are in scope
|
|
70
|
+
// for the handler body without touching globals.
|
|
71
|
+
const factory = new Function('uuid', 'now', 'today', 'advanceClock', 'reject', body);
|
|
72
|
+
// Deferred: the factory is re-bound with the live clock surface per invocation
|
|
73
|
+
// in runHandler (so time advances across the fold).
|
|
74
|
+
factory.__isHandlerFactory = true;
|
|
75
|
+
factory.__kind = kind;
|
|
76
|
+
return factory;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Run a compiled handler factory with the given clock surface and arguments.
|
|
80
|
+
* `state` (expected as the last positional arg per the handler contract) is
|
|
81
|
+
* deep-frozen by the caller. Returns the handler's return value; a RejectSignal
|
|
82
|
+
* propagates to the fold.
|
|
83
|
+
*/
|
|
84
|
+
export function runHandler(factory, clock, args) {
|
|
85
|
+
const reject = (msg) => {
|
|
86
|
+
throw new RejectSignal(String(msg ?? ''));
|
|
87
|
+
};
|
|
88
|
+
const handler = factory(clock.uuid, clock.now, clock.today, clock.advanceClock, reject);
|
|
89
|
+
return handler(...args);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/playFunction/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,qFAAqF;AACrF,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGrC,YAA4B,MAAc;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;QADY,WAAM,GAAN,MAAM,CAAQ;QAF1C,kFAAkF;QACzE,iBAAY,GAAG,QAAiB,CAAC;QAGxC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,YAAY,YAAY;QAC3B,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAK,GAAiC,CAAC,YAAY,KAAK,QAAQ,CAAC,CACnG,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,EAAE,CAAC;YAChE,UAAU,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAiB;IAC9D,MAAM,UAAU,GAAG,MAAM;QACvB,yEAAyE;SACxE,OAAO,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;IAEnD,iFAAiF;IACjF,MAAM,IAAI,GAAG;;;MAGT,UAAU;;iBAEC,IAAI,2BAA2B,IAAI;kDACF,IAAI;GACnD,CAAC;IAEF,6EAA6E;IAC7E,iDAAiD;IACjD,MAAM,OAAO,GAAG,IAAI,QAAQ,CAC1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAChD,IAAI,CAO8B,CAAC;IAErC,+EAA+E;IAC/E,oDAAoD;IACnD,OAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC1C,OAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,OAAqD,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,OAAwC,EACxC,KAAmB,EACnB,IAAe;IAEf,MAAM,MAAM,GAAG,CAAC,GAAW,EAAS,EAAE;QACpC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,OAAO,GAAI,OAMiB,CAChC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,CAC/D,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scenarioRunner — the pure Exploration "scenarios as tests" oracle (M5).
|
|
3
|
+
*
|
|
4
|
+
* A scenario becomes a recorded test by carrying pinned `expectations`
|
|
5
|
+
* (requirements R29/R30/R34). This module replays the scenario ONCE at the final
|
|
6
|
+
* playhead via the pure `foldChapter`, then resolves each expectation by its
|
|
7
|
+
* stable `sliceId` (never a step index) and matches it against the fold result:
|
|
8
|
+
*
|
|
9
|
+
* - events → the events emitted by the pinned slice must match.
|
|
10
|
+
* - information → a specific Information instance's value (stored | read view)
|
|
11
|
+
* at the end of replay must match.
|
|
12
|
+
* - rejection → the pinned slice must produce a `rejected` runtime error
|
|
13
|
+
* (optionally matching a message) AND emit no events.
|
|
14
|
+
*
|
|
15
|
+
* The golden-master snapshot is deliberately NOT used — expectations are the sole
|
|
16
|
+
* correctness oracle (a chapter's flow may legitimately change; only the pins
|
|
17
|
+
* must hold). Verdict:
|
|
18
|
+
*
|
|
19
|
+
* pass — ≥1 expectation, all matched.
|
|
20
|
+
* broken — ≥1 expectation, at least one failed (mismatch OR structural: a
|
|
21
|
+
* dangling reference / handler threw / cascade exceeded at the pin).
|
|
22
|
+
* neutral — zero expectations (nothing asserted yet).
|
|
23
|
+
*
|
|
24
|
+
* This file is PURE and framework-free (no DOM/worker), so it is fully
|
|
25
|
+
* unit-testable — the same reason the fold lives in runtimeFold.ts. "Run all" is
|
|
26
|
+
* just `scenarios.map(runScenario)`.
|
|
27
|
+
*/
|
|
28
|
+
import { Chapter } from '../types/eventModel.js';
|
|
29
|
+
import { Scenario, ScenarioRunResult } from '../types/exploration.js';
|
|
30
|
+
import { TranspiledHandlers } from './runtimeFold.js';
|
|
31
|
+
/**
|
|
32
|
+
* Run one scenario as a test. Pure: `(chapter, scenario, handlers) → result`.
|
|
33
|
+
*
|
|
34
|
+
* `handlers` are pre-transpiled JS keyed by element id (same contract as the
|
|
35
|
+
* fold). Pass `{}` for the defaults-only path.
|
|
36
|
+
*
|
|
37
|
+
* Fold strategy:
|
|
38
|
+
* - events / rejection expectations → fold to the END (events accumulate; a
|
|
39
|
+
* rejection is an error that happened during that slice's execution regardless
|
|
40
|
+
* of later steps).
|
|
41
|
+
* - information expectations → fold to the step that CONTAINS the pinned slice,
|
|
42
|
+
* because state is cumulative: a value that was correct at step 2 may differ
|
|
43
|
+
* at step 5 due to later mutations. We want the state AT the pinned moment.
|
|
44
|
+
* Multiple information pins that share the same step index reuse one fold.
|
|
45
|
+
*/
|
|
46
|
+
export declare function runScenario(chapter: Chapter, scenario: Scenario, handlers?: TranspiledHandlers): ScenarioRunResult;
|
|
47
|
+
/** Run every scenario in a chapter (the chapter-level "Run all"). */
|
|
48
|
+
export declare function runAllScenarios(chapter: Chapter, scenarios: Scenario[], handlers?: TranspiledHandlers): ScenarioRunResult[];
|
|
49
|
+
//# sourceMappingURL=scenarioRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenarioRunner.d.ts","sourceRoot":"","sources":["../../src/playFunction/scenarioRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,OAAO,EAAW,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,QAAQ,EAER,iBAAiB,EAQlB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAe,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA4MnE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,kBAAuB,GAChC,iBAAiB,CA4FnB;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,GAAE,kBAAuB,GAChC,iBAAiB,EAAE,CAErB"}
|