@bluewombat/runtime 0.9.0 → 0.10.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 (69) hide show
  1. package/README.md +122 -52
  2. package/SPECS.md +36 -14
  3. package/dist/cli.js +4 -4
  4. package/dist/config/agent-shorthand.d.ts +24 -3
  5. package/dist/config/agent-shorthand.d.ts.map +1 -1
  6. package/dist/config/agent-shorthand.js +64 -19
  7. package/dist/config/agent-shorthand.js.map +1 -1
  8. package/dist/config/home.d.ts +2 -0
  9. package/dist/config/home.d.ts.map +1 -1
  10. package/dist/config/home.js +2 -0
  11. package/dist/config/home.js.map +1 -1
  12. package/dist/config/load-config.d.ts.map +1 -1
  13. package/dist/config/load-config.js +298 -46
  14. package/dist/config/load-config.js.map +1 -1
  15. package/dist/config/parse-args.d.ts +1 -1
  16. package/dist/config/parse-args.d.ts.map +1 -1
  17. package/dist/config/parse-args.js +83 -56
  18. package/dist/config/parse-args.js.map +1 -1
  19. package/dist/config/types.d.ts +104 -16
  20. package/dist/config/types.d.ts.map +1 -1
  21. package/dist/config/types.js +13 -1
  22. package/dist/config/types.js.map +1 -1
  23. package/dist/loop/authority.d.ts +38 -1
  24. package/dist/loop/authority.d.ts.map +1 -1
  25. package/dist/loop/authority.js +41 -2
  26. package/dist/loop/authority.js.map +1 -1
  27. package/dist/loop/context.d.ts +16 -1
  28. package/dist/loop/context.d.ts.map +1 -1
  29. package/dist/loop/drive.d.ts +9 -3
  30. package/dist/loop/drive.d.ts.map +1 -1
  31. package/dist/loop/drive.js +17 -7
  32. package/dist/loop/drive.js.map +1 -1
  33. package/dist/loop/features.d.ts.map +1 -1
  34. package/dist/loop/features.js +322 -59
  35. package/dist/loop/features.js.map +1 -1
  36. package/dist/loop/open-host.d.ts.map +1 -1
  37. package/dist/loop/open-host.js +109 -7
  38. package/dist/loop/open-host.js.map +1 -1
  39. package/dist/loop/report.d.ts.map +1 -1
  40. package/dist/loop/report.js +21 -9
  41. package/dist/loop/report.js.map +1 -1
  42. package/dist/loop/trace.js +1 -1
  43. package/dist/loop/trace.js.map +1 -1
  44. package/dist/loop/transformers.d.ts +16 -2
  45. package/dist/loop/transformers.d.ts.map +1 -1
  46. package/dist/loop/transformers.js +137 -22
  47. package/dist/loop/transformers.js.map +1 -1
  48. package/dist/loop/warm.js +1 -1
  49. package/dist/loop/warm.js.map +1 -1
  50. package/dist/operator/agent-plugins.d.ts.map +1 -1
  51. package/dist/operator/agent-plugins.js +14 -8
  52. package/dist/operator/agent-plugins.js.map +1 -1
  53. package/dist/operator/doctor.d.ts +1 -1
  54. package/dist/operator/doctor.d.ts.map +1 -1
  55. package/dist/operator/doctor.js +79 -29
  56. package/dist/operator/doctor.js.map +1 -1
  57. package/dist/operator/explain.d.ts.map +1 -1
  58. package/dist/operator/explain.js +37 -8
  59. package/dist/operator/explain.js.map +1 -1
  60. package/dist/operator/film.js +0 -3
  61. package/dist/operator/film.js.map +1 -1
  62. package/dist/operator/init.js +13 -8
  63. package/dist/operator/init.js.map +1 -1
  64. package/dist/operator/log.js +9 -2
  65. package/dist/operator/log.js.map +1 -1
  66. package/dist/operator/setup.d.ts.map +1 -1
  67. package/dist/operator/setup.js +2 -0
  68. package/dist/operator/setup.js.map +1 -1
  69. package/package.json +14 -14
