@cotal-ai/runtime 0.24.0 → 0.26.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.
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The version-2 entry for the driver's engine table: a run on the compiled engine, hosted.
3
+ *
4
+ * What this file owns is exactly the three decisions the engine leaves to its host, and nothing
5
+ * the engine already decided:
6
+ *
7
+ * - THE TRANSFORM STEP. The driver holds the author's source (a run record names the program an
8
+ * author wrote), so the module the engine executes is produced here, per attempt, by the pure
9
+ * `transform`. Nothing is cached: the transform re-validates, and a cached module would be a
10
+ * second answer to "what does this source compile to" with no way to notice the disagreement.
11
+ *
12
+ * - THE EVALUATOR CHOICE, made by naming the worker entry and refusing every alternative. The
13
+ * entry is the compiled `worker-entry.js` of the installed `@cotal-ai/lang` — the file whose
14
+ * `lockdown()` and zero-endowment Compartment the engine suite grades — resolved through the
15
+ * package's own exports map. There is no in-process route here on purpose: evaluating the
16
+ * module in this process would either lock down the daemon's own realm or skip confinement,
17
+ * and both are decisions nobody made. A missing artifact is a loud refusal naming the build
18
+ * step, never a quiet fall back to the walker.
19
+ *
20
+ * - WHERE THE EFFECTS LIVE. The driver's handler is a live object (sockets, a mesh client, a
21
+ * lease-bound appender), so the run uses the BRIDGED route: handler and durable store stay in
22
+ * this process, the thread forwards the seam over a MessagePort, and no credential enters the
23
+ * isolate that holds the program. The pending-entry-durable-before-the-effect ordering is the
24
+ * store's own await, unchanged, because the bridge preserves the async append contract.
25
+ *
26
+ * The driver's outcome contract is the walker's, so a failure that crosses the thread boundary is
27
+ * rehydrated into the class `drive()` grades: L5010 back into `JournalAppendRejected` (from the
28
+ * store failure this process itself just witnessed — the thread only reflected it), L5012 back
29
+ * into `RunReleased`, and everything else into an error carrying the same name, code and message
30
+ * it failed with inside the thread.
31
+ */
32
+ import { type EffectHandler, type JournalEntry, type JournalStore, type RunPins, type RunResult } from "@cotal-ai/lang";
33
+ export interface EngineHostRequest {
34
+ readonly source: string;
35
+ readonly runId: string;
36
+ readonly pins: RunPins;
37
+ readonly handler: EffectHandler;
38
+ readonly store: JournalStore;
39
+ /** The activated prefix: recorded entries for a resume, empty for a fresh run. */
40
+ readonly entries: readonly JournalEntry[];
41
+ readonly shouldStop: () => string | undefined;
42
+ readonly file?: string;
43
+ readonly seed?: string;
44
+ readonly effectCeiling?: number;
45
+ readonly stepBudget?: number;
46
+ }
47
+ /**
48
+ * The compiled worker entry of the installed `@cotal-ai/lang`, and the refusal when it is absent.
49
+ *
50
+ * `import.meta.resolve` answers from the exports map without touching the disk, so existence is
51
+ * checked here: in this repo the artifact exists only after `pnpm --filter @cotal-ai/lang
52
+ * build:emit`, and a driver that cannot name a confined evaluator does not get to invent one.
53
+ */
54
+ export declare function resolveWorkerEntry(): URL;
55
+ /** Run or resume a program on the compiled engine, with the walker's `RunResult`. */
56
+ export declare function runOnHostedEngine(req: EngineHostRequest): Promise<RunResult>;
57
+ //# sourceMappingURL=engine-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-host.d.ts","sourceRoot":"","sources":["../src/engine-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAC;AAoBxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAUxC;AAqDD,qFAAqF;AACrF,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAsElF"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * The version-2 entry for the driver's engine table: a run on the compiled engine, hosted.
3
+ *
4
+ * What this file owns is exactly the three decisions the engine leaves to its host, and nothing
5
+ * the engine already decided:
6
+ *
7
+ * - THE TRANSFORM STEP. The driver holds the author's source (a run record names the program an
8
+ * author wrote), so the module the engine executes is produced here, per attempt, by the pure
9
+ * `transform`. Nothing is cached: the transform re-validates, and a cached module would be a
10
+ * second answer to "what does this source compile to" with no way to notice the disagreement.
11
+ *
12
+ * - THE EVALUATOR CHOICE, made by naming the worker entry and refusing every alternative. The
13
+ * entry is the compiled `worker-entry.js` of the installed `@cotal-ai/lang` — the file whose
14
+ * `lockdown()` and zero-endowment Compartment the engine suite grades — resolved through the
15
+ * package's own exports map. There is no in-process route here on purpose: evaluating the
16
+ * module in this process would either lock down the daemon's own realm or skip confinement,
17
+ * and both are decisions nobody made. A missing artifact is a loud refusal naming the build
18
+ * step, never a quiet fall back to the walker.
19
+ *
20
+ * - WHERE THE EFFECTS LIVE. The driver's handler is a live object (sockets, a mesh client, a
21
+ * lease-bound appender), so the run uses the BRIDGED route: handler and durable store stay in
22
+ * this process, the thread forwards the seam over a MessagePort, and no credential enters the
23
+ * isolate that holds the program. The pending-entry-durable-before-the-effect ordering is the
24
+ * store's own await, unchanged, because the bridge preserves the async append contract.
25
+ *
26
+ * The driver's outcome contract is the walker's, so a failure that crosses the thread boundary is
27
+ * rehydrated into the class `drive()` grades: L5010 back into `JournalAppendRejected` (from the
28
+ * store failure this process itself just witnessed — the thread only reflected it), L5012 back
29
+ * into `RunReleased`, and everything else into an error carrying the same name, code and message
30
+ * it failed with inside the thread.
31
+ */
32
+ import { existsSync } from "node:fs";
33
+ import { fileURLToPath } from "node:url";
34
+ import { EffectError, Journal, JournalAppendRejected, RunReleased, assertNodeFloor, journalEntryKeyString, runInWorker, transform, } from "@cotal-ai/lang";
35
+ /**
36
+ * How often the host polls its own stop conditions (work horizon, pause) with NO bridge traffic to
37
+ * ride on. The per-effect granularity the walker has does not come from this timer: every effect is
38
+ * bracketed by durable appends, and the store below asks `shouldStop` on each one, so the flag is
39
+ * current at every effect boundary the thread checks it at. What only the timer covers is a stop
40
+ * with no append coming to carry it: one arriving in the worker's boot window, after the upfront
41
+ * sample below but before the thread's first pre-effect check (measured: without the timer, one
42
+ * effect the stop should have prevented is dispatched), and one arriving while an effect is parked
43
+ * in this process for hours. The timer PUBLISHES; the run honours a published stop at its next
44
+ * pre-effect check, which is `shouldStop`'s one reader in the language, on both engines. Two
45
+ * consequences follow and are the language's own properties rather than this host's: a stop during
46
+ * a long PURE stretch waits for the next effect boundary or the fuel refusal (L4013), and a stop
47
+ * that lands after the run's LAST pre-effect check is published but never observed, on the walker
48
+ * exactly as here (measured, both engines). A stop read at the fuel yield would be a change to
49
+ * both engines, not to this host.
50
+ */
51
+ const STOP_POLL_MS = 100;
52
+ /**
53
+ * The compiled worker entry of the installed `@cotal-ai/lang`, and the refusal when it is absent.
54
+ *
55
+ * `import.meta.resolve` answers from the exports map without touching the disk, so existence is
56
+ * checked here: in this repo the artifact exists only after `pnpm --filter @cotal-ai/lang
57
+ * build:emit`, and a driver that cannot name a confined evaluator does not get to invent one.
58
+ */
59
+ export function resolveWorkerEntry() {
60
+ const url = new URL(import.meta.resolve("@cotal-ai/lang/engine/worker-entry"));
61
+ if (!existsSync(fileURLToPath(url))) {
62
+ throw new Error(`the compiled engine's worker entry is not built: ${fileURLToPath(url)} does not exist. ` +
63
+ `The version-2 engine runs only the compiled artifact (its thread cannot load TypeScript sources); ` +
64
+ `build it with \`pnpm --filter @cotal-ai/lang build:emit\`.`);
65
+ }
66
+ return url;
67
+ }
68
+ /**
69
+ * A store wrapper that remembers the failure it threw, so the class the thread reports back as
70
+ * L5010 can be rebuilt from the facts THIS process witnessed rather than parsed out of a message.
71
+ */
72
+ class WitnessedStore {
73
+ inner;
74
+ beforeAppend;
75
+ failure;
76
+ /** `beforeAppend` is the stop check riding the append: every effect begins with a pending append
77
+ * and ends with a settled one, so asking here is the walker's own between-effects granularity. */
78
+ constructor(inner, beforeAppend) {
79
+ this.inner = inner;
80
+ this.beforeAppend = beforeAppend;
81
+ }
82
+ async append(entry) {
83
+ this.beforeAppend();
84
+ try {
85
+ await this.inner.append(entry);
86
+ }
87
+ catch (e) {
88
+ this.failure = { entry, reason: e };
89
+ throw e;
90
+ }
91
+ }
92
+ }
93
+ function rehydrate(failed, store) {
94
+ if (failed.code === "L5010") {
95
+ // The append that failed happened in this process; the thread's L5010 is its reflection. A
96
+ // reflection with no witnessed failure behind it means the two sides disagree about what
97
+ // happened, and that is said rather than papered over with a parsed message.
98
+ if (store.failure === undefined) {
99
+ return new Error(`the engine thread reported L5010 (journal append rejected) but this host's store recorded no failed append; the run cannot be graded: ${failed.message}`);
100
+ }
101
+ return new JournalAppendRejected(journalEntryKeyString(store.failure.entry), store.failure.entry.state, store.failure.reason);
102
+ }
103
+ if (failed.code === "L5012") {
104
+ return new RunReleased(failed.reason ?? failed.message);
105
+ }
106
+ // An effect failure carries its domain across whole, because callers branch on `kind` exactly as
107
+ // they do when the walker raises the same class in-process.
108
+ if (failed.code !== undefined && failed.kind !== undefined) {
109
+ return new EffectError(failed.code, failed.kind, failed.message, failed.detail);
110
+ }
111
+ const e = new Error(failed.message);
112
+ e.name = failed.name;
113
+ if (failed.code !== undefined)
114
+ e.code = failed.code;
115
+ return e;
116
+ }
117
+ /** Run or resume a program on the compiled engine, with the walker's `RunResult`. */
118
+ export async function runOnHostedEngine(req) {
119
+ // The floor the engine itself enforces in the thread, asked here first: a driver below it must
120
+ // refuse BEFORE it stamps a fresh run with a version it cannot execute.
121
+ assertNodeFloor(process.versions.node);
122
+ const entry = resolveWorkerEntry();
123
+ const { module } = transform(req.source, req.file !== undefined ? { file: req.file } : {});
124
+ // Assigned right after the worker exists; every append comes FROM that worker, so no check can
125
+ // fire before the assignment. Publishing is idempotent and the reason is read where the run has
126
+ // always read it.
127
+ let publish = () => { };
128
+ const store = new WitnessedStore(req.store, () => {
129
+ const reason = req.shouldStop();
130
+ if (reason !== undefined)
131
+ publish(reason);
132
+ });
133
+ const worker = runInWorker({
134
+ source: req.source,
135
+ module,
136
+ runId: req.runId,
137
+ handler: "bridged",
138
+ pins: req.pins,
139
+ entries: req.entries,
140
+ ...(req.file !== undefined ? { file: req.file } : {}),
141
+ ...(req.seed !== undefined ? { seed: req.seed } : {}),
142
+ ...(req.effectCeiling !== undefined ? { effectCeiling: req.effectCeiling } : {}),
143
+ ...(req.stepBudget !== undefined ? { stepBudget: req.stepBudget } : {}),
144
+ }, { entry, bridge: { handler: req.handler, store } });
145
+ publish = (reason) => worker.stop(reason);
146
+ // A horizon that passed before the run began is published before the thread's first pre-effect
147
+ // check, so the run stops with ZERO effects — the same answer the walker gives.
148
+ const already = req.shouldStop();
149
+ if (already !== undefined)
150
+ worker.stop(already);
151
+ // The host's stop conditions with no bridge traffic to ride on; see STOP_POLL_MS. The callback
152
+ // runs on the timer's own stack, where a throwing `shouldStop` would otherwise become an
153
+ // UNCAUGHT exception that bypasses every catch the driver holds and leaves the worker running -
154
+ // the walker route surfaces the same throw inside the driver's try, so this route must answer
155
+ // the same way: stop the run, and re-raise the fault from the await below, on the caller's
156
+ // stack. (The same throw at an append boundary already answers honestly: the store's
157
+ // before-append check rejects that append, and the run is graded through the L5010 path.)
158
+ let pollFault;
159
+ const poll = setInterval(() => {
160
+ try {
161
+ const reason = req.shouldStop();
162
+ if (reason !== undefined)
163
+ worker.stop(reason);
164
+ }
165
+ catch (e) {
166
+ pollFault = e ?? new Error("the host's stop check threw a falsy value");
167
+ clearInterval(poll);
168
+ worker.stop("the host's stop check itself threw; the driver re-raises the fault");
169
+ }
170
+ }, STOP_POLL_MS);
171
+ try {
172
+ const result = await worker.done;
173
+ if (pollFault !== undefined)
174
+ throw pollFault;
175
+ if (!result.ok)
176
+ throw rehydrate(result, store);
177
+ return {
178
+ value: result.value,
179
+ journal: new Journal({ run: req.runId, entries: result.entries }),
180
+ programHash: result.programHash,
181
+ pins: result.pins,
182
+ steps: result.steps,
183
+ };
184
+ }
185
+ finally {
186
+ clearInterval(poll);
187
+ }
188
+ }
189
+ //# sourceMappingURL=engine-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-host.js","sourceRoot":"","sources":["../src/engine-host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-driver.d.ts","sourceRoot":"","sources":["../src/run-driver.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAqB;IAEhC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAOD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5D,0FAA0F;AAC1F,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED;sGACsG;AACtG,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,YAAY,CAAC,CAEvB"}
1
+ {"version":3,"file":"run-driver.d.ts","sourceRoot":"","sources":["../src/run-driver.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAWL,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAyHxB;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAqB;IAEhC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAOD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5D,0FAA0F;AAC1F,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED;sGACsG;AACtG,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,YAAY,CAAC,CAEvB"}
@@ -25,8 +25,87 @@
25
25
  * as an outcome would be writing down a conclusion about work it can no longer see.
26
26
  */
27
27
  import { activateRun, readRunRecord, createRunSpec, writeRunStatus, assertJournalTailIntact, RunJournalTailTruncated, RunSuperseded, RunJournalStalled, StaleLeaseToken, ActivationNotAuthorized, RunNotResumable, RunAlreadyStarted, RunJournalPrefixTruncated, } from "@cotal-ai/core";
28
- import { Journal, JournalAppendRejected, run as runProgram, resume as resumeProgram, RunReleased, resolvePins, LANGUAGE_VERSION, PIN_DEFAULTS, } from "@cotal-ai/lang";
28
+ import { Journal, JournalAppendRejected, run as runProgram, resume as resumeProgram, RunReleased, resolvePins, RuntimeFault, ENGINE_LANGUAGE_VERSION, WALKER_LANGUAGE_VERSION, PIN_DEFAULTS, } from "@cotal-ai/lang";
29
+ import { runOnHostedEngine } from "./engine-host.js";
29
30
  import { RunJournalStore } from "./journal-store.js";
31
+ /** The compiled engine consumes the same request either way: pins plus the activated entries say
32
+ * whether this is a fresh run or a resume, exactly as they say it to the walker underneath. */
33
+ const hostedEngineRun = (r) => runOnHostedEngine({
34
+ source: r.source,
35
+ runId: r.options.runId,
36
+ pins: r.options.pins,
37
+ handler: r.options.handler,
38
+ store: r.store,
39
+ entries: r.entries,
40
+ shouldStop: r.options.shouldStop,
41
+ ...(r.options.file !== undefined ? { file: r.options.file } : {}),
42
+ ...(r.options.seed !== undefined ? { seed: r.options.seed } : {}),
43
+ ...(r.options.effectCeiling !== undefined ? { effectCeiling: r.options.effectCeiling } : {}),
44
+ ...(r.options.stepBudget !== undefined ? { stepBudget: r.options.stepBudget } : {}),
45
+ });
46
+ /**
47
+ * THE LANGUAGE VERSIONS THIS BUILD'S DRIVER CAN HOST, most preferred first.
48
+ *
49
+ * This is a fact about the DRIVER, not about the language, and this build serves both: a fresh run
50
+ * is stamped "2" and executes on the compiled engine — the transform runs here, the program runs in
51
+ * a locked-down worker thread, and the effects and the durable journal stay in THIS process, bridged
52
+ * over a MessagePort so no socket, client or credential enters the isolate that holds the program
53
+ * (`engine-host.ts`) — and every version-1 record keeps routing to the walker, which is the
54
+ * walker's whole job. What a run is stamped with must be the version of the engine that will
55
+ * actually execute it: stamping "2" and calling the walker is REFUSED L5008, measured when this
56
+ * table held one entry.
57
+ *
58
+ * ORDER IS THE PRECEDENCE and it is declared, never derived: a fresh run takes the first entry. A
59
+ * sort over the keys would make "which version is preferred" a fact about string collation, which is
60
+ * not a thing anyone decided.
61
+ */
62
+ const ENGINES = [
63
+ { version: ENGINE_LANGUAGE_VERSION, run: hostedEngineRun, resume: hostedEngineRun },
64
+ {
65
+ version: WALKER_LANGUAGE_VERSION,
66
+ run: (r) => runProgram(r.source, { ...r.options, journal: r.journal }),
67
+ resume: (r) => resumeProgram(r.source, r.journal, r.options),
68
+ },
69
+ ];
70
+ /**
71
+ * The refusal for a recorded language no engine in this build serves, naming what it does serve.
72
+ *
73
+ * L5023 rather than L5008: L5008 is the same disagreement one layer in, where a record was handed to
74
+ * a SPECIFIC engine whose version differs and the repair is to run it on the engine that matches.
75
+ * Here there is no such engine to name, so it is a different sentence. The message carries the
76
+ * recorded version AND the served set, because "this build cannot" is only actionable if it says
77
+ * what it can.
78
+ */
79
+ /**
80
+ * A record whose `languageVersion` is not the string the wire contract declares (SPEC §14.3,
81
+ * core's run-record). Distinct from L5023 on purpose: L5023 says "a version this build does not
82
+ * serve", and folding a malformed field into it produced the self-contradictory sentence
83
+ * "recorded under language version 2 ... this build serves 2, 1" when the 2 was a number - the
84
+ * table compares strings, so a number misses every entry while printing like a served version.
85
+ * The writer that produced the record is the defect; the record is refused untouched.
86
+ */
87
+ class RunRecordMalformed extends Error {
88
+ constructor(runId, got) {
89
+ super(`run ${runId}'s record is malformed: \`languageVersion\` must be a string and this record carries a ${typeof got}`
90
+ + ` (${JSON.stringify(got) ?? String(got)}). No engine dispatch was attempted; the writer that produced this record is the defect to fix.`);
91
+ this.name = "RunRecordMalformed";
92
+ }
93
+ }
94
+ function unservedLanguage(version) {
95
+ // A RECORD MAY NAME NO VERSION AT ALL, and it reaches this branch by the same route: written
96
+ // before the field existed, it matches no engine either. The two cases get different sentences
97
+ // because an operator acts on them differently, and because interpolating an absent value says
98
+ // the record claims "undefined" when what happened is that it claims nothing. MEASURED before the
99
+ // repair, through the driver: `recorded under language version undefined and this build serves 1`.
100
+ const met = version === undefined ? "names no language version at all" : `was recorded under language version ${version}`;
101
+ const repair = version === undefined
102
+ ? `identify the version this record was written under, and run it on a build that serves it`
103
+ : `run this record on a build whose engines serve version ${version}`;
104
+ return new RuntimeFault("L5023", `this run ${met} and this build serves ${ENGINES.map((e) => e.version).join(", ")}. `
105
+ + `A record replays only on an engine that speaks its language: version 1 is the tree-walker and version 2 is the engine, and they are `
106
+ + `different languages rather than two speeds of one.\n\n`
107
+ + `Options\n ${repair}\n fork(run, <step>) start a new run on this build, keeping the prefix`);
108
+ }
30
109
  /**
31
110
  * A pause an operator can ask for while a run is being driven.
32
111
  *
@@ -62,12 +141,17 @@ async function drive(js, jsm, req, expect) {
62
141
  const recordedStatus = record?.status?.value;
63
142
  let pins;
64
143
  let statusRevision;
144
+ // WHICH ENGINE RUNS THIS. A fresh run takes the first entry this build serves; a resume takes the
145
+ // one its RECORD names, and is refused if this build has none. Chosen here, before the pins, so a
146
+ // fresh run is stamped with the version of the engine that will actually execute it.
147
+ let engine;
65
148
  if (expect === "new") {
66
149
  if (record !== undefined) {
67
150
  // Not `RunAlreadyStarted` from the journal — this run has a SPEC, which is the stronger
68
151
  // statement: it was started, pinned, and those pins are not this attempt's to re-decide.
69
152
  return { status: "released", reason: new RunAlreadyStarted(req.runId, 0) };
70
153
  }
154
+ engine = ENGINES[0];
71
155
  // Resolved ONCE, here, from the host clock read exactly once — from here on the epoch is a
72
156
  // recorded fact, and a second read could not be the same run's epoch.
73
157
  pins = resolvePins({
@@ -75,7 +159,7 @@ async function drive(js, jsm, req, expect) {
75
159
  ...(req.seed !== undefined ? { seed: req.seed } : {}),
76
160
  ...(req.effectCeiling !== undefined ? { effectCeiling: req.effectCeiling } : {}),
77
161
  ...(req.stepBudget !== undefined ? { stepBudget: req.stepBudget } : {}),
78
- }, req.handler.now());
162
+ }, req.handler.now(), engine.version);
79
163
  }
80
164
  else {
81
165
  if (record === undefined)
@@ -83,6 +167,30 @@ async function drive(js, jsm, req, expect) {
83
167
  // READ BACK, never re-derived. A default is a property of the interpreter, and the interpreter
84
168
  // is the thing that may have changed between attempts.
85
169
  pins = record.spec.value.pins;
170
+ // THE FIELD DISPATCH READS IS CHECKED BEFORE THE TABLE IS CONSULTED. The cast above verifies
171
+ // nothing, and the table below compares strings: a record carrying the NUMBER 2 would miss
172
+ // every entry and be released as L5023 whose sentence says "recorded under language version 2"
173
+ // while "this build serves 2" - a self-contradiction handed to an operator. Absent stays with
174
+ // the table's own no-version sentence; any other non-string is a malformed record, refused by
175
+ // its own name. MEASURED before the repair, through this driver against a real broker.
176
+ const wireVersion = record.spec.value.pins["languageVersion"];
177
+ if (wireVersion !== undefined && typeof wireVersion !== "string") {
178
+ return { status: "released", reason: new RunRecordMalformed(req.runId, wireVersion) };
179
+ }
180
+ // AND THE ENGINE IS READ BACK WITH THEM. No fallback: a record whose language this build cannot
181
+ // speak is refused by name (L5023) rather than walked by whatever engine happens to be here,
182
+ // which would run a program under semantics it was never recorded under.
183
+ const served = ENGINES.find((e) => e.version === pins.languageVersion);
184
+ // RELEASED, NOT THROWN and not failed. This file's outcome contract is that a driver which is
185
+ // not the one to run something says so as `released`, and a run result is only ever a thing the
186
+ // program did: a build that does not serve this language has appended nothing, observed nothing
187
+ // and decided nothing about the program, so "failed" would be this layer inventing an outcome
188
+ // and a rejection would be an outcome shape the signature does not declare. It reads the same as
189
+ // the two refusals either side of it (`RunAlreadyStarted`, `RunNotResumable`) because it is the
190
+ // same kind of statement: not here, not this attempt.
191
+ if (served === undefined)
192
+ return { status: "released", reason: unservedLanguage(pins.languageVersion) };
193
+ engine = served;
86
194
  statusRevision = record.status?.revision;
87
195
  }
88
196
  let appender;
@@ -162,9 +270,8 @@ async function drive(js, jsm, req, expect) {
162
270
  : record.spec.revision;
163
271
  statusRevision = await note(req, "running", appender.journalHigh, specRevision, statusRevision);
164
272
  try {
165
- const result = expect === "new"
166
- ? await runProgram(req.source, { ...options, journal })
167
- : await resumeProgram(req.source, journal, options);
273
+ const engineReq = { source: req.source, journal, store, entries: resumed, options };
274
+ const result = expect === "new" ? await engine.run(engineReq) : await engine.resume(engineReq);
168
275
  await note(req, "completed", appender.journalHigh, specRevision, statusRevision);
169
276
  return { status: "completed", result };
170
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-driver.js","sourceRoot":"","sources":["../src/run-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-driver.js","sourceRoot":"","sources":["../src/run-driver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/runtime",
3
3
  "description": "Cotal workflow runtime: hosts cotal-lang runs on the mesh — the durable step-journal store, the effect handler, and the run driver.",
4
- "version": "0.24.0",
4
+ "version": "0.26.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -18,8 +18,8 @@
18
18
  }
19
19
  },
20
20
  "dependencies": {
21
- "@cotal-ai/core": "0.24.0",
22
- "@cotal-ai/lang": "0.24.0"
21
+ "@cotal-ai/core": "0.26.0",
22
+ "@cotal-ai/lang": "0.26.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@nats-io/jetstream": "^3.4.0",