wicked-crew-api-types 0.114.0 → 0.115.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 +160 -8
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1012,9 +1012,9 @@ export interface RosterSeat {
|
|
|
1012
1012
|
/**
|
|
1013
1013
|
* The shell invocation that runs this seat's own interactive login flow (seat sign-in;
|
|
1014
1014
|
* wicked-core PR#278 `AgenticCli.login_invocation`). Passed through from the engine roster
|
|
1015
|
-
* VERBATIM — the daemon never synthesizes one. The
|
|
1016
|
-
*
|
|
1017
|
-
* engine predating the field (serde omits `None`) and on seats with no known login flow.
|
|
1015
|
+
* VERBATIM — the daemon never synthesizes one. The operator runs it in their own terminal (the
|
|
1016
|
+
* Agents page copies it; `RosterSeat.issues[].commands` carries a `$HOME` display form). Absent on
|
|
1017
|
+
* an engine predating the field (serde omits `None`) and on seats with no known login flow.
|
|
1018
1018
|
*/
|
|
1019
1019
|
login_invocation?: string;
|
|
1020
1020
|
/**
|
|
@@ -1052,7 +1052,9 @@ export interface RosterSeat {
|
|
|
1052
1052
|
*/
|
|
1053
1053
|
auth_source?: 'seat-stderr' | 'probe';
|
|
1054
1054
|
/** Present with `auth_source: 'seat-stderr'`, and with `probe` when it read signed out: the
|
|
1055
|
-
* seat's own words, bounded.
|
|
1055
|
+
* seat's own words, bounded. From api-types 0.115.0 (A8) account identifiers are dropped before
|
|
1056
|
+
* they reach the wire: a JSON status keeps only `loggedIn` / `authMethod` / `apiProvider`, and
|
|
1057
|
+
* email-, id- and key-shaped strings are masked. */
|
|
1056
1058
|
auth_evidence?: string;
|
|
1057
1059
|
/**
|
|
1058
1060
|
* Present with `auth_source: 'probe'` (crew#630): ISO-8601 of the seat's own auth-status check
|
|
@@ -1071,7 +1073,8 @@ export interface RosterSeat {
|
|
|
1071
1073
|
* or could not tell). Optional on the wire: a daemon before it sends none.
|
|
1072
1074
|
*/
|
|
1073
1075
|
login_check?: 'live' | 'status' | 'unverified';
|
|
1074
|
-
/** Present unless `login_check` is `live`: why, in the operator's words ("login unverified — …").
|
|
1076
|
+
/** Present unless `login_check` is `live`: why, in the operator's words ("login unverified — …").
|
|
1077
|
+
* Scrubbed like `auth_evidence` (A8). */
|
|
1075
1078
|
login_note?: string;
|
|
1076
1079
|
/** Present when `auth` is `not_required`: the free tier the seat answers on. */
|
|
1077
1080
|
free_tier?: string;
|
|
@@ -1121,9 +1124,156 @@ export interface RosterSeat {
|
|
|
1121
1124
|
* engine (`clisJson` strips it).
|
|
1122
1125
|
*/
|
|
1123
1126
|
governance_mode?: Record<GovernanceScopeKind, SeatGovernanceMode>;
|
|
1127
|
+
/**
|
|
1128
|
+
* (api-types 0.115.0, DES-seats-page A1) The seat's installed version, for EVERY seat (not only
|
|
1129
|
+
* the pinned ones `version_pin` covers), read from its registry `version_probe` in the background.
|
|
1130
|
+
* ABSENT until the first reading, and for a pinned seat until its pin has been probed too.
|
|
1131
|
+
*/
|
|
1132
|
+
version?: SeatVersion;
|
|
1133
|
+
/**
|
|
1134
|
+
* (api-types 0.115.0, A2) The account KIND the seat is signed in with — never an email, an account
|
|
1135
|
+
* or an organisation id. Present when `auth` is `signed_in` (`unknown` when the seat's status
|
|
1136
|
+
* command states no kind) or `not_required` (`free`).
|
|
1137
|
+
*/
|
|
1138
|
+
account?: SeatAccount;
|
|
1139
|
+
/**
|
|
1140
|
+
* (api-types 0.115.0, A3) The engine's bench of the seat that is ACTIVE now: a run benched it on
|
|
1141
|
+
* its worker's or judge's own refusal, and crew keeps it out of new launches until `lifts_at`,
|
|
1142
|
+
* its next good turn, or — for an account bench (`not_logged_in`, `quota_exhausted`,
|
|
1143
|
+
* `usage_limit`) — a live sign-in check that answered after it. The week's history stays in
|
|
1144
|
+
* `GET /roster/record`. ABSENT when there is no active bench.
|
|
1145
|
+
*/
|
|
1146
|
+
recent_bench?: SeatRecentBench;
|
|
1147
|
+
/**
|
|
1148
|
+
* (api-types 0.115.0, A5) Whether a job of each scope kind would give the seat work, including
|
|
1149
|
+
* the engine's launcher benches (core#769's codex worktree bench, via `Core.worktreeBenched`).
|
|
1150
|
+
* ABSENT on a daemon whose engine addon cannot answer the worktree bench (wicked-core-ts without
|
|
1151
|
+
* `worktreeBenched`): crew does not restate the engine's rule.
|
|
1152
|
+
*/
|
|
1153
|
+
work_admission?: Record<GovernanceScopeKind, SeatWorkAdmission>;
|
|
1154
|
+
/**
|
|
1155
|
+
* (api-types 0.115.0, A4) Whether the seat can run the isolated QE review. Since wicked-core#917
|
|
1156
|
+
* (core-ts 0.9.9) the engine starts the reviewer as a fresh session on any run seat it admits, so
|
|
1157
|
+
* a seat is eligible when it is signed in, a run bound to one repository keeps it (QE runs only
|
|
1158
|
+
* there), and the host's skill routing admits it to the QE skill (`Core.qeReviewerAdmitted`, wicked-core#923: a
|
|
1159
|
+
* Claude-only skills root admits claude seats only). A reviewer-only seat counts. ABSENT unless
|
|
1160
|
+
* the engine answers both `Core.worktreeBenched` (wicked-core#920) and `Core.qeReviewerAdmitted` (wicked-core#923).
|
|
1161
|
+
*/
|
|
1162
|
+
qe_reviewer?: SeatQeReviewer;
|
|
1163
|
+
/**
|
|
1164
|
+
* (api-types 0.115.0, A6) What the Agents page shows for the seat, most important first (problem
|
|
1165
|
+
* before warning before note; within one, safety before availability). Crew sends codes and
|
|
1166
|
+
* facts; the client owns the words per code and shows `message` only for a code it does not know.
|
|
1167
|
+
*/
|
|
1168
|
+
issues?: SeatIssue[];
|
|
1124
1169
|
[k: string]: unknown;
|
|
1125
1170
|
}
|
|
1126
1171
|
|
|
1172
|
+
/** `RosterSeat.version` (api-types 0.115.0). */
|
|
1173
|
+
export interface SeatVersion {
|
|
1174
|
+
/** The first non-empty line of the seat's `--version`, home written `~`; `null` when it did not answer. */
|
|
1175
|
+
installed: string | null;
|
|
1176
|
+
/** The build the seat's governance was proven on (`acp.verified_version`); `null` when it pins none. */
|
|
1177
|
+
proven: string | null;
|
|
1178
|
+
/** `proven` — the installed build is the pinned one; `unproven` — it is not (governance fails
|
|
1179
|
+
* closed); `no_pin` — the seat pins no build. */
|
|
1180
|
+
status: 'proven' | 'unproven' | 'no_pin';
|
|
1181
|
+
/** ISO-8601 of the reading. */
|
|
1182
|
+
checked_at: string;
|
|
1183
|
+
/** How the binary on PATH was installed, from its resolved path: under `node_modules` = `npm`, a
|
|
1184
|
+
* Homebrew prefix = `brew`, else `other`; `null` when it is not on PATH. */
|
|
1185
|
+
install_source: 'npm' | 'brew' | 'other' | null;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
/** `RosterSeat.account` (api-types 0.115.0). */
|
|
1189
|
+
export interface SeatAccount {
|
|
1190
|
+
kind: 'subscription' | 'api_key' | 'free' | 'unknown';
|
|
1191
|
+
/** A provider-public plan name (`Max`, `Pro`, `Team`, `Enterprise`), only from a fixed table. */
|
|
1192
|
+
plan?: string;
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
/** `RosterSeat.recent_bench` (api-types 0.115.0). */
|
|
1196
|
+
export interface SeatRecentBench {
|
|
1197
|
+
/** The engine's cause token: `quota_exhausted`, `not_logged_in`, `not_installed`,
|
|
1198
|
+
* `approval_unavailable`, `timed_out`, … */
|
|
1199
|
+
kind: string;
|
|
1200
|
+
/** Runs that benched the seat while this bench was active (at least 1). */
|
|
1201
|
+
runs: number;
|
|
1202
|
+
/** ISO-8601 of the latest bench. */
|
|
1203
|
+
last_at: string;
|
|
1204
|
+
/** ISO-8601 of when crew stops carrying it to new launches. Crew's window, NOT a provider reset
|
|
1205
|
+
* time (no provider states one on the wire today). */
|
|
1206
|
+
lifts_at: string;
|
|
1207
|
+
/** Who benched it in the run: `worker` or `judge`. */
|
|
1208
|
+
source: string;
|
|
1209
|
+
/** The engine's own reason, verbatim (technical details). */
|
|
1210
|
+
reason: string;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
/** Why a seat would get no work, one code per refusal (api-types 0.115.0). */
|
|
1214
|
+
export type SeatWorkReasonCode =
|
|
1215
|
+
| 'signed_out'
|
|
1216
|
+
| 'not_enabled'
|
|
1217
|
+
| 'reviewer_only'
|
|
1218
|
+
| 'recent_bench'
|
|
1219
|
+
| 'login_pending'
|
|
1220
|
+
| 'worktree_bench'
|
|
1221
|
+
| 'scope_ungoverned';
|
|
1222
|
+
|
|
1223
|
+
/** `RosterSeat.work_admission[scope]` (api-types 0.115.0). `source`: `auth` — signed out;
|
|
1224
|
+
* `launcher` — a launch benches it (disabled, reviewer-only, a recent bench, a pending login
|
|
1225
|
+
* check, the engine's worktree bench); `scope` — the scope's governance rule refuses it. */
|
|
1226
|
+
export type SeatWorkAdmission =
|
|
1227
|
+
| { ok: true }
|
|
1228
|
+
| { ok: false; reason_code: SeatWorkReasonCode; source: 'auth' | 'launcher' | 'scope'; reason: string };
|
|
1229
|
+
|
|
1230
|
+
/** `RosterSeat.qe_reviewer` (api-types 0.115.0). */
|
|
1231
|
+
export type SeatQeReviewer =
|
|
1232
|
+
| { ok: true }
|
|
1233
|
+
| {
|
|
1234
|
+
ok: false;
|
|
1235
|
+
/** `skill_not_admitted`: this host's skills root admits only a claude seat to the QE skill. */
|
|
1236
|
+
reason_code: Exclude<SeatWorkReasonCode, 'reviewer_only' | 'scope_ungoverned'> | 'skill_not_admitted';
|
|
1237
|
+
reason: string;
|
|
1238
|
+
};
|
|
1239
|
+
|
|
1240
|
+
/**
|
|
1241
|
+
* One `RosterSeat.issues` entry (api-types 0.115.0). Today's codes: `signed_out`, `qe_blocked`
|
|
1242
|
+
* (problems); `quota`, `usage_limit`, `benched`, `codex_worktree`, `version_unproven`,
|
|
1243
|
+
* `unchecked` (`params.why`: `no_governance` | `no_host_boundary`), `fence_scoped`,
|
|
1244
|
+
* `live_check_failed` (warnings); `opt_in`, `no_qe`, `unverified` (notes). A client must tolerate
|
|
1245
|
+
* an unknown code.
|
|
1246
|
+
*/
|
|
1247
|
+
export interface SeatIssue {
|
|
1248
|
+
code: string;
|
|
1249
|
+
severity: 'problem' | 'warning' | 'note';
|
|
1250
|
+
/** Names, versions, counts and ISO times only — never a CLI's free text. */
|
|
1251
|
+
params: Record<string, string | number>;
|
|
1252
|
+
/** Crew's one line, for a client that does not know the code. */
|
|
1253
|
+
message: string;
|
|
1254
|
+
commands?: SeatIssueCommand[];
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
/** A command an issue offers. Run the roster's `login_invocation` / `logout_invocation` (or
|
|
1258
|
+
* `<binary> --version`); `display` is the safe rendering, the home directory written `$HOME`. */
|
|
1259
|
+
export interface SeatIssueCommand {
|
|
1260
|
+
purpose: 'sign_in' | 'sign_out' | 'version';
|
|
1261
|
+
display: string;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
/**
|
|
1265
|
+
* `GET /roster[?refresh=<key>]` (api-types 0.115.0 names it). With `?refresh=<key>` the daemon
|
|
1266
|
+
* re-runs that seat's sign-in check and waits for it, at most 20 s, before answering (A3b); 400
|
|
1267
|
+
* when the key is not a roster seat.
|
|
1268
|
+
*/
|
|
1269
|
+
export interface RosterResponse {
|
|
1270
|
+
roster: RosterSeat[];
|
|
1271
|
+
/** Present on a `?refresh=` read: `probed` — the answer is fresh; `timed_out` — still running
|
|
1272
|
+
* (the roster shows the last reading; the check keeps going); `not_probed` — the seat has no
|
|
1273
|
+
* sign-in check (it reads its credential file). */
|
|
1274
|
+
refresh?: { key: string; outcome: 'probed' | 'timed_out' | 'not_probed' };
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1127
1277
|
/** The engine's governance class names (IG1-core-3). */
|
|
1128
1278
|
export type EngineGovernanceClass = 'acp_input_governance' | 'os_sandbox' | 'none';
|
|
1129
1279
|
|
|
@@ -5029,9 +5179,10 @@ export interface DomainCoverage {
|
|
|
5029
5179
|
}
|
|
5030
5180
|
|
|
5031
5181
|
/**
|
|
5032
|
-
* `POST /seats/:cli/
|
|
5033
|
-
*
|
|
5034
|
-
* (
|
|
5182
|
+
* `POST /seats/:cli/logout` (crew#615): the PTY size for the terminal the daemon opens running the
|
|
5183
|
+
* seat's own `logout_invocation`. Both optional (default 100 x 30). `POST /seats/:cli/login` is
|
|
5184
|
+
* GONE from api-types 0.115.0 (DES-seats-page Q3): sign-in is a command the operator runs in their
|
|
5185
|
+
* own terminal (`RosterSeat.login_invocation`).
|
|
5035
5186
|
*/
|
|
5036
5187
|
export interface SeatSessionBody {
|
|
5037
5188
|
cols?: number;
|
|
@@ -5047,6 +5198,7 @@ export interface SeatSessionResponse {
|
|
|
5047
5198
|
terminalId: string;
|
|
5048
5199
|
/** The seat key the command was run for. */
|
|
5049
5200
|
cli: string;
|
|
5201
|
+
/** `login` is no longer produced (api-types 0.115.0: the login route is gone). */
|
|
5050
5202
|
action: 'login' | 'logout';
|
|
5051
5203
|
}
|
|
5052
5204
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicked-crew-api-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.115.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",
|