wicked-crew-api-types 0.145.0 → 0.147.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 +49 -0
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1685,6 +1685,37 @@ export interface GateInfo {
1685
1685
  * readiness read (then `rejudge` is not offered).
1686
1686
  */
1687
1687
  rejudge?: RejudgeOffer;
1688
+ /**
1689
+ * (api-types 0.146.0; studio#923) On a DELIVER gate whose delivery QE acceptance refuses (no
1690
+ * attributed PASS, an INCONCLUSIVE or unbound review, a FAIL): the operator's skip of QE
1691
+ * acceptance IN PLACE, on this gate — no relaunch. Answer it with
1692
+ * `POST /runs/:id/gate {approve: true, action: 'skip_qe', amend: '<reason>', ord}` (the reason is
1693
+ * required). The run's QE decision becomes `skipped` by the operator and the delivery goes,
1694
+ * labelled "QE acceptance skipped by operator: <reason>" on the run, every later gate and the
1695
+ * delivery. Only a human operator may take it: an operator-trust actor that is not human (a seat's
1696
+ * token, a standing order) gets a 403 `{code: 'human_operator_only'}`, audited as
1697
+ * `gate.skip_qe_refused`; an actor below operator trust is refused 403 by the daemon's trust check
1698
+ * before the route runs, as for every gate answer. The skip is audited as `gate.qe_skipped`. Read each time: ABSENT once QE passes, on every
1699
+ * other gate, on a run that does not require QE acceptance, and on an older daemon.
1700
+ */
1701
+ skipQe?: SkipQeOffer;
1702
+ }
1703
+
1704
+ /**
1705
+ * (api-types 0.146.0; studio#923) The operator's in-place QE skip a deliver gate offers
1706
+ * ({@link GateInfo.skipQe}). `action` is the stable choice key (the {@link GateDecision.action}
1707
+ * token); `qeAcceptance` is the check that refuses the delivery now, so the card can say why (an
1708
+ * INCONCLUSIVE review means a re-run of QE may hit the same wall).
1709
+ */
1710
+ export interface SkipQeOffer {
1711
+ action: 'skip_qe';
1712
+ /** Always `true`: `amend` must carry a non-empty reason (a 400 otherwise). */
1713
+ reasonRequired: true;
1714
+ /** Always `'human_operator'`: who may take it. */
1715
+ actor: 'human_operator';
1716
+ /** The label the skip carries: `QE acceptance skipped by operator`. */
1717
+ label: string;
1718
+ qeAcceptance: QeAcceptanceCheck;
1688
1719
  }
1689
1720
 
1690
1721
  /**
@@ -2247,6 +2278,13 @@ export type WorkerStallEscalatedFrame = {
2247
2278
  * so the unit was left for a human rather than dispatched to a seat known to fail.
2248
2279
  */
2249
2280
  reason?: 'tool_unit' | 'evaluating' | 'evaluator_distinct' | 'no_output' | 'no_eligible_seat';
2281
+ /**
2282
+ * (api-types 0.147.0, crew#972; additive) `true` when the SILENT-TURN rung acted: the cursor
2283
+ * unit's seat had streamed no output at all since its dispatch for `workerSilentTurnMinutes`
2284
+ * (default 8), and neither the daemon's process tree nor the seat's container was busy. Absent
2285
+ * when the 15/30-minute ladder acted.
2286
+ */
2287
+ silentTurn?: true;
2250
2288
  /**
2251
2289
  * The seats the failover pick excluded under evaluator ≠ creator (crew#638; additive): a
2252
2290
  * creator cursor avoids the run's evaluator seats, an evaluator cursor the seats that built its
@@ -5848,6 +5886,17 @@ export interface SystemSettings {
5848
5886
  * Ignored when `workerStallEscalateAction` is `'notify'`.
5849
5887
  */
5850
5888
  workerStallMaxEscalations?: number;
5889
+ /**
5890
+ * The SILENT-TURN rung of the escalation ladder (api-types 0.147.0, crew#972): minutes a seat's
5891
+ * turn may go with NO streamed output at all since its dispatch before the watchdog acts early —
5892
+ * the same action and budget as {@link workerStallEscalateMinutes}, the frame flagged
5893
+ * `silentTurn: true`. Integer 0..1440; `0` = off; absent = the daemon default (8). It applies only
5894
+ * while escalation is armed, only before the seat's first output, never once the worker returned
5895
+ * (its gate evaluation in flight) and never to a tool unit. A run whose own processes or the
5896
+ * seat's container burn CPU (a test runner, a build) is not silent, as for the ladder. Rig run
5897
+ * 115fabdb: a codex review sat 30 min with no output and ~1 s of seat CPU; pi then did it in 2.
5898
+ */
5899
+ workerSilentTurnMinutes?: number;
5851
5900
  /**
5852
5901
  * SKIN-OWNED preference blobs (crew#323). The settings store is shared: alongside the
5853
5902
  * engine's keys it carries the studio's own state — `studio.appearance` (accent/logo/theme),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.145.0",
3
+ "version": "0.147.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",