wicked-crew-api-types 0.3.0 → 0.5.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 +61 -0
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -221,6 +221,26 @@ export interface OnboardRef {
221
221
  runId: string | null;
222
222
  }
223
223
 
224
+ /**
225
+ * Runtime health of one council seat (crew#274).
226
+ *
227
+ * Derived by the daemon from the live CoreEvent stream — NEVER from config. The roster is
228
+ * declarative: every configured CLI stays listed and enabled in `clis.toml`; quota/auth/runtime
229
+ * errors are runtime state the platform detects and displays as `inactive` + the error excerpt.
230
+ * Recovery is automatic: a captured-ok unit output for the seat, or an exit-0 `version_probe`
231
+ * from the daemon's low-frequency recovery probe, flips the seat back to `active` and clears
232
+ * the message — no operator hand-edit involved.
233
+ */
234
+ export interface SeatHealth {
235
+ status: 'active' | 'inactive';
236
+ /** Bounded excerpt of the last seat-level error; present while `inactive`. */
237
+ message?: string;
238
+ /** When the seat entered its current status (ISO-8601). */
239
+ since: string;
240
+ /** When the last seat-level error was observed (ISO-8601), if any was. */
241
+ lastErrorAt?: string;
242
+ }
243
+
224
244
  /**
225
245
  * A council seat (`AgenticCli`) as returned by `GET /roster`. Only the fields
226
246
  * the launch form uses are named; the index signature keeps the (large) rest of
@@ -232,9 +252,42 @@ export interface RosterSeat {
232
252
  binary: string;
233
253
  enabled_for_council: boolean;
234
254
  category?: string;
255
+ /**
256
+ * Runtime health (crew#274). Additive: absent on a daemon predating the field, and safe to
257
+ * round-trip into `clisJson` (the engine's `AgenticCli` deserializer ignores unknown fields).
258
+ * Absent-or-default reads as `active` with no message.
259
+ */
260
+ health?: SeatHealth;
261
+ /**
262
+ * The shell invocation that runs this seat's own interactive login flow (seat sign-in;
263
+ * wicked-core PR#278 `AgenticCli.login_invocation`). Passed through from the engine roster
264
+ * VERBATIM — the daemon never synthesizes one. The studio hosts it in a PTY terminal
265
+ * (`POST /terminals`) so every CLI's native sign-in gets one uniform surface. Absent on an
266
+ * engine predating the field (serde omits `None`) and on seats with no known login flow.
267
+ */
268
+ login_invocation?: string;
269
+ /**
270
+ * Whether the seat LOOKS signed in — a cheap file/env-presence HEURISTIC computed by the
271
+ * daemon (`seat-signin.ts`), never a spawned probe and never proof the credential still
272
+ * works. Three-valued on purpose: `true`/`false` when the seat's auth state is observable
273
+ * from files or env, `null`/absent when it is unknowable cheaply (keychain-backed seats,
274
+ * unknown seat keys, or a daemon predating the field).
275
+ */
276
+ signed_in?: boolean | null;
235
277
  [k: string]: unknown;
236
278
  }
237
279
 
280
+ /** Body for `POST /open` — open a file/folder with the OS default application (crew#273). */
281
+ export interface OpenPathBody {
282
+ /**
283
+ * ABSOLUTE path to open. Validated daemon-side: it must resolve inside the run's workdir /
284
+ * extra write roots (when `runId` is given) or a registered repo root — never an arbitrary path.
285
+ */
286
+ path: string;
287
+ /** Widen validation to this run's workdir + extra write roots. Unknown id ⇒ 404. */
288
+ runId?: string;
289
+ }
290
+
238
291
  /** The daemon's cached open-gate record (`GET /runs/:id/gate`, DES-STUDIO-001 §3.3). */
239
292
  export interface GateInfo {
240
293
  runId: string;
@@ -998,6 +1051,14 @@ export interface GitContributor {
998
1051
  export interface SystemSettings {
999
1052
  /** Max nodes returned by wicked-estate graph-view (default 150). */
1000
1053
  graphNodeLimit: number;
1054
+ /**
1055
+ * Base directory for the ENGINE-OWNED worker CLI config homes (the claude worker home is
1056
+ * `<root>/claude`). The daemon applies it as env `WICKED_WORKER_HOME` at boot and on every
1057
+ * settings change; the engine reads that env per worker spawn (acp_runner.rs), so a change
1058
+ * takes effect on the next spawn with no restart. Absolute path when set; `""` or absent =
1059
+ * the engine default `~/.wicked-worker`.
1060
+ */
1061
+ worker_config_root?: string;
1001
1062
  }
1002
1063
 
1003
1064
  // ── Requirements management (server-side search + overrides; crew api/requirements.ts) ──
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-crew-api-types",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "The wire contract of the wicked-crew daemon's /api/v1 REST surface and /ws CoreEvent frames — types only, zero runtime",
5
5
  "type": "module",
6
6
  "types": "./index.d.ts",