@sublang/slc 0.2.0 → 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.
Files changed (103) hide show
  1. package/README.md +86 -14
  2. package/dist/app.d.ts +13 -2
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +65 -15
  5. package/dist/app.js.map +1 -1
  6. package/dist/build-history.d.ts +74 -0
  7. package/dist/build-history.d.ts.map +1 -0
  8. package/dist/build-history.js +309 -0
  9. package/dist/build-history.js.map +1 -0
  10. package/dist/cli.js +2 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/cligent-agent.d.ts +19 -0
  13. package/dist/cligent-agent.d.ts.map +1 -1
  14. package/dist/cligent-agent.js +125 -30
  15. package/dist/cligent-agent.js.map +1 -1
  16. package/dist/compiled-executor.d.ts +7 -1
  17. package/dist/compiled-executor.d.ts.map +1 -1
  18. package/dist/compiled-executor.js +11 -3
  19. package/dist/compiled-executor.js.map +1 -1
  20. package/dist/config-file.d.ts +9 -0
  21. package/dist/config-file.d.ts.map +1 -1
  22. package/dist/config-file.js +29 -5
  23. package/dist/config-file.js.map +1 -1
  24. package/dist/config.d.ts +8 -0
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +9 -3
  27. package/dist/config.js.map +1 -1
  28. package/dist/errors.d.ts +14 -0
  29. package/dist/errors.d.ts.map +1 -0
  30. package/dist/errors.js +28 -0
  31. package/dist/errors.js.map +1 -0
  32. package/dist/execution.d.ts +42 -0
  33. package/dist/execution.d.ts.map +1 -1
  34. package/dist/execution.js +224 -29
  35. package/dist/execution.js.map +1 -1
  36. package/dist/hash.d.ts +22 -0
  37. package/dist/hash.d.ts.map +1 -1
  38. package/dist/hash.js +47 -0
  39. package/dist/hash.js.map +1 -1
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/interpreter.d.ts +1 -1
  45. package/dist/interpreter.d.ts.map +1 -1
  46. package/dist/interpreter.js +9 -0
  47. package/dist/interpreter.js.map +1 -1
  48. package/dist/invocation.d.ts +5 -1
  49. package/dist/invocation.d.ts.map +1 -1
  50. package/dist/invocation.js +14 -3
  51. package/dist/invocation.js.map +1 -1
  52. package/dist/line-diff.d.ts +7 -0
  53. package/dist/line-diff.d.ts.map +1 -0
  54. package/dist/line-diff.js +66 -0
  55. package/dist/line-diff.js.map +1 -0
  56. package/dist/phase.d.ts +2 -0
  57. package/dist/phase.d.ts.map +1 -1
  58. package/dist/phase.js +19 -3
  59. package/dist/phase.js.map +1 -1
  60. package/dist/pin-closure.d.ts +2 -2
  61. package/dist/pin-closure.d.ts.map +1 -1
  62. package/dist/pin-closure.js +4 -3
  63. package/dist/pin-closure.js.map +1 -1
  64. package/dist/pin-currency.d.ts +6 -2
  65. package/dist/pin-currency.d.ts.map +1 -1
  66. package/dist/pin-currency.js +24 -43
  67. package/dist/pin-currency.js.map +1 -1
  68. package/dist/pin-generate.d.ts.map +1 -1
  69. package/dist/pin-generate.js +1 -3
  70. package/dist/pin-generate.js.map +1 -1
  71. package/dist/pin-paths.d.ts.map +1 -1
  72. package/dist/pin-paths.js +2 -13
  73. package/dist/pin-paths.js.map +1 -1
  74. package/dist/pins.d.ts.map +1 -1
  75. package/dist/pins.js +5 -15
  76. package/dist/pins.js.map +1 -1
  77. package/dist/playbook-ports.d.ts +17 -0
  78. package/dist/playbook-ports.d.ts.map +1 -1
  79. package/dist/playbook-ports.js +21 -6
  80. package/dist/playbook-ports.js.map +1 -1
  81. package/dist/progress.d.ts +71 -0
  82. package/dist/progress.d.ts.map +1 -0
  83. package/dist/progress.js +96 -0
  84. package/dist/progress.js.map +1 -0
  85. package/dist/runner.d.ts +8 -0
  86. package/dist/runner.d.ts.map +1 -1
  87. package/dist/runner.js +673 -89
  88. package/dist/runner.js.map +1 -1
  89. package/dist/runtime-package.d.ts.map +1 -1
  90. package/dist/runtime-package.js +3 -11
  91. package/dist/runtime-package.js.map +1 -1
  92. package/dist/slc.config.template.yaml +5 -1
  93. package/dist/verify-coverage.d.ts.map +1 -1
  94. package/dist/verify-coverage.js +2 -0
  95. package/dist/verify-coverage.js.map +1 -1
  96. package/dist/verify-support.d.ts +7 -0
  97. package/dist/verify-support.d.ts.map +1 -1
  98. package/dist/verify-support.js +13 -6
  99. package/dist/verify-support.js.map +1 -1
  100. package/dist/verify.d.ts.map +1 -1
  101. package/dist/verify.js +2 -0
  102. package/dist/verify.js.map +1 -1
  103. package/package.json +5 -3
