@telorun/kernel 0.61.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/bundle/module-artifact.d.ts +28 -2
  2. package/dist/bundle/module-artifact.d.ts.map +1 -1
  3. package/dist/bundle/module-artifact.js +36 -9
  4. package/dist/bundle/module-artifact.js.map +1 -1
  5. package/dist/controller-loader.d.ts +11 -4
  6. package/dist/controller-loader.d.ts.map +1 -1
  7. package/dist/controller-loader.js +1 -1
  8. package/dist/controller-loader.js.map +1 -1
  9. package/dist/controller-loaders/bundle-loader.d.ts +21 -0
  10. package/dist/controller-loaders/bundle-loader.d.ts.map +1 -1
  11. package/dist/controller-loaders/bundle-loader.js +106 -21
  12. package/dist/controller-loaders/bundle-loader.js.map +1 -1
  13. package/dist/controller-loaders/npm-loader.d.ts.map +1 -1
  14. package/dist/controller-loaders/npm-loader.js +62 -10
  15. package/dist/controller-loaders/npm-loader.js.map +1 -1
  16. package/dist/controller-loaders/source-bundle-builder.d.ts +30 -0
  17. package/dist/controller-loaders/source-bundle-builder.d.ts.map +1 -0
  18. package/dist/controller-loaders/source-bundle-builder.js +302 -0
  19. package/dist/controller-loaders/source-bundle-builder.js.map +1 -0
  20. package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
  21. package/dist/controllers/resource-definition/resource-definition-controller.js +9 -2
  22. package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
  23. package/dist/index.d.ts +3 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/kernel.d.ts +9 -0
  28. package/dist/kernel.d.ts.map +1 -1
  29. package/dist/kernel.js +21 -20
  30. package/dist/kernel.js.map +1 -1
  31. package/dist/logging/file-sink.js +1 -1
  32. package/dist/logging/file-sink.js.map +1 -1
  33. package/dist/logging/index.d.ts +1 -1
  34. package/dist/logging/index.d.ts.map +1 -1
  35. package/dist/logging/index.js +1 -1
  36. package/dist/logging/index.js.map +1 -1
  37. package/dist/logging/log-sink.d.ts +1 -1
  38. package/dist/logging/log-sink.d.ts.map +1 -1
  39. package/dist/logging/log-sink.js +1 -1
  40. package/dist/logging/log-sink.js.map +1 -1
  41. package/dist/resource-context.d.ts +11 -1
  42. package/dist/resource-context.d.ts.map +1 -1
  43. package/dist/resource-context.js +22 -2
  44. package/dist/resource-context.js.map +1 -1
  45. package/dist/runtime-seam.d.ts +19 -0
  46. package/dist/runtime-seam.d.ts.map +1 -0
  47. package/dist/runtime-seam.js +211 -0
  48. package/dist/runtime-seam.js.map +1 -0
  49. package/dist/static-analysis-diagnostics.d.ts +19 -0
  50. package/dist/static-analysis-diagnostics.d.ts.map +1 -0
  51. package/dist/static-analysis-diagnostics.js +52 -0
  52. package/dist/static-analysis-diagnostics.js.map +1 -0
  53. package/dist/transports/oci/oci-transport.d.ts +17 -0
  54. package/dist/transports/oci/oci-transport.d.ts.map +1 -1
  55. package/dist/transports/oci/oci-transport.js +33 -8
  56. package/dist/transports/oci/oci-transport.js.map +1 -1
  57. package/dist/transports/transport-registry.d.ts +6 -4
  58. package/dist/transports/transport-registry.d.ts.map +1 -1
  59. package/dist/transports/transport-registry.js +6 -4
  60. package/dist/transports/transport-registry.js.map +1 -1
  61. package/package.json +5 -5
  62. package/src/bundle/module-artifact.ts +54 -12
  63. package/src/controller-loader.ts +12 -5
  64. package/src/controller-loaders/bundle-loader.ts +117 -27
  65. package/src/controller-loaders/npm-loader.ts +75 -13
  66. package/src/controller-loaders/source-bundle-builder.ts +337 -0
  67. package/src/controllers/resource-definition/resource-definition-controller.ts +23 -17
  68. package/src/index.ts +3 -1
  69. package/src/kernel.ts +25 -17
  70. package/src/logging/file-sink.ts +1 -1
  71. package/src/logging/index.ts +1 -1
  72. package/src/logging/log-sink.ts +1 -0
  73. package/src/resource-context.ts +23 -0
  74. package/src/runtime-seam.ts +230 -0
  75. package/src/static-analysis-diagnostics.ts +51 -0
  76. package/src/transports/oci/oci-transport.ts +34 -8
  77. package/src/transports/transport-registry.ts +6 -4
  78. package/dist/logging/record-buffer.d.ts +0 -24
  79. package/dist/logging/record-buffer.d.ts.map +0 -1
  80. package/dist/logging/record-buffer.js +0 -78
  81. package/dist/logging/record-buffer.js.map +0 -1
  82. package/src/logging/record-buffer.ts +0 -72
