wicked-crew 0.7.30 → 0.7.32
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/dist/api/chat-scope.d.ts +15 -2
- package/dist/api/chat-scope.d.ts.map +1 -1
- package/dist/api/chat-scope.js +7 -2
- package/dist/api/chat-scope.js.map +1 -1
- package/dist/api/eval-sample.d.ts +12 -12
- package/dist/api/routes.d.ts +10 -0
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +231 -37
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-files.d.ts +26 -0
- package/dist/api/run-files.d.ts.map +1 -1
- package/dist/api/run-files.js +78 -0
- package/dist/api/run-files.js.map +1 -1
- package/dist/api/seat-health.d.ts +33 -0
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +86 -2
- package/dist/api/seat-health.js.map +1 -1
- package/dist/api/seat-signin.d.ts +8 -0
- package/dist/api/seat-signin.d.ts.map +1 -1
- package/dist/api/seat-signin.js +48 -3
- package/dist/api/seat-signin.js.map +1 -1
- package/dist/api/seat-standing.d.ts +14 -2
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +14 -4
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +41 -4
- package/dist/api/server.js.map +1 -1
- package/dist/api/skills.d.ts +2 -2
- package/dist/api/testing.d.ts +28 -1
- package/dist/api/testing.d.ts.map +1 -1
- package/dist/api/testing.js +190 -0
- package/dist/api/testing.js.map +1 -1
- package/dist/campaigns/rollup.d.ts +4 -0
- package/dist/campaigns/rollup.d.ts.map +1 -1
- package/dist/campaigns/rollup.js.map +1 -1
- package/dist/campaigns/routes.d.ts +3 -1
- package/dist/campaigns/routes.d.ts.map +1 -1
- package/dist/campaigns/routes.js +3 -0
- package/dist/campaigns/routes.js.map +1 -1
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +23 -2
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/deliver-text.d.ts +7 -0
- package/dist/core/deliver-text.d.ts.map +1 -1
- package/dist/core/deliver-text.js +41 -2
- package/dist/core/deliver-text.js.map +1 -1
- package/dist/core/engine-roster.d.ts +68 -0
- package/dist/core/engine-roster.d.ts.map +1 -0
- package/dist/core/engine-roster.js +156 -0
- package/dist/core/engine-roster.js.map +1 -0
- package/dist/interactive/chat-events.d.ts.map +1 -1
- package/dist/interactive/chat-events.js +26 -4
- package/dist/interactive/chat-events.js.map +1 -1
- package/dist/interactive/council-outcome.d.ts +28 -1
- package/dist/interactive/council-outcome.d.ts.map +1 -1
- package/dist/interactive/council-outcome.js +51 -1
- package/dist/interactive/council-outcome.js.map +1 -1
- package/dist/interactive/demo-events.d.ts.map +1 -1
- package/dist/interactive/demo-events.js +26 -4
- package/dist/interactive/demo-events.js.map +1 -1
- package/dist/interactive/doc-run-index.d.ts +56 -0
- package/dist/interactive/doc-run-index.d.ts.map +1 -0
- package/dist/interactive/doc-run-index.js +100 -0
- package/dist/interactive/doc-run-index.js.map +1 -0
- package/dist/interactive/docs-index.d.ts +68 -0
- package/dist/interactive/docs-index.d.ts.map +1 -0
- package/dist/interactive/docs-index.js +114 -0
- package/dist/interactive/docs-index.js.map +1 -0
- package/dist/interactive/draft-events.d.ts +18 -0
- package/dist/interactive/draft-events.d.ts.map +1 -1
- package/dist/interactive/draft-events.js +36 -3
- package/dist/interactive/draft-events.js.map +1 -1
- package/dist/interactive/edit-events.d.ts.map +1 -1
- package/dist/interactive/edit-events.js +26 -4
- package/dist/interactive/edit-events.js.map +1 -1
- package/dist/interactive/ledger.d.ts +2 -0
- package/dist/interactive/ledger.d.ts.map +1 -1
- package/dist/interactive/ledger.js +4 -0
- package/dist/interactive/ledger.js.map +1 -1
- package/dist/qe/acceptance.d.ts +72 -3
- package/dist/qe/acceptance.d.ts.map +1 -1
- package/dist/qe/acceptance.js +137 -17
- package/dist/qe/acceptance.js.map +1 -1
- package/dist/qe/author-workflow.d.ts +165 -0
- package/dist/qe/author-workflow.d.ts.map +1 -0
- package/dist/qe/author-workflow.js +377 -0
- package/dist/qe/author-workflow.js.map +1 -0
- package/dist/qe/ledger.d.ts +128 -28
- package/dist/qe/ledger.d.ts.map +1 -1
- package/dist/qe/ledger.js +272 -42
- package/dist/qe/ledger.js.map +1 -1
- package/dist/qe/test-sets.d.ts +112 -0
- package/dist/qe/test-sets.d.ts.map +1 -0
- package/dist/qe/test-sets.js +170 -0
- package/dist/qe/test-sets.js.map +1 -0
- package/dist/skills/refs.d.ts +37 -0
- package/dist/skills/refs.d.ts.map +1 -1
- package/dist/skills/refs.js +22 -0
- package/dist/skills/refs.js.map +1 -1
- package/dist/skills/runtime.d.ts +13 -1
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +88 -1
- package/dist/skills/runtime.js.map +1 -1
- package/dist/skills/store.d.ts +82 -5
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/skills/store.js +109 -21
- package/dist/skills/store.js.map +1 -1
- package/dist/studio/assets/{index-_ydd-jKd.css → index-C0UZ2BxT.css} +1 -1
- package/dist/studio/assets/index-Clm0MXDF.js +544 -0
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +251 -5
- package/endpoint-manifest.json +24 -1
- package/package.json +3 -3
- package/dist/studio/assets/index-CWUS9Ump.js +0 -542
package/dist/qe/acceptance.js
CHANGED
|
@@ -38,7 +38,7 @@ import { VERDICT_VALUES } from 'wicked-ledger';
|
|
|
38
38
|
import { basename } from 'node:path';
|
|
39
39
|
import { DELIVER_PHASE_ID } from '../core/deliver.js';
|
|
40
40
|
import { DELIVERABLE_FLOOR_PHASE_ID } from '../core/deliverable-floor.js';
|
|
41
|
-
import { readAcceptanceState, summarizeManifest } from './ledger.js';
|
|
41
|
+
import { describeAttribution, readAcceptanceState, summarizeManifest } from './ledger.js';
|
|
42
42
|
import { resolveConformance } from './conformance.js';
|
|
43
43
|
/**
|
|
44
44
|
* Verdict → run-status, 1:1 with garden's qe `accept` action (VERDICT_TO_STATUS)
|
|
@@ -157,10 +157,21 @@ export function resolveAcceptanceGate(required, state) {
|
|
|
157
157
|
};
|
|
158
158
|
}
|
|
159
159
|
if (state.verdict === null) {
|
|
160
|
+
if (state.ledgerVerdicts === 0) {
|
|
161
|
+
return {
|
|
162
|
+
...base,
|
|
163
|
+
satisfied: false,
|
|
164
|
+
reason: `QE ledger at ${state.root} records no verdict (missing ⇒ deny)`,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
// The ledger has verdicts — none of them is THIS run's (F-E2E-013). A verdict that
|
|
168
|
+
// predates the run, or belongs to a QE run nothing ties to it, is evidence about the repo's
|
|
169
|
+
// past, not about this run; serving it as the run's PASS was the regression.
|
|
170
|
+
const why = state.attribution.kind === 'none' ? state.attribution.reason : 'not attributed';
|
|
160
171
|
return {
|
|
161
172
|
...base,
|
|
162
173
|
satisfied: false,
|
|
163
|
-
reason: `QE ledger at ${state.root}
|
|
174
|
+
reason: `QE ledger at ${state.root} holds no verdict attributed to this run — ${why} (unattributed ⇒ deny)`,
|
|
164
175
|
};
|
|
165
176
|
}
|
|
166
177
|
if (verdict === null) {
|
|
@@ -173,7 +184,13 @@ export function resolveAcceptanceGate(required, state) {
|
|
|
173
184
|
reason: `verdict ${state.verdict.id} carries an out-of-enum value '${verdictValue}' (unrecognized ⇒ deny)`,
|
|
174
185
|
};
|
|
175
186
|
}
|
|
176
|
-
|
|
187
|
+
// HOW the verdict is this run's rides the reason (review of #539, F6): an inferred lifetime
|
|
188
|
+
// linkage must read differently from a writer's stamp or a caller's pin — and when several QE
|
|
189
|
+
// runs are attributed, the reader must know the answer was resolved deny-dominates across them.
|
|
190
|
+
const breadth = state.attributedVerdicts > 1
|
|
191
|
+
? `; ${state.attributedVerdicts} QE runs are attributed to this run — deny-dominates across their newest verdicts`
|
|
192
|
+
: '';
|
|
193
|
+
const cite = `verdict ${state.verdict.id} by ${state.verdict.reviewer} (${describeAttribution(state.attribution)}${breadth})`;
|
|
177
194
|
switch (verdict) {
|
|
178
195
|
case 'PASS':
|
|
179
196
|
return { ...base, satisfied: true, reason: `PASS — ${cite}` };
|
|
@@ -207,16 +224,125 @@ export function resolveAcceptanceGate(required, state) {
|
|
|
207
224
|
}
|
|
208
225
|
}
|
|
209
226
|
/**
|
|
210
|
-
*
|
|
211
|
-
*
|
|
227
|
+
* The frames that close a run's lifetime — one per terminal `SessionStatus` the engine defines
|
|
228
|
+
* (wicked-core `src/domain.rs`: `Completed`, `Failed`, `Cancelled`), spelled as the engine emits
|
|
229
|
+
* them (`src/event.rs` `event_to_json`: `sessionCompleted`, `sessionFailed`, `runCancelled`).
|
|
230
|
+
* Pinned from the source, not from memory: the first cut named a `sessionCancelled` frame the
|
|
231
|
+
* engine never emits, so a CANCELLED run's window never closed and any later QE PASS on the repo
|
|
232
|
+
* was attributed to it (review of #539, F1). `runOrphaned` is deliberately absent — an orphaned
|
|
233
|
+
* run is still `executing` and resumable, not finished.
|
|
234
|
+
*/
|
|
235
|
+
export const TERMINAL_EVENT_TYPES = new Set([
|
|
236
|
+
'sessionCompleted',
|
|
237
|
+
'sessionFailed',
|
|
238
|
+
'runCancelled',
|
|
239
|
+
]);
|
|
240
|
+
/**
|
|
241
|
+
* The terminal frames the engine will NOT resume from: `resume_run_inner` returns a `Completed` or
|
|
242
|
+
* `Cancelled` run's status unchanged (wicked-core `src/actor.rs`, the `Completed | Cancelled`
|
|
243
|
+
* early return) and re-dispatches only a `Failed` one. So once one of these is recorded the window
|
|
244
|
+
* is closed for good; `sessionFailed` alone can be followed by a `resumed` frame (r2 review, N1).
|
|
245
|
+
*/
|
|
246
|
+
export const FINAL_EVENT_TYPES = new Set(['sessionCompleted', 'runCancelled']);
|
|
247
|
+
/**
|
|
248
|
+
* The frames that prove a run is LIVE AGAIN after a non-final terminal frame — the engine emits
|
|
249
|
+
* each of them only for a run it is actively driving (wicked-core `src/event.rs` `event_to_json`):
|
|
250
|
+
* - `resumed` — emitted by `confirm_gate` when a human approves a gate (`src/actor.rs`, the only
|
|
251
|
+
* `CoreEvent::Resumed` emission). NOT by the failed-run resume path: `resume_run_inner` emits
|
|
252
|
+
* no frame of its own (r3 review, N3 — an earlier comment here claimed otherwise);
|
|
253
|
+
* - `unitDispatched` / `unitExecuting` / `toolExecutorDispatched` — `dispatch_unit`'s frames, the
|
|
254
|
+
* first thing a rescued run records after `POST /runs/:id/resume` re-dispatches its cursor unit;
|
|
255
|
+
* - `unitDistributed` — a (re)distribution for a unit, run-scoped and live-only as well.
|
|
256
|
+
* `unitDone` / `unitDenied` / `unitPlanned` are deliberately NOT here: a straggling completion or
|
|
257
|
+
* denial frame after a failure is not evidence the run went on (F4).
|
|
258
|
+
*/
|
|
259
|
+
export const REOPEN_EVENT_TYPES = new Set([
|
|
260
|
+
'resumed',
|
|
261
|
+
'unitDispatched',
|
|
262
|
+
'unitExecuting',
|
|
263
|
+
'toolExecutorDispatched',
|
|
264
|
+
'unitDistributed',
|
|
265
|
+
]);
|
|
266
|
+
/**
|
|
267
|
+
* The crew run's lifetime as its durable event log records it — the window a QE run must have
|
|
268
|
+
* started inside to count as this run's evidence (F-E2E-013).
|
|
269
|
+
*
|
|
270
|
+
* `startedAt` is the capture time of the `sessionStarted` frame (the earliest frame's, for a log
|
|
271
|
+
* that lacks one). `finishedAt` follows the frames IN LOG ORDER: a terminal frame closes the window
|
|
272
|
+
* at its capture time; a later {@link REOPEN_EVENT_TYPES} frame reopens it — a FAILED run is
|
|
273
|
+
* resumable under the same id (`POST /runs/:id/resume` → engine `resume_run_inner`, which
|
|
274
|
+
* re-dispatches the cursor unit and runs the run on to its own `sessionCompleted`), so QE evidence
|
|
275
|
+
* recorded after the rescue is that run's, whether the run is still executing (its execution
|
|
276
|
+
* frames reopen the window — r3 review, N3) or has since completed (r2 review, N1).
|
|
277
|
+
* `sessionCompleted` / `runCancelled` are FINAL: the engine refuses to resume either, so nothing
|
|
278
|
+
* after them reopens the window. Any other frame is ignored — a straggling non-terminal frame
|
|
279
|
+
* after the end does not reopen anything (F4). A log with no terminal frame (or one whose last
|
|
280
|
+
* terminal frame was followed by execution) belongs to a live run, whose window stays open. A
|
|
281
|
+
* `null` or empty log places the run nowhere in time, so it can link nothing — and when the log
|
|
282
|
+
* could not be READ (`unreadable`), the linkage carries that cause so the denial names it instead
|
|
283
|
+
* of "no sessionStarted" (F5).
|
|
284
|
+
*
|
|
285
|
+
* Chosen over gating on `session.status`: the log is what the route already reads for this
|
|
286
|
+
* purpose, it needs no second engine call, and it yields the same answer — a rescued run's
|
|
287
|
+
* persisted status is non-terminal from its re-dispatch until its next terminal frame, which is
|
|
288
|
+
* exactly the span between the reopening frame and the frame that closes the scan again.
|
|
289
|
+
*/
|
|
290
|
+
export function runWindowFromEvents(events, runId, unreadable) {
|
|
291
|
+
if (unreadable !== undefined)
|
|
292
|
+
return { runId, startedAt: null, finishedAt: null, logUnreadable: unreadable };
|
|
293
|
+
if (events === null || events.length === 0)
|
|
294
|
+
return { runId, startedAt: null, finishedAt: null };
|
|
295
|
+
const at = (e) => typeof e.ts === 'number' && Number.isFinite(e.ts) ? e.ts : null;
|
|
296
|
+
const started = events.find((e) => e.type === 'sessionStarted');
|
|
297
|
+
let startedAt = started !== undefined ? at(started) : null;
|
|
298
|
+
if (startedAt === null) {
|
|
299
|
+
for (const e of events) {
|
|
300
|
+
const t = at(e);
|
|
301
|
+
if (t !== null && (startedAt === null || t < startedAt))
|
|
302
|
+
startedAt = t;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
let finishedAt = null;
|
|
306
|
+
for (const e of events) {
|
|
307
|
+
if (TERMINAL_EVENT_TYPES.has(e.type)) {
|
|
308
|
+
finishedAt = at(e) ?? finishedAt;
|
|
309
|
+
if (FINAL_EVENT_TYPES.has(e.type))
|
|
310
|
+
break; // nothing the engine emits after these reopens the run
|
|
311
|
+
}
|
|
312
|
+
else if (REOPEN_EVENT_TYPES.has(e.type) && finishedAt !== null) {
|
|
313
|
+
finishedAt = null; // a failed run rescued and executing again: live until its next terminal frame
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return { runId, startedAt, finishedAt };
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Assemble the acceptance view for one crew run: read the run's event log,
|
|
320
|
+
* read the ledger SCOPED TO THIS RUN (a read-only canonical-JSON read — the
|
|
321
|
+
* fallback that needs no bus), resolve the gate, and attach the freshest
|
|
212
322
|
* matching bus event when the opt-in subscription has seen one.
|
|
213
323
|
*/
|
|
214
324
|
export async function buildAcceptanceView(opts) {
|
|
215
325
|
const phases = acceptancePhaseIds(opts.workflow);
|
|
216
326
|
const required = phases.length > 0;
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
327
|
+
// The run's durable event log, read FIRST: it is both the conformance section's enforcement
|
|
328
|
+
// record and the ledger read's linkage — a verdict is this run's only if its QE run falls inside
|
|
329
|
+
// the lifetime the log records (or the writer stamped the run id). An unreadable or absent log
|
|
330
|
+
// means an unknown window, and an unknown window links nothing (F-E2E-013).
|
|
331
|
+
let eventRows = null;
|
|
332
|
+
let eventsError;
|
|
333
|
+
if (opts.events !== undefined) {
|
|
334
|
+
try {
|
|
335
|
+
eventRows = await opts.events(opts.runId);
|
|
336
|
+
}
|
|
337
|
+
catch (err) {
|
|
338
|
+
eventRows = null; // unreadable log ⇒ unverifiable enforcement, by resolveConformance's rule
|
|
339
|
+
eventsError = err instanceof Error ? err.message : String(err);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
const subject = opts.qeRunId !== undefined
|
|
343
|
+
? { qeRunId: opts.qeRunId }
|
|
344
|
+
: { run: runWindowFromEvents(eventRows, opts.runId, eventsError) };
|
|
345
|
+
const state = opts.repo !== null ? await readAcceptanceState(opts.repo.root_path, subject) : null;
|
|
220
346
|
const gate = resolveAcceptanceGate(required, state);
|
|
221
347
|
// The conformance half. Loader failures are NAMED, not flattened into an empty list — the
|
|
222
348
|
// section's own resolution turns "unreadable" into "not claimed clean" (deny-dominates).
|
|
@@ -233,15 +359,6 @@ export async function buildAcceptanceView(opts) {
|
|
|
233
359
|
else {
|
|
234
360
|
claimsError = 'claims loader not wired';
|
|
235
361
|
}
|
|
236
|
-
let eventRows = null;
|
|
237
|
-
if (opts.events !== undefined) {
|
|
238
|
-
try {
|
|
239
|
-
eventRows = await opts.events(opts.runId);
|
|
240
|
-
}
|
|
241
|
-
catch {
|
|
242
|
-
eventRows = null; // unreadable log ⇒ unverifiable enforcement, by resolveConformance's rule
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
362
|
const conformance = resolveConformance({
|
|
246
363
|
runId: opts.runId,
|
|
247
364
|
claims: claimRows,
|
|
@@ -290,6 +407,9 @@ export async function buildAcceptanceView(opts) {
|
|
|
290
407
|
}
|
|
291
408
|
: null,
|
|
292
409
|
manifest: state.manifest !== null ? summarizeManifest(state.manifest) : null,
|
|
410
|
+
attribution: state.attribution,
|
|
411
|
+
ledgerVerdicts: state.ledgerVerdicts,
|
|
412
|
+
attributedVerdicts: state.attributedVerdicts,
|
|
293
413
|
...(state.error !== undefined ? { error: state.error } : {}),
|
|
294
414
|
}
|
|
295
415
|
: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../src/qe/acceptance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../src/qe/acceptance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `qe-author-tests` — the governed test-authoring workflow (wave 6: F-7R2-003/004/005/012/014/015,
|
|
3
|
+
* acceptance verdict R4-r2), workflows-as-data.
|
|
4
|
+
*
|
|
5
|
+
* ## Why a workflow, not a free-text run
|
|
6
|
+
*
|
|
7
|
+
* The studio's "New test" used to `POST /testing/recon` a plain free-text governed run: the planner
|
|
8
|
+
* split the brief at sentence boundaries into seven alternating agent units, two of them chat
|
|
9
|
+
* replies ("Gate protocol acknowledged … What is the next task?"), every gate a vacuous
|
|
10
|
+
* default-allow, no `skill_ref` anywhere (the 40-specialist QE domain never routed), no deliver
|
|
11
|
+
* phase (the LAST worker opened the PR from its own shell — invisible to the ledger), no campaign
|
|
12
|
+
* registered (the Test landing stayed empty), and the produced Playwright e2e was never executed by
|
|
13
|
+
* the run — it failed at its first check on the first independent run (R4-r2: 0 of 12 checks).
|
|
14
|
+
*
|
|
15
|
+
* This def is the fix, as data the engine validates AS AUTHORED (wicked-core#414 — a code-writing
|
|
16
|
+
* agent phase carries the evidence-floor pin, the verified-evidence phase carries it too):
|
|
17
|
+
*
|
|
18
|
+
* recon (agent, neutral, `wicked-garden-qe` plan) — read the repo + its tests, detect the
|
|
19
|
+
* harness, map intent → behaviours → gaps
|
|
20
|
+
* author (agent, CREATOR, `wicked-garden-qe` author, — write behaviour tests against the repo's
|
|
21
|
+
* executes_code, evidence-floor pinned) own harness + `tests/PLAN-<slug>.md`
|
|
22
|
+
* verify (TOOL, verified_evidence, pinned) — {@link qeVerifyScript}: run the repo's own
|
|
23
|
+
* checks INCLUDING every produced test;
|
|
24
|
+
* FAIL if any fails or was never executed
|
|
25
|
+
* review (agent, EVALUATOR, `wicked-garden-qe` review,— independent fitness verdict; escalates a
|
|
26
|
+
* pinned, human_confirm_if verdict_not_pass) not-pass to a human, never auto-denies
|
|
27
|
+
* deliver — NOT here. Appended per run by the ENGINE-side composition (`deliver: "pr"`, the
|
|
28
|
+
* crew#393 default for a repo-scoped code-work def): the engine lifts, re-verifies,
|
|
29
|
+
* pushes and opens the PR so the ledger records the delivery. A worker seat never
|
|
30
|
+
* pushes (the wave-6 engine's remote-write fence refuses `git push`/`gh pr create`).
|
|
31
|
+
*
|
|
32
|
+
* The METHOD lives in the garden skill (`wicked-garden-qe`, actions plan/author/review) — each
|
|
33
|
+
* phase's inline `instructions` is a one-line orientation only, because a governed worker's prompt
|
|
34
|
+
* rides a single PTY line capped at 1022 bytes (wicked-core execute_wrapped.rs) and the planner
|
|
35
|
+
* folds the instructions onto that line beside the run intent.
|
|
36
|
+
*
|
|
37
|
+
* Crew-authored drop-in (like `capture-learnings`): NOT core-seeded, so `launchRun`'s
|
|
38
|
+
* `_writeBuiltinOverlay` write is the only way the engine resolves the id. Not `is_system`: it IS an
|
|
39
|
+
* operator-selectable work mode (the catalog finally carries something labelled test/QE — F-075).
|
|
40
|
+
*/
|
|
41
|
+
import type { PhaseDef, WorkflowDef } from '../core/types.js';
|
|
42
|
+
/** The workflow id — `GET /workflows` lists it; `POST /testing/author` launches it. */
|
|
43
|
+
export declare const QE_AUTHOR_TESTS_WORKFLOW = "qe-author-tests";
|
|
44
|
+
/** The garden skill every agent phase routes through (`skills/qe/SKILL.md`, actions by name). */
|
|
45
|
+
export declare const QE_SKILL = "wicked-garden-qe";
|
|
46
|
+
/** The deterministic verification phase's id (its unit is `<run>:verify` on the wire). */
|
|
47
|
+
export declare const QE_VERIFY_PHASE_ID = "verify";
|
|
48
|
+
/** Per-produced-file marker the verify phase prints: `QE-VERIFY: file=… harness=… exit=… status=…`. */
|
|
49
|
+
export declare const QE_VERIFY_MARKER = "QE-VERIFY:";
|
|
50
|
+
/** Repo-own-checks marker: `QE-VERIFY-CHECK: harness=… cmd="…" exit=…`. */
|
|
51
|
+
export declare const QE_VERIFY_CHECK_MARKER = "QE-VERIFY-CHECK:";
|
|
52
|
+
/** The one summary line: `QE-VERIFY-SUMMARY: produced=N executed=N passed=N failed=N …`. */
|
|
53
|
+
export declare const QE_VERIFY_SUMMARY_MARKER = "QE-VERIFY-SUMMARY:";
|
|
54
|
+
/** Where the author phase must record its plan (glob, repo-relative). */
|
|
55
|
+
export declare const QE_PLAN_GLOB = "tests/PLAN-*.md";
|
|
56
|
+
/** Ceiling for each phase's inline orientation — the PTY line also carries the intent. */
|
|
57
|
+
export declare const QE_MAX_INLINE_INSTRUCTION_BYTES = 600;
|
|
58
|
+
/**
|
|
59
|
+
* The verify phase's script — the R4-r2 floor: a produced test that fails, or was never run, FAILS
|
|
60
|
+
* the unit. Runs in the run worktree as `bash -lc`:
|
|
61
|
+
*
|
|
62
|
+
* 1. BASE — the run branch's fork point off origin's default branch (the engine's own derivation
|
|
63
|
+
* order: origin/HEAD, origin/main, origin/master; then a local main/master; else HEAD).
|
|
64
|
+
* 2. PRODUCED — every path changed/added since BASE plus every untracked file: the run's own work,
|
|
65
|
+
* committed or not. Test files are the conventional shapes (`*.test.*`, `*.spec.*`, `*_test.py`,
|
|
66
|
+
* `test_*.py`, `__tests__/`); fixtures, factories and the PLAN are produced but not "tests".
|
|
67
|
+
* 3. HARNESS per file — the REPOSITORY's own, resolved PER FILE by walking up from the file's
|
|
68
|
+
* directory to the nearest marker (monorepo-aware — review H-1/M-1 of #536): Playwright
|
|
69
|
+
* (`playwright.config.*` / `@playwright/test` in the nearest package.json) for `*.spec.*`, a
|
|
70
|
+
* Python Playwright rig (imports `playwright`), vitest/jest from the nearest package.json that
|
|
71
|
+
* declares them, pytest for every other test-shaped `.py` (nearest `pytest.ini` / `conftest.py`
|
|
72
|
+
* / `tox.ini` / `pyproject.toml [tool.pytest]` / `setup.cfg [tool:pytest]` dir, else the root).
|
|
73
|
+
* The RUNNER is the nearest `node_modules/.bin/<tool>` (or `.venv/bin/pytest` / an importable
|
|
74
|
+
* pytest) from that package dir up to the worktree root — NEVER `npx` (a registry fetch on the
|
|
75
|
+
* verify path) and NEVER a plain interpreter for a test-shaped file (a pytest module run as
|
|
76
|
+
* `python3 file.py` defines its functions and exits 0 with zero assertions — a vacuous PASS).
|
|
77
|
+
* A missing/unrunnable runner is NOT EXECUTED = fail, with "harness not available: <tool>" and
|
|
78
|
+
* the remedy (install the dependencies in the worktree in the author phase). The runner runs
|
|
79
|
+
* FROM its package dir with a package-relative path.
|
|
80
|
+
* 4. COLLECTED — every executed file must show ≥ 1 test in the RUNNER's own summary (pytest
|
|
81
|
+
* `N passed` / `collected N items`, vitest `Tests N passed`, jest `N total`, Playwright
|
|
82
|
+
* `N passed`, a Python rig's check/pass lines); exit 0 with 0 tests reported = NOT EXECUTED.
|
|
83
|
+
* 5. REPO CHECKS — the full unit suite of every (harness, package dir) a produced test used
|
|
84
|
+
* (vitest/jest/pytest) runs once too, so the produced tests are verified INSIDE the repository's
|
|
85
|
+
* own check, not beside it. The Playwright suite is not re-run whole (its produced specs ran
|
|
86
|
+
* individually).
|
|
87
|
+
* 6. VERDICT — `QE-VERIFY-SUMMARY:` then exit 0 only when: ≥ 1 produced test, every one executed
|
|
88
|
+
* with ≥ 1 test collected, none failed, the PLAN exists, and the repo checks passed. Every
|
|
89
|
+
* refusal names its reason.
|
|
90
|
+
*
|
|
91
|
+
* `set -u -o pipefail` but NOT `-e`: each command's exit is captured deliberately. `exec 2>&1`
|
|
92
|
+
* keeps the transcript chronological (the engine appends stderr after stdout otherwise).
|
|
93
|
+
*/
|
|
94
|
+
export declare function qeVerifyScript(): string;
|
|
95
|
+
/** The verify TOOL phase — deterministic, pinned to the evidence floor (the run left a change),
|
|
96
|
+
* `executes_code: false` like the deliver phase: engine-owned tooling, not governed agent work
|
|
97
|
+
* (a Tool unit is never worktree-guarded, so the harness's caches cannot deny it). */
|
|
98
|
+
export declare function qeVerifyPhase(dependsOn?: string[]): PhaseDef;
|
|
99
|
+
/** The shipped definition (see the module doc). Exported as data — tests assert it, the adapter
|
|
100
|
+
* serves it from `BUILTIN_WORKFLOWS`, and the engine validates it as authored at the overlay write. */
|
|
101
|
+
export declare const QE_AUTHOR_TESTS_WORKFLOW_DEF: WorkflowDef;
|
|
102
|
+
/** One produced test file as the verify phase judged it. */
|
|
103
|
+
export interface QeVerifiedFile {
|
|
104
|
+
path: string;
|
|
105
|
+
/** `playwright` | `playwright-python` | `vitest` | `jest` | `pytest` | `python` | `unknown`. */
|
|
106
|
+
harness: string;
|
|
107
|
+
cmd: string;
|
|
108
|
+
/** The process exit code; `null` when the file was never executed. */
|
|
109
|
+
exit: number | null;
|
|
110
|
+
/** How many tests the RUNNER reported for the file (its own summary line); `0` when nothing was
|
|
111
|
+
* collected — which reads as `not-executed` even on exit 0 (review H-1 of #536). */
|
|
112
|
+
tests: number;
|
|
113
|
+
/** The package dir (worktree-relative, `.` = root) the harness was resolved in and run from. */
|
|
114
|
+
pkg: string;
|
|
115
|
+
status: 'passed' | 'failed' | 'not-executed';
|
|
116
|
+
/** Why a `not-executed` file was not executed ("harness not available: pytest — …"). */
|
|
117
|
+
reason?: string;
|
|
118
|
+
}
|
|
119
|
+
/** One repository-own check the verify phase ran. */
|
|
120
|
+
export interface QeVerifiedCheck {
|
|
121
|
+
harness: string;
|
|
122
|
+
cmd: string;
|
|
123
|
+
exit: number;
|
|
124
|
+
}
|
|
125
|
+
/** The verify phase's report — what the campaign/test-set registration and the studio read. */
|
|
126
|
+
export interface QeVerifyReport {
|
|
127
|
+
files: QeVerifiedFile[];
|
|
128
|
+
checks: QeVerifiedCheck[];
|
|
129
|
+
produced: number;
|
|
130
|
+
executed: number;
|
|
131
|
+
passed: number;
|
|
132
|
+
failed: number;
|
|
133
|
+
notExecuted: number;
|
|
134
|
+
/** The produced `tests/PLAN-*.md` path, `null` when none was produced. */
|
|
135
|
+
plan: string | null;
|
|
136
|
+
checksFailed: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Parse the verify unit's transcript into a {@link QeVerifyReport}. `null` when the transcript
|
|
140
|
+
* carries no `QE-VERIFY-SUMMARY:` line (the phase never reached its verdict — the unit's status
|
|
141
|
+
* and `denial_reason` say why).
|
|
142
|
+
*/
|
|
143
|
+
export declare function parseQeVerifyOutput(text: string): QeVerifyReport | null;
|
|
144
|
+
/** One planned phase as the intake gate shows it — derived from the DEF, not from prose. */
|
|
145
|
+
export interface QeAuthorPlanPhase {
|
|
146
|
+
id: string;
|
|
147
|
+
kind: PhaseDef['kind'];
|
|
148
|
+
role: PhaseDef['role'];
|
|
149
|
+
executor: 'agent' | 'tool';
|
|
150
|
+
skillRef: string | null;
|
|
151
|
+
/** `auto` | `human` (unconditional confirm) | `human_if_not_pass`. */
|
|
152
|
+
gate: 'auto' | 'human' | 'human_if_not_pass';
|
|
153
|
+
executesCode: boolean;
|
|
154
|
+
/** `true` for the phase the ENGINE appends and owns (the deliver phase). */
|
|
155
|
+
engine?: boolean;
|
|
156
|
+
}
|
|
157
|
+
/** The plan the intake gate shows: the def's phases in order, then the engine's deliver phase when
|
|
158
|
+
* the launch delivers, and the seats the council may pick from (the launcher's eligible roster). */
|
|
159
|
+
export interface QeAuthorPlan {
|
|
160
|
+
workflow: string;
|
|
161
|
+
phases: QeAuthorPlanPhase[];
|
|
162
|
+
seats: string[];
|
|
163
|
+
}
|
|
164
|
+
export declare function qeAuthorPlan(def: WorkflowDef, seats: string[], deliver: boolean): QeAuthorPlan;
|
|
165
|
+
//# sourceMappingURL=author-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"author-workflow.d.ts","sourceRoot":"","sources":["../../src/qe/author-workflow.ts"],"names":[],"mappings":"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"}
|