@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.
- package/README.md +122 -52
- package/SPECS.md +36 -14
- package/dist/cli.js +4 -4
- package/dist/config/agent-shorthand.d.ts +24 -3
- package/dist/config/agent-shorthand.d.ts.map +1 -1
- package/dist/config/agent-shorthand.js +64 -19
- package/dist/config/agent-shorthand.js.map +1 -1
- package/dist/config/home.d.ts +2 -0
- package/dist/config/home.d.ts.map +1 -1
- package/dist/config/home.js +2 -0
- package/dist/config/home.js.map +1 -1
- package/dist/config/load-config.d.ts.map +1 -1
- package/dist/config/load-config.js +298 -46
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/parse-args.d.ts +1 -1
- package/dist/config/parse-args.d.ts.map +1 -1
- package/dist/config/parse-args.js +83 -56
- package/dist/config/parse-args.js.map +1 -1
- package/dist/config/types.d.ts +104 -16
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +13 -1
- package/dist/config/types.js.map +1 -1
- package/dist/loop/authority.d.ts +38 -1
- package/dist/loop/authority.d.ts.map +1 -1
- package/dist/loop/authority.js +41 -2
- package/dist/loop/authority.js.map +1 -1
- package/dist/loop/context.d.ts +16 -1
- package/dist/loop/context.d.ts.map +1 -1
- package/dist/loop/drive.d.ts +9 -3
- package/dist/loop/drive.d.ts.map +1 -1
- package/dist/loop/drive.js +17 -7
- package/dist/loop/drive.js.map +1 -1
- package/dist/loop/features.d.ts.map +1 -1
- package/dist/loop/features.js +322 -59
- package/dist/loop/features.js.map +1 -1
- package/dist/loop/open-host.d.ts.map +1 -1
- package/dist/loop/open-host.js +109 -7
- package/dist/loop/open-host.js.map +1 -1
- package/dist/loop/report.d.ts.map +1 -1
- package/dist/loop/report.js +21 -9
- package/dist/loop/report.js.map +1 -1
- package/dist/loop/trace.js +1 -1
- package/dist/loop/trace.js.map +1 -1
- package/dist/loop/transformers.d.ts +16 -2
- package/dist/loop/transformers.d.ts.map +1 -1
- package/dist/loop/transformers.js +137 -22
- package/dist/loop/transformers.js.map +1 -1
- package/dist/loop/warm.js +1 -1
- package/dist/loop/warm.js.map +1 -1
- package/dist/operator/agent-plugins.d.ts.map +1 -1
- package/dist/operator/agent-plugins.js +14 -8
- package/dist/operator/agent-plugins.js.map +1 -1
- package/dist/operator/doctor.d.ts +1 -1
- package/dist/operator/doctor.d.ts.map +1 -1
- package/dist/operator/doctor.js +79 -29
- package/dist/operator/doctor.js.map +1 -1
- package/dist/operator/explain.d.ts.map +1 -1
- package/dist/operator/explain.js +37 -8
- package/dist/operator/explain.js.map +1 -1
- package/dist/operator/film.js +0 -3
- package/dist/operator/film.js.map +1 -1
- package/dist/operator/init.js +13 -8
- package/dist/operator/init.js.map +1 -1
- package/dist/operator/log.js +9 -2
- package/dist/operator/log.js.map +1 -1
- package/dist/operator/setup.d.ts.map +1 -1
- package/dist/operator/setup.js +2 -0
- package/dist/operator/setup.js.map +1 -1
- 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.
|
|
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
|
-
|
|
95
|
+
const validate = slots.ticket.validate;
|
|
96
|
+
return validate !== undefined && hasAgent(validate) ? validate.timeoutMs : slots.timeoutMs;
|
|
77
97
|
}
|
|
78
|
-
if (input.stage === "
|
|
79
|
-
return slots.
|
|
98
|
+
if (input.stage === "ticket") {
|
|
99
|
+
return slots.ticket.fix?.timeoutMs ?? slots.timeoutMs;
|
|
80
100
|
}
|
|
81
|
-
return slots.builder.
|
|
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
|
-
|
|
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.
|
|
97
|
-
|
|
98
|
-
|
|
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:
|
|
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 `
|
|
106
|
-
//
|
|
107
|
-
return { gates: slots.
|
|
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 === "
|
|
110
|
-
const fix = slots.
|
|
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
|
|
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
|
|
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 {
|
|
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
package/dist/loop/warm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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;
|
|
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.
|
|
22
|
-
findings.push(profileFinding(label, part.
|
|
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,
|
|
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
|
|
51
|
-
const
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;
|
|
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
|
|
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,
|
|
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"}
|
package/dist/operator/doctor.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
75
|
-
|
|
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.
|
|
80
|
-
findings.push(...gatedPassFindings("
|
|
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.
|
|
90
|
-
findings.push(commandFinding(`
|
|
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
|
|
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.
|
|
340
|
+
if (invocation.ticket.gates.length > 0) {
|
|
315
341
|
return {
|
|
316
342
|
level: "ok",
|
|
317
|
-
label: "
|
|
318
|
-
detail: invocation.
|
|
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: "
|
|
324
|
-
detail: 'none — the assembled ticket is published and merged with nothing judging it. Add "
|
|
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
|
-
|
|
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
|
-
|
|
332
|
-
|
|
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 `
|
|
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
|
|
342
|
-
const fixDeclared = invocation.
|
|
343
|
-
const validateDeclared = invocation.
|
|
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: "
|
|
350
|
-
detail: 'authority.enabled is true, so a Submission can come back. Name "
|
|
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: "
|
|
357
|
-
detail: "declared, but nothing sends a Submission back without an Authority or
|
|
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: "
|
|
366
|
-
detail: "
|
|
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;
|