wicked-crew-api-types 0.104.0 → 0.106.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 +111 -0
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -267,6 +267,12 @@ export interface HealthCapabilities {
267
267
  * receipts. ABSENT on an older daemon — do not send the field (its strict schema 400s on it).
268
268
  */
269
269
  reducedAssurance?: boolean;
270
+ /**
271
+ * (api-types 0.106.0) `LaunchRunBody.skipQeAcceptance` / `forceQeAcceptance` are accepted (the
272
+ * installed addon carries the QE acceptance decision, wicked-core-ts >= 0.7.49), and receipts
273
+ * carry `qe`. ABSENT on an older daemon — do not send the fields (its strict schema 400s on them).
274
+ */
275
+ qeAcceptanceOverride?: boolean;
270
276
  }
271
277
 
272
278
  /** One `GET /health.warnings[]` entry (additive; wicked-core#411 / wicked-crew#497). */
@@ -1972,6 +1978,33 @@ export type AssuranceSkipReason =
1972
1978
  export interface RunAssurance {
1973
1979
  mode: AssuranceMode;
1974
1980
  required: AssuranceRequirement[];
1981
+ /** (api-types 0.106.0; wicked-core-ts >= 0.7.49) The run's QE acceptance decision, present
1982
+ * exactly when `required` holds `qe_acceptance`. ABSENT on an older engine (then a required
1983
+ * `qe_acceptance` is enforced). */
1984
+ qe?: QeAcceptanceDecision;
1985
+ }
1986
+
1987
+ /** (api-types 0.106.0) `QeAcceptanceDecision.status`. */
1988
+ export type QeAcceptanceStatus = 'required' | 'waived' | 'skipped' | (string & {});
1989
+
1990
+ /**
1991
+ * (api-types 0.106.0; wicked-core-ts >= 0.7.49; QE-IN-APP-WORKFLOWS) A run's QE acceptance
1992
+ * decision, on `RunAssurance.qe` and every receipt. `basis: 'plan'` is the launch's provisional
1993
+ * `required` (a plan has no diff); `'operator'` is an explicit skip (with its reason) or force;
1994
+ * `'diff'` is the binding decision the run's QE unit made from the run's diff — `waived` only when
1995
+ * every scoring dimension is in its lowest band (`score <= threshold`, no complexity or novelty).
1996
+ * A creator after a waiver revokes it. `reason` is what a plan, gate or delivery shows.
1997
+ */
1998
+ export interface QeAcceptanceDecision {
1999
+ status: QeAcceptanceStatus;
2000
+ basis: 'plan' | 'operator' | 'diff' | (string & {});
2001
+ score: number | null;
2002
+ threshold: number;
2003
+ reason: string;
2004
+ /** The score's own lines, one per term, when it was scored. */
2005
+ reasons: string[];
2006
+ ord: number | null;
2007
+ tree: string | null;
1975
2008
  }
1976
2009
 
1977
2010
  /** One instrument a receipt did NOT run, and why. */
@@ -2001,6 +2034,10 @@ export interface AssuranceReceipt {
2001
2034
  judge: string | null;
2002
2035
  tree: string | null;
2003
2036
  attempt: number;
2037
+ /** (api-types 0.106.0) The run's QE acceptance decision when the receipt was cut; ABSENT when the
2038
+ * run does not require QE acceptance (or on an older engine). A waived or skipped one is also a
2039
+ * `skipped[]` entry (reason `qe_waived_by_score` | `qe_skipped_by_operator`). */
2040
+ qe?: QeAcceptanceDecision;
2004
2041
  }
2005
2042
 
2006
2043
  /**
@@ -2009,6 +2046,11 @@ export interface AssuranceReceipt {
2009
2046
  * non-PASS verdict, no verdict, an unattributed verdict or an unreadable ledger refuses delivery.
2010
2047
  */
