@bluewombat/runtime 0.8.0 → 0.9.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 (135) hide show
  1. package/README.md +124 -100
  2. package/SPECS.md +103 -84
  3. package/dist/cli.js +32 -34
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config/agent-shorthand.d.ts +0 -1
  6. package/dist/config/agent-shorthand.d.ts.map +1 -1
  7. package/dist/config/agent-shorthand.js +1 -9
  8. package/dist/config/agent-shorthand.js.map +1 -1
  9. package/dist/config/defaults.d.ts +0 -2
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +0 -2
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/find-config.d.ts +3 -2
  14. package/dist/config/find-config.d.ts.map +1 -1
  15. package/dist/config/find-config.js +4 -4
  16. package/dist/config/find-config.js.map +1 -1
  17. package/dist/config/home.js +2 -2
  18. package/dist/config/home.js.map +1 -1
  19. package/dist/config/load-config.d.ts +2 -2
  20. package/dist/config/load-config.d.ts.map +1 -1
  21. package/dist/config/load-config.js +46 -29
  22. package/dist/config/load-config.js.map +1 -1
  23. package/dist/config/parse-args.d.ts.map +1 -1
  24. package/dist/config/parse-args.js +50 -48
  25. package/dist/config/parse-args.js.map +1 -1
  26. package/dist/config/types.d.ts +40 -24
  27. package/dist/config/types.d.ts.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/loop/authority.d.ts +3 -4
  33. package/dist/loop/authority.d.ts.map +1 -1
  34. package/dist/loop/authority.js +27 -22
  35. package/dist/loop/authority.js.map +1 -1
  36. package/dist/loop/context.d.ts +8 -3
  37. package/dist/loop/context.d.ts.map +1 -1
  38. package/dist/loop/deliveries.d.ts +16 -16
  39. package/dist/loop/deliveries.d.ts.map +1 -1
  40. package/dist/loop/deliveries.js +35 -187
  41. package/dist/loop/deliveries.js.map +1 -1
  42. package/dist/loop/describe.d.ts +4 -6
  43. package/dist/loop/describe.d.ts.map +1 -1
  44. package/dist/loop/describe.js +2 -2
  45. package/dist/loop/describe.js.map +1 -1
  46. package/dist/loop/drive.d.ts +4 -6
  47. package/dist/loop/drive.d.ts.map +1 -1
  48. package/dist/loop/drive.js +9 -33
  49. package/dist/loop/drive.js.map +1 -1
  50. package/dist/loop/features.d.ts +23 -0
  51. package/dist/loop/features.d.ts.map +1 -0
  52. package/dist/loop/features.js +571 -0
  53. package/dist/loop/features.js.map +1 -0
  54. package/dist/loop/journal.d.ts +1 -1
  55. package/dist/loop/journal.js +2 -2
  56. package/dist/loop/journal.js.map +1 -1
  57. package/dist/loop/lock.d.ts +1 -1
  58. package/dist/loop/lock.js +1 -1
  59. package/dist/loop/open-host.d.ts.map +1 -1
  60. package/dist/loop/open-host.js +23 -24
  61. package/dist/loop/open-host.js.map +1 -1
  62. package/dist/loop/probe.d.ts +1 -1
  63. package/dist/loop/probe.d.ts.map +1 -1
  64. package/dist/loop/probe.js +51 -22
  65. package/dist/loop/probe.js.map +1 -1
  66. package/dist/loop/process-tree.d.ts +1 -1
  67. package/dist/loop/process-tree.js +1 -1
  68. package/dist/loop/report.d.ts +9 -7
  69. package/dist/loop/report.d.ts.map +1 -1
  70. package/dist/loop/report.js +30 -99
  71. package/dist/loop/report.js.map +1 -1
  72. package/dist/loop/streams.d.ts +5 -5
  73. package/dist/loop/streams.d.ts.map +1 -1
  74. package/dist/loop/streams.js +3 -3
  75. package/dist/loop/streams.js.map +1 -1
  76. package/dist/loop/tick.d.ts +6 -4
  77. package/dist/loop/tick.d.ts.map +1 -1
  78. package/dist/loop/tick.js +50 -78
  79. package/dist/loop/tick.js.map +1 -1
  80. package/dist/loop/trace.d.ts +5 -5
  81. package/dist/loop/trace.d.ts.map +1 -1
  82. package/dist/loop/trace.js +5 -14
  83. package/dist/loop/trace.js.map +1 -1
  84. package/dist/loop/transformers.d.ts +3 -13
  85. package/dist/loop/transformers.d.ts.map +1 -1
  86. package/dist/loop/transformers.js +3 -53
  87. package/dist/loop/transformers.js.map +1 -1
  88. package/dist/loop/warm.d.ts +3 -3
  89. package/dist/loop/warm.js +3 -3
  90. package/dist/loop/work-line.d.ts +1 -1
  91. package/dist/operator/agent-plugins.d.ts +11 -0
  92. package/dist/operator/agent-plugins.d.ts.map +1 -1
  93. package/dist/operator/agent-plugins.js +3 -3
  94. package/dist/operator/agent-plugins.js.map +1 -1
  95. package/dist/operator/board.d.ts +3 -8
  96. package/dist/operator/board.d.ts.map +1 -1
  97. package/dist/operator/board.js +2 -11
  98. package/dist/operator/board.js.map +1 -1
  99. package/dist/operator/cancel.d.ts +2 -2
  100. package/dist/operator/cancel.js +6 -6
  101. package/dist/operator/cancel.js.map +1 -1
  102. package/dist/operator/doctor.d.ts +9 -0
  103. package/dist/operator/doctor.d.ts.map +1 -1
  104. package/dist/operator/doctor.js +32 -25
  105. package/dist/operator/doctor.js.map +1 -1
  106. package/dist/operator/explain.d.ts +76 -0
  107. package/dist/operator/explain.d.ts.map +1 -0
  108. package/dist/operator/explain.js +556 -0
  109. package/dist/operator/explain.js.map +1 -0
  110. package/dist/operator/film.d.ts +3 -11
  111. package/dist/operator/film.d.ts.map +1 -1
  112. package/dist/operator/film.js +8 -90
  113. package/dist/operator/film.js.map +1 -1
  114. package/dist/operator/init.d.ts.map +1 -1
  115. package/dist/operator/init.js +41 -49
  116. package/dist/operator/init.js.map +1 -1
  117. package/dist/operator/live.js +1 -1
  118. package/dist/operator/live.js.map +1 -1
  119. package/dist/operator/log.js +3 -4
  120. package/dist/operator/log.js.map +1 -1
  121. package/dist/operator/release.d.ts +2 -2
  122. package/dist/operator/release.js +7 -7
  123. package/dist/operator/release.js.map +1 -1
  124. package/dist/operator/run.d.ts +25 -0
  125. package/dist/operator/run.d.ts.map +1 -0
  126. package/dist/operator/run.js +70 -0
  127. package/dist/operator/run.js.map +1 -0
  128. package/dist/operator/setup.d.ts.map +1 -1
  129. package/dist/operator/setup.js +20 -16
  130. package/dist/operator/setup.js.map +1 -1
  131. package/dist/plugins/manager.d.ts +33 -2
  132. package/dist/plugins/manager.d.ts.map +1 -1
  133. package/dist/plugins/manager.js +67 -0
  134. package/dist/plugins/manager.js.map +1 -1
  135. package/package.json +15 -16
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAM/C,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,MAAkB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACpF,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO;QACL,MAAM,CAAC,IAAI;YACT,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9E,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,KAA8B;IACxE,OAAO;QACL,MAAM,CAAC,IAAI;YACT,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAa,EACb,OAAO,GAAG,MAAM,EAChB,MAAoB,IAAI,CAAC,GAAG;IAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,GAAG,CAAC,CAAC;QACX,MAAM,GAAG,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACL,MAAM,CAAC,IAAI;YACT,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC1B,iEAAiE;gBACjE,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC9B,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,uEAAuE;gBACvE,uEAAuE;gBACvE,4DAA4D;gBAC5D,OAAO;YACT,CAAC;YACD,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,aAAa,CAAC,IAA6B;IAClD,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iFAAiF;QACnF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * One `run` or `cancel` per ledger.
3
3
  *
