@telorun/cli 0.50.0 → 0.51.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/README.md CHANGED
@@ -190,14 +190,15 @@ The build stage materializes `<manifest-dir>/.telo/npm/` and `<manifest-dir>/.te
190
190
 
191
191
  ### `telo upgrade <paths..>`
192
192
 
193
- Scans one or more manifests for `imports:` entries whose source is a registry ref (`<namespace>/<name>@<version>`), queries the registry for the latest published version of each, and rewrites the source in place when a newer version is available. Both the scalar shorthand (`Alias: <src>`) and the object form (`Alias: { source: <src>, … }`) are handled. The rewrite operates at the byte level: only the version characters of changed source values are spliced into the original file. Comments, indentation, folded block scalars (`>-` / `|`), quote style on the source value, and every other byte outside the rewritten ranges are preserved exactly. The on-disk YAML is mutated only when at least one import in the file changes.
193
+ Scans one or more manifests for remote `imports:` entries a registry ref (`<namespace>/<name>@<version>`) or an OCI ref (`oci://host/repo@tag`) — asks each ref's transport for the latest published version, and rewrites the source in place when a newer version is available. Both the scalar shorthand (`Alias: <src>`) and the object form (`Alias: { source: <src>, … }`) are handled. Version enumeration, ref reconstruction, and integrity hashing are all delegated to the transport that owns the ref's scheme, so every backend Telo can resolve is also upgradeable — the command never special-cases a scheme. The rewrite operates at the byte level: only the version characters of changed source values are spliced into the original file. Comments, indentation, folded block scalars (`>-` / `|`), quote style on the source value, and every other byte outside the rewritten ranges are preserved exactly. The on-disk YAML is mutated only when at least one import in the file changes.
194
194
 
195
- Accepts the same path shapes as `check` / `install`: a manifest file, a directory containing a `telo.yaml`, or several of those mixed. The command never follows imports recursively — only the imports declared in the files you pass on the command line are inspected.
195
+ Accepts the same path shapes as `check` / `install`: a manifest file, a directory containing a `telo.yaml`, or several of those mixed. By default only the imports declared in the files you pass are inspected; pass `--recursive` / `-r` to also follow relative (local) imports into their sibling manifests and upgrade those too.
196
196
 
197
197
  ```bash
198
198
  telo upgrade ./apps/my-app/telo.yaml
199
199
  telo upgrade ./apps/my-app # directory → ./apps/my-app/telo.yaml
200
200
  telo upgrade ./apps/a ./apps/b --dry-run
201
+ telo upgrade ./apps/my-app --recursive # follow ./relative imports too
201
202
  telo upgrade ./manifest.yaml --include-prerelease
202
203
  ```
203
204
 
@@ -206,6 +207,7 @@ telo upgrade ./manifest.yaml --include-prerelease
206
207
  - `--registry-url <url>` — Base URL for the Telo registry. Falls back to `TELO_REGISTRY_URL`, then `https://registry.telo.run`. Matches the `install` / `run` fallback chain.
207
208
  - `--include-prerelease` — Consider versions with a SemVer prerelease segment (e.g. `1.0.0-beta.1`) when picking the latest. Off by default — prereleases are ignored unless the flag is set.
208
209
  - `--dry-run` — Show the proposed rewrites without touching any files.
210
+ - `--recursive`, `-r` — Follow relative (local) imports and upgrade their manifests too. Cycle-safe, and each file is upgraded at most once even when reached from several manifests. Remote refs (registry / OCI / HTTP) are always upgraded in place; recursion only descends into on-disk siblings.
209
211
 
210
212
  **Behavior per import:**
211
213
 
@@ -215,7 +217,9 @@ telo upgrade ./manifest.yaml --include-prerelease
215
217
  | Lower than the latest, and itself in the registry | rewrite to latest | `↑ <old> → <new>` |
216
218
  | Not present in the registry's version list | rewrite to latest (repair) — flagged with `(pinned version not in registry)`. Direction can be downward if the broken pin is higher than anything published. | `↑` or `↓` |
217
219
  | Module not found (404) / no eligible versions after filtering | leave unchanged, report | `! no published versions in registry` |
218
- | `source` is not a `<namespace>/<name>@<version>` ref (relative path, HTTP URL, alias) | leave unchanged | `· skipped (not a registry ref)` |
220
+ | Remote ref with no comparable version a bare `https://` URL, an OCI digest pin (`@sha256:…`), or a moving tag like `latest` | leave unchanged | `· skipped (not version-pinned)` / `! unparseable current version` |
221
+ | `source` is a relative / absolute local path | leave unchanged (or follow under `--recursive`) | `· skipped (local import — use --recursive to follow)` |
222
+ | `source` is not a remote ref at all | leave unchanged | `· skipped (not a remote ref)` |
219
223
 
