@telorun/kernel 1.3.0 → 1.3.1

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.
@@ -20,10 +20,13 @@ export interface NpmControllerLoaderOptions {
20
20
  entryUrl?: string;
21
21
  }
22
22
  /**
23
- * The npm-loader maintains a single install root per kernel process at
24
- * `<entry-manifest-dir>/.telo/npm/`. Every controller registry tag or
25
- * `local_path` is installed via `npm install <spec>` into this root, then
26
- * imported from `<root>/node_modules/<pkg>`. This collapses two parallel
23
+ * The npm-loader maintains a single install root per kernel process. For a
24
+ * local entry manifest (`file://` URL or bare path) the root lives at
25
+ * `<entry-manifest-dir>/.telo/npm/`; for an HTTP(S) entry URL it lives in a
26
+ * user-level cache keyed by `sha256(entryUrl)` (see `computeInstallRoot`).
27
+ * Every controller — registry tag or `local_path` — is installed via
28
+ * `npm install <spec>` into this root, then imported from
29
+ * `<root>/node_modules/<pkg>`. This collapses two parallel
27
30
  * module realms (kernel-side @telorun/sdk vs. controller-side @telorun/sdk)
28
31
  * into one: the kernel's own SDK is wired in as a `file:` dep, npm/pnpm
29
32
  * symlink it, and Node's ESM resolver follows the symlink to the same
@@ -104,6 +107,31 @@ export declare class NpmControllerLoader {
104
107
  */
105
108
  private installPackage;
106
109
  }
