wicked-crew-api-types 0.106.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.
Files changed (2) hide show
  1. package/index.d.ts +47 -9
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -5158,11 +5158,12 @@ export interface SystemSettings {
5158
5158
  baseSkillPolicy?: 'warn' | 'require';
5159
5159
  /**
5160
5160
  * The DELIVER IDENTITY (crew#549; additive): the GitHub login the deliver phase must push as.
5161
- * The deliver script reads `gh api user` AND asks git which credential it would use for the
5162
- * remote's host, and REFUSES — before anything is staged, committed or pushed — when either
5163
- * disagrees with this login (or, with nothing configured, when those two disagree with each
5164
- * other). `''`/absent ⇒ the `GH_ACCOUNT` env var decides, and unset there means the phase
5165
- * pushes as whatever login gh holds, said aloud on the gate card.
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.
5166
5167
  *
5167
5168
  * A LOGIN ONLY — never a token. The credential itself stays in gh's keyring or in the daemon's
5168
5169
  * `GH_TOKEN`; `GET /settings` returns this login and no secret ever.
@@ -5395,6 +5396,9 @@ export interface RunInventoryResponse {
5395
5396
  export interface PresetStep {
5396
5397
  catalog: string;
5397
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;
5398
5402
  [k: string]: unknown;
5399
5403
  }
5400
5404
 
@@ -7197,7 +7201,8 @@ export interface DiagnosticsSkillsFinding {
7197
7201
  * an `error` under `'require'` (the engine refuses every launch at intake); cleared by a publish
7198
7202
  * that hands it. Also carried as `DiagnosticsSkills.baseSkill.finding`; `skills.phase-skill`
7199
7203
  * (`warning`, crew#661) = a subsystem's phases declare a skill the published snapshot did not hold
7200
- * 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);
7201
7206
  * `skills.garden` (`error`, api-types 0.78.0, crew#753) = the installed wicked-garden is older
7202
7207
  * than the daemon requires (`GardenRequiredBody.required`), so it is not used: found at seed,
7203
7208
  * the runtime is `config-error` and the engine is handed a refusal path. Rides
@@ -7274,7 +7279,9 @@ export interface DiagnosticsSkills {
7274
7279
  /** Subsystems whose phases run WITHOUT a skill their workflow declares (crew#661; additive) — one
7275
7280
  * entry per subsystem, judged when that seam ARMED (the decision holds until the daemon restarts).
7276
7281
  * Each entry also rides `findings` as a `skills.phase-skill` warning. `[]` when every armed seam
7277
- * 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. */
7278
7285
  phaseSkillGaps?: DiagnosticsPhaseSkillGap[];
7279
7286
  }
7280
7287
 
@@ -8132,8 +8139,36 @@ export interface TeamPlanStep {
8132
8139
  * phase's pool; a raise is refused (`wicked.team.plan.refused`, reason `pool_raised`). Omitted
8133
8140
  * when unset. */
8134
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;
8135
8147
  }
8136
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
+
8137
8172
  export interface TeamPlanOverride {
8138
8173
  remove: string[];
8139
8174
  reason: string;
@@ -8216,8 +8251,11 @@ export type TeamPlanAcceptedPayload = TeamEnvelope & {
8216
8251
  export type TeamPlanRefusedPayload = TeamEnvelope & {
8217
8252
  proposal_id: string;
8218
8253
  base_rev: number | null;
8219
- /** The engine's refusal reason, verbatim — e.g. `pool_raised` (crew#894, wicked-core#810: a plan
8220
- * step raised a phase's `pool`; a step may only lower it). */
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. */
8221
8259
  reason: string;
8222
8260
  };
8223
8261
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.106.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",