@@ -176,15 +176,18 @@ export class NpmControllerLoader {
176
176
  }
177
177
  dependencies[name] = `file:${resolvedPkgRoot}`;
178
178
  }
179
- const packageJson = {
179
+ const packageJsonPath = path.join(installRoot, "package.json");
180
+ const stateFile = path.join(installRoot, ".telo-state.json");
181
+ // Keyed on the realm deps alone — the only part this function owns. The
182
+ // controller aliases below join the file but never the identity: they are
183
+ // added one `--save` at a time, so hashing them would make every controller
184
+ // install invalidate the root and trigger another root install.
185
+ const newHash = sha256(JSON.stringify({
180
186
  name: "telo-runtime-install",
181
187
  private: true,
182
188
  version: "0.0.0",
183
189
  dependencies,
184
- };
185
- const packageJsonPath = path.join(installRoot, "package.json");
186
- const stateFile = path.join(installRoot, ".telo-state.json");
187
- const newHash = sha256(JSON.stringify(packageJson));
190
+ }));
188
191
  await fs.mkdir(installRoot, { recursive: true });
189
192
  // Lock-free fast path: if the on-disk state matches what we'd write,
190
193
  // there's nothing to install and nothing to serialize. Every fresh
@@ -207,7 +210,18 @@ export class NpmControllerLoader {
207
210
  if (existingHash === newHash && (await pathExists(path.join(installRoot, "node_modules")))) {
208
211
  return;
209
212
  }
210
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
213
+ // Rewrite the root's package.json REALM DEPS ONLY, keeping every
214
+ // controller alias a previous `installPackage --save` recorded. Writing a
215
+ // fresh file instead drops them, and the install below then prunes their
216
+ // `node_modules` folders — so a realm change (a different kernel checkout,
217
+ // e.g. a globally installed CLI and a repo one addressing the same app)
218
+ // evicted every controller and reinstalled the lot, on every switch.
219
+ const existingDeps = (await readPackageDeps(installRoot)) ?? {};
220
+ const merged = {
221
+ ...(await liveControllerDeps(existingDeps, installRoot)),
222
+ ...dependencies,
223
+ };
224
+ await fs.writeFile(packageJsonPath, JSON.stringify({ name: "telo-runtime-install", private: true, version: "0.0.0", dependencies: merged }, null, 2) + "\n");
211
225
  await runPackageManager(installRoot, [
212
226
  "install",
213
227
  "--no-audit",
@@ -302,15 +316,18 @@ export class NpmControllerLoader {
302
316
  return "cache";
303
317
  }
304
318
  }
319
+ // Resolves to whether the package manager actually ran: the re-check below
320
+ // routinely wins the race, and reporting an install that never happened
321
+ // makes the CLI print a "downloading…" line nobody waited for.
305
322
  const work = (async () => {
306
- await withDirectoryLock(installRoot, "controller install", async () => {
323
+ return withDirectoryLock(installRoot, "controller install", async () => {
307
324
  // Re-check inside the lock: a peer process may have installed the
308
325
  // spec between the fast-path miss and our acquisition.
309
326
  if (kind === "registry") {
310
327
  const installedVersion = await readInstalledVersion(targetPath);
311
328
  if (installedVersion !== null &&
312
329
  (requestedVersion === null || requestedVersion === installedVersion)) {
313
- return;
330
+ return false;
314
331
  }
315
332
  }
316
333
  else {
@@ -321,7 +338,7 @@ export class NpmControllerLoader {
321
338
  normalizeFileSpec(lockedSpec, installRoot) === normalizeFileSpec(spec, installRoot) &&
322
339
  (await pathExists(targetPath))) {
323
340
  this.rootDeps[alias] = lockedSpec;
324
- return;
341
+ return false;
325
342
  }
326
343
  }
327
344
  await runPackageManager(installRoot, [
@@ -344,16 +361,22 @@ export class NpmControllerLoader {
344
361
  this.rootDeps[alias] = written;
345
362
  else
346
363
  this.rootDeps[alias] = spec;
364
+ return true;
347
365
  }, this.log);
348
366
  })();
349
367
  this.inFlight.set(cacheKey, work);
368
+ let installed;
350
369
  try {
351
- await work;
370
+ installed = await work;
352
371
  }
353
372
  finally {
354
373
  this.inFlight.delete(cacheKey);
355
374
  }
356
375
  this.installedSpecs.add(cacheKey);
376
+ // A peer that won the lock had already put the package there, so nothing
377
+ // was installed — that is a cache hit, whatever the fast path thought.
378
+ if (!installed)
379
+ return "cache";
357
380
  // First-touch local installs report `local` (silenced in CLI progress);
358
381
  // fresh registry installs report `npm-install` (the only branch a
359
382
  // user-facing "downloading…" line should ever surface for).
@@ -572,6 +595,35 @@ function normalizeFileSpec(spec, installRoot) {
572
595
  * Returns null when the file is missing or unreadable; callers decide whether
573
596
  * to seed from a synthesized map instead.
574
597
  */
598
+ /**
599
+ * The subset of a root's recorded dependencies still worth carrying into a
600
+ * rewrite: the package manager has to resolve every entry, so one dead record
601
+ * fails the whole install.
602
+ *
603
+ * Dropped: a `file:` spec whose target no longer exists (the app was run from a
604
+ * checkout that has since moved, or the app directory was copied without it),
605
+ * and an alias with no folder in `node_modules`. Both are free to drop —
606
+ * `installPackage` reinstalls a controller the moment something asks for it —
607
+ * and keeping them is not: a dangling `file:` dep makes the root install fail
608
+ * with an ENOENT that names nothing in the manifest, and since the state file is
609
+ * only written after a successful install, every later run repeats it. This is
610
+ * also what stops aliases accumulating forever now that the rewrite preserves
611
+ * them: a version an app has moved off drops out on the next root install.
612
+ */
613
+ async function liveControllerDeps(deps, installRoot) {
614
+ const live = {};
615
+ for (const [name, spec] of Object.entries(deps)) {
616
+ if (spec.startsWith("file:")) {
617
+ const target = normalizeFileSpec(spec, installRoot).slice("file:".length);
618
+ if (!(await pathExists(target)))
619
+ continue;
620
+ }
621
+ if (!(await pathExists(path.join(installRoot, "node_modules", name))))
622
+ continue;
623
+ live[name] = spec;
624
+ }
625
+ return live;
626
+ }
575
627
  async function readPackageDeps(installRoot) {
576
628
  try {
577
629
  const text = await fs.readFile(path.join(installRoot, "package.json"), "utf8");
@@ -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,30 @@
1
+ /**
2
+ * Whether this host can build a controller from source at all.
3
+ *
4
+ * Asked at *resolve* time, not at build time, so the absence of esbuild selects
5
+ * the prebuilt `path=` file instead of failing the load. esbuild is an
6
+ * **optional** dependency precisely so an install that skips optionals still runs
7
+ * published artifacts — and a working copy that has run its build script has the
8
+ * same prebuilt file sitting there. Deciding this lazily inside the build would
9
+ * turn "no bundler" into a hard failure with a perfectly good bundle on disk.
10
+ */
11
+ export declare function canBuildFromSource(): Promise<boolean>;
12
+ /**
13
+ * Every file the last build of `entryFile` actually read, from esbuild's own
14
+ * metafile — the module's sources, the shared TS libraries it inlines, and its
15
+ * dependency tree.
16
+ *
17
+ * Exported for watch mode, which needs exactly this set and cannot derive it:
18
+ * the bundle's inputs are a graph, so watching the entry point's directory both
19
+ * misses a shared library one directory over and sweeps in build output. Empty
20
+ * before the first build, when there is nothing to be stale about yet.
21
+ */
22
+ export declare function lastBuildInputs(entryFile: string, cacheRoot: string): Promise<string[]>;
23
+ /**
24
+ * Return the path of a current bundle for `entryFile`, building it if the cache
25
+ * has none. Throws `ERR_CONTROLLER_BUILD_FAILED` when the source does not build —
26
+ * that is broken user code and must surface, never fall through to another
27
+ * candidate.
28
+ */
29
+ export declare function buildControllerFromSource(entryFile: string, cacheRoot: string): Promise<string>;
30
+ //# sourceMappingURL=source-bundle-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-bundle-builder.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/source-bundle-builder.ts"],"names":[],"mappings":"AAuIA;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE3D;AAkDD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAgBD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
@@ -0,0 +1,302 @@
1
+ import { RuntimeError } from "@telorun/sdk";
2
+ import { createHash } from "node:crypto";
3
+ import * as fs from "node:fs/promises";
4
+ import * as path from "node:path";
5
+ import { ControllerEnvMissingError } from "./napi-loader.js";
6
+ import { REALM_COLLAPSE_NAMES } from "./realm.js";
7
+ /**
8
+ * Build a **local** module's bundled controller from its TypeScript source, so a
9
+ * fresh clone runs `telo run ./manifest.yaml` with no build step.
10
+ *
11
+ * This is the dev half of `pkg:telo/local/js?path=…&local_path=…`: `path=` names
12
+ * the prebuilt `.mjs` that ships in a published artifact, `local_path=` names the
13
+ * source it was built from. When the declaring module is on disk with no artifact
14
+ * behind it, the source is what is authoritative — a stale checked-in bundle
15
+ * would otherwise shadow the edit the author just made.
16
+ *
17
+ * Same shape the kernel already runs twice: `NapiControllerLoader` builds a crate
18
+ * from `local_path`, and `bundle-builder.ts` runs esbuild at load time over an npm
19
+ * controller's dependency tree.
20
+ *
21
+ * ## How the cache is keyed
22
+ *
23
+ * A bundle's inputs are a graph — the module's own `src/**`, the shared TS
24
+ * libraries it inlines, its dependency tree — so a staleness check anchored on
25
+ * the entry point is wrong for the most common edit there is: a sibling file, or
26
+ * a shared library one directory over. The output path is therefore keyed on a
27
+ * signature over **every input esbuild reported**, which turns a changed input
28
+ * into a different key: nothing to invalidate, and nothing to get wrong.
29
+ *
30
+ * It is **stat-addressed, not content-addressed**: the signature is each input's
31
+ * path, size and mtime, because the set spans a whole dependency tree and a few
32
+ * thousand `stat`s cost less than the build they avoid, while hashing every byte
33
+ * would cost more. The trade is worth naming, because it is not free:
34
+ *
35
+ * - a checkout that restores byte-identical files mints a fresh key, so a branch
36
+ * switch rebuilds rather than hitting the cache;
37
+ * - two different contents with the same size, written inside the same
38
+ * millisecond, collide — vanishingly unlikely for hand edits, and bounded by
39
+ * the fact that this path only ever runs against a working copy.
40
+ *
41
+ * Neither costs correctness of what ships: a published artifact never takes this
42
+ * path at all.
43
+ *
44
+ * Keying the output path (rather than overwriting one file) also makes
45
+ * concurrency benign. The test suite spawns one kernel *process* per manifest, so
46
+ * the contention is between processes, where an in-process single-flight gate
47
+ * sees nothing. Two processes that race build identical bytes for identical keys,
48
+ * and each writes through a private temp file before an atomic rename — so a
49
+ * reader sees a whole bundle or no bundle, never a torn one.
50
+ *
51
+ * Superseded bundles are pruned on the build that replaces them, so a long-lived
52
+ * checkout does not accumulate one `.mjs` per save.
53
+ */
54
+ /** Cache layout under the kernel's cache root: the built bundles, plus one index
55
+ * entry per entry point recording the inputs its last build read. */
56
+ const CACHE_DIR = "controller-src";
57
+ /**
58
+ * The esbuild options a controller bundle is built with. They must match the
59
+ * flags each module's `build` script passes, because a bundle a contributor runs
60
+ * has to be the bundle that ships.
61
+ *
62
+ * The realm names stay external because the bundle loader symlinks them to the
63
+ * kernel's own copy at load time. Inlining them would duplicate the runtime and
64
+ * break the constructor identity `Stream` / `InvokeError` depend on.
65
+ *
66
+ * The banner defines `require` in module scope so esbuild's `__require` shim —
67
+ * emitted for `require(...)` calls inside a bundled CJS dependency — falls
68
+ * through to the real require instead of throwing "Dynamic require of X is not
69
+ * supported", which it would in a `.mjs` where `require` is otherwise undefined.
70
+ */
71
+ const CONTROLLER_BUNDLE_OPTIONS = {
72
+ bundle: true,
73
+ format: "esm",
74
+ platform: "node",
75
+ target: "node20",
76
+ // Inline a workspace TS library from its SOURCE, not from its `dist/`.
77
+ //
78
+ // Two reasons, and the first is load-bearing: `dist/` is a build output, so
79
+ // resolving through it would make building a controller depend on having built
80
+ // every library it inlines — which is exactly the build step this path exists
81
+ // to remove, and it fails on a fresh clone with "Could not resolve". The second
82
+ // is that the shipping build passes the same condition, so both inline the same
83
+ // bytes; resolving to `dist` in one and `src` in the other would mean two
84
+ // transpilers producing the bundle a contributor runs versus the one that ships.
85
+ //
86
+ // `source` is the conventional name for this and every inlined package declares
87
+ // it ahead of `import`. A package that does not simply resolves as before.
88
+ conditions: ["source"],
89
+ banner: {
90
+ js: 'import { createRequire as __teloCreateRequire } from "node:module";' +
91
+ "const require = __teloCreateRequire(import.meta.url);",
92
+ },
93
+ external: [...REALM_COLLAPSE_NAMES],
94
+ };
95
+ /**
96
+ * Fingerprint of the options above, folded into every cache key.
97
+ *
98
+ * The output is a function of the inputs *and* how they were built, so a change
99
+ * to the option set has to invalidate the cache the same way an edited source
100
+ * does — otherwise a kernel upgrade that changes the banner or the externals
101
+ * keeps serving bundles built the old way, which is the exact silent-stale-copy
102
+ * failure the content-addressing exists to prevent.
103
+ */
104
+ const OPTIONS_FINGERPRINT = createHash("sha256")
105
+ .update(JSON.stringify(CONTROLLER_BUNDLE_OPTIONS))
106
+ .digest("hex")
107
+ .slice(0, 8);
108
+ /** Memoized esbuild handle: `undefined` until first tried, `null` when absent. A
109
+ * failed dynamic import is not reliably cached by Node, so without this every
110
+ * controller load re-attempts (and re-fails) the import. */
111
+ let esbuildModule;
112
+ async function loadEsbuild() {
113
+ if (esbuildModule !== undefined)
114
+ return esbuildModule;
115
+ try {
116
+ esbuildModule = await import("esbuild");
117
+ }
118
+ catch {
119
+ esbuildModule = null;
120
+ }
121
+ return esbuildModule;
122
+ }
123
+ /**
124
+ * Whether this host can build a controller from source at all.
125
+ *
126
+ * Asked at *resolve* time, not at build time, so the absence of esbuild selects
127
+ * the prebuilt `path=` file instead of failing the load. esbuild is an
128
+ * **optional** dependency precisely so an install that skips optionals still runs
129
+ * published artifacts — and a working copy that has run its build script has the
130
+ * same prebuilt file sitting there. Deciding this lazily inside the build would
131
+ * turn "no bundler" into a hard failure with a perfectly good bundle on disk.
132
+ */
133
+ export async function canBuildFromSource() {
134
+ return (await loadEsbuild()) !== null;
135
+ }
136
+ async function pathExists(p) {
137
+ try {
138
+ await fs.access(p);
139
+ return true;
140
+ }
141
+ catch {
142
+ return false;
143
+ }
144
+ }
145
+ /**
146
+ * Signature of an input set: each file's path, size and mtime, hashed together.
147
+ * Stat rather than content because the set spans a whole dependency tree — a few
148
+ * thousand stats cost less than the build they are avoiding, while reading every
149
+ * byte would cost more.
150
+ *
151
+ * Returns `null` when any recorded input has disappeared, which is itself a
152
+ * change: the caller rebuilds rather than trusting a signature computed over a
153
+ * file set that no longer exists.
154
+ */
155
+ async function signInputs(inputs) {
156
+ const stats = await Promise.all(inputs.map(async (file) => {
157
+ try {
158
+ const stat = await fs.stat(file);
159
+ return `${file}\0${stat.size}\0${stat.mtimeMs}`;
160
+ }
161
+ catch {
162
+ return null;
163
+ }
164
+ }));
165
+ if (stats.some((entry) => entry === null))
166
+ return null;
167
+ return createHash("sha256")
168
+ .update(OPTIONS_FINGERPRINT)
169
+ .update("\n")
170
+ .update(stats.join("\n"))
171
+ .digest("hex")
172
+ .slice(0, 32);
173
+ }
174
+ function indexPath(cacheDir, entryFile) {
175
+ const id = createHash("sha256").update(entryFile).digest("hex").slice(0, 32);
176
+ return path.join(cacheDir, `${id}.index.json`);
177
+ }
178
+ function bundlePath(cacheDir, key) {
179
+ return path.join(cacheDir, `${key}.mjs`);
180
+ }
181
+ /**
182
+ * Every file the last build of `entryFile` actually read, from esbuild's own
183
+ * metafile — the module's sources, the shared TS libraries it inlines, and its
184
+ * dependency tree.
185
+ *
186
+ * Exported for watch mode, which needs exactly this set and cannot derive it:
187
+ * the bundle's inputs are a graph, so watching the entry point's directory both
188
+ * misses a shared library one directory over and sweeps in build output. Empty
189
+ * before the first build, when there is nothing to be stale about yet.
190
+ */
191
+ export async function lastBuildInputs(entryFile, cacheRoot) {
192
+ const index = await readIndex(indexPath(path.join(cacheRoot, CACHE_DIR), entryFile));
193
+ return index?.inputs ?? [];
194
+ }
195
+ async function readIndex(file) {
196
+ try {
197
+ const parsed = JSON.parse(await fs.readFile(file, "utf8"));
198
+ return Array.isArray(parsed.inputs) && typeof parsed.key === "string" ? parsed : null;
199
+ }
200
+ catch {
201
+ return null;
202
+ }
203
+ }
204
+ /** In-process single-flight per entry point — the cheap common case, on top of
205
+ * the cross-process safety the content-addressed path already provides. */
206
+ const buildsInFlight = new Map();
207
+ let tmpCounter = 0;
208
+ /**
209
+ * Return the path of a current bundle for `entryFile`, building it if the cache
210
+ * has none. Throws `ERR_CONTROLLER_BUILD_FAILED` when the source does not build —
211
+ * that is broken user code and must surface, never fall through to another
212
+ * candidate.
213
+ */
214
+ export async function buildControllerFromSource(entryFile, cacheRoot) {
215
+ const cacheDir = path.join(cacheRoot, CACHE_DIR);
216
+ const index = await readIndex(indexPath(cacheDir, entryFile));
217
+ if (index) {
218
+ const key = await signInputs(index.inputs);
219
+ if (key === index.key) {
220
+ const cached = bundlePath(cacheDir, key);
221
+ if (await pathExists(cached))
222
+ return cached;
223
+ }
224
+ }
225
+ const inFlight = buildsInFlight.get(entryFile);
226
+ if (inFlight)
227
+ return inFlight;
228
+ const work = build(entryFile, cacheDir).finally(() => buildsInFlight.delete(entryFile));
229
+ buildsInFlight.set(entryFile, work);
230
+ return work;
231
+ }
232
+ async function build(entryFile, cacheDir) {
233
+ const esbuild = await loadEsbuild();
234
+ if (!esbuild) {
235
+ // Explicit rather than a silent fallthrough: esbuild is an *optional*
236
+ // dependency precisely so a production install that skips optionals still
237
+ // loads published artifacts, which ship prebuilt bundles. Only building a
238
+ // local module from source needs it, and that case has to say so.
239
+ throw new ControllerEnvMissingError(`Cannot build controller from source "${entryFile}": esbuild is not installed. ` +
240
+ `Building a local module's controller needs it; a published module ships a ` +
241
+ `prebuilt bundle and does not.`);
242
+ }
243
+ let built;
244
+ try {
245
+ built = await esbuild.build({
246
+ ...CONTROLLER_BUNDLE_OPTIONS,
247
+ // esbuild's options are mutable arrays; the shared constant is `as const`
248
+ // so it cannot be edited in place by one caller and read by another.
249
+ external: [...CONTROLLER_BUNDLE_OPTIONS.external],
250
+ conditions: [...CONTROLLER_BUNDLE_OPTIONS.conditions],
251
+ entryPoints: [entryFile],
252
+ write: false,
253
+ metafile: true,
254
+ logLevel: "silent",
255
+ });
256
+ }
257
+ catch (err) {
258
+ throw new RuntimeError("ERR_CONTROLLER_BUILD_FAILED", `Failed to build controller from source "${entryFile}":\n` +
259
+ (err instanceof Error ? err.message : String(err)));
260
+ }
261
+ const output = built.outputFiles?.[0];
262
+ if (!output) {
263
+ throw new RuntimeError("ERR_CONTROLLER_BUILD_FAILED", `esbuild produced no output for controller source "${entryFile}"`);
264
+ }
265
+ // Absolute, so the signature is independent of the working directory the next
266
+ // kernel happens to run from.
267
+ const inputs = Object.keys(built.metafile.inputs).map((rel) => path.resolve(rel));
268
+ const key = (await signInputs(inputs)) ?? createHash("sha256")
269
+ .update(output.text)
270
+ .digest("hex")
271
+ .slice(0, 32);
272
+ const target = bundlePath(cacheDir, key);
273
+ await fs.mkdir(cacheDir, { recursive: true });
274
+ const index = indexPath(cacheDir, entryFile);
275
+ const superseded = (await readIndex(index))?.key;
276
+ const tmp = `${target}.${process.pid}.${tmpCounter++}.tmp`;
277
+ await fs.writeFile(tmp, output.text);
278
+ await fs.rename(tmp, target);
279
+ // Index last: a reader that finds it trusts the bundle it names to be on disk.
280
+ // A torn index self-heals — an unparseable one reads as a miss and rebuilds.
281
+ const tmpIndex = `${index}.${process.pid}.${tmpCounter++}.tmp`;
282
+ await fs.writeFile(tmpIndex, JSON.stringify({ inputs, key }));
283
+ await fs.rename(tmpIndex, index);
284
+ await prune(cacheDir, superseded, key);
285
+ return target;
286
+ }
287
+ /**
288
+ * Drop the bundle this build replaced.
289
+ *
290
+ * Every save mints a new key, so without this a day of editing leaves one `.mjs`
291
+ * per save and the cache grows for the life of the checkout. Pruned *after* the
292
+ * new index is in place, so a concurrent reader is already being pointed at the
293
+ * replacement; on Linux a process that opened the old file keeps reading it
294
+ * through the open handle, and on Windows a failed unlink is swallowed — a stale
295
+ * file costs disk, never correctness.
296
+ */
297
+ async function prune(cacheDir, superseded, current) {
298
+ if (!superseded || superseded === current)
299
+ return;
300
+ await fs.rm(bundlePath(cacheDir, superseded), { force: true }).catch(() => { });
301
+ }
302
+ //# sourceMappingURL=source-bundle-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-bundle-builder.js","sourceRoot":"","sources":["../../src/controller-loaders/source-bundle-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAEf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAgBtB,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAGtC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAFzD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAEtC,QAAQ,EAAE,0BAA0B;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CAgKhC;AAyBD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F"}
1
+ {"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAEf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAgBtB,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAGtC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAFzD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAEtC,QAAQ,EAAE,0BAA0B;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CAgKhC;AA+BD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F"}
@@ -95,9 +95,11 @@ class ResourceDefinition {
95
95
  await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
96
96
  return;
97
97
  }
98
+ const host = kernelContext(ctx);
98
99
  const loader = new ControllerLoader({
99
100
  entryUrl: ctx.getEntryUrl(),
100
101
  installRoot: ctx.getInstallRoot(),
102
+ cacheRoot: host.getCacheRoot?.(),
101
103
  log: ctx.log,
102
104
  });
103
105
  // Eager resolve — verify the controller is hostable now (so a broken
@@ -108,7 +110,7 @@ class ResourceDefinition {
108
110
  // ships in its own module's payload, not the consumer's. It owns the pinned
109
111
  // ref and the verified layer index, so the loader picks a candidate and asks
110
112
  // it for that selector's directory rather than fetching anything itself.
111
- const artifact = ctx.getModuleArtifact?.(this.resource.metadata.source);
113
+ const artifact = host.getModuleArtifact?.(this.resource.metadata.source);
112
114
  const resolved = await loader.resolve(this.resource.controllers, this.resource.metadata.source, ctx.getControllerPolicy(), artifact);
113
115
  ctx.registerDefinition(this.resource);
114
116
  const moduleName = this.resource.metadata.module;
@@ -116,7 +118,7 @@ class ResourceDefinition {
116
118
  // Emitted here (not in the loader) so ControllerLoading / ControllerLoaded /
117
119
  // ControllerLoadFailed — and the import duration — surface when the load
118
120
  // actually happens (first instantiation), with the resolved PURL + source.
119
- ctx.registerLazyController(moduleName, kindName, async () => {
121
+ host.registerLazyController(moduleName, kindName, async () => {
120
122
  await ctx.emit("ControllerLoading", { purl: resolved.purl });
121
123
  const startedAt = Date.now();
122
124
  const instance = await resolved.importInstance().catch(async (err) => {
@@ -135,6 +137,11 @@ class ResourceDefinition {
135
137
  });
136
138
  }
137
139
  }
140
+ /** Narrow a `ResourceContext` to the kernel-internal surface its concrete
141
+ * implementation carries. The cast is the seam; it lives here once. */
142
+ function kernelContext(ctx) {
143
+ return ctx;
144
+ }
138
145
  export function register(ctx) {
139
146
  // ResourceDefinition is a passive resource - no registration needed
140
147
  }