@cotal-ai/lang 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +11 -0
  2. package/dist/engine/bridge.d.ts +71 -0
  3. package/dist/engine/bridge.d.ts.map +1 -0
  4. package/dist/engine/bridge.js +277 -0
  5. package/dist/engine/bridge.js.map +1 -0
  6. package/dist/engine/ctx.d.ts +140 -0
  7. package/dist/engine/ctx.d.ts.map +1 -0
  8. package/dist/engine/ctx.js +834 -0
  9. package/dist/engine/ctx.js.map +1 -0
  10. package/dist/engine/frame.d.ts +69 -0
  11. package/dist/engine/frame.d.ts.map +1 -0
  12. package/dist/engine/frame.js +105 -0
  13. package/dist/engine/frame.js.map +1 -0
  14. package/dist/engine/host.d.ts +77 -0
  15. package/dist/engine/host.d.ts.map +1 -0
  16. package/dist/engine/host.js +134 -0
  17. package/dist/engine/host.js.map +1 -0
  18. package/dist/engine/worker-entry.d.ts +26 -0
  19. package/dist/engine/worker-entry.d.ts.map +1 -0
  20. package/dist/engine/worker-entry.js +175 -0
  21. package/dist/engine/worker-entry.js.map +1 -0
  22. package/dist/engine/worker.d.ts +156 -0
  23. package/dist/engine/worker.d.ts.map +1 -0
  24. package/dist/engine/worker.js +123 -0
  25. package/dist/engine/worker.js.map +1 -0
  26. package/dist/errors.d.ts +44 -0
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +97 -0
  29. package/dist/errors.js.map +1 -1
  30. package/dist/index.d.ts +10 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +10 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/interpret.d.ts +7 -38
  35. package/dist/interpret.d.ts.map +1 -1
  36. package/dist/interpret.js +45 -1003
  37. package/dist/interpret.js.map +1 -1
  38. package/dist/journal.d.ts.map +1 -1
  39. package/dist/journal.js +75 -1
  40. package/dist/journal.js.map +1 -1
  41. package/dist/library.d.ts.map +1 -1
  42. package/dist/library.js +13 -1
  43. package/dist/library.js.map +1 -1
  44. package/dist/perform.d.ts +138 -0
  45. package/dist/perform.d.ts.map +1 -0
  46. package/dist/perform.js +1052 -0
  47. package/dist/perform.js.map +1 -0
  48. package/dist/pins.d.ts +28 -8
  49. package/dist/pins.d.ts.map +1 -1
  50. package/dist/pins.js +31 -11
  51. package/dist/pins.js.map +1 -1
  52. package/dist/sim.d.ts +15 -1
  53. package/dist/sim.d.ts.map +1 -1
  54. package/dist/sim.js.map +1 -1
  55. package/dist/transform/emit.d.ts +23 -0
  56. package/dist/transform/emit.d.ts.map +1 -0
  57. package/dist/transform/emit.js +934 -0
  58. package/dist/transform/emit.js.map +1 -0
  59. package/dist/transform/index.d.ts +34 -0
  60. package/dist/transform/index.d.ts.map +1 -0
  61. package/dist/transform/index.js +31 -0
  62. package/dist/transform/index.js.map +1 -0
  63. package/dist/transform/scope.d.ts +58 -0
  64. package/dist/transform/scope.d.ts.map +1 -0
  65. package/dist/transform/scope.js +500 -0
  66. package/dist/transform/scope.js.map +1 -0
  67. package/dist/transform/seam.d.ts +78 -0
  68. package/dist/transform/seam.d.ts.map +1 -0
  69. package/dist/transform/seam.js +111 -0
  70. package/dist/transform/seam.js.map +1 -0
  71. package/dist/values.d.ts +15 -0
  72. package/dist/values.d.ts.map +1 -1
  73. package/dist/values.js +79 -0
  74. package/dist/values.js.map +1 -1
  75. package/package.json +9 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../src/engine/ctx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * The engine's per-branch state, and the AsyncLocalStorage that carries it.
