wicked-crew-api-types 0.97.0 → 0.99.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 +94 -4
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -227,6 +227,8 @@ export interface HealthCapabilities {
227
227
  /**
228
228
  * `LaunchRunBody.revisesPr` is accepted (crew#550; crew ≥ 0.7.36). ABSENT on a daemon before
229
229
  * the field — read as `false`: do not send `revisesPr` to such a daemon.
230
+ * NOTE (crew#662): this CAPABILITY flag is a boolean; the LAUNCH field of the same name,
231
+ * `LaunchRunBody.revisesPr`, is the pull request NUMBER (a positive integer) — never `true`.
230
232
  */
231
233
  revisesPr?: boolean;
232
234
  /**
@@ -246,6 +248,12 @@ export interface HealthCapabilities {
246
248
  * as `false`: group such a daemon's runs one session per run.
247
249
  */
248
250
  runChatId?: boolean;
251
+ /**
252
+ * (crew#825; additive) `LaunchRunBody.excludeLinkedIssues` is accepted and
253
+ * `POST /linked-issues/preview` is served. ABSENT on an older daemon — read as `false`: do not
254
+ * send the field (its strict launch schema 400s on it) and do not call the preview.
255
+ */
256
+ linkedIssuesExclude?: boolean;
249
257
  /**
250
258
  * Repo-bound runs get an EVIDENCE ROOT for walkthroughs (WT-W1, api-types 0.74.0): the engine
251
259
  * addon takes `LaunchOptions.evidenceRoot` (wicked-core-ts ≥ 0.7.35), so a walkthrough step on a
@@ -818,6 +826,15 @@ export interface RosterSeat {
818
826
  * engine predating the field (serde omits `None`) and on seats with no known login flow.
819
827
  */
820
828
  login_invocation?: string;
829
+ /**
830
+ * The shell invocation that signs this seat OUT of its own configuration root (crew#615;
831
+ * wicked-core#807 `AgenticCli.logout_invocation`, core-ts >= 0.7.43): the CLI's own documented
832
+ * logout (`claude auth logout`, `codex logout`, `opencode auth logout`), prefixed with the seat's
833
+ * root exactly like {@link login_invocation}. Passed through VERBATIM; absent for a seat whose CLI
834
+ * documents no logout (copilot, pi, agy) and on an engine predating the field. `POST
835
+ * /seats/:cli/logout` runs it.
836
+ */
837
+ logout_invocation?: string;
821
838
  /**
822
839
  * Whether the seat LOOKS signed in — a cheap file/env-presence HEURISTIC computed by the
823
840
  * daemon (`seat-signin.ts`), never a spawned probe and never proof the credential still
@@ -2561,7 +2578,8 @@ export interface UnitPlannedEvent {
2561
2578
  description: string;
2562
2579
  stage: StageKind;
2563
2580
  role: PhaseRole;
2564
- gate: 'auto' | 'human_confirm' | 'human_confirm_if';
2581
+ /** `consent_before` from wicked-core-ts 0.7.43 (core#801, crew#888). */
2582
+ gate: 'auto' | 'human_confirm' | 'human_confirm_if' | 'consent_before';
2565
2583
  skill_ref: string | null;
2566
2584
  has_validator_pin: boolean;
2567
2585
  executor_type: 'agent' | 'tool';
@@ -4063,6 +4081,8 @@ export interface LaunchRunBody {
4063
4081
  * `deliver: 'none'` is a 400), and the PR must be OPEN and not from a fork (409 naming why).
4064
4082
  * Send it ONLY when `GET /health.capabilities.revisesPr === true` — an older daemon's strict
4065
4083
  * launch schema rejects the key with a 400.
4084
+ * NOTE (crew#662): a positive integer PR number — not the boolean capability flag
4085
+ * `HealthCapabilities.revisesPr` of the same name. A 400 names the field and what it expected.
4066
4086
  */
4067
4087
  revisesPr?: number;
4068
4088
  /**
@@ -4120,6 +4140,30 @@ export interface LaunchRunBody {
4120
4140
  * guard as `channel` above.
4121
4141
  */
4122
4142
  actor?: string;
4143
+ /**
4144
+ * (crew#825; additive) Issue refs the intent names that the daemon must NOT read and append to
4145
+ * the problem (`"541"`, `"#541"`, `"owner/repo#541"`; at most 50) — a reference in passing is not
4146
+ * a request to inline the issue. Answered as `LaunchRunResponse.linkedIssues[]` entries with
4147
+ * `excluded: true`. Send only when `GET /health.capabilities.linkedIssuesExclude === true`.
4148
+ */
4149
+ excludeLinkedIssues?: string[];
4150
+ }
4151
+
4152
+ /** `POST /linked-issues/preview` (crew#825): what a workflow launch of `problem` WOULD append. */
4153
+ export interface LinkedIssuesPreviewBody {
4154
+ problem: string;
4155
+ repoRef?: string;
4156
+ excludeLinkedIssues?: string[];
4157
+ }
4158
+
4159
+ /** The `POST /linked-issues/preview` 200 body: the same reading `POST /runs` does, nothing launched. */
4160
+ export interface LinkedIssuesPreviewResponse {
4161
+ issues: LinkedIssue[];
4162
+ /** Characters the block would add to the problem; `0` when nothing would be appended. */
4163
+ appendedChars: number;
4164
+ /** Present when the reading itself failed (the repo list or gh unreadable): a launch now runs on
4165
+ * the intent alone, exactly as `POST /runs` does on the same fault. */
4166
+ error?: string;
4123
4167
  }
4124
4168
 
4125
4169
  /**
@@ -4136,6 +4180,10 @@ export interface LinkedIssue {
4136
4180
  title?: string;
4137
4181
  /** Present when not `resolved`: why, in one line. */
4138
4182
  error?: string;
4183
+ /** (crew#825; additive) Present when `resolved`: characters this issue adds to the problem. */
4184
+ chars?: number;
4185
+ /** (crew#825; additive) `true` when the launch left this ref out (`excludeLinkedIssues`). */
4186
+ excluded?: true;
4139
4187
  }
