@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-shorthand.js","sourceRoot":"","sources":["../../src/config/agent-shorthand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-shorthand.js","sourceRoot":"","sources":["../../src/config/agent-shorthand.ts"],"names":[],"mappings":"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"}
|
package/dist/config/home.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare const HOME_LAYOUT: {
|
|
|
11
11
|
readonly workspaces: "workspaces";
|
|
12
12
|
readonly ledger: "ledger";
|
|
13
13
|
readonly workLine: "work-line";
|
|
14
|
+
readonly targetLine: "target-line";
|
|
15
|
+
readonly featureWorkspaces: "feature-workspaces";
|
|
14
16
|
};
|
|
15
17
|
export declare function homeOf(configDir: string, home: string | undefined): string;
|
|
16
18
|
export declare function inHome(home: string, part: keyof typeof HOME_LAYOUT): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/config/home.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,aAAkB,CAAC;AAE5C,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/config/home.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,aAAkB,CAAC;AAE5C,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAEX,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE1E;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,WAAW,GAAG,MAAM,CAE3E"}
|
package/dist/config/home.js
CHANGED
|
@@ -13,6 +13,8 @@ export const HOME_LAYOUT = {
|
|
|
13
13
|
workspaces: "workspaces",
|
|
14
14
|
ledger: "ledger",
|
|
15
15
|
workLine: "work-line",
|
|
16
|
+
targetLine: "target-line",
|
|
17
|
+
featureWorkspaces: "feature-workspaces",
|
|
16
18
|
};
|
|
17
19
|
export function homeOf(configDir, home) {
|
|
18
20
|
return resolve(configDir, home ?? DEFAULT_HOME);
|
package/dist/config/home.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/config/home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,QAAQ,EAAE,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/config/home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,QAAQ,EAAE,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,iBAAiB,EAAE,oBAAoB;CAC/B,CAAC;AAEX,MAAM,UAAU,MAAM,CAAC,SAAiB,EAAE,IAAwB;IAChE,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,IAA8B;IACjE,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/config/load-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/config/load-config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAIV,SAAS,EASV,MAAM,YAAY,CAAC;AA+CpB,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/F;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAuKrD"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
2
2
|
import { dirname, resolve } from "node:path";
|
|
3
3
|
import { parse as parseYaml } from "yaml";
|
|
4
4
|
import { expandAgentPass, readAgents, SHORT_PASS_KEYS, } from "./agent-shorthand.js";
|
|
5
|
+
import { SKIP_WHEN } from "./types.js";
|
|
5
6
|
const KNOWN_KEYS = new Set([
|
|
6
7
|
"featureTracker",
|
|
7
8
|
"ticketTracker",
|
|
@@ -12,18 +13,33 @@ const KNOWN_KEYS = new Set([
|
|
|
12
13
|
"persist",
|
|
13
14
|
"agents",
|
|
14
15
|
"builder",
|
|
15
|
-
"
|
|
16
|
+
"ticket",
|
|
17
|
+
"feature",
|
|
16
18
|
"authority",
|
|
17
19
|
"observability",
|
|
18
20
|
"timeoutMs",
|
|
19
|
-
"maxRefusals",
|
|
20
21
|
"pollIntervalMs",
|
|
21
22
|
]);
|
|
22
|
-
const WORK_LINE_KEYS = new Set([
|
|
23
|
+
const WORK_LINE_KEYS = new Set([
|
|
24
|
+
"stable",
|
|
25
|
+
"targetStable",
|
|
26
|
+
"branch",
|
|
27
|
+
"isolation",
|
|
28
|
+
"isolationOptions",
|
|
29
|
+
"warm",
|
|
30
|
+
]);
|
|
23
31
|
const PASS_KEYS = new Set(["cmd", "timeoutMs"]);
|
|
24
32
|
const GATED_PASS_KEYS = new Set(["cmd", "timeoutMs", "gates"]);
|
|
25
|
-
const STAGE_KEYS = new Set(["producer", "repair", "maxAttempts"]);
|
|
26
|
-
const
|
|
33
|
+
const STAGE_KEYS = new Set(["tests", "e2e", "producer", "repair", "gates", "maxAttempts"]);
|
|
34
|
+
const TICKET_KEYS = new Set([
|
|
35
|
+
"maxParallel",
|
|
36
|
+
"maxAttempts",
|
|
37
|
+
"maxRefusals",
|
|
38
|
+
"fix",
|
|
39
|
+
"validate",
|
|
40
|
+
"gates",
|
|
41
|
+
]);
|
|
42
|
+
const FEATURE_KEYS = new Set(["maxAttempts", "maxRefusals", "fix", "validate", "gates"]);
|
|
27
43
|
const GATES_KEYS = new Set(["defaultTimeoutMs", "gates"]);
|
|
28
44
|
const AUTHORITY_KEYS = new Set(["enabled", "publish", "refresh", "describe"]);
|
|
29
45
|
const OBSERVABILITY_KEYS = new Set(["streams"]);
|
|
@@ -85,6 +101,9 @@ export function loadConfig(path) {
|
|
|
85
101
|
if (workLine.stable !== undefined) {
|
|
86
102
|
invocation.workLineStable = workLine.stable;
|
|
87
103
|
}
|
|
104
|
+
if (workLine.targetStable !== undefined) {
|
|
105
|
+
invocation.workLineTargetStable = workLine.targetStable;
|
|
106
|
+
}
|
|
88
107
|
if (workLine.branch !== undefined) {
|
|
89
108
|
invocation.workLineBranch = workLine.branch;
|
|
90
109
|
}
|
|
@@ -134,12 +153,19 @@ export function loadConfig(path) {
|
|
|
134
153
|
}
|
|
135
154
|
invocation.builder = builder.value;
|
|
136
155
|
}
|
|
137
|
-
if (object.
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
140
|
-
return
|
|
156
|
+
if (object.ticket !== undefined) {
|
|
157
|
+
const ticket = readTicket(object.ticket, configDir, agents);
|
|
158
|
+
if (ticket.ok === false) {
|
|
159
|
+
return ticket;
|
|
141
160
|
}
|
|
142
|
-
invocation.
|
|
161
|
+
invocation.ticket = ticket.value;
|
|
162
|
+
}
|
|
163
|
+
if (object.feature !== undefined) {
|
|
164
|
+
const feature = readFeature(object.feature, configDir, agents);
|
|
165
|
+
if (feature.ok === false) {
|
|
166
|
+
return feature;
|
|
167
|
+
}
|
|
168
|
+
invocation.feature = feature.value;
|
|
143
169
|
}
|
|
144
170
|
if (object.authority !== undefined) {
|
|
145
171
|
const authority = readAuthority(object.authority, configDir, agents);
|
|
@@ -162,15 +188,6 @@ export function loadConfig(path) {
|
|
|
162
188
|
if (timeoutMs.value !== undefined) {
|
|
163
189
|
invocation.timeoutMs = timeoutMs.value;
|
|
164
190
|
}
|
|
165
|
-
for (const key of ["maxRefusals"]) {
|
|
166
|
-
const read = positiveIntField(object, key);
|
|
167
|
-
if (read.ok === false) {
|
|
168
|
-
return read;
|
|
169
|
-
}
|
|
170
|
-
if (read.value !== undefined) {
|
|
171
|
-
invocation[key] = read.value;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
191
|
const pollIntervalMs = positiveIntField(object, "pollIntervalMs");
|
|
175
192
|
if (pollIntervalMs.ok === false) {
|
|
176
193
|
return pollIntervalMs;
|
|
@@ -178,8 +195,48 @@ export function loadConfig(path) {
|
|
|
178
195
|
if (pollIntervalMs.value !== undefined) {
|
|
179
196
|
invocation.pollIntervalMs = pollIntervalMs.value;
|
|
180
197
|
}
|
|
198
|
+
const e2eRefusal = checkE2eDeclaration(invocation);
|
|
199
|
+
if (e2eRefusal !== undefined) {
|
|
200
|
+
return { ok: false, reason: e2eRefusal };
|
|
201
|
+
}
|
|
181
202
|
return { ok: true, invocation };
|
|
182
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* The e2e check is declared by a pair: `builder.e2e`, which makes the Ticket that holds the
|
|
206
|
+
* suite, and a Feature Gate with `skipWhen: skip-test-e2e`, which runs it. One without the other
|
|
207
|
+
* is a check that never runs or a Ticket nobody judges, so neither is accepted alone. A `skipWhen`
|
|
208
|
+
* outside a Feature's Gates has nothing to read.
|
|
209
|
+
*/
|
|
210
|
+
function checkE2eDeclaration(invocation) {
|
|
211
|
+
const outside = [
|
|
212
|
+
["builder.gates", invocation.builder?.producer.gates],
|
|
213
|
+
["builder.tests.gates", invocation.builder?.tests?.gates],
|
|
214
|
+
["builder.e2e.gates", invocation.builder?.e2e?.gates],
|
|
215
|
+
["ticket.gates", invocation.ticket?.gates],
|
|
216
|
+
["ticket.fix.gates", invocation.ticket?.fix?.gates],
|
|
217
|
+
["ticket.validate.gates", invocation.ticket?.validate?.gates],
|
|
218
|
+
];
|
|
219
|
+
for (const [key, gates] of outside) {
|
|
220
|
+
const bad = gates?.find((gate) => gate.skipWhen !== undefined);
|
|
221
|
+
if (bad !== undefined) {
|
|
222
|
+
return `Config "${key}" gate "${bad.id}" has "skipWhen", which only a Feature's gates (feature.validate, feature.gates, feature.fix) can have.`;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const feature = invocation.feature;
|
|
226
|
+
const skippable = [
|
|
227
|
+
...(feature?.validate.gates ?? []),
|
|
228
|
+
...(feature?.gates ?? []),
|
|
229
|
+
...(feature?.fix.gates ?? []),
|
|
230
|
+
].filter((gate) => gate.skipWhen === "skip-test-e2e");
|
|
231
|
+
const declared = invocation.builder?.e2e !== undefined;
|
|
232
|
+
if (skippable.length > 0 && !declared) {
|
|
233
|
+
return `Config gate "${skippable[0]?.id}" has "skipWhen: skip-test-e2e", so the e2e check is declared: "builder.e2e" is required (the pass that makes the Ticket holding the suite).`;
|
|
234
|
+
}
|
|
235
|
+
if (declared && feature !== undefined && skippable.length === 0) {
|
|
236
|
+
return 'Config "builder.e2e" is declared, but no Feature gate runs the suite. Add a gate to "feature.validate.gates" with "skipWhen: skip-test-e2e".';
|
|
237
|
+
}
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
183
240
|
const MANAGER_SPEC_KEYS = new Set(["package", "options"]);
|
|
184
241
|
function readManagerSpec(value, side) {
|
|
185
242
|
if (value === undefined) {
|
|
@@ -257,6 +314,10 @@ function readWorkLine(value, configDir) {
|
|
|
257
314
|
if (stable.ok === false) {
|
|
258
315
|
return { ok: false, reason: `Config "workLine.stable" must be a non-empty string.` };
|
|
259
316
|
}
|
|
317
|
+
const targetStable = stringField(object, "targetStable");
|
|
318
|
+
if (targetStable.ok === false) {
|
|
319
|
+
return { ok: false, reason: `Config "workLine.targetStable" must be a non-empty string.` };
|
|
320
|
+
}
|
|
260
321
|
const branch = stringField(object, "branch");
|
|
261
322
|
if (branch.ok === false) {
|
|
262
323
|
return { ok: false, reason: `Config "workLine.branch" must be a non-empty string.` };
|
|
@@ -286,6 +347,9 @@ function readWorkLine(value, configDir) {
|
|
|
286
347
|
return {
|
|
287
348
|
ok: true,
|
|
288
349
|
...(stable.value === undefined ? {} : { stable: resolve(configDir, stable.value) }),
|
|
350
|
+
...(targetStable.value === undefined
|
|
351
|
+
? {}
|
|
352
|
+
: { targetStable: resolve(configDir, targetStable.value) }),
|
|
289
353
|
...(branch.value === undefined ? {} : { branch: branch.value }),
|
|
290
354
|
...(isolation.value === undefined ? {} : { isolation: isolation.value }),
|
|
291
355
|
...(isolationOptions === undefined
|
|
@@ -457,8 +521,9 @@ function readGates(value, configDir, key) {
|
|
|
457
521
|
if (fallback.ok === false) {
|
|
458
522
|
return { ok: false, reason: `Config "${key}.defaultTimeoutMs" must be a positive integer.` };
|
|
459
523
|
}
|
|
524
|
+
// A bare `gates:` in YAML is a null: an empty list, written the short way.
|
|
460
525
|
const entries = object.gates;
|
|
461
|
-
if (entries === undefined) {
|
|
526
|
+
if (entries === undefined || entries === null) {
|
|
462
527
|
return { ok: true, value: [] };
|
|
463
528
|
}
|
|
464
529
|
if (!Array.isArray(entries)) {
|
|
@@ -496,7 +561,19 @@ function readGates(value, configDir, key) {
|
|
|
496
561
|
reason: `Config gate "${id}" has no "timeoutMs", and "${key}" names no "defaultTimeoutMs".`,
|
|
497
562
|
};
|
|
498
563
|
}
|
|
499
|
-
|
|
564
|
+
const skipWhen = entry.skipWhen;
|
|
565
|
+
if (skipWhen !== undefined && !SKIP_WHEN.includes(skipWhen)) {
|
|
566
|
+
return {
|
|
567
|
+
ok: false,
|
|
568
|
+
reason: `Config gate "${id}" has "skipWhen: ${String(skipWhen)}". Known: ${SKIP_WHEN.join(", ")}.`,
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
gates.push({
|
|
572
|
+
id,
|
|
573
|
+
argv: resolveArgv(argv, configDir),
|
|
574
|
+
timeoutMs,
|
|
575
|
+
...(skipWhen === undefined ? {} : { skipWhen: skipWhen }),
|
|
576
|
+
});
|
|
500
577
|
}
|
|
501
578
|
return { ok: true, value: gates };
|
|
502
579
|
}
|
|
@@ -505,7 +582,7 @@ function readGates(value, configDir, key) {
|
|
|
505
582
|
*
|
|
506
583
|
* `timeoutMs` is required: without it nothing bounds an agent, and an agent
|
|
507
584
|
* that never returns is the failure this shape exists to prevent. `repair` and
|
|
508
|
-
* `
|
|
585
|
+
* `ticket` inherit both the command and the ceiling, so a Project with one
|
|
509
586
|
* agent writes one command.
|
|
510
587
|
*/
|
|
511
588
|
function readPass(value, configDir, key) {
|
|
@@ -538,12 +615,13 @@ function readPass(value, configDir, key) {
|
|
|
538
615
|
};
|
|
539
616
|
}
|
|
540
617
|
/**
|
|
541
|
-
* A command, and its own Gate sequence — `
|
|
542
|
-
* `builder.
|
|
543
|
-
*
|
|
544
|
-
*
|
|
618
|
+
* A command, and its own Gate sequence — `ticket.fix`, `ticket.validate`.
|
|
619
|
+
* `builder.producer` and `builder.repair` read the same shape with `gated`
|
|
620
|
+
* false: their Gates are the one `builder.gates` list, read by `readBuilder`.
|
|
621
|
+
* Deliberately its own ~10 lines rather than a parameterized `readPass`: each
|
|
622
|
+
* reader's error messages and key set stay independently legible.
|
|
545
623
|
*/
|
|
546
|
-
function readGatedPass(value, configDir, key, agents) {
|
|
624
|
+
function readGatedPass(value, configDir, key, agents, gated = true) {
|
|
547
625
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
548
626
|
return {
|
|
549
627
|
ok: false,
|
|
@@ -553,6 +631,13 @@ function readGatedPass(value, configDir, key, agents) {
|
|
|
553
631
|
const object = value;
|
|
554
632
|
const short = object.agent !== undefined;
|
|
555
633
|
for (const name of Object.keys(object)) {
|
|
634
|
+
if (!gated && name === "gates") {
|
|
635
|
+
return {
|
|
636
|
+
ok: false,
|
|
637
|
+
reason: `Config "${key}" has no "gates". The builder's Gates are "builder.gates": ` +
|
|
638
|
+
"one list, judging the producer and the repair alike.",
|
|
639
|
+
};
|
|
640
|
+
}
|
|
556
641
|
const known = GATED_PASS_KEYS.has(name) || (short && SHORT_PASS_KEYS.has(name));
|
|
557
642
|
if (!known) {
|
|
558
643
|
return { ok: false, reason: `Config "${key}" has unknown key "${name}".` };
|
|
@@ -593,6 +678,79 @@ function readGatedPass(value, configDir, key, agents) {
|
|
|
593
678
|
}
|
|
594
679
|
return { ok: true, value: { cmd, timeoutMs: timeoutMs.value, gates } };
|
|
595
680
|
}
|
|
681
|
+
/**
|
|
682
|
+
* The pass that writes the tests first: an agent and the Gates that check what
|
|
683
|
+
* it wrote, or `agent: false` and nothing else, which writes none. Gates with
|
|
684
|
+
* no agent would have nothing to check, so they are refused rather than ignored.
|
|
685
|
+
*/
|
|
686
|
+
function readTests(value, configDir, agents) {
|
|
687
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
688
|
+
return {
|
|
689
|
+
ok: false,
|
|
690
|
+
reason: 'Config "builder.tests" must be a YAML mapping with an agent (or "cmd") and "timeoutMs", or "agent: false".',
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
const object = value;
|
|
694
|
+
if (object.agent !== false) {
|
|
695
|
+
return readGatedPass(value, configDir, "builder.tests", agents, true);
|
|
696
|
+
}
|
|
697
|
+
for (const name of Object.keys(object)) {
|
|
698
|
+
if (name !== "agent" && name !== "gates") {
|
|
699
|
+
return {
|
|
700
|
+
ok: false,
|
|
701
|
+
reason: `Config "builder.tests" has "agent: false", so it has no "${name}": no tests are written first.`,
|
|
702
|
+
};
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
const emptyList = Array.isArray(object.gates) && object.gates.length === 0;
|
|
706
|
+
if (object.gates !== undefined && object.gates !== null && !emptyList) {
|
|
707
|
+
const gates = readGates(object.gates, configDir, "builder.tests.gates");
|
|
708
|
+
if (gates.ok === false) {
|
|
709
|
+
return gates;
|
|
710
|
+
}
|
|
711
|
+
if (gates.value.length > 0) {
|
|
712
|
+
return {
|
|
713
|
+
ok: false,
|
|
714
|
+
reason: 'Config "builder.tests" has "agent: false", so its gates would have no tests to check. Remove them, or give it an agent.',
|
|
715
|
+
};
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
return { ok: true, value: { agent: false, gates: [] } };
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* A review: an agent and its Gates, or `agent: false` and the Gates alone.
|
|
722
|
+
* The agent is turned off by saying so; a review with neither an agent nor a
|
|
723
|
+
* Gate would judge nothing, and is refused.
|
|
724
|
+
*/
|
|
725
|
+
function readReview(value, configDir, key, agents) {
|
|
726
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
727
|
+
return {
|
|
728
|
+
ok: false,
|
|
729
|
+
reason: `Config "${key}" must be a YAML mapping with an agent (or "cmd") and "timeoutMs", or "agent: false" and "gates".`,
|
|
730
|
+
};
|
|
731
|
+
}
|
|
732
|
+
const object = value;
|
|
733
|
+
if (object.agent !== false) {
|
|
734
|
+
return readGatedPass(value, configDir, key, agents);
|
|
735
|
+
}
|
|
736
|
+
for (const name of Object.keys(object)) {
|
|
737
|
+
if (name !== "agent" && name !== "gates") {
|
|
738
|
+
return {
|
|
739
|
+
ok: false,
|
|
740
|
+
reason: `Config "${key}" has "agent: false", so it has no "${name}": only its "gates" run.`,
|
|
741
|
+
};
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
// No Gates either: the review is off, which is how a Project says it.
|
|
745
|
+
if (object.gates === undefined || object.gates === null) {
|
|
746
|
+
return { ok: true, value: { agent: false, gates: [] } };
|
|
747
|
+
}
|
|
748
|
+
const gates = readGates(object.gates, configDir, `${key}.gates`);
|
|
749
|
+
if (gates.ok === false) {
|
|
750
|
+
return gates;
|
|
751
|
+
}
|
|
752
|
+
return { ok: true, value: { agent: false, gates: gates.value } };
|
|
753
|
+
}
|
|
596
754
|
/**
|
|
597
755
|
* Making the unit of work: both passes named, neither borrowing the other's command.
|
|
598
756
|
*/
|
|
@@ -606,23 +764,53 @@ function readBuilder(value, configDir, agents) {
|
|
|
606
764
|
return { ok: false, reason: `Config "builder" has unknown key "${name}".` };
|
|
607
765
|
}
|
|
608
766
|
}
|
|
767
|
+
if (object.tests === undefined) {
|
|
768
|
+
return {
|
|
769
|
+
ok: false,
|
|
770
|
+
reason: 'Config "builder" needs "tests": the agent that writes the tests before the code. To write none first, say "tests: { agent: false }".',
|
|
771
|
+
};
|
|
772
|
+
}
|
|
773
|
+
const readTestsPass = readTests(object.tests, configDir, agents);
|
|
774
|
+
if (readTestsPass.ok === false) {
|
|
775
|
+
return readTestsPass;
|
|
776
|
+
}
|
|
777
|
+
let e2e;
|
|
778
|
+
if (object.e2e !== undefined) {
|
|
779
|
+
const read = readGatedPass(object.e2e, configDir, "builder.e2e", agents);
|
|
780
|
+
if (read.ok === false) {
|
|
781
|
+
return read;
|
|
782
|
+
}
|
|
783
|
+
e2e = read.value;
|
|
784
|
+
}
|
|
609
785
|
if (object.producer === undefined) {
|
|
610
786
|
return { ok: false, reason: 'Config "builder" needs a "producer".' };
|
|
611
787
|
}
|
|
612
788
|
if (object.repair === undefined) {
|
|
613
789
|
return { ok: false, reason: 'Config "builder" needs a "repair".' };
|
|
614
790
|
}
|
|
615
|
-
const readProducer = readGatedPass(object.producer, configDir, "builder.producer", agents);
|
|
791
|
+
const readProducer = readGatedPass(object.producer, configDir, "builder.producer", agents, false);
|
|
616
792
|
if (readProducer.ok === false) {
|
|
617
793
|
return readProducer;
|
|
618
794
|
}
|
|
619
|
-
const readRepair = readGatedPass(object.repair, configDir, "builder.repair", agents);
|
|
795
|
+
const readRepair = readGatedPass(object.repair, configDir, "builder.repair", agents, false);
|
|
620
796
|
if (readRepair.ok === false) {
|
|
621
797
|
return readRepair;
|
|
622
798
|
}
|
|
799
|
+
let gates = [];
|
|
800
|
+
if (object.gates !== undefined) {
|
|
801
|
+
const read = readGates(object.gates, configDir, "builder.gates");
|
|
802
|
+
if (read.ok === false) {
|
|
803
|
+
return read;
|
|
804
|
+
}
|
|
805
|
+
gates = read.value;
|
|
806
|
+
}
|
|
807
|
+
// One list, two passes: a repair is judged by exactly what judged the producer,
|
|
808
|
+
// so it cannot undo what a Gate refused. Implementer still takes two sequences.
|
|
623
809
|
const spec = {
|
|
624
|
-
|
|
625
|
-
|
|
810
|
+
tests: readTestsPass.value,
|
|
811
|
+
producer: { ...readProducer.value, gates },
|
|
812
|
+
repair: { ...readRepair.value, gates: [...gates] },
|
|
813
|
+
...(e2e === undefined ? {} : { e2e }),
|
|
626
814
|
};
|
|
627
815
|
const maxAttempts = positiveIntField(object, "maxAttempts");
|
|
628
816
|
if (maxAttempts.ok === false) {
|
|
@@ -637,47 +825,55 @@ function readBuilder(value, configDir, agents) {
|
|
|
637
825
|
* Judging the assembled ticket. A command here is a fix of what a judgement
|
|
638
826
|
* refused, not a second first-pass of the request.
|
|
639
827
|
*/
|
|
640
|
-
function
|
|
828
|
+
function readTicket(value, configDir, agents) {
|
|
641
829
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
642
|
-
return { ok: false, reason: 'Config "
|
|
830
|
+
return { ok: false, reason: 'Config "ticket" must be a YAML mapping.' };
|
|
643
831
|
}
|
|
644
832
|
const object = value;
|
|
645
833
|
for (const name of Object.keys(object)) {
|
|
646
834
|
if (name === "producer" || name === "repair") {
|
|
647
835
|
return {
|
|
648
836
|
ok: false,
|
|
649
|
-
reason: `Config "
|
|
650
|
-
'("
|
|
837
|
+
reason: `Config "ticket" has no "${name}". The assembled ticket is judged ` +
|
|
838
|
+
'("ticket.gates"); a refusal is "ticket.fix".',
|
|
651
839
|
};
|
|
652
840
|
}
|
|
653
|
-
if (!
|
|
654
|
-
return { ok: false, reason: `Config "
|
|
841
|
+
if (!TICKET_KEYS.has(name)) {
|
|
842
|
+
return { ok: false, reason: `Config "ticket" has unknown key "${name}".` };
|
|
655
843
|
}
|
|
656
844
|
}
|
|
845
|
+
if (object.validate === undefined) {
|
|
846
|
+
return {
|
|
847
|
+
ok: false,
|
|
848
|
+
reason: 'Config "ticket" needs a "validate": the review of the assembled ticket. To turn it off, write "validate: { agent: false }".',
|
|
849
|
+
};
|
|
850
|
+
}
|
|
657
851
|
const spec = { gates: [] };
|
|
658
852
|
if (object.fix !== undefined) {
|
|
659
|
-
const read = readGatedPass(object.fix, configDir, "
|
|
853
|
+
const read = readGatedPass(object.fix, configDir, "ticket.fix", agents);
|
|
660
854
|
if (read.ok === false) {
|
|
661
855
|
return read;
|
|
662
856
|
}
|
|
663
857
|
spec.fix = read.value;
|
|
664
858
|
}
|
|
665
859
|
if (object.validate !== undefined) {
|
|
666
|
-
const read =
|
|
860
|
+
const read = readReview(object.validate, configDir, "ticket.validate", agents);
|
|
667
861
|
if (read.ok === false) {
|
|
668
862
|
return read;
|
|
669
863
|
}
|
|
670
864
|
spec.validate = read.value;
|
|
671
865
|
}
|
|
672
|
-
const
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
866
|
+
for (const key of ["maxParallel", "maxAttempts", "maxRefusals"]) {
|
|
867
|
+
const read = positiveIntField(object, key);
|
|
868
|
+
if (read.ok === false) {
|
|
869
|
+
return { ok: false, reason: `Config "ticket.${key}" must be a positive integer.` };
|
|
870
|
+
}
|
|
871
|
+
if (read.value !== undefined) {
|
|
872
|
+
spec[key] = read.value;
|
|
873
|
+
}
|
|
678
874
|
}
|
|
679
875
|
if (object.gates !== undefined) {
|
|
680
|
-
const gates = readGates(object.gates, configDir, "
|
|
876
|
+
const gates = readGates(object.gates, configDir, "ticket.gates");
|
|
681
877
|
if (gates.ok === false) {
|
|
682
878
|
return gates;
|
|
683
879
|
}
|
|
@@ -685,6 +881,62 @@ function readAssembly(value, configDir, agents) {
|
|
|
685
881
|
}
|
|
686
882
|
return { ok: true, value: spec };
|
|
687
883
|
}
|
|
884
|
+
/**
|
|
885
|
+
* Judging a Feature's whole line, and repairing what that judgement refused.
|
|
886
|
+
* Its own gates, fix and budget: nothing is shared with a Ticket's.
|
|
887
|
+
*/
|
|
888
|
+
function readFeature(value, configDir, agents) {
|
|
889
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
890
|
+
return { ok: false, reason: 'Config "feature" must be a YAML mapping.' };
|
|
891
|
+
}
|
|
892
|
+
const object = value;
|
|
893
|
+
for (const name of Object.keys(object)) {
|
|
894
|
+
if (!FEATURE_KEYS.has(name)) {
|
|
895
|
+
return { ok: false, reason: `Config "feature" has unknown key "${name}".` };
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
if (object.fix === undefined) {
|
|
899
|
+
return {
|
|
900
|
+
ok: false,
|
|
901
|
+
reason: 'Config "feature" needs a "fix": what repairs the line when its gates refuse it. There is no feature without one.',
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
if (object.validate === undefined) {
|
|
905
|
+
return {
|
|
906
|
+
ok: false,
|
|
907
|
+
reason: 'Config "feature" needs a "validate": the review of the whole line against the Feature\'s request, whose gates run the project\'s own checks on it.',
|
|
908
|
+
};
|
|
909
|
+
}
|
|
910
|
+
if (object.gates === undefined) {
|
|
911
|
+
return {
|
|
912
|
+
ok: false,
|
|
913
|
+
reason: 'Config "feature" needs "gates": what judges the published line before it is folded (the CI). They are not borrowed from "ticket".',
|
|
914
|
+
};
|
|
915
|
+
}
|
|
916
|
+
const validate = readReview(object.validate, configDir, "feature.validate", agents);
|
|
917
|
+
if (validate.ok === false) {
|
|
918
|
+
return validate;
|
|
919
|
+
}
|
|
920
|
+
const fix = readGatedPass(object.fix, configDir, "feature.fix", agents);
|
|
921
|
+
if (fix.ok === false) {
|
|
922
|
+
return fix;
|
|
923
|
+
}
|
|
924
|
+
const gates = readGates(object.gates, configDir, "feature.gates");
|
|
925
|
+
if (gates.ok === false) {
|
|
926
|
+
return gates;
|
|
927
|
+
}
|
|
928
|
+
const spec = { fix: fix.value, validate: validate.value, gates: gates.value };
|
|
929
|
+
for (const key of ["maxAttempts", "maxRefusals"]) {
|
|
930
|
+
const read = positiveIntField(object, key);
|
|
931
|
+
if (read.ok === false) {
|
|
932
|
+
return { ok: false, reason: `Config "feature.${key}" must be a positive integer.` };
|
|
933
|
+
}
|
|
934
|
+
if (read.value !== undefined) {
|
|
935
|
+
spec[key] = read.value;
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
return { ok: true, value: spec };
|
|
939
|
+
}
|
|
688
940
|
/**
|
|
689
941
|
* Flags whose value is a path this system writes to.
|
|
690
942
|
*
|