@cotal-ai/runtime 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.
- package/dist/engine-host.d.ts +57 -0
- package/dist/engine-host.d.ts.map +1 -0
- package/dist/engine-host.js +189 -0
- package/dist/engine-host.js.map +1 -0
- package/dist/run-driver.d.ts.map +1 -1
- package/dist/run-driver.js +112 -5
- package/dist/run-driver.js.map +1 -1
- package/package.json +3 -3
|
@@ -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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"}
|
package/dist/run-driver.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/run-driver.js
CHANGED
|
@@ -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,
|
|
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
|
|
166
|
-
|
|
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
|
}
|
package/dist/run-driver.js.map
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "0.25.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.
|
|
22
|
-
"@cotal-ai/lang": "0.
|
|
21
|
+
"@cotal-ai/core": "0.25.0",
|
|
22
|
+
"@cotal-ai/lang": "0.25.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@nats-io/jetstream": "^3.4.0",
|