@telorun/cli 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 (35) hide show
  1. package/README.md +19 -4
  2. package/dist/bundle/partition-layers.d.ts +4 -2
  3. package/dist/bundle/partition-layers.d.ts.map +1 -1
  4. package/dist/bundle/partition-layers.js +13 -14
  5. package/dist/bundle/partition-layers.js.map +1 -1
  6. package/dist/bundle/payload-drift.d.ts +46 -0
  7. package/dist/bundle/payload-drift.d.ts.map +1 -0
  8. package/dist/bundle/payload-drift.js +109 -0
  9. package/dist/bundle/payload-drift.js.map +1 -0
  10. package/dist/bundle/select-files.d.ts +13 -0
  11. package/dist/bundle/select-files.d.ts.map +1 -1
  12. package/dist/bundle/select-files.js +27 -4
  13. package/dist/bundle/select-files.js.map +1 -1
  14. package/dist/commands/check.d.ts +1 -0
  15. package/dist/commands/check.d.ts.map +1 -1
  16. package/dist/commands/check.js +136 -10
  17. package/dist/commands/check.js.map +1 -1
  18. package/dist/commands/manifest-imports.d.ts.map +1 -1
  19. package/dist/commands/manifest-imports.js +2 -2
  20. package/dist/commands/manifest-imports.js.map +1 -1
  21. package/dist/commands/publish.d.ts.map +1 -1
  22. package/dist/commands/publish.js +51 -7
  23. package/dist/commands/publish.js.map +1 -1
  24. package/dist/commands/run.d.ts.map +1 -1
  25. package/dist/commands/run.js +149 -30
  26. package/dist/commands/run.js.map +1 -1
  27. package/dist/logger.d.ts +5 -1
  28. package/dist/logger.d.ts.map +1 -1
  29. package/dist/logger.js +55 -26
  30. package/dist/logger.js.map +1 -1
  31. package/dist/manifest-freshness.d.ts +120 -0
  32. package/dist/manifest-freshness.d.ts.map +1 -0
  33. package/dist/manifest-freshness.js +261 -0
  34. package/dist/manifest-freshness.js.map +1 -0
  35. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-imports.d.ts","sourceRoot":"","sources":["../../src/commands/manifest-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,MAAM,CAAC;AAItD;6DAC6D;AAC7D,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,SAAS,CAKpE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;2DAGuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gFAC4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,eAAe,EAAE,CA8BvE"}