110
+ /**
111
+ * Decide where the per-kernel install root lives for a given entry URL.
112
+ *
113
+ * - `file://` URL or bare filesystem path: anchored next to the manifest at
114
+ * `<entry-dir>/.telo/npm/`. Same as before — keeps the "install lives with
115
+ * the project" story for local development and Docker builds where the
116
+ * tree is `COPY`-d into the image.
117
+ * - `http(s)://` URL: there is no on-disk anchor next to the manifest, so
118
+ * the install root lives in a user-level cache keyed by the SHA-256 of
119
+ * the entry URL: `<cacheDir>/<hash>/npm/`. Repeat runs of the same URL
120
+ * hit the same cache; distinct URLs get isolated trees so two unrelated
121
+ * remote apps don't share `node_modules` (different controller versions,
122
+ * different realm-collapse pins).
123
+ *
124
+ * Cache location, in priority order:
125
+ * 1. `$TELO_NPM_CACHE_DIR` (explicit override — tests use this to avoid
126
+ * polluting the developer's `~/.cache`).
127
+ * 2. `$XDG_CACHE_HOME/telo/remote` (standard XDG path on Linux).
128
+ * 3. `<os.homedir()>/.cache/telo/remote` (POSIX fallback / macOS).
129
+ *
130
+ * Unrecognised schemes (anything that isn't `file://`, `http://`, or
131
+ * `https://`) still throw `ControllerEnvMissingError` so the dispatcher can
132
+ * advance to a non-npm candidate.
133
+ */
134
+ declare function computeInstallRoot(entryUrl: string): string;
107
135
  /**
108
136
  * Normalize a `file:` spec to an absolute path so two specs that point at the
109
137
  * same source — one absolute (what the loader synthesizes from `local_path`)
@@ -133,6 +161,7 @@ export declare const __testing__: {
133
161
  resolvePackageExportTarget: typeof resolvePackageExportTarget;
134
162
  resolveExportTargetValue: typeof resolveExportTargetValue;
135
163
  tryResolveFile: typeof tryResolveFile;
164
+ computeInstallRoot: typeof computeInstallRoot;
136
165
  EXPORTS_MAX_DEPTH: number;
137
166
  DEFAULT_RESOLVER_CONDITIONS: readonly string[];
138
167
  REALM_COLLAPSE_NAMES: readonly string[];
@@ -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;AAyClD;;;;;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;;;;;;;;;;;;;;;;;;;GAmBG;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;IAwFpC;;;;;;;OAOG;YACW,aAAa;IAU3B;;;;;;;;;;;OAWG;YACW,cAAc;CAsG7B;AA4QD;;;;;;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;;;;;;;;CAQvB,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;AAyClD;;;;;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;IA+EpC;;;;;;;OAOG;YACW,aAAa;IAU3B;;;;;;;;;;;OAWG;YACW,cAAc;CAsG7B;AA4OD;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -34,10 +34,13 @@ const LOCK_STALE_MS = 60000;
34
34
  const LOCK_WAIT_MAX_MS = 5 * 60000;
35
35
  const LOCK_RETRY_MS = 500;
36
36
  /**
37
- * The npm-loader maintains a single install root per kernel process at
38
- * `<entry-manifest-dir>/.telo/npm/`. Every controller registry tag or
39
- * `local_path` is installed via `npm install <spec>` into this root, then
40
- * imported from `<root>/node_modules/<pkg>`. This collapses two parallel
37
+ * The npm-loader maintains a single install root per kernel process. For a
38
+ * local entry manifest (`file://` URL or bare path) the root lives at
39
+ * `<entry-manifest-dir>/.telo/npm/`; for an HTTP(S) entry URL it lives in a
40
+ * user-level cache keyed by `sha256(entryUrl)` (see `computeInstallRoot`).
41
+ * Every controller — registry tag or `local_path` — is installed via
42
+ * `npm install <spec>` into this root, then imported from
43
+ * `<root>/node_modules/<pkg>`. This collapses two parallel
41
44
  * module realms (kernel-side @telorun/sdk vs. controller-side @telorun/sdk)
42
45
  * into one: the kernel's own SDK is wired in as a `file:` dep, npm/pnpm
43
46
  * symlink it, and Node's ESM resolver follows the symlink to the same
@@ -120,16 +123,7 @@ export class NpmControllerLoader {
120
123
  "Kernel.load() records this; CLI: pass the manifest path).");
121
124
  }
122
125
  const entryUrlStr = this.entryUrl;
123
- // The install root is anchored next to the entry manifest on disk. For an
124
- // http(s):// entry URL there is no such anchor — `path.resolve` would
125
- // silently turn `http://host/x.yaml` into something like
126
- // `<cwd>/http:/host/x.yaml`, materializing a `.telo/npm` tree in an
127
- // unrelated directory. Reject the case loudly until we ship an explicit
128
- // strategy (e.g. a hash-keyed cache under `~/.cache/telo`) for HTTP-sourced
129
- // manifests; today nothing in the workspace exercises this path.
130
- const entryPath = parseFileUrlOrThrow(entryUrlStr);
131
- const entryDir = path.dirname(path.resolve(entryPath));
132
- const installRoot = path.join(entryDir, ".telo", "npm");
126
+ const installRoot = computeInstallRoot(entryUrlStr);
133
127
  // Build the install-root package.json: kernel-runtime deps as `file:` refs
134
128
  // pointing at the kernel-side realpath. Modules declare these names as
135
129
  // `peerDependencies`, so npm/pnpm resolve each controller's `import` to the
@@ -536,34 +530,53 @@ async function readDepSpec(installRoot, packageName) {
536
530
  }
537
531
  }
538
532
  /**
539
- * Convert an entry-manifest URL to its on-disk path, throwing a descriptive
540
- * error for any URL scheme that doesn't map to a local filesystem location.
541
- * The install-root anchoring story requires a real directory next to the
542
- * manifest; non-file schemes (e.g. `http://`, `https://`) have no such
543
- * anchor and would otherwise silently produce a junk path via
544
- * `path.resolve("http://host/x")`.
533
+ * Decide where the per-kernel install root lives for a given entry URL.
545
534
  *
546
- * Bare paths without a scheme are accepted as-is callers that hand the
547
- * loader an absolute filesystem path are common and there's no ambiguity
548
- * to surface.
535
+ * - `file://` URL or bare filesystem path: anchored next to the manifest at
536
+ * `<entry-dir>/.telo/npm/`. Same as before keeps the "install lives with
537
+ * the project" story for local development and Docker builds where the
538
+ * tree is `COPY`-d into the image.
539
+ * - `http(s)://` URL: there is no on-disk anchor next to the manifest, so
540
+ * the install root lives in a user-level cache keyed by the SHA-256 of
541
+ * the entry URL: `<cacheDir>/<hash>/npm/`. Repeat runs of the same URL
542
+ * hit the same cache; distinct URLs get isolated trees so two unrelated
543
+ * remote apps don't share `node_modules` (different controller versions,
544
+ * different realm-collapse pins).
545
+ *
546
+ * Cache location, in priority order:
547
+ * 1. `$TELO_NPM_CACHE_DIR` (explicit override — tests use this to avoid
548
+ * polluting the developer's `~/.cache`).
549
+ * 2. `$XDG_CACHE_HOME/telo/remote` (standard XDG path on Linux).
550
+ * 3. `<os.homedir()>/.cache/telo/remote` (POSIX fallback / macOS).
551
+ *
552
+ * Unrecognised schemes (anything that isn't `file://`, `http://`, or
553
+ * `https://`) still throw `ControllerEnvMissingError` so the dispatcher can
554
+ * advance to a non-npm candidate.
549
555
  */