@@ -1,8 +1,16 @@
1
1
  import { runImplementer, } from "@bluewombat/implementer";
2
2
  import { runIntegrator } from "@bluewombat/integrator";
3
3
  import { runIsolator } from "@bluewombat/isolator";
4
+ import { hasAgent, } from "../config/types.js";
4
5
  import { failureNote } from "./trace.js";
5
6
  const DEFAULT_MAX_ATTEMPTS = 3;
7
+ /** The Feature's config; a Feature is only judged when an Authority exists, and Host refuses to open without it. */
8
+ function featureOf(slots) {
9
+ if (slots.feature === undefined) {
10
+ throw new Error('A Feature was judged, but no "feature" is configured.');
11
+ }
12
+ return slots.feature;
13
+ }
6
14
  const silent = () => { };
7
15
  /**
8
16
  * A Transformer's progress, as a line a person reads.
@@ -68,53 +76,131 @@ function reasonOf(trace) {
68
76
  /**
69
77
  * How long the agent of this pass may run.
70
78
  *
71
- * The unit names its producer. An assembly names a fix, and only when something
72
- * already refused the whole — or, before that, a validate.
79
+ * The unit names its producer. A Ticket or a Feature names a fix, and only when
80
+ * something already refused the whole — or, for a Ticket, before that, a validate.
73
81
  */