4140
4188
 
4141
4189
  /** The `POST /runs` 201 body. `linkedIssues` (crew#627, additive) is present when the intent of a
@@ -4149,6 +4197,12 @@ export interface LaunchRunResponse {
4149
4197
  * delivery), and `notice` says so in words a composer can show. ABSENT on every other launch.
4150
4198
  */
4151
4199
  freeText?: { notice: string };
4200
+ /**
4201
+ * (crew#874) PRESENT when the installed wicked-garden is not the one the published skills
4202
+ * generation was built from: the run executes the PUBLISHED generation, and this says so — the
4203
+ * same `skills.installed-ahead` finding `GET /diagnostics.skills.findings` carries.
4204
+ */
4205
+ skillsWarning?: { kind: 'skills.installed-ahead'; severity: 'warning'; message: string };
4152
4206
  }
4153
4207
 
4154
4208
  /**
@@ -4257,9 +4311,17 @@ export interface GraphKind {
4257
4311
  /** Gate position in the value→strategy→execution ladder. */
4258
4312
  export type GateType = 'value' | 'strategy' | 'execution';
4259
4313
 
4260
- /** Human-confirm spec for a phase gate (serde flattened from Rust enum). */
4314
+ /**
4315
+ * Human-confirm spec for a phase gate (serde flattened from Rust enum).
4316
+ *
4317
+ * `'consent_before'` (wicked-core#805 / core#801, core-ts >= 0.7.43; crew#888): the engine pauses
4318
+ * BEFORE the phase runs, with `awaitingHuman{gateKind: 'consent'}`, whatever the run-level
4319
+ * `humanConfirm` policy, and nothing pauses after it. Approve runs the phase; reject cancels the run
4320
+ * with nothing in the phase run. A standing order never answers a `consent` gate.
4321
+ */
4261
4322
  export type GateSpec =
4262
4323
  | 'auto'
4324
+ | 'consent_before'
4263
4325
  | { human_confirm: { unconditional: boolean } }
4264
4326
  | { human_confirm_if: 'verdict_not_pass' };
4265
4327
 
@@ -4378,6 +4440,28 @@ export interface DomainCoverage {
4378
4440
  resolved: number;
4379
4441
  }
4380
4442
 
4443
+ /**
4444
+ * `POST /seats/:cli/login` and `POST /seats/:cli/logout` (crew#615): the PTY size for the terminal
4445
+ * the daemon opens running the seat's own `login_invocation` / `logout_invocation`. Both optional
4446
+ * (default 100 x 30).
4447
+ */
4448
+ export interface SeatSessionBody {
4449
+ cols?: number;
4450
+ rows?: number;
4451
+ }
4452
+
4453
+ /**
4454
+ * The answer to {@link SeatSessionBody}: the terminal running the seat's sign-in / sign-out
4455
+ * command. Drive and read it over `/ws/terminals/:id` (a device URL streams there). 404 when the
4456
+ * seat is unknown or its CLI documents no such command.
4457
+ */
4458
+ export interface SeatSessionResponse {
4459
+ terminalId: string;
4460
+ /** The seat key the command was run for. */
4461
+ cli: string;
4462
+ action: 'login' | 'logout';
4463
+ }
4464
+
4381
4465
  /** The open-terminal request body (`POST /terminals`, DES-TERMINAL-001 §6). */
4382
4466
  export interface OpenTerminalBody {
4383
4467
  /** Working directory the PTY opens in. */
@@ -6504,7 +6588,12 @@ export interface DiagnosticsSkillsFinding {
6504
6588
  * generation landed with (a reference the skill's author owns that names nothing in the
6505
6589
  * snapshot — published as found); `message` names the publish finding's kind, `file:line` and
6506
6590
  * evidence. Reported while that generation is current, from the publish that found them until the
6507
- * daemon restarts (a restart re-verifies `current` without re-scanning it). */
6591
+ * daemon restarts (a restart re-verifies `current` without re-scanning it);
6592
+ * `skills.installed-ahead` (`warning`, crew#874) = the installed wicked-garden's content hash is
6593
+ * not the baseline the published generation was built from — runs use the published (older)
6594
+ * skills; `message` names both versions and the remedy (refresh-baseline, then publish). A
6595
+ * daemon boot refreshes and publishes on its own when nothing in the catalog is user-edited
6596
+ * (`WICKED_CREW_SKILLS_AUTO_REFRESH=0` turns that off); when it did not, the message says why. */
6508
6597
  kind:
6509
6598
  | 'skills.fallback'
6510
6599
  | 'skills.blocked'
@@ -6515,7 +6604,8 @@ export interface DiagnosticsSkillsFinding {
6515
6604
  | 'skills.base-skill'
6516
6605
  | 'skills.phase-skill'
6517
6606
  | 'skills.garden'
6518
- | 'skills.publish-warning';
6607
+ | 'skills.publish-warning'
6608
+ | 'skills.installed-ahead';
6519
6609
  severity: 'warning' | 'error';
6520
6610
  message: string;
6521
6611
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.97.0",
3
+ "version": "0.99.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",