3
+ *
4
+ * The walker threads a `Frame` through every call because it owns every call. The engine does not:
5
+ * the program is native JavaScript inside a Compartment, and the only thing it hands the host is
6
+ * arguments. So the frame travels out-of-band, in an AsyncLocalStorage, and every seam member reads
7
+ * it from there.
8
+ *
9
+ * That this works at all is a measured property of the floor, not an assumption (measured here at
10
+ * ses@2.3.0 on node v26.7.0): a compartment shares the one locked-down realm's
11
+ * intrinsics, so its promises are the host's promises and ALS propagation is native. Two interleaved
12
+ * runs of the same compartment-evaluated program, each awaiting a host timer inside the seam, kept
13
+ * their own frames with no cross-contamination. Node's remaining documented loss cases are callback
14
+ * APIs and custom thenables, and a program value with its own callable `then` is exactly such a
15
+ * thenable, which is why the seam refuses one outright (`born`/`set`/`await`) rather than trusting
16
+ * the frame to survive it.
17
+ *
18
+ * `Signal` and `EngineFrame` are re-authored here rather than imported because the walker's are
19
+ * private to interpret.ts, which the engine does not edit. They are held to the walker's semantics
20
+ * by the differential suite, and the shared `performEffect` in perform.ts takes a STRUCTURAL frame
21
+ * (`EffectFrame`: `keys`, `clock`, `signal`) so the walker's Frame and this one both satisfy it
22
+ * without either importing the other.
23
+ */
24
+ import type { CancelSignal } from "../effects.js";
25
+ import type { RunClock } from "../journal.js";
26
+ import type { KeyScope, ScopeKind } from "../keys.js";
27
+ /**
28
+ * A branch's cancellation, in the walker's two degrees.
29
+ *
30
+ * `cancelled` is the law: a cancelled branch performs no NEW effect, and every effect boundary
31
+ * refuses it. `cutPure` is the stronger cut a scope applies to an arm that can no longer win, and it
32
+ * is observed only at a fuel yield. Both degrees flow to child signals, and a signal already
33
+ * cancelled softly can be escalated.
34
+ */
35
+ export declare class Signal implements CancelSignal {
36
+ cancelled: boolean;
37
+ cutPure: boolean;
38
+ reason?: string;
39
+ private readonly listeners;
40
+ onCancel(fn: (reason: string, cutPure: boolean) => void): void;
41
+ cancel(reason: string, opts?: {
42
+ readonly cutPure: boolean;
43
+ }): void;
44
+ child(): Signal;
45
+ }
46
+ /** One branch of execution: its own key namespace, its own clock, its own cancellation signal. */
47
+ export declare class EngineFrame {
48
+ readonly keys: KeyScope;
49
+ readonly clock: RunClock;
50
+ readonly signal: Signal;
51
+ /** How many CONCURRENT scopes deep. L2032's runtime half; `born` stamps with it. */
52
+ readonly depth: number;
53
+ constructor(keys: KeyScope, clock: RunClock, signal: Signal,
54
+ /** How many CONCURRENT scopes deep. L2032's runtime half; `born` stamps with it. */
55
+ depth?: number);
56
+ branch(kind: ScopeKind, name: string | null, occurrence: number, branchKey: string): EngineFrame;
57
+ }
58
+ /** Run `body` with `frame` as the ambient frame. Every seam call inside it reads that frame. */
59
+ export declare function withFrame<T>(frame: EngineFrame, body: () => T): T;
60
+ /**
61
+ * The ambient frame, or a loud failure.
62
+ *
63
+ * No fallback frame, deliberately. A seam call with no frame means the program is running outside
64
+ * any branch (host machinery invoked it), and inventing a root frame there would give it a key
65
+ * namespace, a clock and a depth that belong to no branch, which is how a step lands in the wrong
66
+ * place in the journal instead of failing.
67
+ */
68
+ export declare function currentFrame(): EngineFrame;
69
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/engine/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;GAOG;AACH,qBAAa,MAAO,YAAW,YAAY;IACzC,SAAS,UAAS;IAClB,OAAO,UAAS;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;IAEhF,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAYlE,KAAK,IAAI,MAAM;CAMhB;AAED,kGAAkG;AAClG,qBAAa,WAAW;IAEpB,QAAQ,CAAC,IAAI,EAAE,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAJb,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM;IACvB,oFAAoF;IAC3E,KAAK,GAAE,MAAU;IAG5B,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;CAUjG;AAID,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,WAAW,CAS1C"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The engine's per-branch state, and the AsyncLocalStorage that carries it.
3
+ *
4
+ * The walker threads a `Frame` through every call because it owns every call. The engine does not:
5
+ * the program is native JavaScript inside a Compartment, and the only thing it hands the host is
6
+ * arguments. So the frame travels out-of-band, in an AsyncLocalStorage, and every seam member reads
7
+ * it from there.
8
+ *
9
+ * That this works at all is a measured property of the floor, not an assumption (measured here at
10
+ * ses@2.3.0 on node v26.7.0): a compartment shares the one locked-down realm's
11
+ * intrinsics, so its promises are the host's promises and ALS propagation is native. Two interleaved
12
+ * runs of the same compartment-evaluated program, each awaiting a host timer inside the seam, kept
13
+ * their own frames with no cross-contamination. Node's remaining documented loss cases are callback
14
+ * APIs and custom thenables, and a program value with its own callable `then` is exactly such a
15
+ * thenable, which is why the seam refuses one outright (`born`/`set`/`await`) rather than trusting
16
+ * the frame to survive it.
17
+ *
18
+ * `Signal` and `EngineFrame` are re-authored here rather than imported because the walker's are
19
+ * private to interpret.ts, which the engine does not edit. They are held to the walker's semantics
20
+ * by the differential suite, and the shared `performEffect` in perform.ts takes a STRUCTURAL frame
21
+ * (`EffectFrame`: `keys`, `clock`, `signal`) so the walker's Frame and this one both satisfy it
22
+ * without either importing the other.
23
+ */
24
+ import { AsyncLocalStorage } from "node:async_hooks";
25
+ /**
26
+ * A branch's cancellation, in the walker's two degrees.
27
+ *
28
+ * `cancelled` is the law: a cancelled branch performs no NEW effect, and every effect boundary
29
+ * refuses it. `cutPure` is the stronger cut a scope applies to an arm that can no longer win, and it
30
+ * is observed only at a fuel yield. Both degrees flow to child signals, and a signal already
31
+ * cancelled softly can be escalated.
32
+ */
33
+ export class Signal {
34
+ cancelled = false;
35
+ cutPure = false;
36
+ reason;
37
+ listeners = [];
38
+ onCancel(fn) {
39
+ this.listeners.push(fn);
40
+ }
41
+ cancel(reason, opts) {
42
+ const cut = opts?.cutPure ?? true;
43
+ const first = !this.cancelled;
44
+ if (first) {
45
+ this.cancelled = true;
46
+ this.reason = reason;
47
+ }
48
+ const escalated = cut && !this.cutPure;
49
+ if (escalated)
50
+ this.cutPure = true;
51
+ if (first || escalated)
52
+ for (const l of this.listeners)
53
+ l(reason, this.cutPure);
54
+ }
55
+ child() {
56
+ const s = new Signal();
57
+ if (this.cancelled)
58
+ s.cancel(this.reason ?? "parent cancelled", { cutPure: this.cutPure });
59
+ this.onCancel((r, cut) => s.cancel(r, { cutPure: cut }));
60
+ return s;
61
+ }
62
+ }
63
+ /** One branch of execution: its own key namespace, its own clock, its own cancellation signal. */
64
+ export class EngineFrame {
65
+ keys;
66
+ clock;
67
+ signal;
68
+ depth;
69
+ constructor(keys, clock, signal,
70
+ /** How many CONCURRENT scopes deep. L2032's runtime half; `born` stamps with it. */
71
+ depth = 0) {
72
+ this.keys = keys;
73
+ this.clock = clock;
74
+ this.signal = signal;
75
+ this.depth = depth;
76
+ }
77
+ branch(kind, name, occurrence, branchKey) {
78
+ return new EngineFrame(this.keys.branch(kind, name, occurrence, branchKey), this.clock.fork(), this.signal.child(),
79
+ // `conclave` opens a scope but not a RACE: one body, nothing running beside it, so a write
80
+ // from inside it is as ordered as a write anywhere else and the depth does not move.
81
+ kind === "conclave" ? this.depth : this.depth + 1);
82
+ }
83
+ }
84
+ const FRAMES = new AsyncLocalStorage();
85
+ /** Run `body` with `frame` as the ambient frame. Every seam call inside it reads that frame. */
86
+ export function withFrame(frame, body) {
87
+ return FRAMES.run(frame, body);
88
+ }
89
+ /**
90
+ * The ambient frame, or a loud failure.
91
+ *
92
+ * No fallback frame, deliberately. A seam call with no frame means the program is running outside
93
+ * any branch (host machinery invoked it), and inventing a root frame there would give it a key
94
+ * namespace, a clock and a depth that belong to no branch, which is how a step lands in the wrong
95
+ * place in the journal instead of failing.
96
+ */
97
+ export function currentFrame() {
98
+ const f = FRAMES.getStore();
99
+ if (f === undefined) {
100
+ throw new Error("cotal-lang engine: a seam call ran with no frame. The program was reached from outside a branch, " +
101
+ "so there is no key namespace, clock or depth to charge it to.");
102
+ }
103
+ return f;
104
+ }
105
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/engine/frame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Running a transformed program on the engine, in this process.
3
+ *
4
+ * Same signature and same `RunResult` as the walker's `run()`, so the differential suite can call
5
+ * one and then the other with nothing between them but the engine under test. Everything a run is
6
+ * pinned by (the source's hash, the seed, the logical epoch, the three limits) is resolved by the
7
+ * SAME functions the walker resolves them with, because a second copy of that logic is a second
8
+ * answer to "which run is this".
9
+ *
10
+ * THERE IS NO DEFAULT EVALUATOR, and that is the security posture rather than an inconvenience.
11
+ * Turning a module string into a function is where confinement is either applied or lost, so the
12
+ * caller supplies it: the differential suite hands in a plain evaluator because it is comparing two
13
+ * engines on validator-accepted source in a test process, and the worker hands in one that evaluates
14
+ * inside a locked-down Compartment with zero endowments. A default here would be an unconfined
15
+ * production path that nobody chose and no reviewer would see.
16
+ */
17
+ import { Journal } from "../journal.js";
18
+ import type { RunOptions, RunResult } from "../interpret.js";
19
+ import { type EngineCtx } from "./ctx.js";
20
+ /**
21
+ * The node below which this engine refuses to start, and the measurement the number comes from.
22
+ *
23
+ * The floor was first set at node 24 for AsyncContextFrame ALS. PROBED, that reason does not
24
+ * reproduce on any path this engine takes, and the probes are the reason this constant is 22:
25
+ * ALS on node 22.23.2 9 of 9 shapes propagate - plain await, across the setTimeout macrotask
26
+ * the fuel yield uses, both arms of a Promise.all, after a CUSTOM
27
+ * THENABLE, across nextTick and setImmediate, and a nested run that
28
+ * restores its parent. Identical on 26.7.0 and on 22 with
29
+ * --experimental-async-context-frame.
30
+ * the seam on 22 the engine suite reaches the same checks it reaches on 26 until it
31
+ * asks for a worker, below.
32
+ * the WORKER from `dist` on node 22: identical answer, identical confinement (Date.now throws,
33
+ * `process` undefined, 0 own globals), identical programHash, 74ms cold
34
+ * against 51ms.
35
+ * So NOTHING IN THE RUNTIME NEEDS 24, and a refusal at 24 would refuse environments this engine is
36
+ * measured to work in. What fails on 22 is only the DEV path: a worker thread there does not apply
37
+ * the parent's ESM loader hooks, so a `.ts` entry's own `../journal.js` is ERR_MODULE_NOT_FOUND -
38
+ * measured three ways, the `.js` spelling, the `.ts` spelling, and an explicit
39
+ * `execArgv: ["--import", "tsx"]` on the Worker, none of which changes it. That is not a runtime
40
+ * bound and is not answered here: the Worker entry is an EXPLICIT INPUT of `runInWorker`, and the
41
+ * engine suite's worker leg names a built artifact. See `worker.ts`.
42
+ *
43
+ * The number is a floor rather than an `engines` line because a package manager's warning is not a
44
+ * refusal, and an engine whose frame plumbing rests on AsyncLocalStorage will not run on untested
45
+ * ground and hope. It matches `engines` today; when a real RUNTIME reason to raise it appears, the
46
+ * constant moves and the reason is written beside these.
47
+ */
48
+ export declare const NODE_FLOOR = 22;
49
+ /**
50
+ * Refuse a node below the floor, by MAJOR version.
51
+ *
52
+ * Pure in its argument so a suite can ask it about a version it is not running on; `runOnEngine`
53
+ * calls it with the live one, which is the only call site.
54
+ */
55
+ export declare function assertNodeFloor(version: string): void;
56
+ /** What the transform emits: a closed expression taking the context as its call argument. */
57
+ export type ModuleFactory = (ctx: EngineCtx) => () => Promise<unknown>;
58
+ export interface EngineRunOptions extends RunOptions {
59
+ /**
60
+ * Turn the emitted module string into its factory. See the note above: no default, on purpose.
61
+ * It must return the value of a CLOSED function expression with zero free identifiers.
62
+ */
63
+ readonly evaluate: (module: string) => ModuleFactory;
64
+ }
65
+ /**
66
+ * Run a transformed program.
67
+ *
68
+ * `source` is the original program: it is validated here and its hash is the run's identity, exactly
69
+ * as on the walker. `module` is the transform's output for that source. They are both taken because
70
+ * the run is pinned to the SOURCE (a run record names the program an author wrote, not the string a
71
+ * compiler produced), and because the validator's refusals must arrive before anything is journalled,
72
+ * whichever engine is about to execute.
73
+ */
74
+ export declare function runOnEngine(source: string, module: string, options: EngineRunOptions): Promise<RunResult>;
75
+ /** Re-run a transformed program against an existing journal. Journalled effects return recorded results. */
76
+ export declare function resumeOnEngine(source: string, module: string, journal: Journal, options: Omit<EngineRunOptions, "journal">): Promise<RunResult>;
77
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/engine/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQrD;AAED,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvE,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;CACtD;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmE/G;AAED,4GAA4G;AAC5G,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GACzC,OAAO,CAAC,SAAS,CAAC,CAGpB"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Running a transformed program on the engine, in this process.
3
+ *
4
+ * Same signature and same `RunResult` as the walker's `run()`, so the differential suite can call
5
+ * one and then the other with nothing between them but the engine under test. Everything a run is
6
+ * pinned by (the source's hash, the seed, the logical epoch, the three limits) is resolved by the
7
+ * SAME functions the walker resolves them with, because a second copy of that logic is a second
8
+ * answer to "which run is this".
9
+ *
10
+ * THERE IS NO DEFAULT EVALUATOR, and that is the security posture rather than an inconvenience.
11
+ * Turning a module string into a function is where confinement is either applied or lost, so the
12
+ * caller supplies it: the differential suite hands in a plain evaluator because it is comparing two
13
+ * engines on validator-accepted source in a test process, and the worker hands in one that evaluates
14
+ * inside a locked-down Compartment with zero endowments. A default here would be an unconfined
15
+ * production path that nobody chose and no reviewer would see.
16
+ */
17
+ import { validate } from "../grammar.js";
18
+ import { RuntimeFault } from "../errors.js";
19
+ import { Journal, RunClock } from "../journal.js";
20
+ import { KeyScope, programHashOf } from "../keys.js";
21
+ import { bindPins, ENGINE_LANGUAGE_VERSION, resolvePins } from "../pins.js";
22
+ import { EngineFault, createEngine } from "./ctx.js";
23
+ import { EngineFrame, Signal, withFrame } from "./frame.js";
24
+ /**
25
+ * The node below which this engine refuses to start, and the measurement the number comes from.
26
+ *
27
+ * The floor was first set at node 24 for AsyncContextFrame ALS. PROBED, that reason does not
28
+ * reproduce on any path this engine takes, and the probes are the reason this constant is 22:
29
+ * ALS on node 22.23.2 9 of 9 shapes propagate - plain await, across the setTimeout macrotask
30
+ * the fuel yield uses, both arms of a Promise.all, after a CUSTOM
31
+ * THENABLE, across nextTick and setImmediate, and a nested run that
32
+ * restores its parent. Identical on 26.7.0 and on 22 with
33
+ * --experimental-async-context-frame.
34
+ * the seam on 22 the engine suite reaches the same checks it reaches on 26 until it
35
+ * asks for a worker, below.
36
+ * the WORKER from `dist` on node 22: identical answer, identical confinement (Date.now throws,
37
+ * `process` undefined, 0 own globals), identical programHash, 74ms cold
38
+ * against 51ms.
39
+ * So NOTHING IN THE RUNTIME NEEDS 24, and a refusal at 24 would refuse environments this engine is
40
+ * measured to work in. What fails on 22 is only the DEV path: a worker thread there does not apply
41
+ * the parent's ESM loader hooks, so a `.ts` entry's own `../journal.js` is ERR_MODULE_NOT_FOUND -
42
+ * measured three ways, the `.js` spelling, the `.ts` spelling, and an explicit
43
+ * `execArgv: ["--import", "tsx"]` on the Worker, none of which changes it. That is not a runtime
44
+ * bound and is not answered here: the Worker entry is an EXPLICIT INPUT of `runInWorker`, and the
45
+ * engine suite's worker leg names a built artifact. See `worker.ts`.
46
+ *
47
+ * The number is a floor rather than an `engines` line because a package manager's warning is not a
48
+ * refusal, and an engine whose frame plumbing rests on AsyncLocalStorage will not run on untested
49
+ * ground and hope. It matches `engines` today; when a real RUNTIME reason to raise it appears, the
50
+ * constant moves and the reason is written beside these.
51
+ */
52
+ export const NODE_FLOOR = 22;
53
+ /**
54
+ * Refuse a node below the floor, by MAJOR version.
55
+ *
56
+ * Pure in its argument so a suite can ask it about a version it is not running on; `runOnEngine`
57
+ * calls it with the live one, which is the only call site.
58
+ */
59
+ export function assertNodeFloor(version) {
60
+ const major = Number(version.split(".")[0]);
61
+ if (Number.isFinite(major) && major < NODE_FLOOR) {
62
+ throw new RuntimeFault("L1000", `the cotal-lang engine requires node ${NODE_FLOOR} or newer and this is node ${version}. That is the floor this repo declares it supports and the lowest this engine was measured on; below it nothing here has been tested, and an engine whose frame plumbing rests on AsyncLocalStorage will not run on untested ground and hope.`);
63
+ }
64
+ }
65
+ /**
66
+ * Run a transformed program.
67
+ *
68
+ * `source` is the original program: it is validated here and its hash is the run's identity, exactly
69
+ * as on the walker. `module` is the transform's output for that source. They are both taken because
70
+ * the run is pinned to the SOURCE (a run record names the program an author wrote, not the string a
71
+ * compiler produced), and because the validator's refusals must arrive before anything is journalled,
72
+ * whichever engine is about to execute.
73
+ */
74
+ export async function runOnEngine(source, module, options) {
75
+ // BEFORE ANYTHING, including the validator: a run that cannot be trusted to carry its frame is not
76
+ // a run whose refusals mean anything either.
77
+ assertNodeFloor(process.versions.node);
78
+ validate(source, options.file);
79
+ const programHash = programHashOf(source);
80
+ // A RESUME MAY NOT DECLINE TO SAY WHICH RUN IT IS RESUMING. Re-resolving the pins for a run handed
81
+ // history but no pins is a different run wearing the same journal: the clock moves to the resuming
82
+ // host and the seed falls back to the runId default, so both the logical epoch and every pure draw
83
+ // change, and nothing refuses, because nothing can: neither is a recorded fact a replay could
84
+ // diverge on. A journal with NO entries is a fresh run being handed a store, and stays allowed.
85
+ if (options.pins === undefined && options.journal !== undefined && options.journal.entries().length > 0) {
86
+ throw new RuntimeFault("L5021", `run ${options.runId} was handed a journal with ${options.journal.entries().length} recorded step(s) but no pins. The pins are what decide `
87
+ + `the run's logical epoch and its seed, so resolving them again here would make this a different run against a journal that was not `
88
+ + `written for it — silently, because neither the clock nor a pure draw is a recorded fact the replay could diverge on.\n\n`
89
+ + `Options\n pass the pins from the run record\n start a fresh run instead of resuming this journal`);
90
+ }
91
+ const pins = options.pins !== undefined
92
+ ? bindPins(options.pins, options, ENGINE_LANGUAGE_VERSION)
93
+ : resolvePins(options, options.handler.now(), ENGINE_LANGUAGE_VERSION);
94
+ // The journal and the run must be the same run: request ids derive from the runId while recorded
95
+ // results come from the journal, so a mismatch submits work under one identity and resolves it
96
+ // against another's history.
97
+ if (options.journal !== undefined && options.journal.run !== options.runId) {
98
+ throw new RuntimeFault("L5011", `this run is ${options.runId} but it was handed the journal of run ${options.journal.run}; a run resumes only from its own journal`);
99
+ }
100
+ const journal = options.journal ?? new Journal({ run: options.runId });
101
+ const engine = createEngine({
102
+ runId: options.runId,
103
+ programHash,
104
+ journal,
105
+ handler: options.handler,
106
+ pins,
107
+ ...(options.onLog !== undefined ? { onLog: options.onLog } : {}),
108
+ ...(options.shouldStop !== undefined ? { shouldStop: options.shouldStop } : {}),
109
+ });
110
+ // The run clock starts at the run's LOGICAL epoch, not at this host's clock: a run resumed on
111
+ // another machine hours later must see the same `now()` before its first effect as the run that
112
+ // wrote the journal, or the branch it takes is a property of when it was resumed.
113
+ const frame = new EngineFrame(new KeyScope(), new RunClock(pins.startedAt), new Signal());
114
+ const factory = options.evaluate(module);
115
+ // THE RUN BOUNDARY IS THE SECOND PLACE A NATIVE ReferenceError CAN SURFACE - the first is an
116
+ // emitted catch, and `caught` refuses it there. A program with no `try` around the bad read has
117
+ // nothing to route it through, so it arrives here, and here it must not look like a program error
118
+ // either. See `EngineFault`: zero free identifiers means this can only be the engine's own bug.
119
+ const value = await withFrame(frame, async () => {
120
+ try {
121
+ return await factory(engine.ctx)();
122
+ }
123
+ catch (e) {
124
+ throw e instanceof ReferenceError ? new EngineFault(e) : e;
125
+ }
126
+ });
127
+ return { value, journal, programHash, pins, steps: engine.steps() };
128
+ }
129
+ /** Re-run a transformed program against an existing journal. Journalled effects return recorded results. */
130
+ export async function resumeOnEngine(source, module, journal, options) {
131
+ journal.resetConsumed();
132
+ return await runOnEngine(source, module, { ...options, journal });
133
+ }
134
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/engine/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Inside the thread: lockdown, one Compartment, and the run.
3
+ *
4
+ * THIS FILE IS THE CONFINEMENT. `lockdown()` runs ONCE, here, at module load and before anything of
5
+ * the run exists - it is irreversible and realm-wide, so it belongs at the top of a realm nobody
6
+ * else owns. Each run then gets a Compartment with ZERO ENDOWMENTS and the transform's module is
7
+ * evaluated in it; the context is the CALL ARGUMENT, not a global, so the program's
8
+ * `globalThis` is empty and the seam is a value it was handed rather than a name it can reach.
9
+ *
10
+ * MEASURED HERE, at ses@2.3.0 on node v26.7.0, rather than assumed:
11
+ * inside a Compartment `Date.now()` and `Math.random()` THROW in secure mode; `process` is
12
+ * undefined; `globalThis` has 0 own keys; and
13
+ * `(function(){}).constructor("return typeof process")()` throws
14
+ * "Function.prototype.constructor is not a valid constructor"
15
+ * confinement, not hiding `({}).constructor === Object` is still true, deliberately: the program
16
+ * shares the realm's intrinsics, it just cannot reach out of it
17
+ * the START compartment KEEPS Date.now, Math.random and process - which is what lets the host
18
+ * half of this thread (the journal, the effect path, the handler) work
19
+ * normally around a program that cannot touch any of them
20
+ *
21
+ * WHAT IS NOT HERE, on purpose: no wall-clock timeout, no `terminate()` on a deadline. A thread
22
+ * killed mid-effect leaves a journal saying a step is pending and nothing that can settle it. The
23
+ * step budget (L4013) and the shared stop flag are the only two things that end a run.
24
+ */
25
+ import "ses";
26
+ //# sourceMappingURL=worker-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-entry.d.ts","sourceRoot":"","sources":["../../src/engine/worker-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,CAAC"}