wicked-crew-api-types 0.95.0 → 0.97.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 +89 -2
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -902,9 +902,46 @@ export interface RosterSeat {
902
902
  * fails the seat's ACP governance closed at every spawn.
903
903
  */
904
904
  version_pin?: SeatVersionPin;
905
+ /**
906
+ * (IG1-core-3, wicked-core-ts 0.7.41) The engine's governance class for the seat, derived from
907
+ * its record — passed through verbatim. `null`/absent on an engine before the field.
908
+ */
909
+ governance_class?: EngineGovernanceClass | null;
910
+ /**
911
+ * (api-types 0.97.0, IG1-crew-1) The governance mode the seat runs under per scope kind (the
912
+ * keys of `chat_admission`): what fences its tool calls. A crew reading — never handed to the
913
+ * engine (`clisJson` strips it).
914
+ */
915
+ governance_mode?: Record<GovernanceScopeKind, SeatGovernanceMode>;
905
916
  [k: string]: unknown;
906
917
  }
907
918
 
919
+ /** The engine's governance class names (IG1-core-3). */
920
+ export type EngineGovernanceClass = 'acp_input_governance' | 'os_sandbox' | 'none';
921
+
922
+ /** `unscoped` — no repository; `scoped` — several repositories or a project (the run binds none);
923
+ * `scoped_bound` — one repository (the run is bound to its worktree; every build run). */
924
+ export type GovernanceScopeKind = 'unscoped' | 'scoped' | 'scoped_bound';
925
+
926
+ /**
927
+ * (api-types 0.97.0, IG1-crew-1) The governance MODE a seat runs under — what fences its tool
928
+ * calls. `admitted`: an ACP adapter sends every tool call through the engine's per-call gate (and
929
+ * a pinned build verified); `os_sandbox`: an OS write floor contains it — `source` names the floor
930
+ * (`seat_record` = `acp.os_sandbox`, `self` = codex's own `--sandbox`, `repo_boundary` = the
931
+ * engine's boundary around a run bound to one repository) — not a per-call gate, not a read or
932
+ * network jail; `none`: only the command-text fences. `reason` says why in the operator's words
933
+ * (codex: no per-call adapter exists to admit).
934
+ */
935
+ export interface SeatGovernanceMode {
936
+ mode: 'admitted' | 'os_sandbox' | 'none';
937
+ class: EngineGovernanceClass | null;
938
+ source: 'acp_input_governance' | 'seat_record' | 'self' | 'repo_boundary' | 'none';
939
+ reason: string;
940
+ /** The roots the mode holds writes/reads to. On the roster these are labels (`<run worktree>`);
941
+ * on a run's record, paths. */
942
+ fence: { write_roots: string[]; read_roots: string[]; network: 'open' };
943
+ }
944
+
908
945
  /**
909
946
  * One pinned seat's `--version` reading (core#581): `RosterSeat.version_pin` and
910
947
  * `AcpCliDiagnostics.versionPin`. Read the way the engine's spawn-time check reads it: the pin
@@ -5653,6 +5690,12 @@ export interface ChatPathView {
5653
5690
  helpers: string[];
5654
5691
  /** The answer step the last message added (`answer-N`). */
5655
5692
  stepId: string;
5693
+ /**
5694
+ * (api-types 0.97.0, IG1-crew-1) The PA's governance mode for the ask's scope — what fences its
5695
+ * tool calls — derived from the engine's class as the run reports it (`path.started.governance`,
5696
+ * `member.joined.governance_class`). Absent until the PA is known, and on a daemon before it.
5697
+ */
5698
+ governance_mode?: SeatGovernanceMode;
5656
5699
  }
5657
5700
 
5658
5701
  // ── Project code graph (DES-PROJECT-001; the co-located multi-repo graph) ──────
