wicked-crew-api-types 0.96.0 → 0.98.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 +133 -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
|
|
@@ -902,9 +910,46 @@ export interface RosterSeat {
|
|
|
902
910
|
* fails the seat's ACP governance closed at every spawn.
|
|
903
911
|
*/
|
|
904
912
|
version_pin?: SeatVersionPin;
|
|
913
|
+
/**
|
|
914
|
+
* (IG1-core-3, wicked-core-ts 0.7.41) The engine's governance class for the seat, derived from
|
|
915
|
+
* its record — passed through verbatim. `null`/absent on an engine before the field.
|
|
916
|
+
*/
|
|
917
|
+
governance_class?: EngineGovernanceClass | null;
|
|
918
|
+
/**
|
|
919
|
+
* (api-types 0.97.0, IG1-crew-1) The governance mode the seat runs under per scope kind (the
|
|
920
|
+
* keys of `chat_admission`): what fences its tool calls. A crew reading — never handed to the
|
|
921
|
+
* engine (`clisJson` strips it).
|
|
922
|
+
*/
|
|
923
|
+
governance_mode?: Record<GovernanceScopeKind, SeatGovernanceMode>;
|
|
905
924
|
[k: string]: unknown;
|
|
906
925
|
}
|
|
907
926
|
|
|
927
|
+
/** The engine's governance class names (IG1-core-3). */
|
|
928
|
+
export type EngineGovernanceClass = 'acp_input_governance' | 'os_sandbox' | 'none';
|
|
929
|
+
|
|
930
|
+
/** `unscoped` — no repository; `scoped` — several repositories or a project (the run binds none);
|
|
931
|
+
* `scoped_bound` — one repository (the run is bound to its worktree; every build run). */
|
|
932
|
+
export type GovernanceScopeKind = 'unscoped' | 'scoped' | 'scoped_bound';
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* (api-types 0.97.0, IG1-crew-1) The governance MODE a seat runs under — what fences its tool
|
|
936
|
+
* calls. `admitted`: an ACP adapter sends every tool call through the engine's per-call gate (and
|
|
937
|
+
* a pinned build verified); `os_sandbox`: an OS write floor contains it — `source` names the floor
|
|
938
|
+
* (`seat_record` = `acp.os_sandbox`, `self` = codex's own `--sandbox`, `repo_boundary` = the
|
|
939
|
+
* engine's boundary around a run bound to one repository) — not a per-call gate, not a read or
|
|
940
|
+
* network jail; `none`: only the command-text fences. `reason` says why in the operator's words
|
|
941
|
+
* (codex: no per-call adapter exists to admit).
|
|
942
|
+
*/
|
|
943
|
+
export interface SeatGovernanceMode {
|
|
944
|
+
mode: 'admitted' | 'os_sandbox' | 'none';
|
|
945
|
+
class: EngineGovernanceClass | null;
|
|
946
|
+
source: 'acp_input_governance' | 'seat_record' | 'self' | 'repo_boundary' | 'none';
|
|
947
|
+
reason: string;
|
|
948
|
+
/** The roots the mode holds writes/reads to. On the roster these are labels (`<run worktree>`);
|
|
949
|
+
* on a run's record, paths. */
|
|
950
|
+
fence: { write_roots: string[]; read_roots: string[]; network: 'open' };
|
|
951
|
+
}
|
|
952
|
+
|
|
908
953
|
/**
|
|
909
954
|
* One pinned seat's `--version` reading (core#581): `RosterSeat.version_pin` and
|
|
910
955
|
* `AcpCliDiagnostics.versionPin`. Read the way the engine's spawn-time check reads it: the pin
|
|
@@ -4026,6 +4071,8 @@ export interface LaunchRunBody {
|
|
|
4026
4071
|
* `deliver: 'none'` is a 400), and the PR must be OPEN and not from a fork (409 naming why).
|
|
4027
4072
|
* Send it ONLY when `GET /health.capabilities.revisesPr === true` — an older daemon's strict
|
|
4028
4073
|
* launch schema rejects the key with a 400.
|
|
4074
|
+
* NOTE (crew#662): a positive integer PR number — not the boolean capability flag
|
|
4075
|
+
* `HealthCapabilities.revisesPr` of the same name. A 400 names the field and what it expected.
|
|
4029
4076
|
*/
|
|
4030
4077
|
revisesPr?: number;
|
|
4031
4078
|
/**
|
|
@@ -4083,6 +4130,30 @@ export interface LaunchRunBody {
|
|
|
4083
4130
|
* guard as `channel` above.
|
|
4084
4131
|
*/
|
|
4085
4132
|
actor?: string;
|
|
4133
|
+
/**
|
|
4134
|
+
* (crew#825; additive) Issue refs the intent names that the daemon must NOT read and append to
|
|
4135
|
+
* the problem (`"541"`, `"#541"`, `"owner/repo#541"`; at most 50) — a reference in passing is not
|
|
4136
|
+
* a request to inline the issue. Answered as `LaunchRunResponse.linkedIssues[]` entries with
|
|
4137
|
+
* `excluded: true`. Send only when `GET /health.capabilities.linkedIssuesExclude === true`.
|
|
4138
|
+
*/
|
|
4139
|
+
excludeLinkedIssues?: string[];
|
|
4140
|
+
}
|
|
4141
|
+
|
|
4142
|
+
/** `POST /linked-issues/preview` (crew#825): what a workflow launch of `problem` WOULD append. */
|
|
4143
|
+
export interface LinkedIssuesPreviewBody {
|
|
4144
|
+
problem: string;
|
|
4145
|
+
repoRef?: string;
|
|
4146
|
+
excludeLinkedIssues?: string[];
|
|
4147
|
+
}
|
|
4148
|
+
|
|
4149
|
+
/** The `POST /linked-issues/preview` 200 body: the same reading `POST /runs` does, nothing launched. */
|
|
4150
|
+
export interface LinkedIssuesPreviewResponse {
|
|
4151
|
+
issues: LinkedIssue[];
|
|
4152
|
+
/** Characters the block would add to the problem; `0` when nothing would be appended. */
|
|
4153
|
+
appendedChars: number;
|
|
4154
|
+
/** Present when the reading itself failed (the repo list or gh unreadable): a launch now runs on
|
|
4155
|
+
* the intent alone, exactly as `POST /runs` does on the same fault. */
|
|
4156
|
+
error?: string;
|
|
4086
4157
|
}
|
|
4087
4158
|
|
|
4088
4159
|
/**
|
|
@@ -4099,6 +4170,10 @@ export interface LinkedIssue {
|
|
|
4099
4170
|
title?: string;
|
|
4100
4171
|
/** Present when not `resolved`: why, in one line. */
|
|
4101
4172
|
error?: string;
|
|
4173
|
+
/** (crew#825; additive) Present when `resolved`: characters this issue adds to the problem. */
|
|
4174
|
+
chars?: number;
|
|
4175
|
+
/** (crew#825; additive) `true` when the launch left this ref out (`excludeLinkedIssues`). */
|
|
4176
|
+
excluded?: true;
|
|
4102
4177
|
}
|
|
4103
4178
|
|
|
4104
4179
|
/** The `POST /runs` 201 body. `linkedIssues` (crew#627, additive) is present when the intent of a
|
|
@@ -4112,6 +4187,12 @@ export interface LaunchRunResponse {
|
|
|
4112
4187
|
* delivery), and `notice` says so in words a composer can show. ABSENT on every other launch.
|
|
4113
4188
|
*/
|
|
4114
4189
|
freeText?: { notice: string };
|
|
4190
|
+
/**
|
|
4191
|
+
* (crew#874) PRESENT when the installed wicked-garden is not the one the published skills
|
|
4192
|
+
* generation was built from: the run executes the PUBLISHED generation, and this says so — the
|
|
4193
|
+
* same `skills.installed-ahead` finding `GET /diagnostics.skills.findings` carries.
|
|
4194
|
+
*/
|
|
4195
|
+
skillsWarning?: { kind: 'skills.installed-ahead'; severity: 'warning'; message: string };
|
|
4115
4196
|
}
|
|
4116
4197
|
|
|
4117
4198
|
/**
|
|
@@ -5653,6 +5734,12 @@ export interface ChatPathView {
|
|
|
5653
5734
|
helpers: string[];
|
|
5654
5735
|
/** The answer step the last message added (`answer-N`). */
|
|
5655
5736
|
stepId: string;
|
|
5737
|
+
/**
|
|
5738
|
+
* (api-types 0.97.0, IG1-crew-1) The PA's governance mode for the ask's scope — what fences its
|
|
5739
|
+
* tool calls — derived from the engine's class as the run reports it (`path.started.governance`,
|
|
5740
|
+
* `member.joined.governance_class`). Absent until the PA is known, and on a daemon before it.
|
|
5741
|
+
*/
|
|
5742
|
+
governance_mode?: SeatGovernanceMode;
|
|
5656
5743
|
}
|
|
5657
5744
|
|
|
5658
5745
|
// ── Project code graph (DES-PROJECT-001; the co-located multi-repo graph) ──────
|
|
@@ -6268,6 +6355,42 @@ export interface DiagnosticsResponse {
|
|
|
6268
6355
|
stateHome?: DiagnosticsStateHome | null;
|
|
6269
6356
|
/** The studio chat recorder's per-CLI format compliance (api-types 0.84.0, DC-S4b); `null` without the chat host. */
|
|
6270
6357
|
decisions?: DiagnosticsDecisions | null;
|
|
6358
|
+
/** (api-types 0.97.0, crew#742) Per-seat governance standing before any run. */
|
|
6359
|
+
seatGovernance?: DiagnosticsSeatGovernance;
|
|
6360
|
+
/** (api-types 0.97.0, crew#740) The memory store this daemon reads and writes. */
|
|
6361
|
+
memoryStore?: MemoryStoreInfo;
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6364
|
+
/** `DiagnosticsResponse.seatGovernance` (crew#742). Paths are for the local operator. */
|
|
6365
|
+
export interface DiagnosticsSeatGovernance {
|
|
6366
|
+
/** The engine's user registry overlay (`~/.config/wicked-council/clis.toml`) and whether it exists. */
|
|
6367
|
+
rosterFile: { path: string; present: boolean } | null;
|
|
6368
|
+
/** The OS launcher the repository boundary arms with on this host (`sandbox-exec` | `bwrap`),
|
|
6369
|
+
* found on PATH; `null` = none, so floor seats resting on it run advisory. */
|
|
6370
|
+
hostBoundary: string | null;
|
|
6371
|
+
seats: DiagnosticsSeatGovernanceEntry[];
|
|
6372
|
+
}
|
|
6373
|
+
|
|
6374
|
+
export interface DiagnosticsSeatGovernanceEntry {
|
|
6375
|
+
cli: string;
|
|
6376
|
+
enabled_for_council: boolean;
|
|
6377
|
+
transport: 'acp' | 'wrapped';
|
|
6378
|
+
/** The seat record arms the OS sandbox itself (`acp.os_sandbox`). */
|
|
6379
|
+
os_sandbox: boolean;
|
|
6380
|
+
class: EngineGovernanceClass | null;
|
|
6381
|
+
/** `enforced` — admitted and (if pinned) verified; `claimed` — admitted, pin not yet probed;
|
|
6382
|
+
* `unenforced` — no per-call gate holds the seat. */
|
|
6383
|
+
input_governance: 'enforced' | 'claimed' | 'unenforced';
|
|
6384
|
+
governance_mode: Record<GovernanceScopeKind, SeatGovernanceMode>;
|
|
6385
|
+
}
|
|
6386
|
+
|
|
6387
|
+
/** (api-types 0.97.0, crew#740) The daemon's memory store: `explicit` (`WICKED_MEMORY_DB`),
|
|
6388
|
+
* `state-home` (a non-default state home's own store), `global` (the operator-global one).
|
|
6389
|
+
* `notice` is the isolation notice when this daemon's own store is empty and a global one exists. */
|
|
6390
|
+
export interface MemoryStoreInfo {
|
|
6391
|
+
path: string;
|
|
6392
|
+
source: 'explicit' | 'state-home' | 'global';
|
|
6393
|
+
notice: string | null;
|
|
6271
6394
|
}
|
|
6272
6395
|
|
|
6273
6396
|
// ── Diagnostics — governance store + dead letters (api-types 0.31.0, crew#495 / F-022) ─────────
|
|
@@ -6425,7 +6548,12 @@ export interface DiagnosticsSkillsFinding {
|
|
|
6425
6548
|
* generation landed with (a reference the skill's author owns that names nothing in the
|
|
6426
6549
|
* snapshot — published as found); `message` names the publish finding's kind, `file:line` and
|
|
6427
6550
|
* evidence. Reported while that generation is current, from the publish that found them until the
|
|
6428
|
-
* daemon restarts (a restart re-verifies `current` without re-scanning it)
|
|
6551
|
+
* daemon restarts (a restart re-verifies `current` without re-scanning it);
|
|
6552
|
+
* `skills.installed-ahead` (`warning`, crew#874) = the installed wicked-garden's content hash is
|
|
6553
|
+
* not the baseline the published generation was built from — runs use the published (older)
|
|
6554
|
+
* skills; `message` names both versions and the remedy (refresh-baseline, then publish). A
|
|
6555
|
+
* daemon boot refreshes and publishes on its own when nothing in the catalog is user-edited
|
|
6556
|
+
* (`WICKED_CREW_SKILLS_AUTO_REFRESH=0` turns that off); when it did not, the message says why. */
|
|
6429
6557
|
kind:
|
|
6430
6558
|
| 'skills.fallback'
|
|
6431
6559
|
| 'skills.blocked'
|
|
@@ -6436,7 +6564,8 @@ export interface DiagnosticsSkillsFinding {
|
|
|
6436
6564
|
| 'skills.base-skill'
|
|
6437
6565
|
| 'skills.phase-skill'
|
|
6438
6566
|
| 'skills.garden'
|
|
6439
|
-
| 'skills.publish-warning'
|
|
6567
|
+
| 'skills.publish-warning'
|
|
6568
|
+
| 'skills.installed-ahead';
|
|
6440
6569
|
severity: 'warning' | 'error';
|
|
6441
6570
|
message: string;
|
|
6442
6571
|
}
|
|
@@ -7220,6 +7349,8 @@ export interface ListMemoriesQuery {
|
|
|
7220
7349
|
/** `GET /memory` → 200. */
|
|
7221
7350
|
export interface ListMemoriesResponse {
|
|
7222
7351
|
memories: MemoryItem[];
|
|
7352
|
+
/** (api-types 0.97.0, crew#740) The store the list was read from. Absent on a daemon before it. */
|
|
7353
|
+
store?: MemoryStoreInfo;
|
|
7223
7354
|
}
|
|
7224
7355
|
|
|
7225
7356
|
/** `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.
|
|
3
|
+
"version": "0.98.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",
|