package/dist/pin-paths.js CHANGED
@@ -15,6 +15,7 @@
15
15
  import { realpathSync } from 'node:fs';
16
16
  import { basename, dirname, isAbsolute, relative, resolve, sep, } from 'node:path';
17
17
  import { isAbsolute as posixIsAbsolute } from 'node:path/posix';
18
+ import { errorCode, isAbsentPathError } from './errors.js';
18
19
  import { PinError } from './pins.js';
19
20
  /**
20
21
  * Resolves a relative POSIX `relPath` against `pipelineDir`, requiring it to stay
@@ -56,7 +57,7 @@ function canonicalProspectivePath(path, field) {
56
57
  return resolve(realpathSync.native(cursor), ...suffix.reverse());
57
58
  }
58
59
  catch (error) {
59
- if (!isAbsentPath(error)) {
60
+ if (!isAbsentPathError(error)) {
60
61
  throw new PinError('pin-invalid', `${field} cannot be resolved safely: ${errorCode(error)}`);
61
62
  }
62
63
  }
@@ -68,18 +69,6 @@ function canonicalProspectivePath(path, field) {
68
69
  cursor = parent;
69
70
  }
70
71
  }
71
- function isAbsentPath(error) {
72
- const code = errorCode(error);
73
- return code === 'ENOENT' || code === 'ENOTDIR';
74
- }
75
- function errorCode(error) {
76
- return typeof error === 'object' &&
77
- error !== null &&
78
- 'code' in error &&
79
- typeof error.code === 'string'
80
- ? error.code
81
- : 'unknown error';
82
- }
83
72
  /** Rejects an absolute (POSIX or Windows) path, naming `field` (PIN-5). */