220
224
  A non-existent pin is always treated as broken and repaired against the registry — leaving an unbootable pin in place would defeat the point of the command — but the rewrite is annotated so the action is visible. Network or non-404 registry errors are surfaced per import and produce a non-zero exit code; other imports in the same file still get processed.
221
225
 
@@ -228,12 +232,13 @@ A non-existent pin is always treated as broken and repaired against the registry
228
232
  ```text
229
233
  Upgrading apps/my-app/telo.yaml
230
234
  ↑ std/run 0.2.4 → 0.2.7
235
+ ↑ oci://ghcr.io/telorun/http-server 0.19.1 → 0.20.0
231
236
  = std/http-server already at 2.0.0
232
237
  ↓ std/foo 9.9.9 → 0.4.1 (pinned version not in registry)
233
238
  ! std/does-not-exist no published versions in registry
234
- · ../sibling skipped (not a registry ref)
239
+ · ../sibling skipped (local import use --recursive to follow)
235
240
 
236
- 2 upgraded, 1 already current, 2 skipped
241
+ 3 upgraded, 1 already current, 2 skipped
237
242
  ```
238
243
 
239
244
  ---
@@ -1,6 +1,7 @@
1
1
  import type { Argv } from "yargs";
2
2
  export declare function check(argv: {
3
3
  paths: string[];
4
+ registryUrl?: string;
4
5
  }): Promise<void>;
5
6
  export declare function checkCommand(yargs: Argv): Argv;
6
7
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAoDlC,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAe9C"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAoDlC,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAoB9C"}
@@ -1,32 +1,37 @@
1
- import { Loader, StaticAnalyzer, defaultSources, flattenForAnalyzer } from "@telorun/analyzer";
2
- import { LocalFileSource } from "@telorun/kernel";
1
+ import { Loader, StaticAnalyzer, flattenForAnalyzer } from "@telorun/analyzer";
2
+ import { assembleGraphDiagnostics } from "@telorun/ide-support";
3
+ import { LocalFileSource } from "@telorun/kernel/manifest-sources/local-file-source";
4
+ import { defaultTransportRegistry } from "@telorun/kernel/transports";
3
5
  import * as path from "path";
4
6
  import { createLogger, formatAnalysisDiagnostics, formatDiagnostics } from "../logger.js";
