wicked-crew-api-types 0.119.0 → 0.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +66 -3
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -273,6 +273,15 @@ export interface HealthCapabilities {
273
273
  * carry `qe`. ABSENT on an older daemon — do not send the fields (its strict schema 400s on them).
274
274
  */
275
275
  qeAcceptanceOverride?: boolean;
276
+ /**
277
+ * (api-types 0.120.0) The daemon's QE acceptance setting ({@link SystemSettings.qeAcceptance}):
278
+ * `'required'` (the default) or `'off'` — every launch of a workflow that requires QE acceptance,
279
+ * and that neither skips nor forces it, is skipped with a reason naming the setting (labelled on
280
+ * the run, every gate and the delivery); launches the engine takes without crew excepted (see the
281
+ * setting). ABSENT on an
282
+ * older daemon — read as `'required'`.
283
+ */
284
+ qeAcceptance?: 'required' | 'off';
276
285
  }
277
286
 
278
287
  /** One `GET /health.warnings[]` entry (additive; wicked-core#411 / wicked-crew#497). */
@@ -1270,8 +1279,9 @@ export interface SeatIssueCommand {
1270
1279
  */
1271
1280
  export interface RosterResponse {
1272
1281
  roster: RosterSeat[];
1273
- /** Present on a `?refresh=` read: `probed` — the answer is fresh; `timed_out` — still running
1274
- * (the roster shows the last reading; the check keeps going); `not_probed` — the seat has no
1282
+ /** Present on a `?refresh=` read: `probed` — the answer is fresh; `timed_out` — no fresh answer:
1283
+ * the check is still running (it keeps going), or it finished and could not tell (a status command
1284
+ * that timed out); either way the roster shows the last reading; `not_probed` — the seat has no
1275
1285
  * sign-in check (it reads its credential file). */
1276
1286
  refresh?: { key: string; outcome: 'probed' | 'timed_out' | 'not_probed' };
1277
1287
  }
@@ -2155,6 +2165,24 @@ export interface OperatorJudgment {
2155
2165
  reason: string | null;
2156
2166
  }
2157
2167
 
2168
+ /**
2169
+ * (api-types 0.121.0, wicked-core judge fallback, operator ruling 2026-10-14) A judge seated IN PLACE
2170
+ * of the run's preferred judge: every preferred judge seat was benched for the run (codex's worktree
2171
+ * bench, a sign-in refusal) or failed as a seat while judging, so a fallback seat (Claude Code, then
2172
+ * Antigravity) distinct from every party to the work (creator, authors, evaluator, validator author,
2173
+ * team) judged instead. With no such seat the gate still holds (`judge_unavailable`).
2174
+ */
2175
+ export interface JudgeFallback {
2176
+ /** The seat that judged. */
2177
+ seat: string;
2178
+ /** The preferred judge seats it stood in for, in rotation order. */
2179
+ preferred: string[];
2180
+ /** Why they could not judge, in the engine's words (`codex benched: …` / `copilot unavailable: …`). */
2181
+ reason: string;
2182
+ /** The disclosure line to show as-is: `judge: agy (fallback; codex benched: …)`. */
2183
+ label: string;
2184
+ }
2185
+
2158
2186
  /** Why an instrument is absent from a receipt. */
2159
2187
  export type AssuranceSkipReason =
2160
2188
  | 'reduced_assurance'
@@ -2240,6 +2268,10 @@ export interface AssuranceReceipt {
2240
2268
  /** (api-types 0.110.0) Every gate the operator judged ("judged by operator"); ABSENT when none or on
2241
2269
  * an older engine. A unit receipt carries its own; a delivery receipt lists the run's. */
2242
2270
  operatorJudges?: OperatorJudgment[];
2271
+ /** (api-types 0.121.0) Every judge seated as a FALLBACK for a benched or unavailable preferred judge;
2272
+ * ABSENT when every judge was the run's own (the routine case) or on an older engine. A unit
2273
+ * receipt carries at most one; a delivery receipt lists the run's. */
2274
+ judgeFallbacks?: JudgeFallback[];
2243
2275
  }
2244
2276
 
2245
2277
  /**
@@ -4722,6 +4754,10 @@ export interface LaunchRunBody {
4722
4754
  * default and typo fallback). Requires wicked-core-ts ≥ 0.7.24 / crew ≥ 0.7.33 for the gate to
4723
4755
  * exist at all — read `AgentSession.auto_deliver` to learn whether the engine knows it. An
4724
4756
  * older daemon's launch schema rejects the field with a 400 — omit it against such servers.
4757
+ * `'auto'` on a workflow that requires QE acceptance (with no `skipQeAcceptance` and the daemon's
4758
+ * {@link SystemSettings.qeAcceptance} not `'off'`) is refused 400 `{ code: 'qe_acceptance_required',
4759
+ * error }` (crew ≥ 0.12.1; before that, `error` alone). The token is the one a refused delivery's
4760
+ * {@link QeAcceptanceRefusal} carries, but this 400 has no `acceptance` or `assurance`.
4725
4761
  */
4726
4762
  deliverGate?: 'human' | 'auto';
4727
4763
  /**
@@ -4816,7 +4852,9 @@ export interface LaunchRunBody {
4816
4852
  * reason (non-empty, the operator's own words). Persisted on the contract
4817
4853
  * (`assurance.qe.status: 'skipped'`, `basis: 'operator'`) and labelled on the run, every gate and
4818
4854
  * the delivery ("QE acceptance skipped by operator: <reason>"). Omitted: a required QE acceptance
4819
- * is never skipped. 400 beside `forceQeAcceptance`; the engine refuses it on a run whose workflow
4855
+ * is not skipped — unless the daemon's {@link SystemSettings.qeAcceptance} is `'off'`, which skips it
4856
+ * the same way with a reason naming the setting (a `forceQeAcceptance: true` launch still requires
4857
+ * it). 400 beside `forceQeAcceptance`; the engine refuses it on a run whose workflow
4820
4858
  * does not require QE acceptance. Send only when `GET /health.capabilities.qeAcceptanceOverride`.
4821
4859
  */
4822
4860
  skipQeAcceptance?: { reason: string };
@@ -5370,6 +5408,23 @@ export interface SystemSettings {
5370
5408
  * launches (those are always `'none'`).
5371
5409
  */
5372
5410
  deliverDefault?: 'pr' | 'none';
5411
+ /**
5412
+ * (api-types 0.120.0) QE ACCEPTANCE for this daemon. `'required'` (the shipped default; absent
5413
+ * reads the same): a run whose workflow requires `qe_acceptance` delivers only on an attributed
5414
+ * PASS unless its own launch sends `skipQeAcceptance`. `'off'`: every launch of such a workflow that
5415
+ * neither skips nor forces QE acceptance itself is SKIPPED, through the same skip, with a reason
5416
+ * naming this setting — `assurance.qe.status: 'skipped'`, `basis: 'operator'`, labelled on the run,
5417
+ * every gate and the delivery, and the deliver gate reads a skip, never a refusal. A launch's
5418
+ * `forceQeAcceptance: true` still requires it. `GET /health.capabilities.qeAcceptance` reports it.
5419
+ * (api-types 0.122.0) The launches the engine takes on its own — campaign nodes (as each dispatches) and
5420
+ * `wicked.crew.run.requested` bus requests — follow it too, when the engine addon carries
5421
+ * `setQeAcceptanceOff` (crew hands the setting to the engine with every settings read): such a
5422
+ * launch that gives no QE word of its own (`CampaignRunSpec.skip_qe_acceptance_reason` /
5423
+ * `force_qe_acceptance`, or the same keys on the bus request's `args`) is skipped with the same
5424
+ * reason, only when its contract requires QE acceptance. On an older addon those launches still
5425
+ * require it.
5426
+ */
5427
+ qeAcceptance?: 'required' | 'off';
5373
5428
  /**
5374
5429
  * (crew#552) Whether a completed onboarding run chains a `capture-learnings` run for the same
5375
5430
  * repo (filed in the onboarding run's project; proposals stay human-gated). Absent reads as
@@ -6954,6 +7009,14 @@ export interface CampaignRunSpec {
6954
7009
  /** The registered `WorkflowDef` id this node's Run follows — for a deterministic scenario node,
6955
7010
  * the per-node composed Tool workflow (`campaign-<campaign>-<node>`). */
6956
7011
  workflow_id?: string | null;
7012
+ /** (api-types 0.122.0; engine wire, QE acceptance) The node's own skip of a required QE acceptance, with its reason
7013
+ * — labelled on the node's run, gates and delivery. Absent unless the def set it (crew's
7014
+ * scenarios do not); refused beside `force_qe_acceptance` and on a workflow that does not
7015
+ * require QE acceptance. With neither set, the daemon's `qeAcceptance: 'off'` applies. */
7016
+ skip_qe_acceptance_reason?: string;
7017
+ /** (api-types 0.122.0; engine wire, QE acceptance) The node's own force: QE acceptance is required whatever the
7018
+ * run's score says. Absent = `false`. */
7019
+ force_qe_acceptance?: boolean;
6957
7020
  }
6958
7021
 
6959
7022
  /** A schedulable unit of the DAG — one node = one governed core Run. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.119.0",
3
+ "version": "0.122.0",
4
4
  "description": "The wire contract of the wicked-crew daemon's /api/v1 REST surface and /ws CoreEvent frames \u2014 types only, zero runtime",
5
5
  "type": "module",
6
6
  "types": "./index.d.ts",