@telorun/cli 0.3.2 → 0.4.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
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: "Command-line interface for Telo kernel: loads and runs YAML manifests locally with watch mode and module publishing"
3
+ ---
4
+
1
5
  # Telo CLI
2
6
 
3
7
  The Telo CLI is the command-line interface for the Telo kernel. It loads YAML manifests and runs them on your local machine.
@@ -107,6 +111,53 @@ On success:
107
111
 
108
112
  ---
109
113
 
114
+ ### `telo install <paths..>`
115
+
116
+ Pre-downloads every controller declared by a manifest and its transitive `Telo.Import`s into the on-disk cache. At runtime the kernel finds each controller already installed and skips the boot-time `npm install` — removing the startup delay and the network dependency from production deployments.
117
+
118
+ Installs run in parallel; failures are reported per controller and the command exits non-zero if any failed. Subsequent runs are idempotent — already-cached packages are skipped.
119
+
120
+ ```bash
121
+ telo install ./apps/my-app/telo.yaml
122
+ telo install ./apps/a/telo.yaml ./apps/b/telo.yaml
123
+ ```
124
+
125
+ **Environment:**
126
+
127
+ - `TELO_CACHE_DIR` — Absolute path to the on-disk cache root. Defaults to `~/.cache/telo` (shared across projects for a user). Override to pin the cache alongside the manifest when producing a self-contained bundle (e.g. a Docker image). The kernel at boot reads from the same variable, so set it in both the install step and the runtime environment.
128
+
129
+ **Example output:**
130
+
131
+ ```
132
+ Installing 20 controllers for apps/my-app/telo.yaml
133
+ ✓ pkg:npm/@telorun/http-server@0.2.1?local_path=./nodejs#http-server
134
+ ✓ pkg:npm/@telorun/http-client@0.1.6?local_path=./nodejs#http-client
135
+ ...
136
+
137
+ ✓ 20 installed in 3.2s
138
+ ```
139
+
140
+ **Typical Dockerfile usage:**
141
+
142
+ ```dockerfile
143
+ FROM telorun/telo:nodejs as build
144
+ WORKDIR /srv
145
+ ENV TELO_CACHE_DIR=/srv/.telo-cache
146
+ COPY apps/my-app/telo.yaml apps/my-app/telo.yaml
147
+ COPY modules/ modules/
148
+ RUN telo install apps/my-app/telo.yaml
149
+
150
+ FROM telorun/telo:nodejs as production
151
+ WORKDIR /srv
152
+ ENV TELO_CACHE_DIR=/srv/.telo-cache
153
+ COPY --from=build /srv /srv
154
+ CMD ["apps/my-app/telo.yaml"]
155
+ ```
156
+
157
+ The build stage populates the cache; the production stage is a single `COPY` and does no network I/O at boot.
158
+
159
+ ---
160
+
110
161
  ### `telo [manifest]`
111
162
 
112
163
  Load and run a Telo manifest.
package/dist/cli.js CHANGED
@@ -2,12 +2,14 @@
2
2
  import yargs from "yargs";
3
3
  import { hideBin } from "yargs/helpers";
4
4
  import { checkCommand } from "./commands/check.js";
5
+ import { installCommand } from "./commands/install.js";
5
6
  import { publishCommand } from "./commands/publish.js";
6
7
  import { runCommand } from "./commands/run.js";
7
8
  let cli = yargs(hideBin(process.argv))
8
9
  .scriptName("telo")
9
10
  .usage("$0 <command> [options]");
10
11
  cli = checkCommand(cli);
12
+ cli = installCommand(cli);
11
13
  cli = publishCommand(cli);
12
14
  cli = runCommand(cli);