2011
2048
  export interface QeAcceptanceCheck {
2049
+ /** (api-types 0.106.0) `required` — the ledger was read and `satisfied` is its PASS; `waived` —
2050
+ * the run's score waived it (`reason` names the score); `skipped` — the operator skipped it at
2051
+ * launch (`reason` names the reason). A waived or skipped check is `satisfied` with no verdict.
2052
+ * ABSENT on an older daemon (read as `required`). */
2053
+ status?: QeAcceptanceStatus;
2012
2054
  satisfied: boolean;
2013
2055
  /** The gate's own words (`GET /runs/:id/acceptance` → `gate.reason`). */
2014
2056
  reason: string;
@@ -2761,6 +2803,17 @@ export type RunBaseResolvedEvent = {
2761
2803
  runBranch?: string;
2762
2804
  };
2763
2805
 
2806
+ /** (api-types 0.106.0; wicked-core-ts >= 0.7.49) The run's QE acceptance decision changed at a
2807
+ * unit's dispatch: the run's QE unit scored the run's diff (`qe.basis: 'diff'`, `required` or
2808
+ * `waived`), or a creator dispatched after a waiver revoked it. From this point the decision is on
2809
+ * the session's contract (`AgentSession.assurance.qe`). `type` alias on purpose. */
2810
+ export type QeAcceptanceDecidedEvent = {
2811
+ type: 'qeAcceptanceDecided';
2812
+ session: string;
2813
+ ord: number;
2814
+ qe: QeAcceptanceDecision;
2815
+ };
2816
+
2764
2817
  /** The gate-evidence events (wicked-core F-036/F-039, extended by wicked-core#431 — api-types 0.33.0
2765
2818
  * added {@link WorktreeRestoredEvent}, {@link DeliverLiftEvaluatedEvent} and
2766
2819
  * {@link EvaluatorToolCallDeniedEvent}) as a discriminated union for consumers that narrow on `type`;
@@ -4556,6 +4609,20 @@ export interface LaunchRunBody {
4556
4609
  * operator before sending `true`; send it only when `GET /health.capabilities.reducedAssurance === true`.
4557
4610
  */
4558
4611
  reducedAssurance?: boolean;
4612
+ /**
4613
+ * (api-types 0.106.0; wicked-core QE-IN-APP-WORKFLOWS) SKIP a required QE acceptance, for this
4614
+ * reason (non-empty, the operator's own words). Persisted on the contract
4615
+ * (`assurance.qe.status: 'skipped'`, `basis: 'operator'`) and labelled on the run, every gate and
4616
+ * the delivery ("QE acceptance skipped by operator: <reason>"). Omitted: a required QE acceptance
4617
+ * is never skipped. 400 beside `forceQeAcceptance`; the engine refuses it on a run whose workflow
4618
+ * does not require QE acceptance. Send only when `GET /health.capabilities.qeAcceptanceOverride`.
4619
+ */
4620
+ skipQeAcceptance?: { reason: string };
4621
+ /**
4622
+ * (api-types 0.106.0) REQUIRE QE acceptance whatever the run's impact score says (no waiver).
4623
+ * `false` is the same as omitting it. 400 beside `skipQeAcceptance`.
4624
+ */
4625
+ forceQeAcceptance?: boolean;
4559
4626
  }
4560
4627
 
4561
4628
  /** `POST /linked-issues/preview` (crew#825): what a workflow launch of `problem` WOULD append. */
@@ -5274,6 +5341,50 @@ export interface ElicitationResponse {
5274
5341
  content?: { response: string };
5275
5342
  }
5276
5343
 
5344
+ // ── Inventory claims (wicked-crew#721) — whether each enumerating step's list is complete ──
5345
+
5346
+ /**
5347
+ * How fully an enumerating step's source answered (wicked-garden `core/refs/inventory-report.md`).
5348
+ * `unknown` is crew's own reading of a block that does not parse, or has a required field missing
5349
+ * or misshapen: it never reads as `full`.
5350
+ */
5351
+ export type InventoryAnswered = 'full' | 'partial' | 'none' | 'unknown';
5352
+
5353
+ /**
5354
+ * One `wicked-inventory` block a step ended its reply with: where it listed from, how fully the
5355
+ * source answered, how many it listed, the total the source reported (`null` when it reports
5356
+ * none) and what it could not read. A `full` its own numbers contradict reads `partial`, with the
5357
+ * contradiction added to `unread`.
5358
+ */
5359
+ export interface InventoryClaim {
5360
+ source: string | null;
5361
+ answered: InventoryAnswered;
5362
+ listed: number | null;
5363
+ expected: number | null;
5364
+ unread: string[];
5365
+ }
5366
+
5367
+ /** One unit of a run that claimed an inventory. */
5368
+ export interface RunInventoryUnit {
5369
+ ord: number;
5370
+ unitId: string;
5371
+ claims: InventoryClaim[];
5372
+ }
5373
+
5374
+ /**
5375
+ * `GET /runs/:id/inventory` (404 for an unknown run). `complete` is true only when at least one
5376
+ * unit claimed an inventory, every claim is `full` and every finished unit's output was readable;
5377
+ * a unit whose output could not be read is listed in `unreadUnits`. `readable: false` when the
5378
+ * adapter keeps no transcripts (then `units` and `unreadUnits` are empty).
5379
+ */
5380
+ export interface RunInventoryResponse {
5381
+ runId: string;
5382
+ readable: boolean;
5383
+ complete: boolean;
5384
+ units: RunInventoryUnit[];
5385
+ unreadUnits: string[];
5386
+ }
5387
+
5277
5388
  // ── Presets (DES-TEAMING-002 §8.4, seam C2) — saved phase selections ──────────
5278
5389
 
5279
5390
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.104.0",
3
+ "version": "0.106.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",