550
- function parseFileUrlOrThrow(entryUrl) {
551
- if (entryUrl.startsWith("file://"))
552
- return fileURLToPath(entryUrl);
553
- // A scheme is anything before the first `://` — distinguish a URL from a
554
- // bare filesystem path (which has no `://`).
556
+ function computeInstallRoot(entryUrl) {
557
+ if (entryUrl.startsWith("file://")) {
558
+ const entryPath = fileURLToPath(entryUrl);
559
+ return path.join(path.dirname(path.resolve(entryPath)), ".telo", "npm");
560
+ }
555
561
  const schemeMatch = entryUrl.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\//);
556
- if (schemeMatch) {
557
- // Env-missing rather than a hard error: the dispatcher should advance
558
- // to the next candidate when an HTTP-sourced manifest is paired with a
559
- // `pkg:cargo` (or other non-npm) fallback. Hard-failing would lock the
560
- // whole resolve chain to this branch.
561
- throw new ControllerEnvMissingError(`[telo] entry URL scheme '${schemeMatch[1]}' is not supported by the npm controller ` +
562
- `loader. The install root must live next to a local manifest; HTTP-sourced manifests ` +
563
- `have no such anchor. Resolve the manifest to disk first, or use file:// directly. ` +
564
- `(entryUrl: ${entryUrl})`);
565
- }
566
- return entryUrl;
562
+ if (!schemeMatch) {
563
+ // Bare filesystem path: same anchor as `file://`.
564
+ return path.join(path.dirname(path.resolve(entryUrl)), ".telo", "npm");
565
+ }
566
+ const scheme = schemeMatch[1].toLowerCase();
567
+ if (scheme === "http" || scheme === "https") {
568
+ const cacheBase = process.env.TELO_NPM_CACHE_DIR ||
569
+ (process.env.XDG_CACHE_HOME
570
+ ? path.join(process.env.XDG_CACHE_HOME, "telo", "remote")
571
+ : path.join(os.homedir(), ".cache", "telo", "remote"));
572
+ return path.join(cacheBase, sha256(entryUrl), "npm");
573
+ }
574
+ // Env-missing rather than a hard error: the dispatcher should advance to
575
+ // the next candidate when a non-npm scheme is paired with a `pkg:cargo`
576
+ // (or other) fallback.
577
+ throw new ControllerEnvMissingError(`[telo] entry URL scheme '${schemeMatch[1]}' is not supported by the npm controller ` +
578
+ `loader. Supported schemes: file://, http://, https://, or a bare filesystem path. ` +
579
+ `(entryUrl: ${entryUrl})`);
567
580
  }
568
581
  /**
569
582
  * Normalize a `file:` spec to an absolute path so two specs that point at the
@@ -790,6 +803,7 @@ export const __testing__ = {
790
803
  resolvePackageExportTarget,
791
804
  resolveExportTargetValue,
792
805
  tryResolveFile,
806
+ computeInstallRoot,
793
807
  EXPORTS_MAX_DEPTH,
794
808
  DEFAULT_RESOLVER_CONDITIONS,
795
809
  REALM_COLLAPSE_NAMES,
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/kernel",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "Telo Runtime - A lightweight, polyglot execution host.",
5
5
  "keywords": [
6
6
  "telo",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@marcbachmann/cel-js": "^7.5.3",
49
49
  "@sinclair/typebox": "^0.34.48",
50
- "@telorun/analyzer": "1.3.0",
50
+ "@telorun/analyzer": "1.4.0",
51
51
  "@telorun/templating": "1.1.0",
52
52
  "ajv": "^8.17.1",
53
53
  "ajv-formats": "^3.0.1",
@@ -81,10 +81,13 @@ export interface NpmControllerLoaderOptions {
81
81
  }
82
82
 
83
83
  /**
84
- * The npm-loader maintains a single install root per kernel process at
85
- * `<entry-manifest-dir>/.telo/npm/`. Every controller registry tag or
86
- * `local_path` is installed via `npm install <spec>` into this root, then
87
- * imported from `<root>/node_modules/<pkg>`. This collapses two parallel
84
+ * The npm-loader maintains a single install root per kernel process. For a
85
+ * local entry manifest (`file://` URL or bare path) the root lives at
86
+ * `<entry-manifest-dir>/.telo/npm/`; for an HTTP(S) entry URL it lives in a
87
+ * user-level cache keyed by `sha256(entryUrl)` (see `computeInstallRoot`).
88
+ * Every controller — registry tag or `local_path` — is installed via
89
+ * `npm install <spec>` into this root, then imported from
90
+ * `<root>/node_modules/<pkg>`. This collapses two parallel
88
91
  * module realms (kernel-side @telorun/sdk vs. controller-side @telorun/sdk)
89
92
  * into one: the kernel's own SDK is wired in as a `file:` dep, npm/pnpm
90
93
  * symlink it, and Node's ESM resolver follows the symlink to the same
@@ -190,16 +193,7 @@ export class NpmControllerLoader {
190
193
  );
191
194
  }
192
195
  const entryUrlStr = this.entryUrl;
193
- // The install root is anchored next to the entry manifest on disk. For an
194
- // http(s):// entry URL there is no such anchor — `path.resolve` would
195
- // silently turn `http://host/x.yaml` into something like
196
- // `<cwd>/http:/host/x.yaml`, materializing a `.telo/npm` tree in an
197
- // unrelated directory. Reject the case loudly until we ship an explicit
198
- // strategy (e.g. a hash-keyed cache under `~/.cache/telo`) for HTTP-sourced
199
- // manifests; today nothing in the workspace exercises this path.
200
- const entryPath = parseFileUrlOrThrow(entryUrlStr);
201
- const entryDir = path.dirname(path.resolve(entryPath));
202
- const installRoot = path.join(entryDir, ".telo", "npm");
196
+ const installRoot = computeInstallRoot(entryUrlStr);
203
197
 
204
198
  // Build the install-root package.json: kernel-runtime deps as `file:` refs
205
199
  // pointing at the kernel-side realpath. Modules declare these names as
@@ -634,35 +628,56 @@ async function readDepSpec(installRoot: string, packageName: string): Promise<st
634
628
  }
635
629
 
636
630
  /**
637
- * Convert an entry-manifest URL to its on-disk path, throwing a descriptive
638
- * error for any URL scheme that doesn't map to a local filesystem location.
639
- * The install-root anchoring story requires a real directory next to the
640
- * manifest; non-file schemes (e.g. `http://`, `https://`) have no such
641
- * anchor and would otherwise silently produce a junk path via
642
- * `path.resolve("http://host/x")`.
631
+ * Decide where the per-kernel install root lives for a given entry URL.
643
632
  *
644
- * Bare paths without a scheme are accepted as-is callers that hand the
645
- * loader an absolute filesystem path are common and there's no ambiguity
646
- * to surface.
633
+ * - `file://` URL or bare filesystem path: anchored next to the manifest at
634
+ * `<entry-dir>/.telo/npm/`. Same as before keeps the "install lives with
635
+ * the project" story for local development and Docker builds where the
636
+ * tree is `COPY`-d into the image.
637
+ * - `http(s)://` URL: there is no on-disk anchor next to the manifest, so
638
+ * the install root lives in a user-level cache keyed by the SHA-256 of
639
+ * the entry URL: `<cacheDir>/<hash>/npm/`. Repeat runs of the same URL
640
+ * hit the same cache; distinct URLs get isolated trees so two unrelated
641
+ * remote apps don't share `node_modules` (different controller versions,
642
+ * different realm-collapse pins).
643
+ *
644
+ * Cache location, in priority order:
645
+ * 1. `$TELO_NPM_CACHE_DIR` (explicit override — tests use this to avoid
646
+ * polluting the developer's `~/.cache`).
647
+ * 2. `$XDG_CACHE_HOME/telo/remote` (standard XDG path on Linux).
648
+ * 3. `<os.homedir()>/.cache/telo/remote` (POSIX fallback / macOS).
649
+ *
650
+ * Unrecognised schemes (anything that isn't `file://`, `http://`, or
651
+ * `https://`) still throw `ControllerEnvMissingError` so the dispatcher can
652
+ * advance to a non-npm candidate.
647
653
  */
648
- function parseFileUrlOrThrow(entryUrl: string): string {
649
- if (entryUrl.startsWith("file://")) return fileURLToPath(entryUrl);
650
- // A scheme is anything before the first `://` — distinguish a URL from a
651
- // bare filesystem path (which has no `://`).
654
+ function computeInstallRoot(entryUrl: string): string {
655
+ if (entryUrl.startsWith("file://")) {
656
+ const entryPath = fileURLToPath(entryUrl);
657
+ return path.join(path.dirname(path.resolve(entryPath)), ".telo", "npm");
658
+ }
652
659
  const schemeMatch = entryUrl.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\//);
653
- if (schemeMatch) {
654
- // Env-missing rather than a hard error: the dispatcher should advance
655
- // to the next candidate when an HTTP-sourced manifest is paired with a
656
- // `pkg:cargo` (or other non-npm) fallback. Hard-failing would lock the
657
- // whole resolve chain to this branch.
658
- throw new ControllerEnvMissingError(
659
- `[telo] entry URL scheme '${schemeMatch[1]}' is not supported by the npm controller ` +
660
- `loader. The install root must live next to a local manifest; HTTP-sourced manifests ` +
661
- `have no such anchor. Resolve the manifest to disk first, or use file:// directly. ` +
662
- `(entryUrl: ${entryUrl})`,
663
- );
660
+ if (!schemeMatch) {
661
+ // Bare filesystem path: same anchor as `file://`.
662
+ return path.join(path.dirname(path.resolve(entryUrl)), ".telo", "npm");
663
+ }
664
+ const scheme = schemeMatch[1].toLowerCase();
665
+ if (scheme === "http" || scheme === "https") {
666
+ const cacheBase =
667
+ process.env.TELO_NPM_CACHE_DIR ||
668
+ (process.env.XDG_CACHE_HOME
669
+ ? path.join(process.env.XDG_CACHE_HOME, "telo", "remote")
670
+ : path.join(os.homedir(), ".cache", "telo", "remote"));
671
+ return path.join(cacheBase, sha256(entryUrl), "npm");
664
672
  }
665
- return entryUrl;
673
+ // Env-missing rather than a hard error: the dispatcher should advance to
674
+ // the next candidate when a non-npm scheme is paired with a `pkg:cargo`
675
+ // (or other) fallback.
676
+ throw new ControllerEnvMissingError(
677
+ `[telo] entry URL scheme '${schemeMatch[1]}' is not supported by the npm controller ` +
678
+ `loader. Supported schemes: file://, http://, https://, or a bare filesystem path. ` +
679
+ `(entryUrl: ${entryUrl})`,
680
+ );
666
681
  }
667
682
 
668
683
  /**
@@ -913,6 +928,7 @@ export const __testing__ = {
913
928
  resolvePackageExportTarget,
914
929
  resolveExportTargetValue,
915
930
  tryResolveFile,
931
+ computeInstallRoot,
916
932
  EXPORTS_MAX_DEPTH,
917
933
  DEFAULT_RESOLVER_CONDITIONS,
918
934
  REALM_COLLAPSE_NAMES,