wicked-crew-api-types 0.105.0 → 0.107.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/index.d.ts +114 -9
- 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. */
|
|
@@ -5091,11 +5158,12 @@ export interface SystemSettings {
|
|
|
5091
5158
|
baseSkillPolicy?: 'warn' | 'require';
|
|
5092
5159
|
/**
|
|
5093
5160
|
* The DELIVER IDENTITY (crew#549; additive): the GitHub login the deliver phase must push as.
|
|
5094
|
-
*
|
|
5095
|
-
*
|
|
5096
|
-
*
|
|
5097
|
-
*
|
|
5098
|
-
*
|
|
5161
|
+
* (crew#940) On a github.com origin the deliver script reads THIS login's own token from gh's
|
|
5162
|
+
* keyring and uses it for its gh calls and its git fetch/push alone, whatever account gh has
|
|
5163
|
+
* active; a login gh holds no token for is "GitHub credentials not configured", refused before
|
|
5164
|
+
* anything is staged. An exported `GH_TOKEN` wins, and is refused when it authenticates as
|
|
5165
|
+
* another login. `''`/absent ⇒ the `GH_ACCOUNT` env var decides, and unset there means the phase
|
|
5166
|
+
* pushes as whatever login gh holds (git's credential cross-checked), said aloud on the gate card.
|
|
5099
5167
|
*
|
|
5100
5168
|
* A LOGIN ONLY — never a token. The credential itself stays in gh's keyring or in the daemon's
|
|
5101
5169
|
* `GH_TOKEN`; `GET /settings` returns this login and no secret ever.
|
|
@@ -5328,6 +5396,9 @@ export interface RunInventoryResponse {
|
|
|
5328
5396
|
export interface PresetStep {
|
|
5329
5397
|
catalog: string;
|
|
5330
5398
|
id: string;
|
|
5399
|
+
/** (crew#928, wicked-core#854) The step changes no file in the run's tree; see
|
|
5400
|
+
* {@link TeamPlanStep.writes_nothing}. */
|
|
5401
|
+
writes_nothing?: boolean;
|
|
5331
5402
|
[k: string]: unknown;
|
|
5332
5403
|
}
|
|
5333
5404
|
|
|
@@ -7130,7 +7201,8 @@ export interface DiagnosticsSkillsFinding {
|
|
|
7130
7201
|
* an `error` under `'require'` (the engine refuses every launch at intake); cleared by a publish
|
|
7131
7202
|
* that hands it. Also carried as `DiagnosticsSkills.baseSkill.finding`; `skills.phase-skill`
|
|
7132
7203
|
* (`warning`, crew#661) = a subsystem's phases declare a skill the published snapshot did not hold
|
|
7133
|
-
* when it armed, so they run without it — one per `DiagnosticsSkills.phaseSkillGaps` entry
|
|
7204
|
+
* when it armed, so they run without it — one per `DiagnosticsSkills.phaseSkillGaps` entry (none
|
|
7205
|
+
* since crew#935);
|
|
7134
7206
|
* `skills.garden` (`error`, api-types 0.78.0, crew#753) = the installed wicked-garden is older
|
|
7135
7207
|
* than the daemon requires (`GardenRequiredBody.required`), so it is not used: found at seed,
|
|
7136
7208
|
* the runtime is `config-error` and the engine is handed a refusal path. Rides
|
|
@@ -7207,7 +7279,9 @@ export interface DiagnosticsSkills {
|
|
|
7207
7279
|
/** Subsystems whose phases run WITHOUT a skill their workflow declares (crew#661; additive) — one
|
|
7208
7280
|
* entry per subsystem, judged when that seam ARMED (the decision holds until the daemon restarts).
|
|
7209
7281
|
* Each entry also rides `findings` as a `skills.phase-skill` warning. `[]` when every armed seam
|
|
7210
|
-
* holds its skill; ABSENT on a daemon before this field (read it as unknown, not as `[]`).
|
|
7282
|
+
* holds its skill; ABSENT on a daemon before this field (read it as unknown, not as `[]`). Always
|
|
7283
|
+
* `[]` from a daemon carrying crew#935: the interactive seams launch wicked-core's presets, which
|
|
7284
|
+
* always run their skill (a snapshot without it fails the run), so no seam arms without it. */
|
|
7211
7285
|
phaseSkillGaps?: DiagnosticsPhaseSkillGap[];
|
|
7212
7286
|
}
|
|
7213
7287
|
|
|
@@ -8065,8 +8139,36 @@ export interface TeamPlanStep {
|
|
|
8065
8139
|
* phase's pool; a raise is refused (`wicked.team.plan.refused`, reason `pool_raised`). Omitted
|
|
8066
8140
|
* when unset. */
|
|
8067
8141
|
pool?: number;
|
|
8142
|
+
/** (crew#928, wicked-core#854) The step changes no file in the run's tree (capture-learnings'
|
|
8143
|
+
* `capture`, steering-author's `propose`). A plan whose every creator step sets it, and that has
|
|
8144
|
+
* no `run` step, may be scoped `SCOPE {"touch":[]}`, which scores 0. Set on a code phase it is
|
|
8145
|
+
* refused (`writes_nothing_on_code`). Omitted when unset. */
|
|
8146
|
+
writes_nothing?: boolean;
|
|
8068
8147
|
}
|
|
8069
8148
|
|
|
8149
|
+
/**
|
|
8150
|
+
* The stable token of a plan-rule refusal (wicked-core `PlanRefusal::reason`). A refusal formatted
|
|
8151
|
+
* by the engine's `PlanRefusal` reads `<token>: <detail>`; a skin matches the token, never the
|
|
8152
|
+
* prose. NOT every `plan.refused` reason is one: some are plain text (an auto-mode floor override,
|
|
8153
|
+
* a held edit the run ended before applying), and a launch / preview / `propose_plan` error message
|
|
8154
|
+
* CONTAINS the refusal text behind a context prefix (`the plan is refused: <token>: …`), so search
|
|
8155
|
+
* for the token rather than splitting on the first `:`. Open-ended: the engine may add tokens.
|
|
8156
|
+
*
|
|
8157
|
+
* - `pool_raised` (crew#894, wicked-core#810): a step raised its phase's pool.
|
|
8158
|
+
* - `writes_nothing_on_code` (crew#928, wicked-core#854): `writes_nothing: true` on a step whose
|
|
8159
|
+
* phase executes code.
|
|
8160
|
+
* - `security_review_on_non_code_plan` (crew#928, wicked-core#846/#854): a `security_review` in a
|
|
8161
|
+
* plan where no step does code work; its diff evidence floor could never pass. The detail names
|
|
8162
|
+
* the step and either the held testing rule that added it (`rule TST-1002 requires it`) or `the
|
|
8163
|
+
* plan authored it`. Raised mid-run (a rule fired by the diff re-score) it FAILS the run, and
|
|
8164
|
+
* the run's error text carries the rule.
|
|
8165
|
+
*/
|
|
8166
|
+
export type PlanRefusalToken =
|
|
8167
|
+
| 'pool_raised'
|
|
8168
|
+
| 'writes_nothing_on_code'
|
|
8169
|
+
| 'security_review_on_non_code_plan'
|
|
8170
|
+
| (string & {});
|
|
8171
|
+
|
|
8070
8172
|
export interface TeamPlanOverride {
|
|
8071
8173
|
remove: string[];
|
|
8072
8174
|
reason: string;
|
|
@@ -8149,8 +8251,11 @@ export type TeamPlanAcceptedPayload = TeamEnvelope & {
|
|
|
8149
8251
|
export type TeamPlanRefusedPayload = TeamEnvelope & {
|
|
8150
8252
|
proposal_id: string;
|
|
8151
8253
|
base_rev: number | null;
|
|
8152
|
-
/** The engine's refusal reason, verbatim
|
|
8153
|
-
*
|
|
8254
|
+
/** The engine's refusal reason, verbatim. A plan-rule refusal reads `<token>: <detail>` with a
|
|
8255
|
+
* {@link PlanRefusalToken} — e.g. `pool_raised` (crew#894, wicked-core#810: a plan step raised a
|
|
8256
|
+
* phase's `pool`; a step may only lower it), `security_review_on_non_code_plan` or
|
|
8257
|
+
* `writes_nothing_on_code` (crew#928); other reasons are plain text. A launch / preview /
|
|
8258
|
+
* `propose_plan` error message contains the same text behind a context prefix. */
|
|
8154
8259
|
reason: string;
|
|
8155
8260
|
};
|
|
8156
8261
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicked-crew-api-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.107.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",
|