@telorun/kernel 0.62.0 → 0.64.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/boot-context-registry.js +1 -3
- package/dist/boot-context-registry.js.map +1 -1
- package/dist/bundle/module-artifact.js +15 -8
- package/dist/bundle/module-artifact.js.map +1 -1
- package/dist/controller-loader.d.ts +4 -0
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +5 -1
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-loaders/bundle-loader.d.ts +21 -0
- package/dist/controller-loaders/bundle-loader.d.ts.map +1 -1
- package/dist/controller-loaders/bundle-loader.js +98 -17
- package/dist/controller-loaders/bundle-loader.js.map +1 -1
- package/dist/controller-loaders/napi-loader.d.ts.map +1 -1
- package/dist/controller-loaders/napi-loader.js +24 -8
- package/dist/controller-loaders/napi-loader.js.map +1 -1
- package/dist/controller-loaders/npm-loader.js +37 -28
- package/dist/controller-loaders/npm-loader.js.map +1 -1
- package/dist/controller-loaders/source-bundle-builder.d.ts +30 -0
- package/dist/controller-loaders/source-bundle-builder.d.ts.map +1 -0
- package/dist/controller-loaders/source-bundle-builder.js +302 -0
- package/dist/controller-loaders/source-bundle-builder.js.map +1 -0
- package/dist/controller-registry.js +3 -5
- package/dist/controller-registry.js.map +1 -1
- package/dist/controllers/resource-definition/abstract-controller.js +2 -1
- package/dist/controllers/resource-definition/abstract-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +11 -3
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/controllers/type/json-schema-controller.js +3 -0
- package/dist/controllers/type/json-schema-controller.js.map +1 -1
- package/dist/directory-lock.js +5 -5
- package/dist/directory-lock.js.map +1 -1
- package/dist/evaluation-context.js +60 -21
- package/dist/evaluation-context.js.map +1 -1
- package/dist/events.js +1 -3
- package/dist/events.js.map +1 -1
- package/dist/host-env.js +3 -2
- package/dist/host-env.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +9 -0
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +64 -26
- package/dist/kernel.js.map +1 -1
- package/dist/logging/console-sink.js +18 -29
- package/dist/logging/console-sink.js.map +1 -1
- package/dist/logging/debug-wire-sink.js +11 -23
- package/dist/logging/debug-wire-sink.js.map +1 -1
- package/dist/logging/drop-accounting.js +28 -41
- package/dist/logging/drop-accounting.js.map +1 -1
- package/dist/logging/file-sink.js +29 -39
- package/dist/logging/file-sink.js.map +1 -1
- package/dist/logging/index.d.ts +1 -1
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +1 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/kernel-logging.js +30 -41
- package/dist/logging/kernel-logging.js.map +1 -1
- package/dist/logging/log-sink.d.ts +1 -1
- package/dist/logging/log-sink.d.ts.map +1 -1
- package/dist/logging/log-sink.js +1 -1
- package/dist/logging/log-sink.js.map +1 -1
- package/dist/logging/logging-pipeline.js +197 -197
- package/dist/logging/logging-pipeline.js.map +1 -1
- package/dist/logging/sampler.js +21 -34
- package/dist/logging/sampler.js.map +1 -1
- package/dist/manifest-sources/local-manifest-cache-source.js +2 -0
- package/dist/manifest-sources/local-manifest-cache-source.js.map +1 -1
- package/dist/manifest-sources/memory-source.js +1 -3
- package/dist/manifest-sources/memory-source.js.map +1 -1
- package/dist/module-context.js +62 -37
- package/dist/module-context.js.map +1 -1
- package/dist/registry.js +5 -7
- package/dist/registry.js.map +1 -1
- package/dist/resource-context.d.ts +11 -1
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +44 -23
- package/dist/resource-context.js.map +1 -1
- package/dist/resource-uri.js +4 -0
- package/dist/resource-uri.js.map +1 -1
- package/dist/runtime-seam.d.ts +19 -0
- package/dist/runtime-seam.d.ts.map +1 -0
- package/dist/runtime-seam.js +198 -0
- package/dist/runtime-seam.js.map +1 -0
- package/dist/schema-validator.js +20 -18
- package/dist/schema-validator.js.map +1 -1
- package/dist/tracing.js +4 -19
- package/dist/tracing.js.map +1 -1
- package/dist/transports/oci/oci-client.js +3 -1
- package/dist/transports/oci/oci-client.js.map +1 -1
- package/dist/transports/oci/oci-transport.js +17 -16
- package/dist/transports/oci/oci-transport.js.map +1 -1
- package/dist/transports/registry-transport.js +4 -0
- package/dist/transports/registry-transport.js.map +1 -1
- package/dist/transports/transport-registry.js +1 -0
- package/dist/transports/transport-registry.js.map +1 -1
- package/package.json +4 -4
- package/src/controller-loader.ts +5 -1
- package/src/controller-loaders/bundle-loader.ts +108 -23
- package/src/controller-loaders/napi-loader.ts +28 -9
- package/src/controller-loaders/source-bundle-builder.ts +337 -0
- package/src/controllers/resource-definition/resource-definition-controller.ts +23 -17
- package/src/index.ts +1 -0
- package/src/kernel.ts +13 -0
- package/src/logging/file-sink.ts +1 -1
- package/src/logging/index.ts +1 -1
- package/src/logging/log-sink.ts +1 -0
- package/src/resource-context.ts +23 -0
- package/src/runtime-seam.ts +230 -0
- package/dist/logging/record-buffer.d.ts +0 -24
- package/dist/logging/record-buffer.d.ts.map +0 -1
- package/dist/logging/record-buffer.js +0 -78
- package/dist/logging/record-buffer.js.map +0 -1
- package/src/logging/record-buffer.ts +0 -72
|
@@ -11,9 +11,7 @@ import { RuntimeError } from "@telorun/sdk";
|
|
|
11
11
|
* references, throwing ERR_VISIBILITY_DENIED on violations.
|
|
12
12
|
*/
|
|
13
13
|
export class BootContextRegistry {
|
|
14
|
-
|
|
15
|
-
this.providers = [];
|
|
16
|
-
}
|
|
14
|
+
providers = [];
|
|
17
15
|
/**
|
|
18
16
|
* Register a new context provider after its init() has completed.
|
|
19
17
|
* Called by the kernel for every resource instance that passes isContextProvider().
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot-context-registry.js","sourceRoot":"","sources":["../src/boot-context-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAgB5C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAmB;
|
|
1
|
+
{"version":3,"file":"boot-context-registry.js","sourceRoot":"","sources":["../src/boot-context-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,11 +61,11 @@ function detectLibc() {
|
|
|
61
61
|
*/
|
|
62
62
|
let cachedHostTarget;
|
|
63
63
|
export function hostPlatformTarget() {
|
|
64
|
-
cachedHostTarget
|
|
64
|
+
cachedHostTarget ??= {
|
|
65
65
|
os: NODE_OS_TO_OCI[process.platform],
|
|
66
66
|
arch: NODE_ARCH_TO_OCI[process.arch],
|
|
67
67
|
libc: detectLibc(),
|
|
68
|
-
}
|
|
68
|
+
};
|
|
69
69
|
return cachedHostTarget;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -91,13 +91,20 @@ export function hostPlatformTarget() {
|
|
|
91
91
|
* being mistaken for an already-populated layer.
|
|
92
92
|
*/
|
|
93
93
|
export class ModuleArtifact {
|
|
94
|
+
/** The importer's pinned ref — what the transport verifies the manifest layer
|
|
95
|
+
* against, and what keeps the Merkle chain anchored. */
|
|
96
|
+
pinnedRef;
|
|
97
|
+
layers;
|
|
98
|
+
dir;
|
|
99
|
+
transports;
|
|
100
|
+
log;
|
|
101
|
+
/** In-flight / completed materializations, keyed by blob digest. Rejections
|
|
102
|
+
* are dropped so a transient fetch failure retries on the next ask. Each
|
|
103
|
+
* records whether the work it wraps transferred the layer or read it off
|
|
104
|
+
* disk — the memoized entry is shared, so a joining caller reads the flag
|
|
105
|
+
* but never claims it. */
|
|
106
|
+
inFlight = new Map();
|
|
94
107
|
constructor(opts) {
|
|
95
|
-
/** In-flight / completed materializations, keyed by blob digest. Rejections
|
|
96
|
-
* are dropped so a transient fetch failure retries on the next ask. Each
|
|
97
|
-
* records whether the work it wraps transferred the layer or read it off
|
|
98
|
-
* disk — the memoized entry is shared, so a joining caller reads the flag
|
|
99
|
-
* but never claims it. */
|
|
100
|
-
this.inFlight = new Map();
|
|
101
108
|
this.pinnedRef = opts.pinnedRef;
|
|
102
109
|
this.layers = opts.layers;
|
|
103
110
|
this.dir = opts.dir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-artifact.js","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAE3F,OAAO,EAAE,qBAAqB,EAAoB,MAAM,sBAAsB,CAAC;AAoB/E;;;;GAIG;AACH,MAAM,cAAc,GAAqC;IACvD,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,gBAAgB,GAAqC;IACzD,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,UAAU;IACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,EAE3B,CAAC;QACd,OAAO,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,IAAI,gBAA4C,CAAC;AAEjD,MAAM,UAAU,kBAAkB;IAChC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"module-artifact.js","sourceRoot":"","sources":["../../src/bundle/module-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,10 @@ export interface ControllerLoaderOptions {
|
|
|
79
79
|
* single `resolveCacheRoot`. Overrides the entry-anchored default so a
|
|
80
80
|
* relocated `TELO_CACHE_DIR` is honoured. */
|
|
81
81
|
installRoot?: string;
|
|
82
|
+
/** The `.telo` cache root for this load. The bundle loader caches a dev build
|
|
83
|
+
* of a local module's controller source under it; absent simply disables that
|
|
84
|
+
* path, leaving a prebuilt `path=` to load. */
|
|
85
|
+
cacheRoot?: string;
|
|
82
86
|
/** Where the sub-loaders' diagnostics go — install-lock waits, bundle skips.
|
|
83
87
|
* Threaded from `ctx.log` so §13.1 holds (no direct `process.stderr`), and so
|
|
84
88
|
* the bundle-skip diagnostics that replaced `TELO_BUNDLE_DEBUG` actually reach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAE1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,cAAc,GACd,OAAO,GACP,aAAa,GACb,aAAa,GACb,QAAQ,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,uBAAuB,CAAC;IAChC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnD;AAED,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;IAClB;;kDAE8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;2DAGuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;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;IAW3C,IAAI,CACR,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,kBAAkB,CAAC;YA+BhB,WAAW;YASX,kBAAkB;CAgBjC"}
|
|
1
|
+
{"version":3,"file":"controller-loader.d.ts","sourceRoot":"","sources":["../src/controller-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAE1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,cAAc,GACd,OAAO,GACP,aAAa,GACb,aAAa,GACb,QAAQ,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,uBAAuB,CAAC;IAChC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnD;AAED,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;IAClB;;kDAE8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2DAGuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;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;IAW3C,IAAI,CACR,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,kBAAkB,CAAC;YA+BhB,WAAW;YASX,kBAAkB;CAgBjC"}
|
|
@@ -21,6 +21,10 @@ import { DEFAULT_POLICY, POLICY_WILDCARD } from "./runtime-registry.js";
|
|
|
21
21
|
* `ControllerLoadFailed`) for the one that won.
|
|
22
22
|
*/
|
|
23
23
|
export class ControllerLoader {
|
|
24
|
+
emit;
|
|
25
|
+
npmLoader;
|
|
26
|
+
napiLoader;
|
|
27
|
+
bundleLoader;
|
|
24
28
|
constructor(options = {}) {
|
|
25
29
|
this.emit = options.emit;
|
|
26
30
|
this.npmLoader = new NpmControllerLoader({
|
|
@@ -30,7 +34,7 @@ export class ControllerLoader {
|
|
|
30
34
|
if (options.log)
|
|
31
35
|
this.npmLoader.setLogger(options.log);
|
|
32
36
|
this.napiLoader = new NapiControllerLoader();
|
|
33
|
-
this.bundleLoader = new BundleControllerLoader();
|
|
37
|
+
this.bundleLoader = new BundleControllerLoader(options.cacheRoot);
|
|
34
38
|
}
|
|
35
39
|
async load(purlCandidates, baseUri, policy, artifact) {
|
|
36
40
|
if (!purlCandidates || purlCandidates.length === 0) {
|
|
@@ -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;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,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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"}
|
|
@@ -22,7 +22,16 @@ import type { ControllerResolveSource } from "../controller-loader.js";
|
|
|
22
22
|
* (or `[pkg:telo …, pkg:npm …]`) falls through to a candidate this — or
|
|
23
23
|
* another runtime's — kernel can load.
|
|
24
24
|
* - `path` — the file in the bundle; `#export` — the named export.
|
|
25
|
+
* - `local_path` — the TypeScript source `path=` was built from. Present only
|
|
26
|
+
* while the module is a working copy; a published artifact ships no `src/`.
|
|
27
|
+
* When the module arrives with **no artifact handle** and the source resolves
|
|
28
|
+
* on disk, the loader builds it (see `source-bundle-builder.ts`) rather than
|
|
29
|
+
* importing `path=`, so editing a controller and re-running picks the edit up
|
|
30
|
+
* with no build step. The guard is the absence of an artifact, not the shape
|
|
31
|
+
* of the base URI: a published module served from the on-disk manifest cache
|
|
32
|
+
* has a local base too, and its payload is the layer regardless.
|
|
25
33
|
*
|
|
34
|
+
|
|
26
35
|
* Two separate concerns for `js` bundles importing `@telorun/sdk`:
|
|
27
36
|
* - *Resolution* — the bare specifier must point at a real file. The bundle has
|
|
28
37
|
* no node_modules, so `ensureRealmSymlinks()` symlinks the realm-collapse
|
|
@@ -38,6 +47,11 @@ import type { ControllerResolveSource } from "../controller-loader.js";
|
|
|
38
47
|
* through); a bundle that loads but is malformed is a hard `ERR_CONTROLLER_INVALID`.
|
|
39
48
|
*/
|
|
40
49
|
export declare class BundleControllerLoader {
|
|
50
|
+
private readonly cacheRoot?;
|
|
51
|
+
/** Where a dev build from `local_path` is cached (`<cache-root>/controller-src`).
|
|
52
|
+
* Absent for callers that resolved no cache root, which simply disables the
|
|
53
|
+
* source path — a prebuilt `path=` still loads. */
|
|
54
|
+
constructor(cacheRoot?: string | undefined);
|
|
41
55
|
load(purl: string, baseUri: string, artifact?: ModuleArtifact): Promise<{
|
|
42
56
|
instance: ControllerInstance;
|
|
43
57
|
source: ControllerResolveSource;
|
|
@@ -53,5 +67,12 @@ export declare class BundleControllerLoader {
|
|
|
53
67
|
source: ControllerResolveSource;
|
|
54
68
|
importInstance: () => Promise<ControllerInstance>;
|
|
55
69
|
}>;
|
|
70
|
+
/** The `local_path` source this candidate names, resolved against the declaring
|
|
71
|
+
* module's directory — or `undefined` when the candidate declares none, or the
|
|
72
|
+
* module is not on disk to resolve it against. */
|
|
73
|
+
private localSourceFile;
|
|
74
|
+
/** Directory of the declaring module's manifest. Only meaningful for a local
|
|
75
|
+
* base; callers gate on {@link isLocalBase} first. */
|
|
76
|
+
private moduleDir;
|
|
56
77
|
}
|
|
57
78
|
//# sourceMappingURL=bundle-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAOhE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAOhE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAuGvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAHvC;;wDAEoD;gBACvB,SAAS,CAAC,EAAE,MAAM,YAAA;IAEzC,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;QAAE,QAAQ,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC;IAK7E;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;QAAE,MAAM,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;IAsJlG;;uDAEmD;IACnD,OAAO,CAAC,eAAe;IAMvB;2DACuD;IACvD,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -9,6 +9,7 @@ import { fileURLToPath, pathToFileURL } from "url";
|
|
|
9
9
|
import { hostPlatformTarget } from "../bundle/module-artifact.js";
|
|
10
10
|
import { ControllerEnvMissingError } from "./napi-loader.js";
|
|
11
11
|
import { REALM_COLLAPSE_NAMES } from "./realm.js";
|
|
12
|
+
import { buildControllerFromSource, canBuildFromSource } from "./source-bundle-builder.js";
|
|
12
13
|
/** A base URI whose files are already on disk: a `file://` URL or a bare
|
|
13
14
|
* absolute path. Everything else (`oci://`, `http(s)://`, `memory://`) names a
|
|
14
15
|
* module whose payload only exists inside an artifact. */
|
|
@@ -136,7 +137,16 @@ function findPackageRoot(entryFile, name) {
|
|
|
136
137
|
* (or `[pkg:telo …, pkg:npm …]`) falls through to a candidate this — or
|
|
137
138
|
* another runtime's — kernel can load.
|
|
138
139
|
* - `path` — the file in the bundle; `#export` — the named export.
|
|
140
|
+
* - `local_path` — the TypeScript source `path=` was built from. Present only
|
|
141
|
+
* while the module is a working copy; a published artifact ships no `src/`.
|
|
142
|
+
* When the module arrives with **no artifact handle** and the source resolves
|
|
143
|
+
* on disk, the loader builds it (see `source-bundle-builder.ts`) rather than
|
|
144
|
+
* importing `path=`, so editing a controller and re-running picks the edit up
|
|
145
|
+
* with no build step. The guard is the absence of an artifact, not the shape
|
|
146
|
+
* of the base URI: a published module served from the on-disk manifest cache
|
|
147
|
+
* has a local base too, and its payload is the layer regardless.
|
|
139
148
|
*
|
|
149
|
+
|
|
140
150
|
* Two separate concerns for `js` bundles importing `@telorun/sdk`:
|
|
141
151
|
* - *Resolution* — the bare specifier must point at a real file. The bundle has
|
|
142
152
|
* no node_modules, so `ensureRealmSymlinks()` symlinks the realm-collapse
|
|
@@ -152,6 +162,13 @@ function findPackageRoot(entryFile, name) {
|
|
|
152
162
|
* through); a bundle that loads but is malformed is a hard `ERR_CONTROLLER_INVALID`.
|
|
153
163
|
*/
|
|
154
164
|
export class BundleControllerLoader {
|
|
165
|
+
cacheRoot;
|
|
166
|
+
/** Where a dev build from `local_path` is cached (`<cache-root>/controller-src`).
|
|
167
|
+
* Absent for callers that resolved no cache root, which simply disables the
|
|
168
|
+
* source path — a prebuilt `path=` still loads. */
|
|
169
|
+
constructor(cacheRoot) {
|
|
170
|
+
this.cacheRoot = cacheRoot;
|
|
171
|
+
}
|
|
155
172
|
async load(purl, baseUri, artifact) {
|
|
156
173
|
const { source, importInstance } = await this.resolve(purl, baseUri, artifact);
|
|
157
174
|
return { instance: await importInstance(), source };
|
|
@@ -198,6 +215,55 @@ export class BundleControllerLoader {
|
|
|
198
215
|
`match this host (${host.os ?? "unknown os"}/${host.arch ?? "unknown arch"}` +
|
|
199
216
|
`${host.libc ? `/${host.libc}` : ""})`);
|
|
200
217
|
}
|
|
218
|
+
const fragment = parsed.subpath;
|
|
219
|
+
// Dev path: a module that is a working copy — no artifact behind it — with a
|
|
220
|
+
// `local_path` source on disk is built from that source, because the source
|
|
221
|
+
// is what is authoritative there. An artifact means the payload IS the layer,
|
|
222
|
+
// so this never fires for a published module, including one served from the
|
|
223
|
+
// on-disk manifest cache (whose base is local but whose payload is a layer).
|
|
224
|
+
//
|
|
225
|
+
// esbuild is probed HERE rather than inside the build. It is an optional
|
|
226
|
+
// dependency so that an install skipping optionals still runs published
|
|
227
|
+
// artifacts — and a working copy that has run its build script has the same
|
|
228
|
+
// prebuilt file on disk. Deciding it lazily would turn "no bundler" into a
|
|
229
|
+
// hard failure standing next to a perfectly good bundle, and the candidate
|
|
230
|
+
// list could not rescue it: the fallback belongs to this same PURL, not to a
|
|
231
|
+
// sibling candidate.
|
|
232
|
+
const cacheRoot = this.cacheRoot;
|
|
233
|
+
const sourceFile = artifact ? undefined : this.localSourceFile(parsed, baseUri);
|
|
234
|
+
const buildFromSource = sourceFile !== undefined &&
|
|
235
|
+
cacheRoot !== undefined &&
|
|
236
|
+
(await pathExists(sourceFile)) &&
|
|
237
|
+
(await canBuildFromSource());
|
|
238
|
+
if (buildFromSource) {
|
|
239
|
+
// The same file the prebuilt branch would import, kept as the fallback for
|
|
240
|
+
// an environment that stops being able to build between resolve and first
|
|
241
|
+
// instantiation.
|
|
242
|
+
const prebuilt = path.resolve(this.moduleDir(baseUri), relPath);
|
|
243
|
+
return {
|
|
244
|
+
source: "local",
|
|
245
|
+
// Deferred like every other branch: the build is paid on the kind's
|
|
246
|
+
// first instantiation, so a manifest pays only for the kinds it uses.
|
|
247
|
+
// A build FAILURE is user code and propagates unchanged; only a missing
|
|
248
|
+
// *environment* falls back, and only to a file that is actually there.
|
|
249
|
+
importInstance: async () => {
|
|
250
|
+
let built;
|
|
251
|
+
try {
|
|
252
|
+
built = await buildControllerFromSource(sourceFile, cacheRoot);
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
if (!(err instanceof ControllerEnvMissingError))
|
|
256
|
+
throw err;
|
|
257
|
+
if (!(await pathExists(prebuilt)))
|
|
258
|
+
throw err;
|
|
259
|
+
await ensureRealmSymlinks(path.dirname(prebuilt));
|
|
260
|
+
return importControllerModule(prebuilt, purl, fragment);
|
|
261
|
+
}
|
|
262
|
+
await ensureRealmSymlinks(path.dirname(built));
|
|
263
|
+
return importControllerModule(built, purl, fragment);
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
201
267
|
// A published module's payload lives in its artifact, so materialize the one
|
|
202
268
|
// layer carrying this candidate and resolve `path=` inside it. Nothing is
|
|
203
269
|
// fetched here: the artifact handle owns the pinned ref and the verified
|
|
@@ -236,26 +302,41 @@ export class BundleControllerLoader {
|
|
|
236
302
|
// Make bare `@telorun/sdk` (etc.) resolve to the kernel's copy before
|
|
237
303
|
// importing the bundle, so authors write normal imports.
|
|
238
304
|
await ensureRealmSymlinks(path.dirname(absFile));
|
|
239
|
-
const fragment = parsed.subpath;
|
|
240
305
|
return {
|
|
241
306
|
source,
|
|
242
|
-
importInstance:
|
|
243
|
-
// A broken bundle (syntax / failed import) is a real user-code failure —
|
|
244
|
-
// let it propagate rather than masking it as env-missing.
|
|
245
|
-
const mod = (await import(pathToFileURL(absFile).href));
|
|
246
|
-
// Distinguish "no such export" from "export isn't a controller" so the
|
|
247
|
-
// error points at the actual problem (mirrors the napi loader's project()).
|
|
248
|
-
if (fragment && !(fragment in mod)) {
|
|
249
|
-
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}": module "${absFile}" has no export named "${fragment}"`);
|
|
250
|
-
}
|
|
251
|
-
const instance = fragment ? mod[fragment] : mod;
|
|
252
|
-
if (!instance || (!instance.create && !instance.register)) {
|
|
253
|
-
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}" exports neither create() nor register()` +
|
|
254
|
-
(fragment ? ` at fragment "#${fragment}"` : ""));
|
|
255
|
-
}
|
|
256
|
-
return instance;
|
|
257
|
-
},
|
|
307
|
+
importInstance: () => importControllerModule(absFile, purl, fragment),
|
|
258
308
|
};
|
|
259
309
|
}
|
|
310
|
+
/** The `local_path` source this candidate names, resolved against the declaring
|
|
311
|
+
* module's directory — or `undefined` when the candidate declares none, or the
|
|
312
|
+
* module is not on disk to resolve it against. */
|
|
313
|
+
localSourceFile(parsed, baseUri) {
|
|
314
|
+
const localPath = parsed.qualifiers?.local_path;
|
|
315
|
+
if (!localPath || !isLocalBase(baseUri))
|
|
316
|
+
return undefined;
|
|
317
|
+
return path.resolve(this.moduleDir(baseUri), localPath);
|
|
318
|
+
}
|
|
319
|
+
/** Directory of the declaring module's manifest. Only meaningful for a local
|
|
320
|
+
* base; callers gate on {@link isLocalBase} first. */
|
|
321
|
+
moduleDir(baseUri) {
|
|
322
|
+
return path.dirname(baseUri.startsWith("file://") ? fileURLToPath(baseUri) : baseUri);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/** Import a built bundle and project out the controller the fragment names. A
|
|
326
|
+
* broken bundle (syntax error, failed import) is a real user-code failure and
|
|
327
|
+
* propagates; it is never masked as env-missing. */
|
|
328
|
+
async function importControllerModule(absFile, purl, fragment) {
|
|
329
|
+
const mod = (await import(pathToFileURL(absFile).href));
|
|
330
|
+
// Distinguish "no such export" from "export isn't a controller" so the error
|
|
331
|
+
// points at the actual problem (mirrors the napi loader's project()).
|
|
332
|
+
if (fragment && !(fragment in mod)) {
|
|
333
|
+
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}": module "${absFile}" has no export named "${fragment}"`);
|
|
334
|
+
}
|
|
335
|
+
const instance = fragment ? mod[fragment] : mod;
|
|
336
|
+
if (!instance || (!instance.create && !instance.register)) {
|
|
337
|
+
throw new RuntimeError("ERR_CONTROLLER_INVALID", `Bundled controller "${purl}" exports neither create() nor register()` +
|
|
338
|
+
(fragment ? ` at fragment "#${fragment}"` : ""));
|
|
339
|
+
}
|
|
340
|
+
return instance;
|
|
260
341
|
}
|
|
261
342
|
//# sourceMappingURL=bundle-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/bundle-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAuB,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
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":"napi-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/napi-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAahE;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAU;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAgDD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AACD,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,qBAAa,oBAAoB;IAC/B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKlE;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;YAmE9E,YAAY;
|
|
1
|
+
{"version":3,"file":"napi-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/napi-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAahE;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAU;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAgDD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AACD,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,qBAAa,oBAAoB;IAC/B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKlE;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;YAmE9E,YAAY;CAoE3B"}
|
|
@@ -16,9 +16,9 @@ const requireFromHere = createRequire(import.meta.url);
|
|
|
16
16
|
* which is non-recoverable: those mean user code is broken and must surface.
|
|
17
17
|
*/
|
|
18
18
|
export class ControllerEnvMissingError extends Error {
|
|
19
|
+
_envMissing = true;
|
|
19
20
|
constructor(message) {
|
|
20
21
|
super(message);
|
|
21
|
-
this._envMissing = true;
|
|
22
22
|
this.name = "ControllerEnvMissingError";
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -170,13 +170,25 @@ export class NapiControllerLoader {
|
|
|
170
170
|
catch {
|
|
171
171
|
throw new ControllerEnvMissingError("rustc not found on PATH");
|
|
172
172
|
}
|
|
173
|
+
// Read before building: the metadata answers both "where did the dylib
|
|
174
|
+
// land" and "does this crate use the SDK", and the second decides the build
|
|
175
|
+
// flags.
|
|
176
|
+
const { targetDir, libName, usesSdk } = await resolveCrateMetadata(cratePath, fallbackName);
|
|
173
177
|
try {
|
|
174
|
-
//
|
|
175
|
-
// `
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
|
|
178
|
+
// The backend is selected as a *dependency* feature of the SDK. A crate
|
|
179
|
+
// built on `telorun-sdk` carries no `[features]` block of its own, so this
|
|
180
|
+
// is the only way to pick one from outside it: `--no-default-features`
|
|
181
|
+
// here would apply to the controller crate, not to the SDK, and the SDK
|
|
182
|
+
// therefore declares no default backend at all. The Rust kernel passes
|
|
183
|
+
// `--features telorun-sdk/native` at the same spot.
|
|
184
|
+
//
|
|
185
|
+
// Only when the crate actually depends on the SDK. `pkg:cargo` names a
|
|
186
|
+
// Rust controller, not an SDK user — a crate may implement the napi
|
|
187
|
+
// exports by hand (the `tests/napi-echo` fixture does exactly that, which
|
|
188
|
+
// is what makes it a test of this loader rather than of the SDK). Naming a
|
|
189
|
+
// feature of a dependency it does not have is a hard cargo error.
|
|
190
|
+
const featureArgs = usesSdk ? ["--features", "telorun-sdk/napi"] : [];
|
|
191
|
+
await execFileAsync("cargo", ["build", "--release", ...featureArgs], {
|
|
180
192
|
cwd: cratePath,
|
|
181
193
|
maxBuffer: 32 * 1024 * 1024,
|
|
182
194
|
env: hostEnv(),
|
|
@@ -186,7 +198,6 @@ export class NapiControllerLoader {
|
|
|
186
198
|
const stderr = err?.stderr ? `\n${err.stderr}` : "";
|
|
187
199
|
throw new RuntimeError("ERR_CONTROLLER_BUILD_FAILED", `cargo build failed for ${cratePath}:${stderr}`);
|
|
188
200
|
}
|
|
189
|
-
const { targetDir, libName } = await resolveCrateMetadata(cratePath, fallbackName);
|
|
190
201
|
const dylibPath = await findDylib(targetDir, libName);
|
|
191
202
|
if (!dylibPath) {
|
|
192
203
|
throw new RuntimeError("ERR_CONTROLLER_BUILD_FAILED", `cargo build succeeded but no cdylib found for ${libName} under ${path.join(targetDir, "release")}/`);
|
|
@@ -229,6 +240,9 @@ function project(module, entry, where) {
|
|
|
229
240
|
}
|
|
230
241
|
return sub;
|
|
231
242
|
}
|
|
243
|
+
/** The SDK crate whose backend feature selects the FFI bridge, when the
|
|
244
|
+
* controller is built on it. */
|
|
245
|
+
const SDK_CRATE_NAME = "telorun-sdk";
|
|
232
246
|
async function resolveCrateMetadata(cratePath, fallbackName) {
|
|
233
247
|
const result = await execFileAsync("cargo", [
|
|
234
248
|
"metadata",
|
|
@@ -241,9 +255,11 @@ async function resolveCrateMetadata(cratePath, fallbackName) {
|
|
|
241
255
|
const metadata = JSON.parse(result.stdout);
|
|
242
256
|
const cratePackage = metadata.packages?.find((p) => p.manifest_path === path.join(cratePath, "Cargo.toml"));
|
|
243
257
|
const packageName = cratePackage?.name ?? fallbackName;
|
|
258
|
+
const usesSdk = (cratePackage?.dependencies ?? []).some((dependency) => dependency?.name === SDK_CRATE_NAME);
|
|
244
259
|
return {
|
|
245
260
|
targetDir: metadata.target_directory,
|
|
246
261
|
libName: packageName.replace(/-/g, "_"),
|
|
262
|
+
usesSdk,
|
|
247
263
|
};
|
|
248
264
|
}
|
|
249
265
|
async function findDylib(targetDir, libName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"napi-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/napi-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"napi-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/napi-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,39 +66,48 @@ const PEER_INSTALL_FLAGS = PACKAGE_MANAGER === "npm"
|
|
|
66
66
|
* cross-process safety is provided by a filesystem lock on `<root>/.lock`.
|
|
67
67
|
*/
|
|
68
68
|
export class NpmControllerLoader {
|
|
69
|
+
/** Where install-lock diagnostics go. Injected rather than written to
|
|
70
|
+
* `process.stderr`: this loader runs outside the kernel's stdio scope, and
|
|
71
|
+
* §13.1 routes every kernel diagnostic through the logger. */
|
|
72
|
+
log = NOOP_LOGGER;
|
|
69
73
|
/** Route this loader's diagnostics through the kernel's logger. */
|
|
70
74
|
setLogger(log) {
|
|
71
75
|
this.log = log;
|
|
72
76
|
}
|
|
77
|
+
entryUrl;
|
|
78
|
+
/** Threaded install root (`<cache-root>/npm`); overrides `computeInstallRoot`. */
|
|
79
|
+
installRootOverride;
|
|
80
|
+
/**
|
|
81
|
+
* Per-process cache of "this controller's package + version is already
|
|
82
|
+
* installed in the root and matches our spec" so concurrent loads of the
|
|
83
|
+
* same definition skip the lock + re-check round-trip after the first
|
|
84
|
+
* caller wins. Keyed by absolute spec (e.g. `@telorun/sdk@file:/abs/path`
|
|
85
|
+
* or `@scope/pkg@^1.2.3`).
|
|
86
|
+
*/
|
|
87
|
+
installedSpecs = new Set();
|
|
88
|
+
/**
|
|
89
|
+
* In-flight installs keyed by canonical spec. Two callers racing for the
|
|
90
|
+
* same spec share one `npm install <spec>` invocation rather than each
|
|
91
|
+
* acquiring the fs-lock and reinstalling.
|
|
92
|
+
*/
|
|
93
|
+
inFlight = new Map();
|
|
94
|
+
/**
|
|
95
|
+
* Promise that resolves when the install root has been materialized
|
|
96
|
+
* (package.json written, kernel-side runtime deps wired up, base
|
|
97
|
+
* `npm install` completed). Subsequent loads await this once.
|
|
98
|
+
*/
|
|
99
|
+
rootReady;
|
|
100
|
+
/**
|
|
101
|
+
* Snapshot of the install root's `dependencies` map at the time of last
|
|
102
|
+
* read. Set during `materializeInstallRoot()` and refreshed when an
|
|
103
|
+
* install adds a new spec. Lets the per-controller fast path decide on
|
|
104
|
+
* "already installed?" without re-reading and re-parsing `package.json`
|
|
105
|
+
* for every load — a single test typically touches 5–10 controllers,
|
|
106
|
+
* and a test suite spawns one Kernel per fixture, so the multiplier is
|
|
107
|
+
* `tests * controllers` file reads otherwise.
|
|
108
|
+
*/
|
|
109
|
+
rootDeps = {};
|
|
73
110
|
constructor(options = {}) {
|
|
74
|
-
/** Where install-lock diagnostics go. Injected rather than written to
|
|
75
|
-
* `process.stderr`: this loader runs outside the kernel's stdio scope, and
|
|
76
|
-
* §13.1 routes every kernel diagnostic through the logger. */
|
|
77
|
-
this.log = NOOP_LOGGER;
|
|
78
|
-
/**
|
|
79
|
-
* Per-process cache of "this controller's package + version is already
|
|
80
|
-
* installed in the root and matches our spec" so concurrent loads of the
|
|
81
|
-
* same definition skip the lock + re-check round-trip after the first
|
|
82
|
-
* caller wins. Keyed by absolute spec (e.g. `@telorun/sdk@file:/abs/path`
|
|
83
|
-
* or `@scope/pkg@^1.2.3`).
|
|
84
|
-
*/
|
|
85
|
-
this.installedSpecs = new Set();
|
|
86
|
-
/**
|
|
87
|
-
* In-flight installs keyed by canonical spec. Two callers racing for the
|
|
88
|
-
* same spec share one `npm install <spec>` invocation rather than each
|
|
89
|
-
* acquiring the fs-lock and reinstalling.
|
|
90
|
-
*/
|
|
91
|
-
this.inFlight = new Map();
|
|
92
|
-
/**
|
|
93
|
-
* Snapshot of the install root's `dependencies` map at the time of last
|
|
94
|
-
* read. Set during `materializeInstallRoot()` and refreshed when an
|
|
95
|
-
* install adds a new spec. Lets the per-controller fast path decide on
|
|
96
|
-
* "already installed?" without re-reading and re-parsing `package.json`
|
|
97
|
-
* for every load — a single test typically touches 5–10 controllers,
|
|
98
|
-
* and a test suite spawns one Kernel per fixture, so the multiplier is
|
|
99
|
-
* `tests * controllers` file reads otherwise.
|
|
100
|
-
*/
|
|
101
|
-
this.rootDeps = {};
|
|
102
111
|
this.entryUrl = options.entryUrl;
|
|
103
112
|
this.installRootOverride = options.installRoot;
|
|
104
113
|
}
|