84
73
  function requireRelative(path, field) {
85
74
  if (path === '' || path.includes('\\') || path.includes('\0')) {
@@ -1 +1 @@
1
- {"version":3,"file":"pin-paths.js","sourceRoot":"","sources":["../src/pin-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pin-paths.js","sourceRoot":"","sources":["../src/pin-paths.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,QAAgB,EAChB,OAAe,EACf,KAAa;IAEb,eAAe,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC/C,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,KAAK,OAAO,6BAA6B,CAClD,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,YAAY,GAAG,wBAAwB,CAC3C,YAAY,EACZ,mBAAmB,CACpB,CAAC;IACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,KAAK,OAAO,sCAAsC,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,+BAA+B,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,kDAAkD,CAC3D,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,0CAA0C,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,GAAG,KAAK,kCAAkC,IAAI,GAAG,CAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,YAAoB,EAAE,QAAgB;IACtD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,CACL,GAAG,KAAK,EAAE;QACV,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,GAAG,KAAK,IAAI;QACZ,CAAC,UAAU,CAAC,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAuBA,qEAAqE;AACrE,eAAO,MAAM,SAAS,kBAAkB,CAAC;AACzC,8DAA8D;AAC9D,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAK3C,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,uEAAuE;IACvE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC;AAED,4FAA4F;AAC5F,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvD,wFAAwF;AACxF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBAEhB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB1E;AAWD,+FAA+F;AAC/F,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAkB,GACvB,OAAO,CAWT"}
1
+ {"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAyBA,qEAAqE;AACrE,eAAO,MAAM,SAAS,kBAAkB,CAAC;AACzC,8DAA8D;AAC9D,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAI3C,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,uEAAuE;IACvE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC;AAED,4FAA4F;AAC5F,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvD,wFAAwF;AACxF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBAEhB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB1E;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAkB,GACvB,OAAO,CAWT"}
package/dist/pins.js CHANGED
@@ -16,6 +16,8 @@
16
16
  */
17
17
  import { lstat, readFile } from 'node:fs/promises';
18
18
  import { join } from 'node:path';
19
+ import { errorCode, messageOf } from './errors.js';
20
+ import { isPortablePhaseName } from './phase.js';
19
21
  import { isBarePackageSpecifier } from './runtime-package.js';
20
22
  /** Committed pin-index filename in a pipeline directory (DR-007). */
21
23
  export const PINS_FILE = 'slc.pins.json';
@@ -24,7 +26,6 @@ export const PIN_SCHEMA = 'sublang.slc.pins.v2';
24
26
  /** The only supported pin hash algorithm (DR-007). */
25
27
  export const PIN_HASH_ALGORITHM = 'sha256';
26
28
  const LINK_TARGET_KINDS = new Set(['file', 'directory', 'package']);
27
- const PIN_PHASE_NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*2[a-z0-9]+(?:-[a-z0-9]+)*$/;
28
29
  /** Raised when `slc.pins.json` is not valid JSON or violates the pin schema (PIN-5). */
29
30
  export class PinError extends Error {
30
31
  code;
@@ -58,14 +59,6 @@ export async function loadPinFile(pipelineDir) {
58
59
  const source = await readFile(path, 'utf8');
59
60
  return { path, file: parsePinFile(source, path) };
60
61
  }
61
- function errorCode(error) {
62
- return typeof error === 'object' &&
63
- error !== null &&
64
- 'code' in error &&
65
- typeof error.code === 'string'
66
- ? error.code
67
- : 'unknown error';
68
- }
69
62
  /** Parses and structurally validates the text of a pin file into a {@link PinFile} (PIN-5). */
70
63
  export function parsePinFile(source, path = PINS_FILE) {
71
64
  let raw;
@@ -105,10 +98,10 @@ function normalizePathBoundary(value, path) {
105
98
  }
106
99
  function normalizePins(value, path) {
107
100
  const input = requireObject(value, path);
108
- const pins = {};
101
+ const pins = Object.create(null);
109
102
  for (const [name, record] of Object.entries(input)) {
110
- if (name !== 'link' && !PIN_PHASE_NAME.test(name)) {
111
- throw invalid(`${path}.${name}`, 'phase key must be "link" or a kebab-case <source>2<target> name');
103
+ if (name !== 'link' && !isPortablePhaseName(name)) {
104
+ throw invalid(`${path}.${name}`, 'phase key must be "link" or a portable phase/pass name');
112
105
  }
113
106
  pins[name] = normalizePinRecord(record, `${path}.${name}`);
114
107
  }
@@ -259,7 +252,4 @@ function rejectUnknownKeys(value, allowed, path) {
259
252
  function invalid(field, detail) {
260
253
  return new PinError('pin-invalid', `${field} ${detail}`);
261
254
  }
262
- function messageOf(error) {
263
- return error instanceof Error ? error.message : String(error);
264
- }
265
255
  //# sourceMappingURL=pins.js.map
package/dist/pins.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"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"}
@@ -49,5 +49,22 @@ export declare function createPlaybookPorts(opts: {
49
49
  * carry it.
50
50
  */
51
51
  captainWorkspace?: string;
52
+ /**
53
+ * Host update-mode context appended to every Player prompt and to
54
+ * transformation-performing direct Captain prompts (DR-021, INCR-16). The
55
+ * compiled artifact composes host-agnostic prompts and knows nothing about
56
+ * incremental updates, so only the host can say the target already holds
57
+ * the prior accepted output. Routing-only Captain and judge calls never
58
+ * carry it.
59
+ */
60
+ updateContext?: string;
61
+ /**
62
+ * Live status sink (DR-019, PHEXEC-25): when set, human status and non-trace
63
+ * operational telemetry stream here as they occur instead of being collected
64
+ * for {@link PlaybookPortsAdapter.drainDiagnostics}, so a long compiled phase
65
+ * is observable while it runs. `playbook.trace` payloads are excluded from
66
+ * the streamed lines exactly as from ordinary diagnostics.
67
+ */
68
+ onStatus?: (line: string) => void;
52
69
  }): PlaybookPortsAdapter;
53
70
  //# sourceMappingURL=playbook-ports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"playbook-ports.d.ts","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAGV,uBAAuB,EAKxB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,4EAA4E;IAC5E,gBAAgB,IAAI,MAAM,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC;AAEhF,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,oBAAoB,CAgIvB"}
1
+ {"version":3,"file":"playbook-ports.d.ts","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAGV,uBAAuB,EAKxB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,4EAA4E;IAC5E,gBAAgB,IAAI,MAAM,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC;AAEhF,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GAAG,oBAAoB,CA+IvB"}
@@ -18,7 +18,9 @@ export function createPlaybookPorts(opts) {
18
18
  return {
19
19
  async callPlayer(playerId, prompt, signal, options) {
20
20
  const result = await playerFor(playerId).run({
21
- prompt,
21
+ prompt: opts.updateContext === undefined
22
+ ? prompt
23
+ : `${prompt}\n\n${opts.updateContext}`,
22
24
  model: opts.models?.[playerId] ?? opts.defaultModel,
23
25
  cwd: opts.cwd,
24
26
  ...(options !== undefined ? { resume: options.resume } : {}),
@@ -32,9 +34,10 @@ export function createPlaybookPorts(opts) {
32
34
  // restriction) gets the host workspace contract appended: the artifact
33
35
  // composes host-agnostic prompts, and only the host knows the request's
34
36
  // absolute source/target paths (PHEXEC-34).
35
- const transported = isolation.allowedTools === undefined &&
36
- opts.captainWorkspace !== undefined
37
- ? `${prompt}\n\n${opts.captainWorkspace}`
37
+ const transported = isolation.allowedTools === undefined
38
+ ? [prompt, opts.captainWorkspace, opts.updateContext]
39
+ .filter((part) => part !== undefined)
40
+ .join('\n\n')
38
41
  : prompt;
39
42
  return withSerialCaptain(signal, async () => {
40
43
  const result = await opts.judge.run({
@@ -68,17 +71,29 @@ export function createPlaybookPorts(opts) {
68
71
  return unsupportedNestedCall(request);
69
72
  },
70
73
  async emitStatus(message, data) {
71
- diagnostics.push(data === undefined ? message : `${message} ${stringify(data)}`);
74
+ report(data === undefined ? message : `${message} ${stringify(data)}`);
72
75
  },
73
76
  async emitTelemetry(event) {
74
77
  if (event.topic === 'playbook.trace')
75
78
  return;
76
- diagnostics.push(`[${event.topic}] ${stringify(event.payload)}`);
79
+ report(`[${event.topic}] ${stringify(event.payload)}`);
77
80
  },
78
81
  drainDiagnostics() {
79
82
  return diagnostics.splice(0);
80
83
  },
81
84
  };
85
+ /**
86
+ * Streams a non-trace line live when the host configured a sink, otherwise
87
+ * collects it as a drainable diagnostic — never both, so streamed lines do
88
+ * not repeat in the run's diagnostics (DR-019, PHEXEC-25).
89
+ */
90
+ function report(line) {
91
+ if (opts.onStatus !== undefined) {
92
+ opts.onStatus(line);
93
+ return;
94
+ }
95
+ diagnostics.push(line);
96
+ }
82
97
  async function withSerialCaptain(signal, run) {
83
98
  const previous = captainGate;
84
99
  let release;
@@ -1 +1 @@
1
- {"version":3,"file":"playbook-ports.js","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playbook-ports.js","sourceRoot":"","sources":["../src/playbook-ports.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AA8C1E,sFAAsF;AACtF,MAAM,UAAU,mBAAmB,CAAC,IAmCnC;IACC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,IAAI,WAAW,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAe,EAAE;QAClD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAC1D,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,MAAc,EACd,MAAmB,EACnB,OAA2B;YAE3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBAC3C,MAAM,EACJ,IAAI,CAAC,aAAa,KAAK,SAAS;oBAC9B,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,GAAG,MAAM,OAAO,IAAI,CAAC,aAAa,EAAE;gBAC1C,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY;gBACnD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM;aACP,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,MAAmB,EACnB,OAA2B;YAE3B,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACrD,gEAAgE;YAChE,uEAAuE;YACvE,wEAAwE;YACxE,4CAA4C;YAC5C,MAAM,WAAW,GACf,SAAS,CAAC,YAAY,KAAK,SAAS;gBAClC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC;qBAChD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;qBACpD,IAAI,CAAC,MAAM,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC;YACb,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClC,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,MAAM;iBACP,CAAC,CAAC;gBACH,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAmB;YACjD,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClC,MAAM;oBACN,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM,EAAE,KAAK;oBACb,YAAY,EAAE,EAAE;oBAChB,MAAM;iBACP,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACpF,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,YAAY,CAChB,OAA4B;YAE5B,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,IAAc;YAC9C,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,KAGnB;YACC,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB;gBAAE,OAAO;YAC7C,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,gBAAgB;YACd,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF;;;;OAIG;IACH,SAAS,MAAM,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC9B,MAAmB,EACnB,GAAqB;QAErB,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC7B,IAAI,OAAoB,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CACtB,MAAsB,EACtB,MAAmB;IAEnB,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,OAAO;YACV,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,iCAAiC;aACxD,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,OAAO;gBACnB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;gBACvB,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,8BAA8B;iBACrD,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA2B;IAI5D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1E,IACE,UAAU,KAAK,SAAS;QACxB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QAC1D,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,EACjE,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,IACE,MAAM,KAAK,SAAS;QACpB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QACtD,MAAM,CAAC,KAAK,KAAK,KAAK,EACtB,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAClE,CAAC;IACD,0EAA0E;IAC1E,iEAAiE;IACjE,mEAAmE;IACnE,gCAAgC;IAChC,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;QAC5D,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;QAClC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC7C,CAAC;AAED,qFAAqF;AACrF,SAAS,cAAc,CACrB,MAAsB,EACtB,MAAmB;IAEnB,MAAM,YAAY,GAChB,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAC9E,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;QACnE,KAAK,OAAO;YACV,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,yBAAyB;gBAC/C,GAAG,YAAY;aAChB,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,OAAO;gBACnB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;gBACxC,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,sBAAsB;oBAC5C,GAAG,YAAY;iBAChB,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA4B;IAE5B,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE;gBACL,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EACL,uEAAuE;aAC1E;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAmB,EAAE,MAAmB;IAC3D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * In-run progress reporting (DR-019).
3
+ *
4
+ * The step loop emits {@link ProgressEvent}s — phase start/finish/failure with
5
+ * elapsed times, plus streamed compiled-runtime status lines — through an
6
+ * optional {@link ProgressSink} on `SlcDeps` (CLI-32). The bin renders them as
7
+ * human-readable lines on stderr via {@link createProgressReporter}, which also
8
+ * owns the 30-second silence-bounded heartbeat (CLI-33): whenever no event has
9
+ * been rendered for the bound while a phase is in flight, it emits an
10
+ * elapsed-time heartbeat line. Timer construction is injectable so tests drive
11
+ * the heartbeat deterministically. The exact line format is host-owned
12
+ * presentation and deliberately unspecified. See specs/user/cli.md and
13
+ * specs/dev/cli.md.
14
+ */
15
+ /** One in-run progress event the step loop reports (CLI-32). */
16
+ export type ProgressEvent = {
17
+ kind: 'phase-start';
18
+ phase: string;
19
+ target: string;
20
+ } | {
21
+ kind: 'phase-finish';
22
+ phase: string;
23
+ target: string;
24
+ elapsedMs: number;
25
+ } | {
26
+ kind: 'phase-fail';
27
+ phase: string;
28
+ target: string;
29
+ elapsedMs: number;
30
+ }
31
+ /** A streamed compiled-runtime status or telemetry line (PHEXEC-25). */
32
+ | {
33
+ kind: 'status';
34
+ text: string;
35
+ } | {
36
+ kind: 'heartbeat';
37
+ phase: string;
38
+ elapsedMs: number;
39
+ };
40
+ /** Receives progress events as they occur; injected beside the executors. */
41
+ export type ProgressSink = (event: ProgressEvent) => void;
42
+ /** The silence bound after which the reporter emits a heartbeat (CLI-33). */
43
+ export declare const HEARTBEAT_INTERVAL_MS = 30000;
44
+ /** Renders a duration as a compact human-readable elapsed time. */
45
+ export declare function formatElapsed(ms: number): string;
46
+ /** Renders one progress event as a single stderr line (host presentation). */
47
+ export declare function formatProgressEvent(event: ProgressEvent): string;
48
+ /** Timer seams for {@link createProgressReporter}; injected in tests. */
49
+ export interface ProgressTimers {
50
+ setInterval(callback: () => void, ms: number): unknown;
51
+ clearInterval(handle: unknown): void;
52
+ now(): number;
53
+ }
54
+ /** A progress reporter: the sink to inject plus a disposer for its timer. */
55
+ export interface ProgressReporter {
56
+ sink: ProgressSink;
57
+ /** Stops the heartbeat timer; call when the run settles. */
58
+ dispose(): void;
59
+ }
60
+ /**
61
+ * Builds the bin's progress reporter (CLI-35): renders each event as a line
62
+ * through `write`, and, while a phase is in flight, emits a heartbeat whenever
63
+ * no line has been written for `intervalMs` (CLI-33). The heartbeat's elapsed
64
+ * time counts from the running phase's start, so a long phase reads as one
65
+ * growing duration rather than a series of 30-second gaps.
66
+ */
67
+ export declare function createProgressReporter(write: (line: string) => void, opts?: {
68
+ intervalMs?: number;
69
+ timers?: ProgressTimers;
70
+ }): ProgressReporter;
71
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,gEAAgE;AAChE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC1E,wEAAwE;GACtE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOhD;AAMD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAahE;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,GAAG,IAAI,MAAM,CAAC;CACf;AAaD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC7B,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAO,GAC1D,gBAAgB,CA4ClB"}
@@ -0,0 +1,96 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
3
+ /** The silence bound after which the reporter emits a heartbeat (CLI-33). */
4
+ export const HEARTBEAT_INTERVAL_MS = 30_000;
5
+ /** Renders a duration as a compact human-readable elapsed time. */
6
+ export function formatElapsed(ms) {
7
+ const seconds = Math.max(0, Math.round(ms / 1000));
8
+ if (seconds < 60)
9
+ return `${seconds}s`;
10
+ const minutes = Math.floor(seconds / 60);
11
+ if (minutes < 60)
12
+ return `${minutes}m${pad(seconds % 60)}s`;
13
+ const hours = Math.floor(minutes / 60);
14
+ return `${hours}h${pad(minutes % 60)}m`;
15
+ }
16
+ function pad(value) {
17
+ return value.toString().padStart(2, '0');
18
+ }
19
+ /** Renders one progress event as a single stderr line (host presentation). */
20
+ export function formatProgressEvent(event) {
21
+ switch (event.kind) {
22
+ case 'phase-start':
23
+ return `→ ${event.phase} (writing ${event.target})`;
24
+ case 'phase-finish':
25
+ return `✓ ${event.phase} wrote ${event.target} (${formatElapsed(event.elapsedMs)})`;
26
+ case 'phase-fail':
27
+ return `✗ ${event.phase} failed at ${event.target} (${formatElapsed(event.elapsedMs)})`;
28
+ case 'status':
29
+ return `◇ ${event.text}`;
30
+ case 'heartbeat':
31
+ return `… ${event.phase} still running (${formatElapsed(event.elapsedMs)})`;
32
+ }
33
+ }
34
+ const defaultTimers = {
35
+ setInterval: (callback, ms) => {
36
+ const handle = setInterval(callback, ms);
37
+ // Never keep the process alive just for the heartbeat.
38
+ handle.unref?.();
39
+ return handle;
40
+ },
41
+ clearInterval: (handle) => clearInterval(handle),
42
+ now: () => Date.now(),
43
+ };
44
+ /**
45
+ * Builds the bin's progress reporter (CLI-35): renders each event as a line
46
+ * through `write`, and, while a phase is in flight, emits a heartbeat whenever
47
+ * no line has been written for `intervalMs` (CLI-33). The heartbeat's elapsed
48
+ * time counts from the running phase's start, so a long phase reads as one
49
+ * growing duration rather than a series of 30-second gaps.
50
+ */
51
+ export function createProgressReporter(write, opts = {}) {
52
+ const timers = opts.timers ?? defaultTimers;
53
+ const intervalMs = opts.intervalMs ?? HEARTBEAT_INTERVAL_MS;
54
+ let running;
55
+ let lastLineAt = timers.now();
56
+ let handle;
57
+ const emit = (event) => {
58
+ write(`${formatProgressEvent(event)}\n`);
59
+ lastLineAt = timers.now();
60
+ };
61
+ const sink = (event) => {
62
+ if (event.kind === 'phase-start') {
63
+ running = { phase: event.phase, startedAt: timers.now() };
64
+ }
65
+ else if (event.kind === 'phase-finish' || event.kind === 'phase-fail') {
66
+ running = undefined;
67
+ }
68
+ emit(event);
69
+ };
70
+ if (intervalMs > 0) {
71
+ // Tick finer than the bound so worst-case silence stays near the bound
72
+ // itself rather than approaching twice it.
73
+ const tickMs = Math.max(250, Math.floor(intervalMs / 6));
74
+ handle = timers.setInterval(() => {
75
+ if (running === undefined)
76
+ return;
77
+ const now = timers.now();
78
+ if (now - lastLineAt < intervalMs)
79
+ return;
80
+ emit({
81
+ kind: 'heartbeat',
82
+ phase: running.phase,
83
+ elapsedMs: now - running.startedAt,
84
+ });
85
+ }, tickMs);
86
+ }
87
+ return {
88
+ sink,
89
+ dispose: () => {
90
+ if (handle !== undefined)
91
+ timers.clearInterval(handle);
92
+ handle = undefined;
93
+ },
94
+ };
95
+ }
96
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type PhaseExecutor } from './execution.js';
2
+ import type { ProgressSink } from './progress.js';
2
3
  import { type PinRecord } from './pins.js';
3
4
  import { type PipelineResolver } from './pipeline.js';
4
5
  /** A current pinned phase and the record that selected its compiled artifact. */
@@ -25,6 +26,11 @@ export interface SlcDeps {
25
26
  /** Invocation working directory anchoring artifact placement (DR-014); defaults to the process cwd. */
26
27
  cwd?: string;
27
28
  signal?: AbortSignal;
29
+ /**
30
+ * Receives phase start/finish/failure events with elapsed times as the run
31
+ * progresses (DR-019, CLI-32). Absent for hosts that want a quiet run.
32
+ */
33
+ progress?: ProgressSink;
28
34
  }
29
35
  /** The outcome of an `slc` run. */
30
36
  export interface SlcResult {
@@ -33,6 +39,8 @@ export interface SlcResult {
33
39
  outputs: string[];
34
40
  /** Diagnostics: agent summaries on success, or the failure report. */
35
41
  diagnostics: string[];
42
+ /** Present when incremental selection invoked no phase executor. */
43
+ outcome?: 'up-to-date';
36
44
  }
37
45
  /**
38
46
  * Parses argv and runs the requested pipeline, phase, or link end-to-end.
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAavB,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,aAAa,CAAC;IAC3D,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAoCpB;AA4VD,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AA8BA,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAcvB,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,aAAa,CAAC;IAC3D,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAoCpB;AAghBD,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}