5
- async function checkOne(inputPath, log) {
7
+ const DEFAULT_REGISTRY_URL = "https://registry.telo.run";
8
+ async function checkOne(inputPath, registryUrl, log) {
6
9
  const isUrl = inputPath.startsWith("http://") || inputPath.startsWith("https://");
7
10
  const entryPath = isUrl ? inputPath : path.resolve(process.cwd(), inputPath);
8
- const loader = new Loader([new LocalFileSource(), ...defaultSources()]);
11
+ // The kernel's transport sources the same set `install` / `run` use — so
12
+ // `check` resolves every scheme they do, `oci://` included, direct-to-origin.
13
+ // The browser-only `manifests.telo.sh` cache path stays the editor's; a CLI
14
+ // resolves origin-direct so it never depends on the hub (federated-discovery
15
+ // plan: resolution never routes through the hub).
16
+ const loader = new Loader([
17
+ new LocalFileSource(),
18
+ ...defaultTransportRegistry(registryUrl).sources(),
19
+ ]);
9
20
  try {
10
21
  // `desugarImports` so inline `imports:` maps expand into synthetic
11
22
  // Telo.Import manifests before analysis — `telo check` is a static
12
23
  // resolution consumer and must see inline imports exactly as the kernel does.
13
24
  const graph = await loader.loadGraph(entryPath, { desugarImports: true });
14
- if (graph.errors.length > 0) {
15
- const first = graph.errors[0];
16
- throw first.error;
17
- }
18
- // A file that fails to parse yields a mangled `toJSON()` tree; running
19
- // `analyze()` over it emits a cascade of spurious secondary diagnostics that
20
- // bury the real parse error. Report the parse (and version) diagnostics and
21
- // stop before analysis — mirrors the kernel, which throws on parse failure.
22
- if (graph.parseDiagnostics.length > 0) {
23
- return formatAnalysisDiagnostics([...graph.parseDiagnostics, ...graph.versionDiagnostics], graph, log, entryPath);
24
- }
25
25
  const manifests = flattenForAnalyzer(graph);
26
- // Version-reconciliation diagnostics (hoist warnings / major-mismatch
27
- // errors) are produced by the loader, not `analyze()`; merge them in so a
28
- // skewed import surfaces here exactly as it does in the editor.
29
- const diagnostics = [...graph.versionDiagnostics, ...new StaticAnalyzer().analyze(manifests)];
26
+ // `assembleGraphDiagnostics` is the shared assembler every host uses: it
27
+ // folds parse, version-reconciliation, import-resolution, and static
28
+ // analysis diagnostics into one list, holding back the cascade for files
29
+ // that failed to parse or whose imports failed to resolve. A broken
30
+ // `imports:` source thus surfaces here as a coded diagnostic — identical to
31
+ // the editor — instead of a bare re-thrown load error. The CLI drops the
32
+ // suppressed cascade; the editor / VS Code keep it available to render.
33
+ const analysis = new StaticAnalyzer().analyze(manifests);
34
+ const { diagnostics } = assembleGraphDiagnostics(graph, analysis);
30
35
  return formatAnalysisDiagnostics(diagnostics, graph, log, entryPath);
31
36
  }
32
37
  catch (err) {
@@ -39,10 +44,12 @@ async function checkOne(inputPath, log) {
39
44
  }
40
45
  export async function check(argv) {
41
46
  const log = createLogger(false);
47
+ // Same fallback chain as `run` / `install` / `upgrade`.
48
+ const registryUrl = argv.registryUrl ?? process.env.TELO_REGISTRY_URL ?? DEFAULT_REGISTRY_URL;
42
49
  let totalErrors = 0;
43
50
  let totalWarns = 0;
44
51
  for (const p of argv.paths) {
45
- const { errorCount, warnCount } = await checkOne(p, log);
52
+ const { errorCount, warnCount } = await checkOne(p, registryUrl, log);
46
53
  totalErrors += errorCount;
47
54
  totalWarns += warnCount;
48
55
  }
@@ -61,11 +68,16 @@ export async function check(argv) {
61
68
  process.exit(1);
62
69
  }
63
70
  export function checkCommand(yargs) {
64
- return yargs.command("check <paths..>", "Check one or more Telo manifests for errors without running them", (y) => y.positional("paths", {
71
+ return yargs.command("check <paths..>", "Check one or more Telo manifests for errors without running them", (y) => y
72
+ .positional("paths", {
65
73
  describe: "Paths to YAML manifests, directories containing telo.yaml, or HTTP(S) URLs",
66
74
  type: "string",
67
75
  array: true,
68
76
  demandOption: true,
77
+ })
78
+ .option("registry-url", {
79
+ type: "string",
80
+ describe: "Base URL for the telo module registry. Overrides TELO_REGISTRY_URL.",
69
81
  }), async (argv) => {
70
82
  await check(argv);
71
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,5 @@
1
1
  import type { Argv } from "yargs";
2
2
  import { type Logger } from "../logger.js";
3
- interface ParsedRef {
4
- namespace: string;
5
- name: string;
6
- /** Normalized SemVer string (no `v` prefix), or `null` if the pin is not valid SemVer. */
7
- version: string | null;
8
- /** Raw version segment as written in the YAML — preserved for diagnostic output. */
9
- rawVersion: string;
10
- }
11
- /** Parse `<namespace>/<name>@<version>`. A trailing `#sha256-...` integrity
12
- * fragment is stripped first (a pinned import still parses). Exported for tests. */
13
- export declare function parseUpgradeRef(rawSource: string): ParsedRef | null;
14
3
  /** Exported for tests. */
15
4
  export declare function pickLatest(versions: string[], includePrerelease: boolean): string | null;
16
5
  interface ImportUpgrade {
@@ -43,16 +32,21 @@ export declare function upgradeManifest(args: {
43
32
  log: Logger;
44
33
  /** Optional label printed in the "Upgrading <name>" header. */
45
34
  displayName?: string;
35
+ /** When set, local sibling imports are followed by the caller — so they are
36
+ * neither counted nor reported as skipped here. */
37
+ recursive?: boolean;
46
38
  }): Promise<{
47
39
  content: string;
48
40
  result: UpgradeResult;
41
+ relativeImports: string[];
49
42
  }>;
50
- export declare function upgradeOne(inputPath: string, registryUrl: string, includePrerelease: boolean, dryRun: boolean, log: Logger): Promise<UpgradeResult>;
43
+ export declare function upgradeOne(inputPath: string, registryUrl: string, includePrerelease: boolean, dryRun: boolean, log: Logger, recursive?: boolean, visited?: Set<string>): Promise<UpgradeResult>;
51
44
  export declare function upgrade(argv: {
52
45
  paths: string[];
53
46
  registryUrl?: string;
54
47
  includePrerelease: boolean;
55
48
  dryRun: boolean;
49
+ recursive?: boolean;
56
50
  }): Promise<void>;
57
51
  export declare function upgradeCommand(yargs: Argv): Argv;
58
52
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAMzD,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;qFACqF;AACrF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAwBnE;AAgBD,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOxF;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;gDAC4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAuLtD;AAwDD,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,OAAO,EAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,CAAC,CAsCxB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA8BhD"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAczD,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOxF;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;gDAC4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;wDACoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqNjF;AAsED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,OAAO,EAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,EACX,SAAS,UAAQ,EACjB,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/B,OAAO,CAAC,aAAa,CAAC,CA8DxB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAoChD"}
@@ -1,4 +1,4 @@
1
- import { splitIntegrity } from "@telorun/analyzer";
1
+ import { isLocalPathSource, splitIntegrity } from "@telorun/analyzer";
2
2
  import { defaultTransportRegistry } from "@telorun/kernel";
3
3
  import { defaultCustomTags } from "@telorun/templating";
4
4
  import * as fs from "fs";
@@ -6,49 +6,15 @@ import * as path from "path";
6
6
  import semver from "semver";
7
7
  import { parseAllDocuments } from "yaml";
8
8
  import { createLogger } from "../logger.js";
9
- import { fetchManifestHash } from "../registry-hash.js";
10
9
  import { findModuleDoc, importSourceRefs } from "./manifest-imports.js";
11
10
  const DEFAULT_REGISTRY_URL = "https://registry.telo.run";
12
- /** Parse `<namespace>/<name>@<version>`. A trailing `#sha256-...` integrity
13
- * fragment is stripped first (a pinned import still parses). Exported for tests. */
14
- export function parseUpgradeRef(rawSource) {
15
- const source = splitIntegrity(rawSource).base;
16
- const atIdx = source.lastIndexOf("@");
17
- if (atIdx <= 0 || atIdx === source.length - 1)
18
- return null;
19
- const modulePath = source.slice(0, atIdx);
20
- const slashIdx = modulePath.indexOf("/");
21
- if (slashIdx <= 0 || slashIdx === modulePath.length - 1)
22
- return null;
23
- const namespace = modulePath.slice(0, slashIdx);
24
- const name = modulePath.slice(slashIdx + 1);
25
- const rawVersion = source.slice(atIdx + 1);
26
- if (!namespace || !name || !rawVersion)
27
- return null;
28
- // Registry refs are strictly `<namespace>/<name>@<version>` — exactly one
29
- // slash. A second slash means we're looking at a relative path or a URL
30
- // disguised as a ref; either way it would resolve to a bogus `/ns/a/b` URL
31
- // and surface as "no published versions" instead of being treated as
32
- // non-registry.
33
- if (name.includes("/"))
34
- return null;
35
- // Reject anything that doesn't look like a module ref so we don't try to
36
- // upgrade HTTP URLs, relative paths, etc.
37
- if (namespace.includes("://") || namespace.includes(":") || namespace.startsWith(".")) {
38
- return null;
39
- }
40
- // semver.valid() tolerates a `v` prefix and returns the cleaned form.
41
- return { namespace, name, version: semver.valid(rawVersion), rawVersion };
42
- }
43
- async function fetchPublishedVersions(registryUrl, namespace, name) {
44
- // Dispatch through the transport that owns the ref (the version segment is
45
- // irrelevant to enumeration — only the `<ns>/<name>` path is used).
46
- const raw = await defaultTransportRegistry(registryUrl).listVersions(`${namespace}/${name}@0.0.0`);
47
- if (raw === null)
48
- return null;
49
- // Normalize via semver.valid so downstream string-equality matches on the
50
- // pin compare the same canonical form (handles `v` prefix, whitespace, etc).
51
- return raw.map((v) => semver.valid(v)).filter((v) => v !== null);
11
+ /** The version-independent label for a versioned `source`, for diagnostics —
12
+ * the ref with its exact `@<rawVersion>` suffix and any integrity fragment
13
+ * stripped (`std/run`, `oci://ghcr.io/telorun/http-server`). */
14
+ function refLabel(source, rawVersion) {
15
+ const base = splitIntegrity(source).base;
16
+ const suffix = `@${rawVersion}`;
17
+ return base.endsWith(suffix) ? base.slice(0, -suffix.length) : base;
52
18
  }
53
19
  /** Exported for tests. */
54
20
  export function pickLatest(versions, includePrerelease) {
@@ -84,7 +50,7 @@ function resolveManifestPath(inputPath) {
84
50
  * and the original `content` (byte-identical) when nothing matched.
85
51
  */
86
52
  export async function upgradeManifest(args) {
87
- const { content, registryUrl, includePrerelease, log, displayName } = args;
53
+ const { content, registryUrl, includePrerelease, log, displayName, recursive } = args;
88
54
  const result = {
89
55
  changed: false,
90
56
  upgrades: [],
@@ -93,6 +59,7 @@ export async function upgradeManifest(args) {
93
59
  skipped: 0,
94
60
  errors: 0,
95
61
  };
62
+ const registry = defaultTransportRegistry(registryUrl);
96
63
  const docs = parseAllDocuments(content, { customTags: defaultCustomTags() });
97
64
  if (displayName !== undefined) {
98
65
  console.log(`\nUpgrading ${log.dim(displayName)}`);
@@ -100,118 +67,144 @@ export async function upgradeManifest(args) {
100
67
  const edits = [];
101
68
  const moduleDoc = findModuleDoc(docs);
102
69
  const importRefs = moduleDoc ? importSourceRefs(moduleDoc) : [];
70
+ const relativeImports = importRefs.map((r) => r.source).filter(isLocalPathSource);
103
71
  // An import already at the latest version isn't upgraded — but if it carries
104
72
  // no integrity hash yet (neither a `#sha256-...` fragment nor an object-form
105
73
  // `integrity:` sibling), pin it in place. Best-effort: a failed hash fetch
106
74
  // leaves it unpinned. This is what lets `telo upgrade` pin a rarely-changing
107
75
  // module whose version never moves.
108
- const ensurePinned = async (importRef, namespace, name, version) => {
76
+ const ensurePinned = async (importRef, transport, label, version) => {
109
77
  if (splitIntegrity(importRef.source).integrity || importRef.integrity) {
110
- console.log(` ${log.ok("=")} ${namespace}/${name} ${log.dim(`already at ${version}, pinned`)}`);
78
+ console.log(` ${log.ok("=")} ${label} ${log.dim(`already at ${version}, pinned`)}`);
111
79
  result.unchanged++;
112
80
  return;
113
81
  }
114
- const pin = `${namespace}/${name}@${version}`;
82
+ const pinBase = transport.withVersion(importRef.source, version);
115
83
  let hash;
116
84
  try {
117
- hash = await fetchManifestHash(registryUrl, pin);
85
+ hash = await transport.manifestHash(pinBase);
118
86
  }
119
87
  catch (err) {
120
- console.log(` ${log.warn("!")} ${namespace}/${name} ${log.dim(`already at ${version}, left unpinned (${err instanceof Error ? err.message : String(err)})`)}`);
88
+ console.log(` ${log.warn("!")} ${label} ${log.dim(`already at ${version}, left unpinned (${err instanceof Error ? err.message : String(err)})`)}`);
121
89
  result.unchanged++;
122
90
  return;
123
91
  }
124
- const edit = buildSourceEdit(importRef.node, content, `${pin}#${hash}`);
92
+ const edit = buildSourceEdit(importRef.node, content, `${pinBase}#${hash}`);
125
93
  if (!edit) {
126
- console.error(` ${log.error("✗")} ${namespace}/${name} source scalar has no range — skipping`);
94
+ console.error(` ${log.error("✗")} ${label} source scalar has no range — skipping`);
127
95
  result.errors++;
128
96
  return;
129
97
  }
130
98
  edits.push(edit);
131
99
  result.changed = true;
132
100
  result.pinned++;
133
- console.log(` ${log.ok("+")} ${namespace}/${name} ${log.dim(`already at ${version},`)} ${log.ok("pinned")}`);
101
+ console.log(` ${log.ok("+")} ${label} ${log.dim(`already at ${version},`)} ${log.ok("pinned")}`);
134
102
  };
135
103
  for (const importRef of importRefs) {
136
104
  const source = importRef.source;
137
- const ref = parseUpgradeRef(source);
138
- if (!ref) {
139
- console.log(` ${log.dim("·")} ${source} ${log.dim("skipped (not a registry ref)")}`);
105
+ // A local sibling import (relative/absolute path) carries no version to bump
106
+ // here. Under `--recursive` the caller descends into it, so stay silent;
107
+ // otherwise report it skipped and point at the flag.
108
+ if (isLocalPathSource(source)) {
109
+ if (!recursive) {
110
+ console.log(` ${log.dim("·")} ${source} ${log.dim("skipped (local import — use --recursive to follow)")}`);
111
+ result.skipped++;
112
+ }
113
+ continue;
114
+ }
115
+ // The transport that owns the ref's scheme handles version enumeration,
116
+ // reconstruction, and hashing — `upgrade` never branches on ref shape.
117
+ const transport = registry.forRef(source);
118
+ if (!transport) {
119
+ console.log(` ${log.dim("·")} ${source} ${log.dim("skipped (not a remote ref)")}`);
140
120
  result.skipped++;
141
121
  continue;
142
122
  }
123
+ const rawVersion = transport.refVersion(source);
124
+ if (rawVersion === null) {
125
+ // Remote but not version-pinned — a bare `https://` URL, or an OCI ref
126
+ // with no explicit reference. Nothing to compare against.
127
+ console.log(` ${log.dim("·")} ${source} ${log.dim("skipped (not version-pinned)")}`);
128
+ result.skipped++;
129
+ continue;
130
+ }
131
+ const label = refLabel(source, rawVersion);
143
132
  let published;
144
133
  try {
145
- published = await fetchPublishedVersions(registryUrl, ref.namespace, ref.name);
134
+ published = await transport.listVersions(source);
146
135
  }
147
136
  catch (err) {
148
- console.error(` ${log.error("✗")} ${ref.namespace}/${ref.name} ` +
149
- (err instanceof Error ? err.message : String(err)));
137
+ console.error(` ${log.error("✗")} ${label} ` + (err instanceof Error ? err.message : String(err)));
150
138
  result.errors++;
151
139
  continue;
152
140
  }
153
141
  if (published === null || published.length === 0) {
154
- console.log(` ${log.warn("!")} ${ref.namespace}/${ref.name} ${log.dim("no published versions in registry")}`);
142
+ console.log(` ${log.warn("!")} ${label} ${log.dim("no published versions in registry")}`);
155
143
  result.skipped++;
156
144
  continue;
157
145
  }
158
- const best = pickLatest(published, includePrerelease);
146
+ // Normalize published tags to canonical SemVer so the compare and the
147
+ // string-equality membership test use one form (handles a `v` prefix).
148
+ const normalized = published
149
+ .map((v) => semver.valid(v))
150
+ .filter((v) => v !== null);
151
+ const best = pickLatest(normalized, includePrerelease);
159
152
  if (!best) {
160
153
  // Versions exist but none pass the prerelease filter / semver parser.
161
- console.log(` ${log.warn("!")} ${ref.namespace}/${ref.name} ${log.dim("no eligible versions in registry")}`);
154
+ console.log(` ${log.warn("!")} ${label} ${log.dim("no eligible versions in registry")}`);
162
155
  result.skipped++;
163
156
  continue;
164
157
  }
165
- if (!ref.version) {
166
- console.log(` ${log.warn("!")} ${ref.namespace}/${ref.name} ${log.dim(`unparseable current version (${ref.rawVersion})`)}`);
158
+ const currentVersion = semver.valid(rawVersion);
159
+ if (!currentVersion) {
160
+ // A non-SemVer pin — an OCI `sha256:` digest, a moving tag like `latest`.
161
+ // There is no ordering to upgrade along, so leave it untouched.
162
+ console.log(` ${log.warn("!")} ${label} ${log.dim(`unparseable current version (${rawVersion})`)}`);
167
163
  result.skipped++;
168
164
  continue;
169
165
  }
170
- const currentPublished = published.some((v) => semver.eq(v, ref.version));
171
- const cmp = semver.compare(best, ref.version);
166
+ const currentPublished = normalized.some((v) => semver.eq(v, currentVersion));
167
+ const cmp = semver.compare(best, currentVersion);
172
168
  // Already at the latest published version (`cmp < 0` is defensive — `best`
173
169
  // is the max of `published` and `currentPublished` means the pin is in that
174
170
  // list). Nothing to upgrade; ensure it carries an integrity hash.
175
171
  if (currentPublished && cmp <= 0) {
176
- await ensurePinned(importRef, ref.namespace, ref.name, ref.version);
172
+ await ensurePinned(importRef, transport, label, currentVersion);
177
173
  continue;
178
174
  }
179
175
  // Re-pin to the new version's integrity hash. Best-effort: if the hash
180
176
  // fetch fails, still rewrite the version but leave it unpinned (warn).
181
- let newPin = `${ref.namespace}/${ref.name}@${best}`;
177
+ const newBase = transport.withVersion(source, best);
178
+ let newPin = newBase;
182
179
  try {
183
- newPin = `${newPin}#${await fetchManifestHash(registryUrl, newPin)}`;
180
+ newPin = `${newBase}#${await transport.manifestHash(newBase)}`;
184
181
  }
185
182
  catch (err) {
186
- console.log(` ${log.warn("!")} ${ref.namespace}/${ref.name} ${log.dim(`left unpinned (${err instanceof Error ? err.message : String(err)})`)}`);
183
+ console.log(` ${log.warn("!")} ${label} ${log.dim(`left unpinned (${err instanceof Error ? err.message : String(err)})`)}`);
187
184
  }
188
185
  const edit = buildSourceEdit(importRef.node, content, newPin);
189
186
  if (!edit) {
190
187
  // No range info — extremely unlikely for a freshly parsed doc, but bail
191
188
  // out loudly rather than silently dropping the rewrite.
192
- console.error(` ${log.error("✗")} ${ref.namespace}/${ref.name} source scalar has no range — skipping`);
189
+ console.error(` ${log.error("✗")} ${label} source scalar has no range — skipping`);
193
190
  result.errors++;
194
191
  continue;
195
192
  }
196
193
  edits.push(edit);
197
194
  result.changed = true;
198
- result.upgrades.push({
199
- packagePath: `${ref.namespace}/${ref.name}`,
200
- from: ref.version,
201
- to: best,
202
- });
195
+ result.upgrades.push({ packagePath: label, from: currentVersion, to: best });
203
196
  if (currentPublished) {
204
197
  // Pinned version exists in the registry, just older — straight upgrade.
205
- console.log(` ${log.ok("↑")} ${ref.namespace}/${ref.name} ${ref.version} → ${log.ok(best)}`);
198
+ console.log(` ${log.ok("↑")} ${label} ${currentVersion} → ${log.ok(best)}`);
206
199
  }
207
200
  else {
208
201
  // Pinned version NOT in the registry — broken pin, repair to latest
209
202
  // regardless of direction.
210
203
  const arrow = cmp >= 0 ? log.ok("↑") : log.warn("↓");
211
- console.log(` ${arrow} ${ref.namespace}/${ref.name} ${ref.version} → ${log.ok(best)} ${log.warn("(pinned version not in registry)")}`);
204
+ console.log(` ${arrow} ${label} ${currentVersion} → ${log.ok(best)} ${log.warn("(pinned version not in registry)")}`);
212
205
  }
213
206
  }
214
- return { content: applyEdits(content, edits), result };
207
+ return { content: applyEdits(content, edits), result, relativeImports };
215
208
  }
216
209
  /**
217
210
  * Build a byte-level edit for an import entry's source scalar node.
@@ -263,13 +256,30 @@ function applyEdits(content, edits) {
263
256
  }
264
257
  return out;
265
258
  }
266
- export async function upgradeOne(inputPath, registryUrl, includePrerelease, dryRun, log) {
259
+ function emptyResult(errors = 0) {
260
+ return { changed: false, upgrades: [], pinned: 0, unchanged: 0, skipped: 0, errors };
261
+ }
262
+ /** Fold `child` counters into `into` (recursion aggregation). */
263
+ function mergeResults(into, child) {
264
+ into.upgrades.push(...child.upgrades);
265
+ into.pinned += child.pinned;
266
+ into.unchanged += child.unchanged;
267
+ into.skipped += child.skipped;
268
+ into.errors += child.errors;
269
+ into.changed ||= child.changed;
270
+ }
271
+ export async function upgradeOne(inputPath, registryUrl, includePrerelease, dryRun, log, recursive = false, visited = new Set()) {
267
272
  const { filePath, error: resolveError } = resolveManifestPath(inputPath);
268
273
  const displayPath = path.relative(process.cwd(), filePath);
269
274
  if (resolveError) {
270
275
  console.error(`${displayPath} ${log.error("error")} ${resolveError}`);
271
- return { changed: false, upgrades: [], pinned: 0, unchanged: 0, skipped: 0, errors: 1 };
276
+ return emptyResult(1);
272
277
  }
278
+ // A shared visited set makes recursion cycle-safe and de-dupes a sibling
279
+ // reached from more than one manifest — each file is upgraded at most once.
280
+ if (visited.has(filePath))
281
+ return emptyResult();
282
+ visited.add(filePath);
273
283
  let content;
274
284
  try {
275
285
  content = fs.readFileSync(filePath, "utf-8");
@@ -277,14 +287,15 @@ export async function upgradeOne(inputPath, registryUrl, includePrerelease, dryR
277
287
  catch (err) {
278
288
  console.error(`${displayPath} ${log.error("error")} cannot read file: ` +
279
289
  (err instanceof Error ? err.message : String(err)));
280
- return { changed: false, upgrades: [], pinned: 0, unchanged: 0, skipped: 0, errors: 1 };
290
+ return emptyResult(1);
281
291
  }
282
- const { content: nextContent, result } = await upgradeManifest({
292
+ const { content: nextContent, result, relativeImports } = await upgradeManifest({
283
293
  content,
284
294
  registryUrl,
285
295
  includePrerelease,
286
296
  log,
287
297
  displayName: displayPath,
298
+ recursive,
288
299
  });
289
300
  if (result.changed && !dryRun) {
290
301
  fs.writeFileSync(filePath, nextContent, "utf-8");
@@ -293,6 +304,15 @@ export async function upgradeOne(inputPath, registryUrl, includePrerelease, dryR
293
304
  const count = result.upgrades.length + result.pinned;
294
305
  console.log(` ${log.dim(`dry-run: ${count} import(s) would be updated`)}`);
295
306
  }
307
+ // Descend into local sibling manifests, resolving each relative source against
308
+ // this manifest's directory. Remote imports were already bumped in place above.
309
+ if (recursive) {
310
+ const dir = path.dirname(filePath);
311
+ for (const rel of relativeImports) {
312
+ const child = await upgradeOne(path.resolve(dir, rel), registryUrl, includePrerelease, dryRun, log, recursive, visited);
313
+ mergeResults(result, child);
314
+ }
315
+ }
296
316
  return result;
297
317
  }
298
318
  export async function upgrade(argv) {
@@ -303,8 +323,11 @@ export async function upgrade(argv) {
303
323
  let totalUnchanged = 0;
304
324
  let totalSkipped = 0;
305
325
  let totalErrors = 0;
326
+ // One visited set across all input paths — a sibling shared by two roots is
327
+ // upgraded once.
328
+ const visited = new Set();
306
329
  for (const p of argv.paths) {
307
- const r = await upgradeOne(p, registryUrl, argv.includePrerelease, argv.dryRun, log);
330
+ const r = await upgradeOne(p, registryUrl, argv.includePrerelease, argv.dryRun, log, argv.recursive ?? false, visited);
308
331
  totalUpgrades += r.upgrades.length;
309
332
  totalPinned += r.pinned;
310
333
  totalUnchanged += r.unchanged;
@@ -346,6 +369,12 @@ export function upgradeCommand(yargs) {
346
369
  type: "boolean",
347
370
  default: false,
348
371
  describe: "Show what would change without writing to disk",
372
+ })
373
+ .option("recursive", {
374
+ alias: "r",
375
+ type: "boolean",
376
+ default: false,
377
+ describe: "Follow relative (local) imports and upgrade their manifests too",
349
378
  }), async (argv) => {
350
379
  await upgrade(argv);
351
380
  });
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;oBAezB,GAAG,EAAE;eACV,MAAM;iBACJ,MAAM;kBACL,MAAM;gBACR,MAAM;;EAGrB;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,iBAAiB,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,IAAI,CA2BN;AAED;;yBAEyB;AACzB,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,kBAAkB,EAAE,EACjC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAkC3C"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAetE,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO;oBAezB,GAAG,EAAE;eACV,MAAM;iBACJ,MAAM;kBACL,MAAM;gBACR,MAAM;;EAGrB;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,iBAAiB,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,IAAI,CA2BN;AAED;;yBAEyB;AACzB,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,kBAAkB,EAAE,EACjC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAkC3C"}
package/dist/logger.js CHANGED
@@ -2,6 +2,18 @@ import { DiagnosticSeverity } from "@telorun/analyzer";
2
2
  import { findPositions } from "@telorun/ide-support";
3
3
  import { decideColor } from "@telorun/kernel";
4
4
  import * as path from "path";
5
+ import { fileURLToPath } from "url";
6
+ /** Render a manifest source for display: a local `file://` URL (how the loader
7
+ * canonicalizes on-disk manifests) becomes a CWD-relative path, a real remote
8
+ * URL (`http(s)://`) is kept absolute, and a bare path is made relative. */
9
+ function displaySourcePath(raw) {
10
+ if (raw.startsWith("file://")) {
11
+ return path.relative(process.cwd(), fileURLToPath(raw));
12
+ }
13
+ if (raw.includes("://"))
14
+ return raw;
15
+ return path.relative(process.cwd(), raw);
16
+ }
5
17
  export function createLogger(verbose) {
6
18
  // The color decision follows `kernel/specs/logging.md` §11.2's precedence
7
19
  // order exactly, shared with the `pretty` log encoding rather than
@@ -62,7 +74,7 @@ export function formatAnalysisDiagnostics(diagnostics, graph, log, entryPath) {
62
74
  for (const d of diagnostics) {
63
75
  const located = findPositions(graph, d.data);
64
76
  const raw = located?.file ?? entryPath;
65
- const displaySource = raw.includes("://") ? raw : path.relative(process.cwd(), raw);
77
+ const displaySource = displaySourcePath(raw);
66
78
  const fieldPath = d.data?.path;
67
79
  const fieldRange = fieldPath !== undefined && located?.positionIndex
68
80
  ? located.positionIndex.get(fieldPath)
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/cli",
3
- "version": "0.50.0",
3
+ "version": "0.51.0",
4
4
  "description": "Telo CLI - Command-line interface for the Telo runtime.",
5
5
  "keywords": [
6
6
  "telo",
@@ -34,10 +34,10 @@
34
34
  "dist"
35
35
  ],
36
36
  "dependencies": {
37
- "@telorun/analyzer": "0.39.0",
37
+ "@telorun/analyzer": "0.40.0",
38
38
  "@telorun/glob": "0.2.0",
39
- "@telorun/ide-support": "0.4.45",
40
- "@telorun/kernel": "0.50.0",
39
+ "@telorun/ide-support": "0.5.0",
40
+ "@telorun/kernel": "0.51.0",
41
41
  "@telorun/sdk": "0.50.0",
42
42
  "@telorun/templating": "0.10.1",
43
43
  "dotenv": "^17.4.0",