@@ -6268,6 +6311,42 @@ export interface DiagnosticsResponse {
6268
6311
  stateHome?: DiagnosticsStateHome | null;
6269
6312
  /** The studio chat recorder's per-CLI format compliance (api-types 0.84.0, DC-S4b); `null` without the chat host. */
6270
6313
  decisions?: DiagnosticsDecisions | null;
6314
+ /** (api-types 0.97.0, crew#742) Per-seat governance standing before any run. */
6315
+ seatGovernance?: DiagnosticsSeatGovernance;
6316
+ /** (api-types 0.97.0, crew#740) The memory store this daemon reads and writes. */
6317
+ memoryStore?: MemoryStoreInfo;
6318
+ }
6319
+
6320
+ /** `DiagnosticsResponse.seatGovernance` (crew#742). Paths are for the local operator. */
6321
+ export interface DiagnosticsSeatGovernance {
6322
+ /** The engine's user registry overlay (`~/.config/wicked-council/clis.toml`) and whether it exists. */
6323
+ rosterFile: { path: string; present: boolean } | null;
6324
+ /** The OS launcher the repository boundary arms with on this host (`sandbox-exec` | `bwrap`),
6325
+ * found on PATH; `null` = none, so floor seats resting on it run advisory. */
6326
+ hostBoundary: string | null;
6327
+ seats: DiagnosticsSeatGovernanceEntry[];
6328
+ }
6329
+
6330
+ export interface DiagnosticsSeatGovernanceEntry {
6331
+ cli: string;
6332
+ enabled_for_council: boolean;
6333
+ transport: 'acp' | 'wrapped';
6334
+ /** The seat record arms the OS sandbox itself (`acp.os_sandbox`). */
6335
+ os_sandbox: boolean;
6336
+ class: EngineGovernanceClass | null;
6337
+ /** `enforced` — admitted and (if pinned) verified; `claimed` — admitted, pin not yet probed;
6338
+ * `unenforced` — no per-call gate holds the seat. */
6339
+ input_governance: 'enforced' | 'claimed' | 'unenforced';
6340
+ governance_mode: Record<GovernanceScopeKind, SeatGovernanceMode>;
6341
+ }
6342
+
6343
+ /** (api-types 0.97.0, crew#740) The daemon's memory store: `explicit` (`WICKED_MEMORY_DB`),
6344
+ * `state-home` (a non-default state home's own store), `global` (the operator-global one).
6345
+ * `notice` is the isolation notice when this daemon's own store is empty and a global one exists. */
6346
+ export interface MemoryStoreInfo {
6347
+ path: string;
6348
+ source: 'explicit' | 'state-home' | 'global';
6349
+ notice: string | null;
6271
6350
  }
6272
6351
 
6273
6352
  // ── Diagnostics — governance store + dead letters (api-types 0.31.0, crew#495 / F-022) ─────────
@@ -6420,7 +6499,12 @@ export interface DiagnosticsSkillsFinding {
6420
6499
  * than the daemon requires (`GardenRequiredBody.required`), so it is not used: found at seed,
6421
6500
  * the runtime is `config-error` and the engine is handed a refusal path. Rides
6422
6501
  * `/health.warnings` too; launches and onboarding answer 422
6423
- * `garden_required` until a newer garden is installed and published. */
6502
+ * `garden_required` until a newer garden is installed and published; `skills.publish-warning`
6503
+ * (`warning`, api-types 0.96.0, F-E2E-002) = one per WARNING the publish of the CURRENT
6504
+ * generation landed with (a reference the skill's author owns that names nothing in the
6505
+ * snapshot — published as found); `message` names the publish finding's kind, `file:line` and
6506
+ * 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). */
6424
6508
  kind:
6425
6509
  | 'skills.fallback'
6426
6510
  | 'skills.blocked'
@@ -6430,7 +6514,8 @@ export interface DiagnosticsSkillsFinding {
6430
6514
  | 'skills.stale-rules'
6431
6515
  | 'skills.base-skill'
6432
6516
  | 'skills.phase-skill'
6433
- | 'skills.garden';
6517
+ | 'skills.garden'
6518
+ | 'skills.publish-warning';
6434
6519
  severity: 'warning' | 'error';
6435
6520
  message: string;
6436
6521
  }
@@ -7214,6 +7299,8 @@ export interface ListMemoriesQuery {
7214
7299
  /** `GET /memory` → 200. */
7215
7300
  export interface ListMemoriesResponse {
7216
7301
  memories: MemoryItem[];
7302
+ /** (api-types 0.97.0, crew#740) The store the list was read from. Absent on a daemon before it. */
7303
+ store?: MemoryStoreInfo;
7217
7304
  }
7218
7305
 
7219
7306
  /** `GET /memory/coverage` query — an optional subtree filter (`""`/omitted = global totals). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.95.0",
3
+ "version": "0.97.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",