74
- function commandTimeoutMs(input, slots) {
82
+ function commandTimeoutMs(input, slots, marked) {
83
+ if (input.stage === "feature") {
84
+ const feature = featureOf(slots);
85
+ if (input.validate === true) {
86
+ return hasAgent(feature.validate) ? feature.validate.timeoutMs : slots.timeoutMs;
87
+ }
88
+ return feature.fix.timeoutMs;
89
+ }
90
+ if (input.stage === "tests") {
91
+ const tests = slots.builder.tests;
92
+ return tests !== undefined && hasAgent(tests) ? tests.timeoutMs : slots.timeoutMs;
93
+ }
75
94
  if (input.validate === true) {
76
- return slots.assembly.validate?.timeoutMs ?? slots.timeoutMs;
95
+ const validate = slots.ticket.validate;
96
+ return validate !== undefined && hasAgent(validate) ? validate.timeoutMs : slots.timeoutMs;
77
97
  }
78
- if (input.stage === "assembly") {
79
- return slots.assembly.fix?.timeoutMs ?? slots.timeoutMs;
98
+ if (input.stage === "ticket") {
99
+ return slots.ticket.fix?.timeoutMs ?? slots.timeoutMs;
80
100
  }
81
- return slots.builder.producer.timeoutMs;
101
+ return marked.e2e && slots.builder.e2e !== undefined
102
+ ? slots.builder.e2e.timeoutMs
103
+ : slots.builder.producer.timeoutMs;
82
104
  }
83
105
  function attemptBudget(input, slots) {
84
106
  if (input.produce === false || input.validate === true) {
85
107
  return 1;
86
108
  }
87
- const stage = input.stage === "assembly" ? slots.assembly : slots.builder;
109
+ if (input.stage === "feature") {
110
+ return featureOf(slots).maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
111
+ }
112
+ const stage = input.stage === "ticket" ? slots.ticket : slots.builder;
88
113
  return stage.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
89
114
  }
115
+ /**
116
+ * Implementer's Gates from the config's: the condition Host reads is Host's, and the Gate
117
+ * knows nothing of it. A Feature's Gate whose condition holds is left out, and said so.
118
+ */
119
+ function gatesFor(gates, marked) {
120
+ const kept = [];
121
+ const skipped = [];
122
+ for (const { skipWhen, ...gate } of gates) {
123
+ if (skipWhen === "skip-test-e2e" && marked.skipsE2e) {
124
+ skipped.push({ id: gate.id, why: skipWhen });
125
+ }
126
+ else {
127
+ kept.push(gate);
128
+ }
129
+ }
130
+ return { gates: kept, skipped };
131
+ }
132
+ /** A review runs its agent and then its Gates; with no agent, the Gates alone. */
133
+ function reviewWiring(review) {
134
+ return hasAgent(review)
135
+ ? { builderArgv: review.cmd, gates: review.gates, repairGates: [] }
136
+ : { gates: review.gates, repairGates: [] };
137
+ }
90
138
  /**
91
139
  * Which command runs, and which Gate sequence judges it — decided together,
92
140
  * so the two can never fall out of sync (see DECISIONS.md: every role gated
93
141
  * independently, no shared list, no dispatch choosing between two buckets).
94
142
  */
95
- function roleWiring(input, slots) {
96
- if (input.validate === true) {
97
- const validate = slots.assembly.validate;
98
- return validate === undefined
143
+ function roleWiring(input, slots, marked) {
144
+ if (input.stage === "tests") {
145
+ // The tests are written by their own agent, judged by their own Gates.
146
+ const tests = slots.builder.tests;
147
+ return tests === undefined || !hasAgent(tests)
99
148
  ? { gates: [], repairGates: [] }
100
- : { builderArgv: validate.cmd, gates: validate.gates, repairGates: [] };
149
+ : { builderArgv: tests.cmd, gates: tests.gates, repairGates: [] };
150
+ }
151
+ if (input.stage === "feature") {
152
+ // The Feature's own sequences and its own fix, and nothing of a Ticket's.
153
+ const feature = featureOf(slots);
154
+ if (input.validate === true) {
155
+ const wiring = reviewWiring(feature.validate);
156
+ const own = gatesFor(feature.validate.gates, marked);
157
+ return { ...wiring, gates: own.gates, skipped: own.skipped };
158
+ }
159
+ if (input.produce === false) {
160
+ const own = gatesFor(feature.gates, marked);
161
+ return { gates: own.gates, repairGates: [], skipped: own.skipped };
162
+ }
163
+ const own = gatesFor(feature.fix.gates, marked);
164
+ return {
165
+ builderArgv: feature.fix.cmd,
166
+ gates: own.gates,
167
+ repairGates: [],
168
+ skipped: own.skipped,
169
+ };
170
+ }
171
+ if (input.validate === true) {
172
+ const validate = slots.ticket.validate;
173
+ return validate === undefined ? { gates: [], repairGates: [] } : reviewWiring(validate);
174
+ }
175
+ if (input.recheck === true) {
176
+ // The unit's own checks again, once the work has been aligned with the line:
177
+ // `builder.gates`, the one list that says the code stands. Nothing is produced. The e2e
178
+ // Ticket's own Gates, when it is that Ticket.
179
+ const own = marked.e2e ? slots.builder.e2e : undefined;
180
+ return { gates: (own ?? slots.builder.producer).gates, repairGates: [] };
101
181
  }
102
182
  if (input.produce === false) {
103
183
  // The one remaining judgement-only pass: re-checking the assembled
104
184
  // ticket with no producer of its own. No named role maps to it; it is
105
- // judged by `assembly.gates`, its own sequence, untouched by any of the
106
- // five roles' own lists (see AssemblySpec's doc comment).
107
- return { gates: slots.assembly.gates, repairGates: [] };
185
+ // judged by `ticket.gates`, its own sequence, untouched by any of the
186
+ // roles' own lists (see TicketSpec's doc comment).
187
+ return { gates: slots.ticket.gates, repairGates: [] };
108
188
  }
109
- if (input.stage === "assembly") {
110
- const fix = slots.assembly.fix;
189
+ if (input.stage === "ticket") {
190
+ const fix = slots.ticket.fix;
111
191
  if (fix === undefined) {
112
192
  return { gates: [], repairGates: [] };
113
193
  }
114
194
  // Implementer picks repairArgv only when a report is present, and Conductor
115
- // never produces at assembly without one. The fix command is the producer.
195
+ // never produces for a ticket without one. The fix command is the producer.
116
196
  return { builderArgv: fix.cmd, gates: fix.gates, repairGates: [] };
117
197
  }
198
+ if (marked.e2e && slots.builder.e2e !== undefined) {
199
+ // One command and one list for the first pass and for a repair: nothing of the shared
200
+ // builder is borrowed, so no refusal reaches an agent the Project did not name for it.
201
+ const { cmd, gates } = slots.builder.e2e;
202
+ return { builderArgv: cmd, gates, repairGates: gates };
203
+ }
118
204
  const { producer, repair } = slots.builder;
119
205
  return {
120
206
  builderArgv: producer.cmd,
@@ -124,6 +210,20 @@ function roleWiring(input, slots) {
124
210
  repairGates: repair.gates,
125
211
  };
126
212
  }
213
+ /** What the tracker says of the work this pass is about, read once as the pass starts. */
214
+ async function markedBy(input, slots) {
215
+ const key = input.context;
216
+ if (slots.marks === undefined || key === undefined) {
217
+ return { e2e: false, skipsE2e: false };
218
+ }
219
+ if (input.stage === "feature") {
220
+ return { e2e: false, skipsE2e: await slots.marks.featureSkipsE2e(key) };
221
+ }
222
+ if (input.stage === undefined || input.stage === "unit") {
223
+ return { e2e: await slots.marks.ticketIsE2e(key), skipsE2e: false };
224
+ }
225
+ return { e2e: false, skipsE2e: false };
226
+ }
127
227
  export function createTransformers(slots) {
128
228
  const write = progressWriter(slots);
129
229
  const streams = slots.streams;
@@ -145,7 +245,18 @@ export function createTransformers(slots) {
145
245
  return { outcome: result.outcome };
146
246
  },
147
247
  async implement(input) {
148
- const wiring = roleWiring(input, slots);
248
+ const marked = await markedBy(input, slots);
249
+ const wiring = roleWiring(input, slots, marked);
250
+ for (const gate of wiring.skipped ?? []) {
251
+ // A Gate that was not run is not one that passed: the film and the trace say so.
252
+ write({
253
+ event: "gate-skipped",
254
+ task_id: input.id,
255
+ gate_id: gate.id,
256
+ why: gate.why,
257
+ label: `${gate.id} not run: the Feature carries ${gate.why}`,
258
+ });
259
+ }
149
260
  const result = await runImplementer({
150
261
  invocation: {
151
262
  id: input.id,
@@ -155,6 +266,7 @@ export function createTransformers(slots) {
155
266
  // the producer, and the Attempt repeats blind.
156
267
  ...(input.report === undefined ? {} : { report: input.report }),
157
268
  ...(input.reportFrom === undefined ? {} : { reportFrom: input.reportFrom }),
269
+ ...(input.firstAttempt === undefined ? {} : { firstAttempt: input.firstAttempt }),
158
270
  ...(input.context === undefined ? {} : { context: input.context }),
159
271
  ...(input.stage === undefined ? {} : { stage: input.stage }),
160
272
  ...(wiring.builderArgv === undefined ? {} : { builderArgv: wiring.builderArgv }),
@@ -167,7 +279,7 @@ export function createTransformers(slots) {
167
279
  // A pass that makes nothing cannot make a different result on a second
168
280
  // try: whoever asked for the judgement owns the retrying.
169
281
  maxAttempts: attemptBudget(input, slots),
170
- builderTimeoutMs: commandTimeoutMs(input, slots),
282
+ builderTimeoutMs: commandTimeoutMs(input, slots, marked),
171
283
  },
172
284
  write,
173
285
  ...interrupt,
@@ -212,7 +324,10 @@ export function createTransformers(slots) {
212
324
  write,
213
325
  ...interrupt,
214
326
  });
215
- return { outcome: result.outcome };
327
+ return {
328
+ outcome: result.outcome,
329
+ ...(result.changed === undefined ? {} : { changed: result.changed }),
330
+ };
216
331
  },
217
332
  };
218
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/loop/transformers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/loop/transformers.ts"],"names":[],"mappings":"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"}
package/dist/loop/warm.js CHANGED
@@ -25,7 +25,7 @@ export function openWarm(input) {
25
25
  cwd: workspace,
26
26
  timeoutMs: durationMs,
27
27
  });
28
- if (flag !== undefined && flag.interrupted) {
28
+ if (flag?.interrupted) {
29
29
  return { outcome: "interrupted" };
30
30
  }
31
31
  if (run.error !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"warm.js","sourceRoot":"","sources":["../../src/loop/warm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warm.js","sourceRoot":"","sources":["../../src/loop/warm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAKxB;IACC,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;QAChC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;YACjC,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACpE,KAAK,CAAC,KAAK,EAAE,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;gBACxB,OAAO;gBACP,IAAI;gBACJ,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACpC,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;oBACpB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO;iBAC1B,CAAC,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,OAAO,EAAE,OAAO,EAAE,QAA8B,EAAE,CAAC;YACrD,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;oBACpB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzC,CAAC,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CACX,MAAM,CAAC,MAAM,GAAG,CAAC;oBACf,CAAC,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,MAAM,EAAE;oBACrD,CAAC,CAAC,2BAA2B,GAAG,CAAC,MAAM,GAAG,CAC7C,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC/B,CAAC;YACD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5D,KAAK,CAAC,KAAK,EAAE,CAAC,mBAAmB,CAAC,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-plugins.d.ts","sourceRoot":"","sources":["../../src/operator/agent-plugins.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,EAAE,CAUX;AAgED,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjD,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAgB9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BtF;AAOD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD"}
1
+ {"version":3,"file":"agent-plugins.d.ts","sourceRoot":"","sources":["../../src/operator/agent-plugins.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,EAAE,CAUX;AAsED,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjD,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAgB9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BtF;AAOD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD"}
@@ -1,6 +1,6 @@
1
1
  import { existsSync, readFileSync, statSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { agentPartOf } from "../config/agent-shorthand.js";
3
+ import { agentPartOf, parseAppDeckProfile } from "../config/agent-shorthand.js";
4
4
  /**
5
5
  * What an agent pass will start its agent with, checked from the files alone.
6
6
  *
@@ -18,8 +18,8 @@ export function agentPluginFindings(label, argv, workLine) {
18
18
  for (const dir of part.pluginDirs) {
19
19
  findings.push(pluginDirFinding(label, dir));
20
20
  }
21
- if (part.profile !== undefined) {
22
- findings.push(profileFinding(label, part.profile, workLine));
21
+ if (part.appDeckProfile !== undefined) {
22
+ findings.push(profileFinding(label, part.appDeckProfile, workLine));
23
23
  }
24
24
  return findings;
25
25
  }
@@ -38,8 +38,13 @@ function pluginDirFinding(label, dir) {
38
38
  }
39
39
  return { level: "ok", label: at, detail: dir };
40
40
  }
41
- function profileFinding(label, profile, workLine) {
42
- const at = `${label} profile`;
41
+ function profileFinding(label, given, workLine) {
42
+ const at = `${label} app deck profile`;
43
+ const located = parseAppDeckProfile(given);
44
+ if (!located.ok) {
45
+ return { level: "fail", label: at, detail: located.reason };
46
+ }
47
+ const profile = given;
43
48
  if (workLine === undefined || !isDirectory(workLine)) {
44
49
  return {
45
50
  level: "ok",
@@ -47,8 +52,9 @@ function profileFinding(label, profile, workLine) {
47
52
  detail: `${profile} — read from the project once the work line exists`,
48
53
  };
49
54
  }
50
- const base = requestsOf(join(workLine, "ai-plugin.json"));
51
- const profileRoot = join(workLine, ".ai", "profiles", profile);
55
+ const appDir = join(workLine, located.root);
56
+ const base = requestsOf(join(appDir, "ai-plugin.json"));
57
+ const profileRoot = join(appDir, ".ai", "profiles", located.name);
52
58
  const own = requestsOf(join(profileRoot, "ai-plugin.json"));
53
59
  if (base === undefined && own === undefined) {
54
60
  return {
@@ -58,7 +64,7 @@ function profileFinding(label, profile, workLine) {
58
64
  };
59
65
  }
60
66
  const unpinned = [
61
- ...unpinnedIn(base, join(workLine, "ai-plugin.lock.json")),
67
+ ...unpinnedIn(base, join(appDir, "ai-plugin.lock.json")),
62
68
  ...unpinnedIn(own, join(profileRoot, "ai-plugin.lock.json")),
63
69
  ];
64
70
  if (unpinned.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-plugins.js","sourceRoot":"","sources":["../../src/operator/agent-plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-plugins.js","sourceRoot":"","sources":["../../src/operator/agent-plugins.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ManagerModule } from "@bluewombat/manager-kit";
2
- import type { HostInvocation } from "../config/types.js";
2
+ import { type HostInvocation } from "../config/types.js";
3
3
  import { type WorkLineResolution } from "../loop/work-line.js";
4
4
  export type DoctorInput = {
5
5
  cwd: string;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operator/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKtE,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAoC,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAYjG,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAuGnE;AA0FD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,aAAa,GAAG,SAAS,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA2B7B"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/operator/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKtE,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoC,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAYjG,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmInE;AA0FD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,aAAa,GAAG,SAAS,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA2B7B"}
@@ -4,6 +4,7 @@ import { PRODUCT } from "@bluewombat/manager-kit";
4
4
  import { ISOLATION_COPY, ISOLATION_GIT } from "../config/defaults.js";
5
5
  import { DEFAULT_CONFIG_FILENAME, findConfig } from "../config/find-config.js";
6
6
  import { parseArgs } from "../config/parse-args.js";
7
+ import { hasAgent, isOn, } from "../config/types.js";
7
8
  import { inspectWorkLine, resolveWorkLine } from "../loop/work-line.js";
8
9
  import { resolveIsolationStrategy } from "../plugins/isolation.js";
9
10
  import { contextOf, distinctManagers, loadManagerModule, nameOfSides, requestOf, } from "../plugins/manager.js";
@@ -49,7 +50,7 @@ export async function runDoctor(input) {
49
50
  const target = workLine.kind === "copy" ? workLine.target : invocation.workLineBranch;
50
51
  findings.push(...isolationFindings(invocation, workLine));
51
52
  findings.push(...authorityFindings(invocation, workLine, target, input.env));
52
- const judged = assemblyFinding(invocation);
53
+ const judged = ticketFinding(invocation);
53
54
  if (judged !== undefined) {
54
55
  findings.push(judged);
55
56
  }
@@ -71,13 +72,23 @@ export async function runDoctor(input) {
71
72
  detail: `${streams.dir ?? join(invocation.home, "streams")} (${(streams.keep ?? ["stdout", "stderr"]).join(", ")})`,
72
73
  }
73
74
  : { level: "ok", label: "streams", detail: "off — the journal alone" });
74
- findings.push(...gatedPassFindings("Builder producer", invocation.builder.producer, input.env, stable));
75
- findings.push(...gatedPassFindings("Builder repair", invocation.builder.repair, input.env, stable));
76
- if (invocation.assembly.fix !== undefined) {
77
- findings.push(...gatedPassFindings("Assembly fix", invocation.assembly.fix, input.env, stable));
75
+ if (invocation.builder.tests !== undefined) {
76
+ findings.push(...reviewFindings("Builder tests", invocation.builder.tests, input.env, stable));
78
77
  }
79
- if (invocation.assembly.validate !== undefined) {
80
- findings.push(...gatedPassFindings("Assembly validate", invocation.assembly.validate, input.env, stable));
78
+ if (invocation.builder.e2e !== undefined) {
79
+ findings.push(...gatedPassFindings("Builder e2e", invocation.builder.e2e, input.env, stable));
80
+ }
81
+ findings.push(...gatedPassFindings("Builder producer", invocation.builder.producer, input.env, stable, false));
82
+ findings.push(...gatedPassFindings("Builder repair", invocation.builder.repair, input.env, stable, false));
83
+ // One list judges both passes (builder.gates): checked once, not twice.
84
+ for (const gate of invocation.builder.producer.gates) {
85
+ findings.push(commandFinding(`Builder gate ${gate.id}`, gate.argv, input.env));
86
+ }
87
+ if (invocation.ticket.fix !== undefined) {
88
+ findings.push(...gatedPassFindings("Ticket fix", invocation.ticket.fix, input.env, stable));
89
+ }
90
+ if (invocation.ticket.validate !== undefined) {
91
+ findings.push(...reviewFindings("Ticket validate", invocation.ticket.validate, input.env, stable));
81
92
  }
82
93
  const describeArgv = invocation.authority?.enabled
83
94
  ? invocation.authority.describeArgv
@@ -86,10 +97,25 @@ export async function runDoctor(input) {
86
97
  findings.push(...agentPluginFindings("Describer", describeArgv, stable));
87
98
  }
88
99
  // The judgement-only pass's own sequence — never shared with fix or validate.
89
- for (const gate of invocation.assembly.gates) {
90
- findings.push(commandFinding(`Assembly gate ${gate.id}`, gate.argv, input.env));
100
+ for (const gate of invocation.ticket.gates) {
101
+ findings.push(commandFinding(`Ticket gate ${gate.id}`, gate.argv, input.env));
102
+ }
103
+ findings.push(...ticketFixFindings(invocation));
104
+ // The Feature's line has its own fix and its own sequence, apart from a Ticket's.
105
+ if (invocation.feature !== undefined) {
106
+ findings.push(...gatedPassFindings("Feature fix", invocation.feature.fix, input.env, stable));
107
+ findings.push(...reviewFindings("Feature validate", invocation.feature.validate, input.env, stable));
108
+ if (!isOn(invocation.feature.validate) && invocation.feature.gates.length === 0) {
109
+ findings.push({
110
+ level: "warn",
111
+ label: "feature judgement",
112
+ detail: "feature.validate is off and feature.gates is empty — nothing judges a Feature before it is folded",
113
+ });
114
+ }
115
+ for (const gate of invocation.feature.gates) {
116
+ findings.push(commandFinding(`Feature gate ${gate.id}`, gate.argv, input.env));
117
+ }
91
118
  }
92
- findings.push(...assemblyFixFindings(invocation));
93
119
  for (const one of distinctManagers(invocation)) {
94
120
  const label = nameOfSides(one.sides);
95
121
  const request = requestOf(one.spec, common, one.sides);
@@ -305,56 +331,80 @@ function isolationFindings(invocation, workLine) {
305
331
  * then folded on the Gate sequence's word. An empty sequence is a Project that
306
332
  * publishes and merges with nothing looking at the whole.
307
333
  */
308
- function assemblyFinding(invocation) {
334
+ function ticketFinding(invocation) {
309
335
  // Only an Authority publishes and merges. With the fold staying local there
310
336
  // is nothing outside to guard, and the unit Gates already judged every part.
311
337
  if (invocation.authority?.enabled !== true) {
312
338
  return undefined;
313
339
  }
314
- if (invocation.assembly.gates.length > 0) {
340
+ if (invocation.ticket.gates.length > 0) {
315
341
  return {
316
342
  level: "ok",
317
- label: "assembly gates",
318
- detail: invocation.assembly.gates.map((gate) => gate.id).join(", "),
343
+ label: "ticket gates",
344
+ detail: invocation.ticket.gates.map((gate) => gate.id).join(", "),
345
+ };
346
+ }
347
+ if (invocation.builder.producer.gates.length > 0) {
348
+ // The unit's own checks run again once the work is aligned, so something does
349
+ // judge the ticket; what is missing is a reader of the published work (a CI).
350
+ return {
351
+ level: "ok",
352
+ label: "ticket gates",
353
+ detail: 'none — no CI is read. builder.gates run again after the align; add "ticket.gates" (ci-green) when a CI runs on the pull requests',
319
354
  };
320
355
  }
321
356
  return {
322
357
  level: "warn",
323
- label: "assembly gates",
324
- detail: 'none — the assembled ticket is published and merged with nothing judging it. Add "assembly.gates" (ci-green reads the work line\'s own checks)',
358
+ label: "ticket gates",
359
+ detail: 'none — the assembled ticket is published and merged with nothing judging it. Add "builder.gates", which run again after the align, or "ticket.gates" (ci-green reads the work line\'s own checks)',
325
360
  };
326
361
  }
327
362
  /** A gated pass's command, then one finding per Gate's own command. */
328
- function gatedPassFindings(label, pass, env, workLine) {
363
+ /** A review with an agent is checked as a pass; without one, its Gates are all there is. */
364
+ function reviewFindings(label, review, env, workLine) {
365
+ if (hasAgent(review)) {
366
+ return gatedPassFindings(label, review, env, workLine);
367
+ }
368
+ if (!isOn(review)) {
369
+ return [{ level: "ok", label, detail: "off (agent: false, no gates)" }];
370
+ }
371
+ return [
372
+ { level: "ok", label, detail: "no agent (agent: false): its gates run alone" },
373
+ ...review.gates.map((gate) => commandFinding(`${label} gate ${gate.id}`, gate.argv, env)),
374
+ ];
375
+ }
376
+ function gatedPassFindings(label, pass, env, workLine, withGates = true) {
329
377
  const findings = [commandFinding(label, pass.cmd, env)];
330
378
  findings.push(...agentPluginFindings(label, pass.cmd, workLine));
331
- for (const gate of pass.gates) {
332
- findings.push(commandFinding(`${label} gate ${gate.id}`, gate.argv, env));
379
+ if (withGates) {
380
+ for (const gate of pass.gates) {
381
+ findings.push(commandFinding(`${label} gate ${gate.id}`, gate.argv, env));
382
+ }
333
383
  }
334
384
  return findings;
335
385
  }
336
386
  /**
337
387
  * A refusal that comes back needs a command that can fix what it named. The
338
- * work is sent back to `assembly.fix` by an Authority, by `assembly.validate`,
388
+ * work is sent back to `ticket.fix` by an Authority, by `ticket.validate`,
339
389
  * or by both — `fix` is dead only when neither refuser exists.
340
390
  */
341
- function assemblyFixFindings(invocation) {
342
- const fixDeclared = invocation.assembly.fix !== undefined;
343
- const validateDeclared = invocation.assembly.validate !== undefined;
391
+ function ticketFixFindings(invocation) {
392
+ const fixDeclared = invocation.ticket.fix !== undefined;
393
+ const validateDeclared = isOn(invocation.ticket.validate);
344
394
  const offering = invocation.authority?.enabled === true;
345
395
  const findings = [];
346
396
  if (offering && !fixDeclared) {
347
397
  findings.push({
348
398
  level: "fail",
349
- label: "assembly fix",
350
- detail: 'authority.enabled is true, so a Submission can come back. Name "assembly.fix"',
399
+ label: "ticket fix",
400
+ detail: 'authority.enabled is true, so a Submission can come back. Name "ticket.fix"',
351
401
  });
352
402
  }
353
403
  if (fixDeclared && !offering && !validateDeclared) {
354
404
  findings.push({
355
405
  level: "warn",
356
- label: "assembly fix",
357
- detail: "declared, but nothing sends a Submission back without an Authority or assembly.validate — it will never run",
406
+ label: "ticket fix",
407
+ detail: "declared, but nothing sends a Submission back without an Authority or ticket.validate — it will never run",
358
408
  });
359
409
  }
360
410
  if (validateDeclared && !fixDeclared) {
@@ -362,8 +412,8 @@ function assemblyFixFindings(invocation) {
362
412
  // escalate on the spot. Said here so it reads as a choice, not a bug.
363
413
  findings.push({
364
414
  level: "warn",
365
- label: "assembly fix",
366
- detail: "assembly.validate is declared with no assembly.fix — its refusals escalate immediately, with nothing to repair them",
415
+ label: "ticket fix",
416
+ detail: "ticket.validate is declared with no ticket.fix — its refusals escalate immediately, with nothing to repair them",
367
417
  });
368
418
  }
369
419
  return findings;