1
+ {"version":3,"file":"manifest-imports.d.ts","sourceRoot":"","sources":["../../src/commands/manifest-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,MAAM,CAAC;AAEtD;6DAC6D;AAC7D,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,SAAS,CAKpE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;2DAGuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gFAC4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,eAAe,EAAE,CA8BvE"}
@@ -1,11 +1,11 @@
1
+ import { isModuleKind } from "@telorun/analyzer";
1
2
  import { isMap, isScalar } from "yaml";
2
- const MODULE_KINDS = new Set(["Telo.Application", "Telo.Library"]);
3
3
  /** The module doc (`Telo.Application` / `Telo.Library`) within a parsed file,
4
4
  * if any. Imports live as an `imports:` map on this doc. */
5
5
  export function findModuleDoc(docs) {
6
6
  return docs.find((d) => {
7
7
  const kind = d.get("kind");
8
- return typeof kind === "string" && MODULE_KINDS.has(kind);
8
+ return typeof kind === "string" && isModuleKind(kind);
9
9
  });
10
10
  }
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-imports.js","sourceRoot":"","sources":["../../src/commands/manifest-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEtD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AAEnE;6DAC6D;AAC7D,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAkBD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAmB;IAClD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM,SAAS,GACb,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ;oBAChE,CAAC,CAAC,aAAa,CAAC,KAAK;oBACrB,CAAC,CAAC,SAAS,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK;oBACL,MAAM,EAAE,UAAU,CAAC,KAAK;oBACxB,SAAS;oBACT,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"manifest-imports.js","sourceRoot":"","sources":["../../src/commands/manifest-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAiB,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEtD;6DAC6D;AAC7D,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAkBD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAmB;IAClD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM,SAAS,GACb,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ;oBAChE,CAAC,CAAC,aAAa,CAAC,KAAK;oBACrB,CAAC,CAAC,SAAS,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK;oBACL,MAAM,EAAE,UAAU,CAAC,KAAK;oBACxB,SAAS;oBACT,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,MAAM,EAAsD,MAAM,mBAAmB,CAAC;AAC1H,OAAO,EAAE,eAAe,EAA4B,MAAM,iBAAiB,CAAC;AAI5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,EAA2C,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AA8F9E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyDpF;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAED;kEACkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAqBD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwC9C;AAaD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAoCpE;AAyVD,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA4ChD"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,MAAM,EAAsD,MAAM,mBAAmB,CAAC;AAC1H,OAAO,EAAE,eAAe,EAA4B,MAAM,iBAAiB,CAAC;AAI5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAA2C,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AA8F9E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyDpF;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAED;kEACkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AA8BD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwC9C;AAaD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAoCpE;AAkYD,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA4ChD"}
@@ -8,7 +8,8 @@ import { fetchManifestHash } from "../registry-hash.js";
8
8
  import { defaultCustomTags } from "@telorun/templating";
9
9
  import { parseAllDocuments } from "yaml";
10
10
  import { describePartition, partitionLayers } from "../bundle/partition-layers.js";
11
- import { selectFiles } from "../bundle/select-files.js";
11
+ import { describeDrift, findPayloadDrift } from "../bundle/payload-drift.js";
12
+ import { assertWithinModule, selectFiles } from "../bundle/select-files.js";
12
13
  import { createLogger, formatAnalysisDiagnostics } from "../logger.js";
13
14
  import { getPublisher } from "../publishers/registry.js";
14
15
  import { findModuleDoc, importSourceRefs } from "./manifest-imports.js";
@@ -147,6 +148,14 @@ export function readFilesPatterns(content) {
147
148
  export function readAssetPatterns(content) {
148
149
  return readPatternField(content, "assets");
149
150
  }
151
+ /** The owner doc's `metadata.version` — the tag this artifact publishes under,
152
+ * and so the version the payload-drift gate compares against. */
153
+ function readOwnerVersion(content) {
154
+ const docs = parseAllDocuments(content, { customTags: defaultCustomTags() });
155
+ const first = docs[0]?.toJSON();
156
+ const version = first?.metadata?.version;
157
+ return typeof version === "string" ? version : undefined;
158
+ }
150
159
  function readPatternField(content, field) {
151
160
  const docs = parseAllDocuments(content, { customTags: defaultCustomTags() });
152
161
  const first = docs[0]?.toJSON();
@@ -488,12 +497,18 @@ async function publishOne(filePath, destination, registry, bump, dryRun, skipCon
488
497
  // controller selector, the author-claimed `assets:` layer, and `common` for
489
498
  // everything unclaimed. Printed so an author can see where each file landed —
490
499
  // a sidecar that fell into `common` is not wrong, just not skippable.
491
- const partition = partitionLayers(content, bundledFiles, readAssetPatterns(content));
492
- if (dryRun) {
493
- for (const line of describePartition(partition))
494
- stepDry(log, "layer", line);
495
- stepDry(log, "push", destination);
496
- return true;
500
+ let partition;
501
+ try {
502
+ partition = partitionLayers(content, bundledFiles, readAssetPatterns(content));
503
+ // Every file that will actually ship, including the controller entry points
504
+ // `controllers:` contributed without `files:` naming them. The guard belongs
505
+ // on the partition rather than on the pattern match, since the pattern match
506
+ // is no longer the only way in.
507
+ assertWithinModule(manifestDir, partition.layers.flatMap((layer) => layer.files));
508
+ }
509
+ catch (err) {
510
+ console.error(log.error("error") + ` ${err instanceof Error ? err.message : String(err)}`);
511
+ return false;
497
512
  }
498
513
  const layers = partition.layers.map((layer) => ({
499
514
  role: layer.role,
@@ -503,6 +518,35 @@ async function publishOne(filePath, destination, registry, bump, dryRun, skipCon
503
518
  content: fs.readFileSync(path.resolve(manifestDir, rel)),
504
519
  })),
505
520
  }));
521
+ // Bytes, not a ledger: if this version is already published and its payload
522
+ // differs from what we just built, some dependency changed underneath it and
523
+ // `metadata.version` has to move. Runs before the push (and on --dry-run) so
524
+ // the release fails while it is still a fixable working copy.
525
+ const version = readOwnerVersion(content);
526
+ if (version) {
527
+ let drift;
528
+ try {
529
+ drift = await findPayloadDrift(destination, version, layers, registry);
530
+ }
531
+ catch (err) {
532
+ // A registry that could not answer is not a pass. Fail the publish and say
533
+ // why, rather than shipping on the assumption that nothing changed.
534
+ console.error(log.error("error") + ` ${err instanceof Error ? err.message : String(err)}`);
535
+ return false;
536
+ }
537
+ if (drift && drift.length > 0) {
538
+ console.error(log.error("error") + ` ${describeDrift(destination, version, drift)}`);
539
+ return false;
540
+ }
541
+ if (drift)
542
+ stepOk(log, "payload", `matches the published ${version}`);
543
+ }
544
+ if (dryRun) {
545
+ for (const line of describePartition(partition))
546
+ stepDry(log, "layer", line);
547
+ stepDry(log, "push", destination);
548
+ return true;
549
+ }
506
550
  for (const line of describePartition(partition))
507
551
  stepOk(log, "layer", line);
508
552
  // The transport pushes each layer as its own blob, injects the resulting
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AA4IlC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf;gFAC4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAkRF,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEtD;AAuFD,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAoE5C"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAyOlC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf;gFAC4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAqRF,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEtD;AAwGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAoE5C"}
@@ -1,5 +1,6 @@
1
- import { Kernel, LocalFileSource, DebugWireSink, LocalManifestCacheSource, resolveCacheRoot, resolveEntryDir, writeManifestCache, } from "@telorun/kernel";
1
+ import { Kernel, LocalFileSource, DebugWireSink, LocalManifestCacheSource, resolveCacheRoot, resolveEntryDir, writeManifestCache, lastBuildInputs, } from "@telorun/kernel";
2
2
  import { SEVERITY } from "@telorun/sdk";
3
+ import { PackageURL } from "packageurl-js";
3
4
  import * as dotenv from "dotenv";
4
5
  import * as fs from "fs";
5
6
  import * as path from "path";
@@ -38,24 +39,33 @@ function tryReadFile(filePath) {
38
39
  return "";
39
40
  }
40
41
  }
42
+ /** An on-disk path for a loader source URL, or `null` when the source is remote
43
+ * and therefore not watchable. */
44
+ function localPathOf(source) {
45
+ if (!source)
46
+ return null;
47
+ if (source.startsWith("file://"))
48
+ return fileURLToPath(source);
49
+ // No URL scheme → an absolute local path (the loader's canonical form for
50
+ // local files). A scheme like `https://` is remote.
51
+ return /^[a-z][a-z0-9+.-]*:\/\//i.test(source) ? null : source;
52
+ }
41
53
  /** The local manifest files a loaded graph was built from — entry, every
42
- * `include:` partial, and every transitively-imported library + its partials.
43
- * Remote (`http(s)://`) sources are skipped; only on-disk files are watchable.
44
- * Empty until `load()` succeeds (the graph is dropped again on teardown), so
45
- * callers must snapshot the set before `start()`. */
46
- function collectWatchFiles(kernel) {
54
+ * `include:` partial, and every transitively-imported library + its partials
55
+ * plus each local module's controller sources. Remote (`http(s)://`) sources are
56
+ * skipped; only on-disk files are watchable. Empty until `load()` succeeds (the
57
+ * graph is dropped again on teardown), so callers must snapshot the set before
58
+ * `start()`.
59
+ *
60
+ * Controller sources are in the set because a local module's controller is now
61
+ * built from them: an edit under `src/` changes what the next run loads exactly
62
+ * as an edit to `telo.yaml` does, so it has to trigger the same restart. */
63
+ async function collectWatchFiles(kernel) {
47
64
  const files = new Set();
48
65
  const add = (source) => {
49
- if (!source)
50
- return;
51
- if (source.startsWith("file://")) {
52
- files.add(fileURLToPath(source));
53
- }
54
- else if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(source)) {
55
- // No URL scheme → an absolute local path (the loader's canonical form
56
- // for local files). A scheme like `https://` is remote, skip it.
57
- files.add(source);
58
- }
66
+ const local = localPathOf(source);
67
+ if (local)
68
+ files.add(local);
59
69
  };
60
70
  const graph = kernel.getLoadedGraph();
61
71
  if (graph) {
@@ -63,10 +73,66 @@ function collectWatchFiles(kernel) {
63
73
  add(mod.owner.source);
64
74
  for (const partial of mod.partials)
65
75
  add(partial.source);
76
+ await addControllerSources(mod, kernel.getCacheRoot(), files);
66
77
  }
67
78
  }
68
79
  return files;
69
80
  }
81
+ /** Every `local_path` a module's `Telo.Definition` docs declare, read from the
82
+ * manifests the loader already parsed rather than re-scanned out of the text —
83
+ * a PURL wrapped across lines is invisible to a line regex, and watch mode would
84
+ * silently stop reacting to controller edits with no diagnostic. */
85
+ function controllerSources(mod) {
86
+ const moduleDir = path.dirname(localPathOf(mod.owner.source) ?? "");
87
+ if (moduleDir === "")
88
+ return [];
89
+ const sources = [];
90
+ for (const file of [mod.owner, ...mod.partials]) {
91
+ for (const manifest of file.manifests) {
92
+ const candidates = manifest?.controllers;
93
+ if (!Array.isArray(candidates))
94
+ continue;
95
+ for (const candidate of candidates) {
96
+ if (typeof candidate !== "string")
97
+ continue;
98
+ let parsed;
99
+ try {
100
+ parsed = PackageURL.fromString(candidate);
101
+ }
102
+ catch {
103
+ continue; // the analyzer and the loader both report a bad PURL better
104
+ }
105
+ const localPath = parsed.qualifiers?.local_path;
106
+ if (parsed.type !== "telo" || !localPath)
107
+ continue;
108
+ sources.push(path.resolve(moduleDir, localPath));
109
+ }
110
+ }
111
+ }
112
+ return sources;
113
+ }
114
+ /**
115
+ * Watch what a controller is actually built from.
116
+ *
117
+ * The exact set is esbuild's own input list, which `source-bundle-builder`
118
+ * persists per entry point when it builds — so it covers the module's sources,
119
+ * the shared TS libraries it inlines, and its dependency tree. Deriving it from
120
+ * the entry point's directory instead would be wrong in both directions: it
121
+ * would miss a shared library one directory over, and sweep in `dist/` and the
122
+ * emitted `.mjs` beside it.
123
+ *
124
+ * Before the first build there is no index yet, so the entry point alone stands
125
+ * in — enough to notice the edit that triggers that first build.
126
+ */
127
+ async function addControllerSources(mod, cacheRoot, files) {
128
+ for (const entry of controllerSources(mod)) {
129
+ files.add(entry);
130
+ if (!cacheRoot)
131
+ continue;
132
+ for (const input of await lastBuildInputs(entry, cacheRoot))
133
+ files.add(input);
134
+ }
135
+ }
70
136
  /** Best-effort entry file for the load-failed case, where no graph exists to
71
137
  * enumerate. A directory entry resolves to its `telo.yaml`. */
72
138
  function entryFilePath(manifestPath) {
@@ -82,14 +148,41 @@ function createWatcherSet(log, onChange) {
82
148
  const watchers = new Map();
83
149
  const debounceTimers = new Map();
84
150
  let active = true;
151
+ function inodeOf(fsPath) {
152
+ try {
153
+ return fs.statSync(fsPath, { bigint: true }).ino;
154
+ }
155
+ catch {
156
+ return null;
157
+ }
158
+ }
159
+ /** An editor's atomic save (write a temp file, then rename it over the path)
160
+ * puts a NEW inode behind the path. The watcher stays bound to the replaced
161
+ * one, so it never fires again — and emits no `error`, so the handler below
162
+ * never runs and `sync` skips the path as already watched. The event we are
163
+ * handling is that watcher's last gasp, so rebind on it. Keyed on the inode
164
+ * rather than on a `rename` event type, which bun does not deliver. */
165
+ function rebindIfReplaced(fsPath) {
166
+ const entry = watchers.get(fsPath);
167
+ if (!entry)
168
+ return;
169
+ const inode = inodeOf(fsPath);
170
+ if (inode === null || inode === entry.inode)
171
+ return;
172
+ entry.watcher.close();
173
+ watchers.delete(fsPath);
174
+ watchFile(fsPath);
175
+ }
85
176
  function watchFile(fsPath) {
86
177
  if (!active || watchers.has(fsPath))
87
178
  return;
179
+ const inode = inodeOf(fsPath);
88
180
  let watcher;
89
181
  try {
90
182
  watcher = fs.watch(fsPath, () => {
91
183
  if (!active)
92
184
  return;
185
+ rebindIfReplaced(fsPath);
93
186
  const existing = debounceTimers.get(fsPath);
94
187
  if (existing)
95
188
  clearTimeout(existing);
@@ -107,7 +200,7 @@ function createWatcherSet(log, onChange) {
107
200
  }
108
201
  watcher.on("error", () => {
109
202
  // OS invalidated the watch (e.g. file deleted). Remove and re-establish.
110
- if (watchers.get(fsPath) === watcher) {
203
+ if (watchers.get(fsPath)?.watcher === watcher) {
111
204
  watchers.delete(fsPath);
112
205
  setTimeout(() => {
113
206
  if (active)
@@ -115,7 +208,7 @@ function createWatcherSet(log, onChange) {
115
208
  }, 50);
116
209
  }
117
210
  });
118
- watchers.set(fsPath, watcher);
211
+ watchers.set(fsPath, { watcher, inode });
119
212
  }
120
213
  return {
121
214
  sync(files) {
@@ -128,8 +221,8 @@ function createWatcherSet(log, onChange) {
128
221
  for (const t of debounceTimers.values())
129
222
  clearTimeout(t);
130
223
  debounceTimers.clear();
131
- for (const w of watchers.values())
132
- w.close();
224
+ for (const { watcher } of watchers.values())
225
+ watcher.close();
133
226
  watchers.clear();
134
227
  },
135
228
  };
@@ -339,8 +432,11 @@ function countRootErrors(diagnostics) {
339
432
  return count;
340
433
  }
341
434
  /** Format an error as diagnostics on the terminal. Returns the non-warning
342
- * count so the single-shot path can pick an exit code while watch keeps going. */
343
- function reportError(argv, error, log) {
435
+ * count so the single-shot path can pick an exit code while watch keeps going.
436
+ * The kernel's loaded graph is what turns a static failure's `origin` into a
437
+ * `file:line:col` — it is present for every failure raised after the graph
438
+ * loaded, which is every static one. */
439
+ function reportError(argv, error, log, kernel) {
344
440
  const isUrl = argv.path.startsWith("http://") || argv.path.startsWith("https://");
345
441
  const displayPath = isUrl
346
442
  ? argv.path
@@ -354,7 +450,7 @@ function reportError(argv, error, log) {
354
450
  code: error?.code,
355
451
  },
356
452
  ];
357
- formatDiagnostics(diags, log, displayPath);
453
+ formatDiagnostics(diags, log, displayPath, kernel?.getLoadedGraph());
358
454
  const errorCount = countRootErrors(diags);
359
455
  const warnCount = diags.filter((d) => d.severity === "warning").length;
360
456
  const parts = [];
@@ -376,8 +472,12 @@ export async function run(argv) {
376
472
  const debug = argv.debug || argv.inspect !== undefined
377
473
  ? await startDebugSession(argv, log, cacheRoot)
378
474
  : undefined;
475
+ // Held outside the try so the catch can reach the loaded graph a static
476
+ // failure's location resolves against.
477
+ let bootedKernel;
379
478
  try {
380
479
  const kernel = await buildKernel(argv, log, cacheRoot);
480
+ bootedKernel = kernel;
381
481
  debug?.attach(kernel);
382
482
  const shutdown = () => {
383
483
  // Cooperatively cancel the boot run first (so honoring targets / in-flight
@@ -424,7 +524,7 @@ export async function run(argv) {
424
524
  }
425
525
  catch (error) {
426
526
  debug?.stop();
427
- reportError(argv, error, log);
527
+ reportError(argv, error, log, bootedKernel);
428
528
  process.exit(1);
429
529
  }
430
530
  }
@@ -447,10 +547,20 @@ async function runWatch(argv, log) {
447
547
  let stopping = false;
448
548
  let signalChange = null;
449
549
  let currentKernel = null;
550
+ /** A change that arrived while no cycle was waiting on a gate — teardown and
551
+ * the next load take seconds, and resolving an already-settled promise is a
552
+ * no-op, so the edit would be lost. The next cycle consumes it instead. */
553
+ let pendingChange = false;
450
554
  // One watcher set for the whole session — see createWatcherSet. A change
451
555
  // resolves the current cycle's `changed` gate; cycles re-read `signalChange`
452
556
  // so the same watcher drives every reload.
453
- const watchers = createWatcherSet(log, () => signalChange?.());
557
+ const notifyChange = () => {
558
+ if (signalChange)
559
+ signalChange();
560
+ else
561
+ pendingChange = true;
562
+ };
563
+ const watchers = createWatcherSet(log, notifyChange);
454
564
  const requestStop = () => {
455
565
  stopping = true;
456
566
  log.info("\n[watch] stopping...");
@@ -458,7 +568,7 @@ async function runWatch(argv, log) {
458
568
  debug?.stop(currentKernel ?? undefined);
459
569
  currentKernel?.cancel("interrupted");
460
570
  currentKernel?.forceIdle();
461
- signalChange?.();
571
+ notifyChange();
462
572
  };
463
573
  process.once("SIGINT", requestStop);
464
574
  process.once("SIGTERM", requestStop);
@@ -474,8 +584,17 @@ async function runWatch(argv, log) {
474
584
  // overrides every hold (including a server's own) when we want to reload.
475
585
  kernel.acquireHold("watch-mode");
476
586
  const changed = new Promise((resolve) => {
477
- signalChange = resolve;
587
+ // Clearing the slot on resolve is what routes a later change into
588
+ // `pendingChange` instead of onto this already-settled gate.
589
+ signalChange = () => {
590
+ signalChange = null;
591
+ resolve();
592
+ };
478
593
  });
594
+ if (pendingChange) {
595
+ pendingChange = false;
596
+ notifyChange();
597
+ }
479
598
  try {
480
599
  await kernel.load(argv.path, {
481
600
  cacheDir: cacheRoot,
@@ -483,12 +602,12 @@ async function runWatch(argv, log) {
483
602
  });
484
603
  await persistManifestCache(argv, kernel, log, cacheRoot);
485
604
  debug?.markReady(kernel);
486
- const count = watchers.sync(collectWatchFiles(kernel));
605
+ const count = watchers.sync(await collectWatchFiles(kernel));
487
606
  log.info(`[watch] watching ${count} file(s)`);
488
607
  // start() resolves on its own only on boot error or one-shot completion
489
608
  // without a hold; the hold keeps long-running and completed apps alive,
490
609
  // so the cycle advances on a file change. Errors are reported, not thrown.
491
- const startPromise = kernel.start().catch((err) => reportError(argv, err, log));
610
+ const startPromise = kernel.start().catch((err) => reportError(argv, err, log, kernel));
492
611
  await changed;
493
612
  kernel.cancel("reload");
494
613
  kernel.forceIdle();
@@ -496,7 +615,7 @@ async function runWatch(argv, log) {
496
615
  }
497
616
  catch (error) {
498
617
  // Load failed before start(); report and wait for an edit before retrying.
499
- reportError(argv, error, log);
618
+ reportError(argv, error, log, kernel);
500
619
  await kernel.teardown();
501
620
  await changed;
502
621
  }