@telorun/kernel 0.19.0 → 0.20.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/controller-loader.d.ts +2 -1
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +5 -0
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-loaders/bundle-loader.d.ts +45 -0
- package/dist/controller-loaders/bundle-loader.d.ts.map +1 -0
- package/dist/controller-loaders/bundle-loader.js +180 -0
- package/dist/controller-loaders/bundle-loader.js.map +1 -0
- package/dist/controller-loaders/npm-loader.d.ts.map +1 -1
- package/dist/controller-loaders/npm-loader.js +1 -13
- package/dist/controller-loaders/npm-loader.js.map +1 -1
- package/dist/controller-loaders/realm.d.ts +9 -0
- package/dist/controller-loaders/realm.d.ts.map +1 -0
- package/dist/controller-loaders/realm.js +9 -0
- package/dist/controller-loaders/realm.js.map +1 -0
- package/dist/runtime-registry.d.ts.map +1 -1
- package/dist/runtime-registry.js +5 -0
- package/dist/runtime-registry.js.map +1 -1
- package/package.json +1 -1
- package/src/controller-loader.ts +8 -1
- package/src/controller-loaders/bundle-loader.ts +202 -0
- package/src/controller-loaders/npm-loader.ts +1 -13
- package/src/controller-loaders/realm.ts +8 -0
- package/src/runtime-registry.ts +5 -0
|
@@ -7,7 +7,7 @@ export type { ControllerPolicy } from "./runtime-registry.js";
|
|
|
7
7
|
* do real (network or compile) work. The CLI uses this to decide whether a
|
|
8
8
|
* "downloading…" line was honest or should be erased.
|
|
9
9
|
*/
|
|
10
|
-
export type ControllerResolveSource = "local" | "node_modules" | "cache" | "npm-install" | "cargo-build";
|
|
10
|
+
export type ControllerResolveSource = "local" | "node_modules" | "cache" | "npm-install" | "cargo-build" | "bundle";
|
|
11
11
|
export type ControllerLoaderEvent = {
|
|
12
12
|
name: "ControllerLoading";
|
|
13
13
|
payload: {
|
|
@@ -81,6 +81,7 @@ export declare class ControllerLoader {
|
|
|
81
81
|
private readonly emit;
|
|
82
82
|
private readonly npmLoader;
|
|
83
83
|
private readonly napiLoader;
|
|
84
|
+
private readonly bundleLoader;
|
|
84
85
|
constructor(options?: ControllerLoaderOptions);
|
|
85
86
|
load(purlCandidates: string[], baseUri: string, policy?: ControllerPolicy): Promise<ControllerInstance>;
|
|
86
87
|
private dispatchOne;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAIhE,OAAO,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAE1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,cAAc,GACd,OAAO,GACP,aAAa,GACb,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACxD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF,GACD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AAC5E;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1F,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;gBAE1C,OAAO,GAAE,uBAA4B;IAO3C,IAAI,CACR,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,kBAAkB,CAAC;YAqDhB,WAAW;CAe1B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RuntimeError } from "@telorun/sdk";
|
|
2
|
+
import { BundleControllerLoader } from "./controller-loaders/bundle-loader.js";
|
|
2
3
|
import { ControllerEnvMissingError, NapiControllerLoader } from "./controller-loaders/napi-loader.js";
|
|
3
4
|
import { NpmControllerLoader } from "./controller-loaders/npm-loader.js";
|
|
4
5
|
import { DEFAULT_POLICY, POLICY_WILDCARD } from "./runtime-registry.js";
|
|
@@ -24,6 +25,7 @@ export class ControllerLoader {
|
|
|
24
25
|
this.emit = options.emit;
|
|
25
26
|
this.npmLoader = new NpmControllerLoader({ entryUrl: options.entryUrl });
|
|
26
27
|
this.napiLoader = new NapiControllerLoader();
|
|
28
|
+
this.bundleLoader = new BundleControllerLoader();
|
|
27
29
|
}
|
|
28
30
|
async load(purlCandidates, baseUri, policy) {
|
|
29
31
|
if (!purlCandidates || purlCandidates.length === 0) {
|
|
@@ -81,6 +83,9 @@ export class ControllerLoader {
|
|
|
81
83
|
if (purl.startsWith("pkg:cargo")) {
|
|
82
84
|
return this.napiLoader.load(purl, baseUri);
|
|
83
85
|
}
|
|
86
|
+
if (purl.startsWith("pkg:telo")) {
|
|
87
|
+
return this.bundleLoader.load(purl, baseUri);
|
|
88
|
+
}
|
|
84
89
|
throw new ControllerEnvMissingError(`Unsupported PURL scheme: ${purl}`);
|
|
85
90
|
}
|
|
86
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-loader.js","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAoB,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-loader.js","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ControllerInstance } from "@telorun/sdk";
|
|
2
|
+
import type { ControllerResolveSource } from "../controller-loader.js";
|
|
3
|
+
/**
|
|
4
|
+
* Loads a `pkg:telo` controller — a controller delivered inside the module's own
|
|
5
|
+
* bundle (the Telo registry artifact), not fetched from an external package
|
|
6
|
+
* registry. Every PURL segment carries meaning:
|
|
7
|
+
*
|
|
8
|
+
* pkg:telo / local / <format> ? path=./nodejs/x.mjs # export
|
|
9
|
+
* type ns name qualifier subpath
|
|
10
|
+
*
|
|
11
|
+
* - `type=telo` — Telo-delivered (not npm/cargo).
|
|
12
|
+
* - `namespace=local` — the delivery sub-mode: bundled in the module artifact.
|
|
13
|
+
* Reserves `pkg:telo/registry/…` for a future "controller fetched from the
|
|
14
|
+
* Telo registry as its own artifact". A non-`local` namespace → env-missing
|
|
15
|
+
* here (a different mode another branch/kernel would handle).
|
|
16
|
+
* - `name=<format>` — the artifact format the loader dispatches on (`js` /
|
|
17
|
+
* `napi` / `wasm`). Bundling is the one delivery not tied to an ecosystem's
|
|
18
|
+
* runtime (npm ⇒ JS, cargo ⇒ Rust; a bundle is just files), so the format is
|
|
19
|
+
* explicit. `js` is `import()`ed directly; a format this kernel can't host →
|
|
20
|
+
* `ControllerEnvMissingError`, so `[pkg:telo/local/napi …, pkg:telo/local/js …]`
|
|
21
|
+
* (or `[pkg:telo …, pkg:npm …]`) falls through to a candidate this — or
|
|
22
|
+
* another runtime's — kernel can load.
|
|
23
|
+
* - `path` — the file in the bundle; `#export` — the named export.
|
|
24
|
+
*
|
|
25
|
+
* Two separate concerns for `js` bundles importing `@telorun/sdk`:
|
|
26
|
+
* - *Resolution* — the bare specifier must point at a real file. The bundle has
|
|
27
|
+
* no node_modules, so `ensureRealmSymlinks()` symlinks the realm-collapse
|
|
28
|
+
* names into a `node_modules/` next to the bundle, pointing at the kernel's
|
|
29
|
+
* own copy; standard resolution then finds them on both Node and Bun. Authors
|
|
30
|
+
* write a normal `import { Stream } from "@telorun/sdk"`; nothing special.
|
|
31
|
+
* - *Identity* — once resolved to the kernel's copy it's the same module, so
|
|
32
|
+
* `Stream`/`InvokeError` are trivially identical. (The SDK's globalThis/Symbol
|
|
33
|
+
* singletons also keep identity correct even when a publish step inlines the
|
|
34
|
+
* SDK into the bundle instead of leaving it external.)
|
|
35
|
+
*
|
|
36
|
+
* A missing/remote/unparseable bundle is `ControllerEnvMissingError` (fall
|
|
37
|
+
* through); a bundle that loads but is malformed is a hard `ERR_CONTROLLER_INVALID`.
|
|
38
|
+
*/
|
|
39
|
+
export declare class BundleControllerLoader {
|
|
40
|
+
load(purl: string, baseUri: string): Promise<{
|
|
41
|
+
instance: ControllerInstance;
|
|
42
|
+
source: ControllerResolveSource;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=bundle-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAOhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AA4EvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,sBAAsB;IAC3B,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC;CA8E9E"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { RuntimeError } from "@telorun/sdk";
|
|
2
|
+
import { existsSync, readFileSync } from "fs";
|
|
3
|
+
import * as fs from "fs/promises";
|
|
4
|
+
import { createRequire } from "module";
|
|
5
|
+
import { PackageURL } from "packageurl-js";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
import { fileURLToPath, pathToFileURL } from "url";
|
|
8
|
+
import { ControllerEnvMissingError } from "./napi-loader.js";
|
|
9
|
+
import { REALM_COLLAPSE_NAMES } from "./realm.js";
|
|
10
|
+
async function pathExists(filePath) {
|
|
11
|
+
try {
|
|
12
|
+
await fs.access(filePath);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A bundled controller imports `@telorun/sdk` (and any realm-collapse sibling) as
|
|
21
|
+
* a normal bare specifier, but it lives in a cache/extract dir with no
|
|
22
|
+
* node_modules path to the SDK. Make those names resolve to the kernel's own copy
|
|
23
|
+
* by symlinking them into a `node_modules/` next to the bundle — standard module
|
|
24
|
+
* resolution then finds them on every runtime. (Node ESM resolve hooks aren't
|
|
25
|
+
* honoured by Bun, and Bun's own plugins don't intercept runtime imports, so a
|
|
26
|
+
* symlink is the one portable mechanism — verified on Node + Bun.) Authors write
|
|
27
|
+
* a plain `import { Stream } from "@telorun/sdk"`; nothing special.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent, cached per directory. On a read-only mount (k8s run) the link must
|
|
30
|
+
* already exist from the extract phase; a failed create just leaves the import to
|
|
31
|
+
* surface a normal module-not-found.
|
|
32
|
+
*/
|
|
33
|
+
const realmLinkedDirs = new Set();
|
|
34
|
+
async function ensureRealmSymlinks(bundleDir) {
|
|
35
|
+
if (realmLinkedDirs.has(bundleDir))
|
|
36
|
+
return;
|
|
37
|
+
const req = createRequire(import.meta.url);
|
|
38
|
+
for (const name of REALM_COLLAPSE_NAMES) {
|
|
39
|
+
let pkgRoot = null;
|
|
40
|
+
try {
|
|
41
|
+
pkgRoot = findPackageRoot(req.resolve(name), name);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Kernel can't resolve this realm name — skip; the bundle's import then
|
|
45
|
+
// fails normally rather than being silently misdirected.
|
|
46
|
+
}
|
|
47
|
+
if (!pkgRoot)
|
|
48
|
+
continue;
|
|
49
|
+
const linkPath = path.join(bundleDir, "node_modules", ...name.split("/"));
|
|
50
|
+
if (existsSync(linkPath))
|
|
51
|
+
continue;
|
|
52
|
+
try {
|
|
53
|
+
await fs.mkdir(path.dirname(linkPath), { recursive: true });
|
|
54
|
+
await fs.symlink(pkgRoot, linkPath, process.platform === "win32" ? "junction" : "dir");
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// EEXIST race or read-only FS — fine if it now exists; otherwise the
|
|
58
|
+
// import surfaces the resolution failure.
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
realmLinkedDirs.add(bundleDir);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Walk up from a resolved entry file to the directory whose package.json `name`
|
|
65
|
+
* matches — the package root to symlink (so the symlinked package.json `exports`
|
|
66
|
+
* drive per-runtime entry selection, e.g. Bun `src` vs Node `dist`).
|
|
67
|
+
*/
|
|
68
|
+
function findPackageRoot(entryFile, name) {
|
|
69
|
+
let dir = path.dirname(entryFile);
|
|
70
|
+
for (let i = 0; i < 24; i++) {
|
|
71
|
+
const pj = path.join(dir, "package.json");
|
|
72
|
+
if (existsSync(pj)) {
|
|
73
|
+
try {
|
|
74
|
+
if (JSON.parse(readFileSync(pj, "utf8")).name === name)
|
|
75
|
+
return dir;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// unreadable / invalid package.json — keep walking
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const parent = path.dirname(dir);
|
|
82
|
+
if (parent === dir)
|
|
83
|
+
return null;
|
|
84
|
+
dir = parent;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Loads a `pkg:telo` controller — a controller delivered inside the module's own
|
|
90
|
+
* bundle (the Telo registry artifact), not fetched from an external package
|
|
91
|
+
* registry. Every PURL segment carries meaning:
|
|
92
|
+
*
|
|
93
|
+
* pkg:telo / local / <format> ? path=./nodejs/x.mjs # export
|
|
94
|
+
* type ns name qualifier subpath
|
|
95
|
+
*
|
|
96
|
+
* - `type=telo` — Telo-delivered (not npm/cargo).
|
|
97
|
+
* - `namespace=local` — the delivery sub-mode: bundled in the module artifact.
|
|
98
|
+
* Reserves `pkg:telo/registry/…` for a future "controller fetched from the
|
|
99
|
+
* Telo registry as its own artifact". A non-`local` namespace → env-missing
|
|
100
|
+
* here (a different mode another branch/kernel would handle).
|
|
101
|
+
* - `name=<format>` — the artifact format the loader dispatches on (`js` /
|
|
102
|
+
* `napi` / `wasm`). Bundling is the one delivery not tied to an ecosystem's
|
|
103
|
+
* runtime (npm ⇒ JS, cargo ⇒ Rust; a bundle is just files), so the format is
|
|
104
|
+
* explicit. `js` is `import()`ed directly; a format this kernel can't host →
|
|
105
|
+
* `ControllerEnvMissingError`, so `[pkg:telo/local/napi …, pkg:telo/local/js …]`
|
|
106
|
+
* (or `[pkg:telo …, pkg:npm …]`) falls through to a candidate this — or
|
|
107
|
+
* another runtime's — kernel can load.
|
|
108
|
+
* - `path` — the file in the bundle; `#export` — the named export.
|
|
109
|
+
*
|
|
110
|
+
* Two separate concerns for `js` bundles importing `@telorun/sdk`:
|
|
111
|
+
* - *Resolution* — the bare specifier must point at a real file. The bundle has
|
|
112
|
+
* no node_modules, so `ensureRealmSymlinks()` symlinks the realm-collapse
|
|
113
|
+
* names into a `node_modules/` next to the bundle, pointing at the kernel's
|
|
114
|
+
* own copy; standard resolution then finds them on both Node and Bun. Authors
|
|
115
|
+
* write a normal `import { Stream } from "@telorun/sdk"`; nothing special.
|
|
116
|
+
* - *Identity* — once resolved to the kernel's copy it's the same module, so
|
|
117
|
+
* `Stream`/`InvokeError` are trivially identical. (The SDK's globalThis/Symbol
|
|
118
|
+
* singletons also keep identity correct even when a publish step inlines the
|
|
119
|
+
* SDK into the bundle instead of leaving it external.)
|
|
120
|
+
*
|
|
121
|
+
* A missing/remote/unparseable bundle is `ControllerEnvMissingError` (fall
|
|
122
|
+
* through); a bundle that loads but is malformed is a hard `ERR_CONTROLLER_INVALID`.
|
|
123
|
+
*/
|
|
124
|
+
export class BundleControllerLoader {
|
|
125
|
+
async load(purl, baseUri) {
|
|
126
|
+
let parsed;
|
|
127
|
+
try {
|
|
128
|
+
parsed = PackageURL.fromString(purl);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
throw new ControllerEnvMissingError(`Unparseable pkg:telo PURL "${purl}": ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
+
}
|
|
133
|
+
// Delivery sub-mode lives in the namespace; this loader handles bundled
|
|
134
|
+
// (`local`) controllers. Anything else (e.g. a future `registry` mode) is
|
|
135
|
+
// env-missing so the candidate list falls through.
|
|
136
|
+
if (parsed.namespace !== "local") {
|
|
137
|
+
throw new ControllerEnvMissingError(`pkg:telo controller "${purl}" must use the "local" namespace (pkg:telo/local/<format>); got "${parsed.namespace ?? "(none)"}"`);
|
|
138
|
+
}
|
|
139
|
+
// Format is the PURL name. Only `js` is hostable by the Node kernel today;
|
|
140
|
+
// any other format (napi/wasm/future) is env-missing so the list falls
|
|
141
|
+
// through to a sibling this — or another runtime's — kernel can load.
|
|
142
|
+
const format = parsed.name;
|
|
143
|
+
if (format !== "js") {
|
|
144
|
+
throw new ControllerEnvMissingError(`pkg:telo controller "${purl}": format "${format}" is not hostable by the Node bundle loader (supports "js" today)`);
|
|
145
|
+
}
|
|
146
|
+
const relPath = parsed.qualifiers?.path;
|
|
147
|
+
if (!relPath) {
|
|
148
|
+
throw new ControllerEnvMissingError(`pkg:telo controller "${purl}" is missing a "path" qualifier`);
|
|
149
|
+
}
|
|
150
|
+
// Bundles are local files next to the manifest. A remote (http) baseUri
|
|
151
|
+
// can't host one, so defer to the next candidate.
|
|
152
|
+
if (baseUri.startsWith("http://") || baseUri.startsWith("https://")) {
|
|
153
|
+
throw new ControllerEnvMissingError(`pkg:telo controller "${purl}" requires a local manifest; baseUri is remote (${baseUri})`);
|
|
154
|
+
}
|
|
155
|
+
const basePath = baseUri.startsWith("file://") ? fileURLToPath(baseUri) : baseUri;
|
|
156
|
+
const absFile = path.resolve(path.dirname(basePath), relPath);
|
|
157
|
+
if (!(await pathExists(absFile))) {
|
|
158
|
+
throw new ControllerEnvMissingError(`pkg:telo controller bundle not found at "${absFile}" (from "${purl}")`);
|
|
159
|
+
}
|
|
160
|
+
// Make bare `@telorun/sdk` (etc.) resolve to the kernel's copy before
|
|
161
|
+
// importing the bundle, so authors write normal imports.
|
|
162
|
+
await ensureRealmSymlinks(path.dirname(absFile));
|
|
163
|
+
// A broken bundle (syntax / failed import) is a real user-code failure —
|
|
164
|
+
// let it propagate rather than masking it as env-missing.
|
|
165
|
+
const mod = (await import(pathToFileURL(absFile).href));
|
|
166
|
+
const fragment = parsed.subpath;
|
|
167
|
+
// Distinguish "no such export" from "export isn't a controller" so the error
|
|
168
|
+
// points at the actual problem (mirrors the napi loader's project()).
|
|
169
|
+
if (fragment && !(fragment in mod)) {
|
|
170
|
+
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}": module "${absFile}" has no export named "${fragment}"`);
|
|
171
|
+
}
|
|
172
|
+
const instance = fragment ? mod[fragment] : mod;
|
|
173
|
+
if (!instance || (!instance.create && !instance.register)) {
|
|
174
|
+
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}" exports neither create() nor register()` +
|
|
175
|
+
(fragment ? ` at fragment "#${fragment}"` : ""));
|
|
176
|
+
}
|
|
177
|
+
return { instance, source: "bundle" };
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=bundle-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA4DlD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;AAoBlF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IAEnC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAC,CAAkB;IAEpC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,GAAE,0BAA+B;IAI9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBjE;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YAUX,sBAAsB;IAqFpC;;;;;;;OAOG;YACW,aAAa;IAU3B;;;;;;;;;;;OAWG;YACW,cAAc;CAuG7B;AA+ND;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2BpD;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpE;AA6KD;;;;GAIG;AACH,iBAAe,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOrE;AAED,iBAAS,0BAA0B,CACjC,YAAY,EAAE,GAAG,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAChC,MAAM,GAAG,IAAI,CAIf;AAED,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;CASvB,CAAC"}
|
|
@@ -8,6 +8,7 @@ import * as path from "path";
|
|
|
8
8
|
import { fileURLToPath, pathToFileURL } from "url";
|
|
9
9
|
import { promisify } from "util";
|
|
10
10
|
import { ControllerEnvMissingError } from "./napi-loader.js";
|
|
11
|
+
import { REALM_COLLAPSE_NAMES } from "./realm.js";
|
|
11
12
|
const execFileAsync = promisify(execFile);
|
|
12
13
|
const requireFromHere = createRequire(import.meta.url);
|
|
13
14
|
/**
|
|
@@ -316,19 +317,6 @@ export class NpmControllerLoader {
|
|
|
316
317
|
return kind === "local" ? "local" : "npm-install";
|
|
317
318
|
}
|
|
318
319
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Names of packages whose realpath must be shared between the kernel and every
|
|
321
|
-
* loaded controller. Each name here becomes a `file:` dep in the install-root
|
|
322
|
-
* `package.json`, pinned at the kernel's own resolution; controllers declare
|
|
323
|
-
* these names as `peerDependencies` so npm/pnpm resolves them to that single
|
|
324
|
-
* copy instead of nesting their own.
|
|
325
|
-
*
|
|
326
|
-
* Add a name here if you ship another shared runtime symbol whose `instanceof`
|
|
327
|
-
* or constructor identity matters across module boundaries. Today the only
|
|
328
|
-
* such name is `@telorun/sdk` (carries the `Stream` class registered with
|
|
329
|
-
* `@marcbachmann/cel-js`).
|
|
330
|
-
*/
|
|
331
|
-
const REALM_COLLAPSE_NAMES = ["@telorun/sdk"];
|
|
332
320
|
/**
|
|
333
321
|
* Resolve a kernel-runtime dep name to the realpath of its package directory.
|
|
334
322
|
* Anchored on this module so resolution mirrors the kernel's own.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npm-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bare specifiers a controller may import that must resolve to the *kernel's own
|
|
3
|
+
* copy*, so module identity is shared across the kernel/controller boundary
|
|
4
|
+
* (e.g. `Stream`, `InvokeError`). The npm loader pins these as `file:` deps in
|
|
5
|
+
* its install root; the bundle loader maps them via an ESM resolve hook. Single
|
|
6
|
+
* source of truth for both.
|
|
7
|
+
*/
|
|
8
|
+
export declare const REALM_COLLAPSE_NAMES: ReadonlyArray<string>;
|
|
9
|
+
//# sourceMappingURL=realm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/realm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bare specifiers a controller may import that must resolve to the *kernel's own
|
|
3
|
+
* copy*, so module identity is shared across the kernel/controller boundary
|
|
4
|
+
* (e.g. `Stream`, `InvokeError`). The npm loader pins these as `file:` deps in
|
|
5
|
+
* its install root; the bundle loader maps them via an ESM resolve hook. Single
|
|
6
|
+
* source of truth for both.
|
|
7
|
+
*/
|
|
8
|
+
export const REALM_COLLAPSE_NAMES = ["@telorun/sdk"];
|
|
9
|
+
//# sourceMappingURL=realm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm.js","sourceRoot":"","sources":["../../src/controller-loaders/realm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA0B,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-registry.d.ts","sourceRoot":"","sources":["../src/runtime-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-registry.d.ts","sourceRoot":"","sources":["../src/runtime-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAyBnC;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,gBAE5B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,gBAAgB,CAgDpG;AAiCD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAK9E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CASjE"}
|
package/dist/runtime-registry.js
CHANGED
|
@@ -16,6 +16,11 @@ export const POLICY_WILDCARD = "*";
|
|
|
16
16
|
* label is the implementation directory name a contributor sees at
|
|
17
17
|
* `modules/<name>/<label>/`.
|
|
18
18
|
*/
|
|
19
|
+
// Runtime labels name a host runtime, never a delivery mechanism. `pkg:telo`
|
|
20
|
+
// (bundled delivery) is intentionally absent: it carries its runtime in the
|
|
21
|
+
// `?format=` qualifier and is selected via the default policy's `*` wildcard,
|
|
22
|
+
// not by a "bundle" label (bundling isn't a runtime). Mapping a runtime label
|
|
23
|
+
// to bundled `?format=` candidates is the model-B selection upgrade (future).
|
|
19
24
|
const LABEL_TO_PURL_TYPE = {
|
|
20
25
|
nodejs: "pkg:npm",
|
|
21
26
|
rust: "pkg:cargo",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-registry.js","sourceRoot":"","sources":["../src/runtime-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-registry.js","sourceRoot":"","sources":["../src/runtime-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/controller-loader.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ControllerInstance, RuntimeError } from "@telorun/sdk";
|
|
2
|
+
import { BundleControllerLoader } from "./controller-loaders/bundle-loader.js";
|
|
2
3
|
import { ControllerEnvMissingError, NapiControllerLoader } from "./controller-loaders/napi-loader.js";
|
|
3
4
|
import { NpmControllerLoader } from "./controller-loaders/npm-loader.js";
|
|
4
5
|
import { ControllerPolicy, DEFAULT_POLICY, POLICY_WILDCARD } from "./runtime-registry.js";
|
|
@@ -16,7 +17,8 @@ export type ControllerResolveSource =
|
|
|
16
17
|
| "node_modules"
|
|
17
18
|
| "cache"
|
|
18
19
|
| "npm-install"
|
|
19
|
-
| "cargo-build"
|
|
20
|
+
| "cargo-build"
|
|
21
|
+
| "bundle";
|
|
20
22
|
|
|
21
23
|
export type ControllerLoaderEvent =
|
|
22
24
|
| { name: "ControllerLoading"; payload: { purl: string } }
|
|
@@ -76,11 +78,13 @@ export class ControllerLoader {
|
|
|
76
78
|
private readonly emit: ControllerLoaderEmit | undefined;
|
|
77
79
|
private readonly npmLoader: NpmControllerLoader;
|
|
78
80
|
private readonly napiLoader: NapiControllerLoader;
|
|
81
|
+
private readonly bundleLoader: BundleControllerLoader;
|
|
79
82
|
|
|
80
83
|
constructor(options: ControllerLoaderOptions = {}) {
|
|
81
84
|
this.emit = options.emit;
|
|
82
85
|
this.npmLoader = new NpmControllerLoader({ entryUrl: options.entryUrl });
|
|
83
86
|
this.napiLoader = new NapiControllerLoader();
|
|
87
|
+
this.bundleLoader = new BundleControllerLoader();
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
async load(
|
|
@@ -150,6 +154,9 @@ export class ControllerLoader {
|
|
|
150
154
|
if (purl.startsWith("pkg:cargo")) {
|
|
151
155
|
return this.napiLoader.load(purl, baseUri);
|
|
152
156
|
}
|
|
157
|
+
if (purl.startsWith("pkg:telo")) {
|
|
158
|
+
return this.bundleLoader.load(purl, baseUri);
|
|
159
|
+
}
|
|
153
160
|
throw new ControllerEnvMissingError(`Unsupported PURL scheme: ${purl}`);
|
|
154
161
|
}
|
|
155
162
|
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { ControllerInstance, RuntimeError } from "@telorun/sdk";
|
|
2
|
+
import { existsSync, readFileSync } from "fs";
|
|
3
|
+
import * as fs from "fs/promises";
|
|
4
|
+
import { createRequire } from "module";
|
|
5
|
+
import { PackageURL } from "packageurl-js";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
import { fileURLToPath, pathToFileURL } from "url";
|
|
8
|
+
import type { ControllerResolveSource } from "../controller-loader.js";
|
|
9
|
+
import { ControllerEnvMissingError } from "./napi-loader.js";
|
|
10
|
+
import { REALM_COLLAPSE_NAMES } from "./realm.js";
|
|
11
|
+
|
|
12
|
+
async function pathExists(filePath: string): Promise<boolean> {
|
|
13
|
+
try {
|
|
14
|
+
await fs.access(filePath);
|
|
15
|
+
return true;
|
|
16
|
+
} catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A bundled controller imports `@telorun/sdk` (and any realm-collapse sibling) as
|
|
23
|
+
* a normal bare specifier, but it lives in a cache/extract dir with no
|
|
24
|
+
* node_modules path to the SDK. Make those names resolve to the kernel's own copy
|
|
25
|
+
* by symlinking them into a `node_modules/` next to the bundle — standard module
|
|
26
|
+
* resolution then finds them on every runtime. (Node ESM resolve hooks aren't
|
|
27
|
+
* honoured by Bun, and Bun's own plugins don't intercept runtime imports, so a
|
|
28
|
+
* symlink is the one portable mechanism — verified on Node + Bun.) Authors write
|
|
29
|
+
* a plain `import { Stream } from "@telorun/sdk"`; nothing special.
|
|
30
|
+
*
|
|
31
|
+
* Idempotent, cached per directory. On a read-only mount (k8s run) the link must
|
|
32
|
+
* already exist from the extract phase; a failed create just leaves the import to
|
|
33
|
+
* surface a normal module-not-found.
|
|
34
|
+
*/
|
|
35
|
+
const realmLinkedDirs = new Set<string>();
|
|
36
|
+
async function ensureRealmSymlinks(bundleDir: string): Promise<void> {
|
|
37
|
+
if (realmLinkedDirs.has(bundleDir)) return;
|
|
38
|
+
const req = createRequire(import.meta.url);
|
|
39
|
+
for (const name of REALM_COLLAPSE_NAMES) {
|
|
40
|
+
let pkgRoot: string | null = null;
|
|
41
|
+
try {
|
|
42
|
+
pkgRoot = findPackageRoot(req.resolve(name), name);
|
|
43
|
+
} catch {
|
|
44
|
+
// Kernel can't resolve this realm name — skip; the bundle's import then
|
|
45
|
+
// fails normally rather than being silently misdirected.
|
|
46
|
+
}
|
|
47
|
+
if (!pkgRoot) continue;
|
|
48
|
+
const linkPath = path.join(bundleDir, "node_modules", ...name.split("/"));
|
|
49
|
+
if (existsSync(linkPath)) continue;
|
|
50
|
+
try {
|
|
51
|
+
await fs.mkdir(path.dirname(linkPath), { recursive: true });
|
|
52
|
+
await fs.symlink(pkgRoot, linkPath, process.platform === "win32" ? "junction" : "dir");
|
|
53
|
+
} catch {
|
|
54
|
+
// EEXIST race or read-only FS — fine if it now exists; otherwise the
|
|
55
|
+
// import surfaces the resolution failure.
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
realmLinkedDirs.add(bundleDir);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Walk up from a resolved entry file to the directory whose package.json `name`
|
|
63
|
+
* matches — the package root to symlink (so the symlinked package.json `exports`
|
|
64
|
+
* drive per-runtime entry selection, e.g. Bun `src` vs Node `dist`).
|
|
65
|
+
*/
|
|
66
|
+
function findPackageRoot(entryFile: string, name: string): string | null {
|
|
67
|
+
let dir = path.dirname(entryFile);
|
|
68
|
+
for (let i = 0; i < 24; i++) {
|
|
69
|
+
const pj = path.join(dir, "package.json");
|
|
70
|
+
if (existsSync(pj)) {
|
|
71
|
+
try {
|
|
72
|
+
if ((JSON.parse(readFileSync(pj, "utf8")) as { name?: string }).name === name) return dir;
|
|
73
|
+
} catch {
|
|
74
|
+
// unreadable / invalid package.json — keep walking
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const parent = path.dirname(dir);
|
|
78
|
+
if (parent === dir) return null;
|
|
79
|
+
dir = parent;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Loads a `pkg:telo` controller — a controller delivered inside the module's own
|
|
86
|
+
* bundle (the Telo registry artifact), not fetched from an external package
|
|
87
|
+
* registry. Every PURL segment carries meaning:
|
|
88
|
+
*
|
|
89
|
+
* pkg:telo / local / <format> ? path=./nodejs/x.mjs # export
|
|
90
|
+
* type ns name qualifier subpath
|
|
91
|
+
*
|
|
92
|
+
* - `type=telo` — Telo-delivered (not npm/cargo).
|
|
93
|
+
* - `namespace=local` — the delivery sub-mode: bundled in the module artifact.
|
|
94
|
+
* Reserves `pkg:telo/registry/…` for a future "controller fetched from the
|
|
95
|
+
* Telo registry as its own artifact". A non-`local` namespace → env-missing
|
|
96
|
+
* here (a different mode another branch/kernel would handle).
|
|
97
|
+
* - `name=<format>` — the artifact format the loader dispatches on (`js` /
|
|
98
|
+
* `napi` / `wasm`). Bundling is the one delivery not tied to an ecosystem's
|
|
99
|
+
* runtime (npm ⇒ JS, cargo ⇒ Rust; a bundle is just files), so the format is
|
|
100
|
+
* explicit. `js` is `import()`ed directly; a format this kernel can't host →
|
|
101
|
+
* `ControllerEnvMissingError`, so `[pkg:telo/local/napi …, pkg:telo/local/js …]`
|
|
102
|
+
* (or `[pkg:telo …, pkg:npm …]`) falls through to a candidate this — or
|
|
103
|
+
* another runtime's — kernel can load.
|
|
104
|
+
* - `path` — the file in the bundle; `#export` — the named export.
|
|
105
|
+
*
|
|
106
|
+
* Two separate concerns for `js` bundles importing `@telorun/sdk`:
|
|
107
|
+
* - *Resolution* — the bare specifier must point at a real file. The bundle has
|
|
108
|
+
* no node_modules, so `ensureRealmSymlinks()` symlinks the realm-collapse
|
|
109
|
+
* names into a `node_modules/` next to the bundle, pointing at the kernel's
|
|
110
|
+
* own copy; standard resolution then finds them on both Node and Bun. Authors
|
|
111
|
+
* write a normal `import { Stream } from "@telorun/sdk"`; nothing special.
|
|
112
|
+
* - *Identity* — once resolved to the kernel's copy it's the same module, so
|
|
113
|
+
* `Stream`/`InvokeError` are trivially identical. (The SDK's globalThis/Symbol
|
|
114
|
+
* singletons also keep identity correct even when a publish step inlines the
|
|
115
|
+
* SDK into the bundle instead of leaving it external.)
|
|
116
|
+
*
|
|
117
|
+
* A missing/remote/unparseable bundle is `ControllerEnvMissingError` (fall
|
|
118
|
+
* through); a bundle that loads but is malformed is a hard `ERR_CONTROLLER_INVALID`.
|
|
119
|
+
*/
|
|
120
|
+
export class BundleControllerLoader {
|
|
121
|
+
async load(
|
|
122
|
+
purl: string,
|
|
123
|
+
baseUri: string,
|
|
124
|
+
): Promise<{ instance: ControllerInstance; source: ControllerResolveSource }> {
|
|
125
|
+
let parsed: PackageURL;
|
|
126
|
+
try {
|
|
127
|
+
parsed = PackageURL.fromString(purl);
|
|
128
|
+
} catch (err) {
|
|
129
|
+
throw new ControllerEnvMissingError(
|
|
130
|
+
`Unparseable pkg:telo PURL "${purl}": ${err instanceof Error ? err.message : String(err)}`,
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Delivery sub-mode lives in the namespace; this loader handles bundled
|
|
135
|
+
// (`local`) controllers. Anything else (e.g. a future `registry` mode) is
|
|
136
|
+
// env-missing so the candidate list falls through.
|
|
137
|
+
if (parsed.namespace !== "local") {
|
|
138
|
+
throw new ControllerEnvMissingError(
|
|
139
|
+
`pkg:telo controller "${purl}" must use the "local" namespace (pkg:telo/local/<format>); got "${parsed.namespace ?? "(none)"}"`,
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Format is the PURL name. Only `js` is hostable by the Node kernel today;
|
|
144
|
+
// any other format (napi/wasm/future) is env-missing so the list falls
|
|
145
|
+
// through to a sibling this — or another runtime's — kernel can load.
|
|
146
|
+
const format = parsed.name;
|
|
147
|
+
if (format !== "js") {
|
|
148
|
+
throw new ControllerEnvMissingError(
|
|
149
|
+
`pkg:telo controller "${purl}": format "${format}" is not hostable by the Node bundle loader (supports "js" today)`,
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const relPath = parsed.qualifiers?.path;
|
|
154
|
+
if (!relPath) {
|
|
155
|
+
throw new ControllerEnvMissingError(
|
|
156
|
+
`pkg:telo controller "${purl}" is missing a "path" qualifier`,
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Bundles are local files next to the manifest. A remote (http) baseUri
|
|
161
|
+
// can't host one, so defer to the next candidate.
|
|
162
|
+
if (baseUri.startsWith("http://") || baseUri.startsWith("https://")) {
|
|
163
|
+
throw new ControllerEnvMissingError(
|
|
164
|
+
`pkg:telo controller "${purl}" requires a local manifest; baseUri is remote (${baseUri})`,
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const basePath = baseUri.startsWith("file://") ? fileURLToPath(baseUri) : baseUri;
|
|
169
|
+
const absFile = path.resolve(path.dirname(basePath), relPath);
|
|
170
|
+
if (!(await pathExists(absFile))) {
|
|
171
|
+
throw new ControllerEnvMissingError(
|
|
172
|
+
`pkg:telo controller bundle not found at "${absFile}" (from "${purl}")`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Make bare `@telorun/sdk` (etc.) resolve to the kernel's copy before
|
|
177
|
+
// importing the bundle, so authors write normal imports.
|
|
178
|
+
await ensureRealmSymlinks(path.dirname(absFile));
|
|
179
|
+
|
|
180
|
+
// A broken bundle (syntax / failed import) is a real user-code failure —
|
|
181
|
+
// let it propagate rather than masking it as env-missing.
|
|
182
|
+
const mod = (await import(pathToFileURL(absFile).href)) as Record<string, ControllerInstance>;
|
|
183
|
+
const fragment = parsed.subpath;
|
|
184
|
+
// Distinguish "no such export" from "export isn't a controller" so the error
|
|
185
|
+
// points at the actual problem (mirrors the napi loader's project()).
|
|
186
|
+
if (fragment && !(fragment in mod)) {
|
|
187
|
+
throw new RuntimeError(
|
|
188
|
+
"ERR_CONTROLLER_INVALID",
|
|
189
|
+
`Bundled controller "${purl}": module "${absFile}" has no export named "${fragment}"`,
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
const instance = fragment ? mod[fragment] : (mod as unknown as ControllerInstance);
|
|
193
|
+
if (!instance || (!instance.create && !instance.register)) {
|
|
194
|
+
throw new RuntimeError(
|
|
195
|
+
"ERR_CONTROLLER_INVALID",
|
|
196
|
+
`Bundled controller "${purl}" exports neither create() nor register()` +
|
|
197
|
+
(fragment ? ` at fragment "#${fragment}"` : ""),
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
return { instance, source: "bundle" };
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -9,6 +9,7 @@ import * as path from "path";
|
|
|
9
9
|
import { fileURLToPath, pathToFileURL } from "url";
|
|
10
10
|
import { promisify } from "util";
|
|
11
11
|
import { ControllerEnvMissingError } from "./napi-loader.js";
|
|
12
|
+
import { REALM_COLLAPSE_NAMES } from "./realm.js";
|
|
12
13
|
|
|
13
14
|
const execFileAsync = promisify(execFile);
|
|
14
15
|
const requireFromHere = createRequire(import.meta.url);
|
|
@@ -418,19 +419,6 @@ export class NpmControllerLoader {
|
|
|
418
419
|
}
|
|
419
420
|
}
|
|
420
421
|
|
|
421
|
-
/**
|
|
422
|
-
* Names of packages whose realpath must be shared between the kernel and every
|
|
423
|
-
* loaded controller. Each name here becomes a `file:` dep in the install-root
|
|
424
|
-
* `package.json`, pinned at the kernel's own resolution; controllers declare
|
|
425
|
-
* these names as `peerDependencies` so npm/pnpm resolves them to that single
|
|
426
|
-
* copy instead of nesting their own.
|
|
427
|
-
*
|
|
428
|
-
* Add a name here if you ship another shared runtime symbol whose `instanceof`
|
|
429
|
-
* or constructor identity matters across module boundaries. Today the only
|
|
430
|
-
* such name is `@telorun/sdk` (carries the `Stream` class registered with
|
|
431
|
-
* `@marcbachmann/cel-js`).
|
|
432
|
-
*/
|
|
433
|
-
const REALM_COLLAPSE_NAMES: ReadonlyArray<string> = ["@telorun/sdk"];
|
|
434
422
|
|
|
435
423
|
/**
|
|
436
424
|
* Resolve a kernel-runtime dep name to the realpath of its package directory.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bare specifiers a controller may import that must resolve to the *kernel's own
|
|
3
|
+
* copy*, so module identity is shared across the kernel/controller boundary
|
|
4
|
+
* (e.g. `Stream`, `InvokeError`). The npm loader pins these as `file:` deps in
|
|
5
|
+
* its install root; the bundle loader maps them via an ESM resolve hook. Single
|
|
6
|
+
* source of truth for both.
|
|
7
|
+
*/
|
|
8
|
+
export const REALM_COLLAPSE_NAMES: ReadonlyArray<string> = ["@telorun/sdk"];
|
package/src/runtime-registry.ts
CHANGED
|
@@ -22,6 +22,11 @@ export const POLICY_WILDCARD = "*";
|
|
|
22
22
|
* label is the implementation directory name a contributor sees at
|
|
23
23
|
* `modules/<name>/<label>/`.
|
|
24
24
|
*/
|
|
25
|
+
// Runtime labels name a host runtime, never a delivery mechanism. `pkg:telo`
|
|
26
|
+
// (bundled delivery) is intentionally absent: it carries its runtime in the
|
|
27
|
+
// `?format=` qualifier and is selected via the default policy's `*` wildcard,
|
|
28
|
+
// not by a "bundle" label (bundling isn't a runtime). Mapping a runtime label
|
|
29
|
+
// to bundled `?format=` candidates is the model-B selection upgrade (future).
|
|
25
30
|
const LABEL_TO_PURL_TYPE: Readonly<Record<string, string>> = {
|
|
26
31
|
nodejs: "pkg:npm",
|
|
27
32
|
rust: "pkg:cargo",
|