4
4
  * Two processes on the same ledger both listen, both drive, and both report: the
5
- * tracker hears everything twice and the feature is folded by whichever got
5
+ * tracker hears everything twice and the ticket is folded by whichever got
6
6
  * there first. A lock file names the process that holds the ledger; a second
7
7
  * command refuses to start, unless that process is gone.
8
8
  */
package/dist/loop/lock.js CHANGED
@@ -5,7 +5,7 @@ import { PRODUCT } from "@bluewombat/manager-kit";
5
5
  * One `run` or `cancel` per ledger.
6
6
  *
7
7
  * Two processes on the same ledger both listen, both drive, and both report: the
8
- * tracker hears everything twice and the feature is folded by whichever got
8
+ * tracker hears everything twice and the ticket is folded by whichever got
9
9
  * there first. A lock file names the process that holds the ledger; a second
10
10
  * command refuses to start, unless that process is gone.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAwBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmO3F"}
1
+ {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AActD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuO3F"}
@@ -8,10 +8,11 @@ import { openWorkLedger } from "@bluewombat/work-ledger";
8
8
  import { DEFAULT_PERSIST } from "../config/defaults.js";
9
9
  import { homeOf } from "../config/home.js";
10
10
  import { resolveIsolationStrategy } from "../plugins/isolation.js";
11
- import { contextOf, loadManagerModule } from "../plugins/manager.js";
11
+ import { contextOf, loadManagerModule, openManagers, requestOf, } from "../plugins/manager.js";
12
12
  import { resolvePersistModule } from "../plugins/persist.js";
13
13
  import { openAuthority } from "./authority.js";
14
- import { cancelFeature, releaseFeature } from "./deliveries.js";
14
+ import { releaseTicket } from "./deliveries.js";
15
+ import { cancelKey } from "./features.js";
15
16
  import { coalesceQuiet, openJournalFile, stampJournal } from "./journal.js";
16
17
  import { acquireLock } from "./lock.js";
17
18
  import { openStreams } from "./streams.js";
@@ -20,8 +21,6 @@ import { openTrace } from "./trace.js";
20
21
  import { createTransformers } from "./transformers.js";
21
22
  import { openWarm } from "./warm.js";
22
23
  import { inspectWorkLine, materializeWorkLine, resolveWorkLine } from "./work-line.js";
23
- const DEFAULT_MAX_UNITS = 10;
24
- const DEFAULT_MAX_FEATURE_BYTES = 65_536;
25
24
  /**
26
25
  * Which build of Host is running, for the line that opens the film.
27
26
  *
@@ -58,19 +57,22 @@ export async function openHost(options, deps = {}) {
58
57
  if (!backend.ok) {
59
58
  throw new Error(backend.reason);
60
59
  }
61
- const request = {
62
- manager: options.manager,
63
- managerOptions: options.managerOptions ?? {},
60
+ const common = {
64
61
  configDir,
65
62
  durationMs: options.timeoutMs,
66
63
  interruptFlag,
67
64
  env: options.env ?? process.env,
68
65
  };
69
- const loaded = await loadManagerModule(request);
66
+ // The Authority lives with the Tickets, so that is the side that names the
67
+ // reference work line.
68
+ const trackerRequest = requestOf(options.ticketTracker, common);
69
+ const loaded = await loadManagerModule(trackerRequest);
70
70
  if (!loaded.ok) {
71
71
  throw new Error(loaded.reason);
72
72
  }
73
- const managerName = typeof options.manager === "string" ? options.manager : "the manager";
73
+ const managerName = typeof options.ticketTracker.package === "string"
74
+ ? options.ticketTracker.package
75
+ : "the ticket tracker";
74
76
  // Whose directory the work line is, settled before anything is written. A
75
77
  // reference the manager names is read by the strategy — strictly, since the
76
78
  // two agree on words nothing checks at compile time — and Host's copy of it
@@ -82,7 +84,7 @@ export async function openHost(options, deps = {}) {
82
84
  branch: options.workLineBranch,
83
85
  manager: managerName,
84
86
  wantsAuthority: options.authority?.enabled === true,
85
- reference: loaded.module.referenceManager?.(contextOf(request)),
87
+ reference: loaded.module.referenceManager?.(contextOf(trackerRequest)),
86
88
  strategy: resolved.strategy,
87
89
  strategyName: resolved.specifier,
88
90
  });
@@ -144,35 +146,30 @@ export async function openHost(options, deps = {}) {
144
146
  trace,
145
147
  journal,
146
148
  ...(streams === undefined ? {} : { streams }),
147
- planner: options.planner,
148
149
  builder: options.builder,
149
150
  assembly: options.assembly,
150
- workLineStable: stable,
151
151
  isolation: resolved.strategy.isolation,
152
152
  fold: resolved.strategy.fold,
153
153
  timeoutMs: options.timeoutMs,
154
154
  interruptFlag,
155
- maxUnits: DEFAULT_MAX_UNITS,
156
- maxFeatureBytes: DEFAULT_MAX_FEATURE_BYTES,
157
155
  });
158
156
  const hostOptions = { ...options, interruptFlag };
159
- const created = await loaded.module.createManager(contextOf(request));
160
- if (!created.ok) {
161
- throw new Error(created.reason);
157
+ const opened = await openManagers({ featureTracker: options.featureTracker, ticketTracker: options.ticketTracker }, common);
158
+ if (!opened.ok) {
159
+ throw new Error(opened.reason);
162
160
  }
163
- const manager = created.manager;
161
+ const { features, tickets } = opened;
164
162
  // Declared, never inferred: a Project has an Authority because it says so,
165
163
  // not because a directory happens to look a certain way. Disabled, the
166
- // assembled feature is folded into WorkLineStable and that fold is final.
164
+ // assembled ticket is folded into WorkLineStable and that fold is final.
167
165
  const wantsAuthority = options.authority?.enabled === true;
168
166
  if (wantsAuthority && target === undefined) {
169
167
  throw new Error('authority.enabled is true, but "workLine.branch" does not say which work line the work is offered to.');
170
168
  }
171
169
  const authority = wantsAuthority && options.authority !== undefined && target !== undefined
172
170
  ? openAuthority({
173
- manager,
171
+ manager: tickets,
174
172
  workLineStable: stable,
175
- workLineTarget: target,
176
173
  publishArgv: options.authority.publishArgv,
177
174
  timeoutMs: options.timeoutMs,
178
175
  refOf: resolved.strategy.refOf ?? ((id) => id),
@@ -222,7 +219,9 @@ export async function openHost(options, deps = {}) {
222
219
  },
223
220
  ledger,
224
221
  conductor,
225
- manager,
222
+ features,
223
+ tickets,
224
+ transformers,
226
225
  journal,
227
226
  ...(streams === undefined ? {} : { streams }),
228
227
  trace,
@@ -235,8 +234,8 @@ export async function openHost(options, deps = {}) {
235
234
  conductor,
236
235
  runOnce: () => runOnce(ctx),
237
236
  run: () => run(ctx),
238
- cancel: (key) => cancelFeature(ctx, key),
239
- release: (key) => releaseFeature(ctx, key),
237
+ cancel: (key) => cancelKey(ctx, key),
238
+ release: (key) => releaseTicket(ctx, key),
240
239
  // The film closes before the lock does: whoever reads it next has to be
241
240
  // able to tell a run that ended from one whose process was killed, and the
242
241
  // absence of this line is the only way to say the second.
@@ -1 +1 @@
1
- {"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { HostDeliveryInput } from "./context.js";
2
2
  /**
3
- * Ask the manager whether Features Host already holds are still on the tracker.
3
+ * Ask the trackers whether what Host already holds is still there.
4
4
  *
5
5
  * A poll cannot see an absence: a deleted item never appears again. `gone` is
6
6
  * the same abandon as a `cancel` delivery. `unavailable` is not.
@@ -1 +1 @@
1
- {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA0BtD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CA2BxB"}
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiCtD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAoDxB"}
@@ -1,19 +1,25 @@
1
1
  import { handleCancel } from "./deliveries.js";
2
+ import { cancelFeatureFlow } from "./features.js";
2
3
  /**
3
4
  * States abandon is still legal for. `merging` is the point of no return;
4
- * terminal and `invalid` are not holding a Project.
5
+ * terminal ones are not holding a Project.
5
6
  */
6
- const ABANDONABLE = new Set([
7
+ const ABANDONABLE_TICKET = new Set([
7
8
  "received",
8
- "planning",
9
9
  "running",
10
10
  "escalated",
11
11
  "integrating",
12
12
  "submitted",
13
13
  ]);
14
+ const ABANDONABLE_FEATURE = new Set([
15
+ "waiting",
16
+ "open",
17
+ "submitted",
18
+ "escalated",
19
+ ]);
14
20
  /**
15
21
  * Listen outcomes that never reached the tracker. Probing after one of these
16
- * would read a dead token as every Feature disappearing.
22
+ * would read a dead token as everything disappearing.
17
23
  */
18
24
  const LISTEN_MISSED_SOURCE = new Set([
19
25
  "source-lost",
@@ -21,36 +27,59 @@ const LISTEN_MISSED_SOURCE = new Set([
21
27
  "invalid-invocation",
22
28
  ]);
23
29
  /**
24
- * Ask the manager whether Features Host already holds are still on the tracker.
30
+ * Ask the trackers whether what Host already holds is still there.
25
31
  *
26
32
  * A poll cannot see an absence: a deleted item never appears again. `gone` is
27
33
  * the same abandon as a `cancel` delivery. `unavailable` is not.
28
34
  */
29
35
  export async function abandonGone(input, listenOutcome) {
30
- if (input.manager.probe === undefined || LISTEN_MISSED_SOURCE.has(listenOutcome)) {
36
+ if (LISTEN_MISSED_SOURCE.has(listenOutcome)) {
31
37
  return "ok";
32
38
  }
33
- const summaries = await input.ledger.list();
34
- for (const summary of summaries) {
35
- if (input.options.interruptFlag?.interrupted === true) {
36
- return "stop";
37
- }
38
- if (!ABANDONABLE.has(summary.state)) {
39
- continue;
40
- }
41
- const outcome = await input.manager.probe(summary.key);
42
- if (outcome === "interrupted") {
43
- return "stop";
39
+ const interrupted = () => input.options.interruptFlag?.interrupted === true;
40
+ if (input.features.probe !== undefined) {
41
+ for (const summary of await input.ledger.listFeatures()) {
42
+ if (interrupted()) {
43
+ return "stop";
44
+ }
45
+ if (!ABANDONABLE_FEATURE.has(summary.state)) {
46
+ continue;
47
+ }
48
+ const outcome = await input.features.probe(summary.key);
49
+ if (outcome === "interrupted") {
50
+ return "stop";
51
+ }
52
+ if (outcome === "unavailable") {
53
+ input.journal.append({ event: "probed", key: summary.key, outcome });
54
+ }
55
+ if (outcome === "gone") {
56
+ input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
57
+ input.trace(`gone ${summary.key}`);
58
+ await cancelFeatureFlow(input, summary.key);
59
+ }
44
60
  }
45
- if (outcome !== "gone") {
61
+ }
62
+ if (input.tickets.probe !== undefined) {
63
+ for (const summary of await input.ledger.list()) {
64
+ if (interrupted()) {
65
+ return "stop";
66
+ }
67
+ if (!ABANDONABLE_TICKET.has(summary.state)) {
68
+ continue;
69
+ }
70
+ const outcome = await input.tickets.probe(summary.key);
71
+ if (outcome === "interrupted") {
72
+ return "stop";
73
+ }
46
74
  if (outcome === "unavailable") {
47
75
  input.journal.append({ event: "probed", key: summary.key, outcome });
48
76
  }
49
- continue;
77
+ if (outcome === "gone") {
78
+ input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
79
+ input.trace(`gone ${summary.key}`);
80
+ await handleCancel({ key: summary.key, project: summary.project }, input);
81
+ }
50
82
  }
51
- input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
52
- input.trace(`gone ${summary.key}`);
53
- await handleCancel({ key: summary.key, project: summary.project }, input);
54
83
  }
55
84
  return "ok";
56
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC;IACrD,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,aAAa;IACb,aAAa;IACb,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAwB,EACxB,aAAqB;IAErB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5C,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,KAAK,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export declare function ownGroup(): {
5
5
  };
6
6
  /**
7
7
  * Remember a running child so it does not outlive this process: a group of its
8
- * own no longer shares the terminal's Ctrl-C, nor dies by accident with us.
8
+ * own does not share the terminal's Ctrl-C, nor die by accident with us.
9
9
  * Forgotten on its own once it closes.
10
10
  */
11
11
  export declare function track(child: ChildProcess): void;
@@ -35,7 +35,7 @@ export function ownGroup() {
35
35
  }
36
36
  /**
37
37
  * Remember a running child so it does not outlive this process: a group of its
38
- * own no longer shares the terminal's Ctrl-C, nor dies by accident with us.
38
+ * own does not share the terminal's Ctrl-C, nor die by accident with us.
39
39
  * Forgotten on its own once it closes.
40
40
  */
41
41
  export function track(child) {
@@ -1,6 +1,6 @@
1
- import { type ConductorMoment, type ProjectRunResult } from "@bluewombat/conductor";
1
+ import type { ConductorMoment, ProjectRunResult } from "@bluewombat/conductor";
2
2
  import type { EventFields, EventName } from "@bluewombat/manager-kit";
3
- import type { FeatureAggregate } from "@bluewombat/work-ledger";
3
+ import type { TicketAggregate } from "@bluewombat/work-ledger";
4
4
  import type { HostDeliveryInput } from "./context.js";
5
5
  import type { Journal } from "./journal.js";
6
6
  /**
@@ -8,9 +8,9 @@ import type { Journal } from "./journal.js";
8
8
  * once: the id names the fact, and a pass that sees it again says nothing.
9
9
  */
10
10
  export declare function reportMoment(input: HostDeliveryInput, moment: ConductorMoment): Promise<void>;
11
- export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate: FeatureAggregate): Promise<void>;
12
- export declare function resumePointOf(aggregate: FeatureAggregate): "planning" | "running" | "integrating";
13
- export declare function pushReport(input: Pick<HostDeliveryInput, "manager" | "reported" | "journal"> & {
11
+ export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate: TicketAggregate): Promise<void>;
12
+ export declare function resumePointOf(aggregate: TicketAggregate): "running" | "integrating";
13
+ export declare function pushReport(input: Pick<HostDeliveryInput, "features" | "tickets" | "reported" | "journal"> & {
14
14
  said?: Set<string>;
15
15
  }, report: {
16
16
  event: EventName;
@@ -18,9 +18,11 @@ export declare function pushReport(input: Pick<HostDeliveryInput, "manager" | "r
18
18
  project: string;
19
19
  fields: EventFields;
20
20
  eventId?: string;
21
- }): Promise<void>;
21
+ },
22
+ /** Whose Thread it goes to: a Ticket's tracker by default, a Feature's manager when named. */
23
+ to?: "tickets" | "features"): Promise<void>;
22
24
  /**
23
25
  * One Host line per Project we drove: the outcome, and a heartbeat while it waits.
24
26
  */
25
- export declare function journalFeature(journal: Journal, outcome: string, aggregate: FeatureAggregate, said?: Set<string>): void;
27
+ export declare function journalTicket(journal: Journal, outcome: string, aggregate: TicketAggregate, said?: Set<string>): void;
26
28
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAsCf;AA2BD,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqHf;AA4ID,wBAAgB,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAajG;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,EAC3F,MAAM,EAAE;IACN,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,gBAAgB,EAC3B,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,CA0CN"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA+Ff;AAiID,wBAAgB,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,aAAa,CAWnF;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAChF,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,EACD,MAAM,EAAE;IACN,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,8FAA8F;AAC9F,EAAE,GAAE,SAAS,GAAG,UAAsB,GACrC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,EAC1B,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,CA0CN"}