13
15
  cli
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,UAAU,CAAC,MAAM,CAAC;KAClB,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAEnC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAe,CAAC;AACtC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAe,CAAC;AACxC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAe,CAAC;AAEpC,GAAG;KACA,MAAM,CAAC,SAAS,EAAE;IACjB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,wBAAwB;CACnC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,8BAA8B;CACzC,CAAC;KACD,MAAM,CAAC,kBAAkB,EAAE;IAC1B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,4BAA4B;CACvC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,2CAA2C;CACtD,CAAC;KACD,aAAa,CAAC,CAAC,EAAE,yCAAyC,CAAC;KAC3D,MAAM,EAAE;KACR,IAAI,EAAE;KACN,OAAO,EAAE;KACT,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,UAAU,CAAC,MAAM,CAAC;KAClB,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAEnC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAe,CAAC;AACtC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAe,CAAC;AACxC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAe,CAAC;AACxC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAe,CAAC;AAEpC,GAAG;KACA,MAAM,CAAC,SAAS,EAAE;IACjB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,wBAAwB;CACnC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,8BAA8B;CACzC,CAAC;KACD,MAAM,CAAC,kBAAkB,EAAE;IAC1B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,4BAA4B;CACvC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,2CAA2C;CACtD,CAAC;KACD,aAAa,CAAC,CAAC,EAAE,yCAAyC,CAAC;KAC3D,MAAM,EAAE;KACR,IAAI,EAAE;KACN,OAAO,EAAE;KACT,KAAK,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Argv } from "yargs";
2
+ export declare function install(argv: {
3
+ paths: string[];
4
+ }): Promise<void>;
5
+ export declare function installCommand(yargs: Argv): Argv;
6
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAyGlC,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAehD"}
@@ -0,0 +1,104 @@
1
+ import { Loader } from "@telorun/analyzer";
2
+ import { ControllerLoader, LocalFileAdapter } from "@telorun/kernel";
3
+ import * as path from "path";
4
+ import { createLogger } from "../logger.js";
5
+ /**
6
+ * Walks the manifest graph (following Telo.Import), collects every
7
+ * Telo.Definition with a `controllers` array, and dedupes by the exact PURL
8
+ * list so the ControllerLoader cache is hit only once per unique package.
9
+ */
10
+ function collectControllerJobs(manifests) {
11
+ const byKey = new Map();
12
+ for (const m of manifests) {
13
+ if (m.kind !== "Telo.Definition")
14
+ continue;
15
+ const controllers = m.controllers;
16
+ if (!controllers?.length)
17
+ continue;
18
+ const baseUri = m.metadata?.source ?? "";
19
+ // Cache key mirrors ControllerLoader's own cache key (first PURL), plus the
20
+ // baseUri so two definitions with the same PURL but different local_path
21
+ // resolution roots are treated as independent jobs.
22
+ const key = `${controllers[0]}|${baseUri}`;
23
+ const label = controllers[0];
24
+ const existing = byKey.get(key);
25
+ const ref = { kind: m.kind, name: m.metadata?.name ?? "(unnamed)" };
26
+ if (existing) {
27
+ existing.definitions.push(ref);
28
+ continue;
29
+ }
30
+ byKey.set(key, { purls: controllers, baseUri, label, definitions: [ref] });
31
+ }
32
+ return Array.from(byKey.values());
33
+ }
34
+ async function installOne(inputPath, log) {
35
+ const isUrl = inputPath.startsWith("http://") || inputPath.startsWith("https://");
36
+ const entryPath = isUrl ? inputPath : path.resolve(process.cwd(), inputPath);
37
+ const displayPath = isUrl ? entryPath : path.relative(process.cwd(), entryPath);
38
+ const loader = new Loader([new LocalFileAdapter()]);
39
+ let manifests;
40
+ try {
41
+ manifests = await loader.loadManifests(entryPath);
42
+ }
43
+ catch (err) {
44
+ console.error(`${displayPath} ${log.error("error")} ` +
45
+ (err instanceof Error ? err.message : String(err)));
46
+ return false;
47
+ }
48
+ const jobs = collectControllerJobs(manifests);
49
+ if (jobs.length === 0) {
50
+ console.log(log.ok("✓") + ` ${displayPath}: no controllers to install`);
51
+ return true;
52
+ }
53
+ console.log(`Installing ${jobs.length} controller${jobs.length !== 1 ? "s" : ""} for ${log.dim(displayPath)}`);
54
+ const controllerLoader = new ControllerLoader();
55
+ const started = Date.now();
56
+ const results = await Promise.allSettled(jobs.map((job) => controllerLoader.load(job.purls, job.baseUri)));
57
+ let failed = 0;
58
+ for (let i = 0; i < jobs.length; i++) {
59
+ const job = jobs[i];
60
+ const result = results[i];
61
+ if (result.status === "fulfilled") {
62
+ console.log(` ${log.ok("✓")} ${job.label}`);
63
+ }
64
+ else {
65
+ failed++;
66
+ const reason = result.reason;
67
+ const msg = reason instanceof Error ? reason.message : String(reason);
68
+ console.error(` ${log.error("✗")} ${job.label}`);
69
+ console.error(` ${log.dim(msg)}`);
70
+ for (const ref of job.definitions) {
71
+ console.error(` ${log.dim(`referenced by ${ref.kind} ${ref.name}`)}`);
72
+ }
73
+ }
74
+ }
75
+ const elapsed = ((Date.now() - started) / 1000).toFixed(1);
76
+ if (failed === 0) {
77
+ console.log(`\n${log.ok("✓")} ${jobs.length} installed in ${elapsed}s`);
78
+ return true;
79
+ }
80
+ console.log(`\n${log.error(`${failed} failed`)}, ${jobs.length - failed} installed in ${elapsed}s`);
81
+ return false;
82
+ }
83
+ export async function install(argv) {
84
+ const log = createLogger(false);
85
+ let failed = false;
86
+ for (const p of argv.paths) {
87
+ const ok = await installOne(p, log);
88
+ if (!ok)
89
+ failed = true;
90
+ }
91
+ if (failed)
92
+ process.exit(1);
93
+ }
94
+ export function installCommand(yargs) {
95
+ return yargs.command("install <paths..>", "Pre-download all controllers referenced by one or more Telo manifests into the local cache", (y) => y.positional("paths", {
96
+ describe: "Paths to YAML manifests, directories containing telo.yaml, or HTTP(S) URLs",
97
+ type: "string",
98
+ array: true,
99
+ demandOption: true,
100
+ }), async (argv) => {
101
+ await install(argv);
102
+ });
103
+ }
104
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.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.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Telo CLI - Command-line interface for the Telo runtime.",
5
5
  "keywords": [
6
6
  "telo",
@@ -37,7 +37,7 @@
37
37
  "yaml": "^2.8.3",
38
38
  "yargs": "^17.7.2",
39
39
  "@telorun/analyzer": "0.2.1",
40
- "@telorun/kernel": "0.3.2",
40
+ "@telorun/kernel": "0.4.0",
41
41
  "@telorun/sdk": "0.3.2"
42
42
  },
43
43
  "devDependencies": {