wicked-crew 0.10.2 → 0.11.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 (63) hide show
  1. package/dist/api/roster-standing.d.ts +3 -0
  2. package/dist/api/roster-standing.d.ts.map +1 -1
  3. package/dist/api/roster-standing.js +59 -12
  4. package/dist/api/roster-standing.js.map +1 -1
  5. package/dist/api/routes.d.ts +3 -0
  6. package/dist/api/routes.d.ts.map +1 -1
  7. package/dist/api/routes.js +161 -1
  8. package/dist/api/routes.js.map +1 -1
  9. package/dist/api/seat-container-login.d.ts +60 -0
  10. package/dist/api/seat-container-login.d.ts.map +1 -0
  11. package/dist/api/seat-container-login.js +158 -0
  12. package/dist/api/seat-container-login.js.map +1 -0
  13. package/dist/api/server.d.ts.map +1 -1
  14. package/dist/api/server.js +4 -0
  15. package/dist/api/server.js.map +1 -1
  16. package/dist/appearance/video-palette.d.ts +14 -0
  17. package/dist/appearance/video-palette.d.ts.map +1 -0
  18. package/dist/appearance/video-palette.js +75 -0
  19. package/dist/appearance/video-palette.js.map +1 -0
  20. package/dist/core/engine-roster.d.ts.map +1 -1
  21. package/dist/core/engine-roster.js +1 -0
  22. package/dist/core/engine-roster.js.map +1 -1
  23. package/dist/core/run-identity.d.ts.map +1 -1
  24. package/dist/core/run-identity.js +3 -2
  25. package/dist/core/run-identity.js.map +1 -1
  26. package/dist/editors/pack-install.d.ts +6 -0
  27. package/dist/editors/pack-install.d.ts.map +1 -1
  28. package/dist/editors/pack-install.js +12 -2
  29. package/dist/editors/pack-install.js.map +1 -1
  30. package/dist/editors/registry.d.ts +153 -14
  31. package/dist/editors/registry.d.ts.map +1 -1
  32. package/dist/editors/registry.js +29 -4
  33. package/dist/editors/registry.js.map +1 -1
  34. package/dist/editors/surfaces.d.ts +48 -0
  35. package/dist/editors/surfaces.d.ts.map +1 -0
  36. package/dist/editors/surfaces.js +294 -0
  37. package/dist/editors/surfaces.js.map +1 -0
  38. package/dist/interactive/chat-events.d.ts +4 -3
  39. package/dist/interactive/chat-events.d.ts.map +1 -1
  40. package/dist/interactive/chat-events.js +7 -6
  41. package/dist/interactive/chat-events.js.map +1 -1
  42. package/dist/interactive/doc-grounding.d.ts.map +1 -1
  43. package/dist/interactive/doc-grounding.js +7 -1
  44. package/dist/interactive/doc-grounding.js.map +1 -1
  45. package/dist/interactive/draft-skill.d.ts +11 -4
  46. package/dist/interactive/draft-skill.d.ts.map +1 -1
  47. package/dist/interactive/draft-skill.js +42 -9
  48. package/dist/interactive/draft-skill.js.map +1 -1
  49. package/dist/projects/state-home-registry.d.ts.map +1 -1
  50. package/dist/projects/state-home-registry.js +2 -0
  51. package/dist/projects/state-home-registry.js.map +1 -1
  52. package/dist/studio/assets/index-BSPM1fFW.css +32 -0
  53. package/dist/studio/assets/index-R8uK_NlG.js +848 -0
  54. package/dist/studio/editors/wicked-deck/editor.json +35 -0
  55. package/dist/studio/editors/wicked-deck/index.html +184 -0
  56. package/dist/studio/editors/wicked-page/editor.json +2 -2
  57. package/dist/studio/editors/wicked-page/index.html +2 -2
  58. package/dist/studio/index.html +2 -2
  59. package/dist/studio/testid-inventory.json +3131 -1217
  60. package/endpoint-manifest.json +43 -1
  61. package/package.json +3 -3
  62. package/dist/studio/assets/index-C6DLorst.css +0 -32
  63. package/dist/studio/assets/index-CAhuFWeA.js +0 -609
@@ -20,11 +20,13 @@ import type { RosterSeat } from '../core/types.js';
20
20
  import { type SeatVersionPinCache } from './diagnostics.js';
21
21
  import type { SeatHealthTracker } from './seat-health.js';
22
22
  import { SeatProbe } from './seat-probe.js';
23
+ import { SeatContainerStatus } from './seat-container-login.js';
23
24
  import { type SeatVersionCache } from './seat-version.js';
24
25
  /** The accessor: the registry roster WITH crew's standing, freshly read on every call. `ready`
25
26
  * (crew#645), awaited by a launch before it reads the roster, waits — bounded — for every seat's
26
27
  * missing or stale login check, so an expired login reads `signed_out` before work is routed. */
27
28
  export type RosterWithStanding = (() => RosterSeat[]) & {
29
+ containerStatus?: SeatContainerStatus;
28
30
  ready?: () => Promise<void>;
29
31
  /** crew#615: re-run one seat's credential probe now (after a sign-in / sign-out terminal). */
30
32
  reprobe?: (seatKey: string) => void;
@@ -39,6 +41,7 @@ export type RecheckOutcome = 'probed' | 'timed_out' | 'not_probed';
39
41
  * the read answers with the last reading and `timed_out`; the check keeps running. */
40
42
  export declare const ROSTER_REFRESH_WAIT_MS: number;
41
43
  export interface RosterStandingDeps {
44
+ containerStatus?: SeatContainerStatus;
42
45
  /** The daemon's per-seat runtime health + council evidence (councilSeatFailed, auth refusals). */
43
46
  seatHealth: SeatHealthTracker;
44
47
  /** Seat sign-in presence probe — injectable so tests never read the developer's dotfiles.
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.d.ts","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAwC,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWlG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErF;;kGAEkG;AAClG,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,GAAG;IACtD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,8FAA8F;IAC9F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;8FAE0F;IAC1F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE;;uFAEuF;AACvF,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,UAAU,EAAE,iBAAiB,CAAC;IAC9B;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC1E;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;0EAEsE;IACtE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB;4EACwE;IACxE,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC;yDACqD;IACrD,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC;;;8DAG0D;IAC1D,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,OAAO,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACzF;;2DAEuD;IACvD,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtF,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,8FAA8F;IAC9F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CA0NtF"}
1
+ {"version":3,"file":"roster-standing.d.ts","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAwC,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWlG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAA6C,MAAM,2BAA2B,CAAC;AAG3G,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErF;;kGAEkG;AAClG,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,GAAG;IACtD,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,8FAA8F;IAC9F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;8FAE0F;IAC1F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE;;uFAEuF;AACvF,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,kGAAkG;IAClG,UAAU,EAAE,iBAAiB,CAAC;IAC9B;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC1E;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;0EAEsE;IACtE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB;4EACwE;IACxE,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC;yDACqD;IACrD,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC;;;8DAG0D;IAC1D,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,OAAO,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACzF;;2DAEuD;IACvD,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtF,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,8FAA8F;IAC9F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAoQtF"}
@@ -22,6 +22,7 @@ import { hostSandboxLauncher, seatVersionPins } from './diagnostics.js';
22
22
  import { liveCheckLiftsBench, qeReviewer, recentBenchWire, seatAccount, seatIssues, workAdmission, } from './seat-agents.js';
23
23
  import { signedInHeuristic } from './seat-signin.js';
24
24
  import { SeatProbe } from './seat-probe.js';
25
+ import { SeatContainerStatus, isContainerLoginCli, isContainerSeatFloor } from './seat-container-login.js';
25
26
  import { seatGovernanceModes } from './seat-governance.js';
26
27
  import { seatStanding, chatSeatAdmission } from './seat-standing.js';
27
28
  import { seatVersion, seatVersions } from './seat-version.js';
@@ -40,6 +41,8 @@ export function rosterWithStandingFactory(deps) {
40
41
  const signedIn = deps.signedIn ?? signedInHeuristic;
41
42
  const registry = deps.registry ?? (() => CoreAdapter.roster());
42
43
  const env = deps.env ?? process.env;
44
+ const containerMode = () => isContainerSeatFloor(env);
45
+ const containerStatus = deps.containerStatus ?? new SeatContainerStatus();
43
46
  const probe = deps.probe !== undefined ? deps.probe : deps.signedIn === undefined && deps.registry === undefined ? new SeatProbe() : null;
44
47
  const versionPins = deps.versionPins !== undefined
45
48
  ? deps.versionPins
@@ -57,6 +60,7 @@ export function rosterWithStandingFactory(deps) {
57
60
  };
58
61
  const accessor = () => {
59
62
  const root = liveRoot();
63
+ const container = containerMode();
60
64
  const seats = registry();
61
65
  // A5: one engine call per read — the predicate takes the whole (engine-shaped) registry roster.
62
66
  let benchedOnBound = null;
@@ -74,7 +78,20 @@ export function rosterWithStandingFactory(deps) {
74
78
  // whose probe has not answered yet does not read `signed_in` off its file — a credential
75
79
  // file is not a working login (a moved worker home keeps `.claude.json` and loses the
76
80
  // keychain token) — it reads `unknown` until the probe answers.
77
- const probed = probe?.read(key, root);
81
+ // Only a seat with a container login reads the broker (agy crew-r1: any other seat keeps its
82
+ // own check rather than waiting forever on a broker reading it can never get).
83
+ const containerSeat = container && isContainerLoginCli(key);
84
+ const broker = containerSeat ? containerStatus.read(key) : undefined;
85
+ const probed = containerSeat
86
+ ? broker === undefined
87
+ ? undefined
88
+ : {
89
+ signedIn: broker.signed_in,
90
+ check: 'status',
91
+ probedAt: broker.probedAt,
92
+ detail: broker.reason ?? `broker credential ${broker.state}`,
93
+ }
94
+ : probe?.read(key, root);
78
95
  // A seat's own "no credential" report that its LIVE sign-in check answered AFTER is stale: the
79
96
  // operator signed in since (codex r1 on #996 — it otherwise outranked the fresh probe for 30 min).
80
97
  if (probed !== undefined && probed.signedIn === true && probed.check === 'live') {
@@ -88,12 +105,14 @@ export function rosterWithStandingFactory(deps) {
88
105
  seatHealth.clearRecentBench(key);
89
106
  recentBench = null;
90
107
  }
91
- const heuristic = signedIn(key, root);
92
- const signed = probed !== undefined && probed.signedIn !== null
93
- ? probed.signedIn
94
- : probe?.probes(key) === true && heuristic === true
95
- ? null
96
- : heuristic;
108
+ const heuristic = containerSeat ? null : signedIn(key, root);
109
+ const signed = containerSeat
110
+ ? broker?.signed_in ?? null
111
+ : probed !== undefined && probed.signedIn !== null
112
+ ? probed.signedIn
113
+ : probe?.probes(key) === true && heuristic === true
114
+ ? null
115
+ : heuristic;
97
116
  // (R5b, DES-L3 PR-3D) No crew-side council bench any more: the engine's per-run ballot ledger
98
117
  // (`session.benched_seats`) is the one bench, so there is no bench reading to pass and no
99
118
  // health reading to weigh — the roster's standing is the auth picture alone.
@@ -101,7 +120,7 @@ export function rosterWithStandingFactory(deps) {
101
120
  // F-A45-006: the seat's OWN "no credential" report (a ballot's "No API key found", a
102
121
  // worker's 401, an auth ACP fallback) overrides the file probe — `auth` flips, not only
103
122
  // `council_eligible`, and the evidence rides on the wire.
104
- authFailure, probed ?? (probe?.probes(key) === true ? 'pending' : undefined),
123
+ authFailure, probed ?? (containerSeat || probe?.probes(key) === true ? 'pending' : undefined),
105
124
  // The engine's own in-run bench of the seat, carried to this launch for a bounded window
106
125
  // (`seatBenched`, SEAT_BENCH_WINDOW_MS): a seat that reads signed in but refused its work
107
126
  // in a recent run is benched up front instead of being handed a unit again.
@@ -149,7 +168,7 @@ export function rosterWithStandingFactory(deps) {
149
168
  seat_eligible_for_work: seat.seat_eligible_for_work,
150
169
  standing,
151
170
  recentBench,
152
- loginPending: probed === undefined && probe?.probes(key) === true && authFailure === null,
171
+ loginPending: probed === undefined && (containerSeat || probe?.probes(key) === true) && authFailure === null,
153
172
  chatAdmission,
154
173
  worktreeBench: benchedOnBound.get(key) ?? null,
155
174
  };
@@ -157,6 +176,7 @@ export function rosterWithStandingFactory(deps) {
157
176
  ...seat,
158
177
  health,
159
178
  signed_in: signed,
179
+ ...(containerSeat ? { sign_in: 'container' } : {}),
160
180
  ...(versionPin !== undefined ? { version_pin: versionPin } : {}),
161
181
  ...standing,
162
182
  // ASK-C2: the admission an ASK applies (every chat is a path after ASK-C1): `unscoped` =
@@ -197,7 +217,8 @@ export function rosterWithStandingFactory(deps) {
197
217
  }),
198
218
  }));
199
219
  };
200
- if (probe !== null) {
220
+ accessor.containerStatus = containerStatus;
221
+ if (probe !== null || containerMode()) {
201
222
  accessor.ready = async () => {
202
223
  let keys;
203
224
  try {
@@ -206,12 +227,38 @@ export function rosterWithStandingFactory(deps) {
206
227
  catch {
207
228
  return; // no roster: the launch reads (and reports) the same failure itself
208
229
  }
209
- await probe.ensureFresh(keys, liveRoot());
230
+ if (containerMode()) {
231
+ await Promise.all(keys.filter(isContainerLoginCli).map((key) => containerStatus.refresh(key)));
232
+ }
233
+ else {
234
+ await probe?.ensureFresh(keys, liveRoot());
235
+ }
210
236
  };
211
237
  accessor.reprobe = (seatKey) => {
212
- void probe.refresh(seatKey, liveRoot());
238
+ if (containerMode()) {
239
+ containerStatus.invalidate(seatKey);
240
+ void containerStatus.refresh(seatKey);
241
+ }
242
+ else {
243
+ void probe?.refresh(seatKey, liveRoot());
244
+ }
213
245
  };
214
246
  accessor.recheck = async (seatKey, waitMs) => {
247
+ if (containerMode()) {
248
+ if (!isContainerLoginCli(seatKey))
249
+ return 'not_probed';
250
+ containerStatus.invalidate(seatKey);
251
+ let timer;
252
+ const deadline = new Promise((resolve) => {
253
+ timer = setTimeout(() => resolve('timed_out'), waitMs);
254
+ timer.unref();
255
+ });
256
+ const outcome = await Promise.race([containerStatus.refreshFresh(seatKey).then(() => 'probed'), deadline]);
257
+ clearTimeout(timer);
258
+ return outcome;
259
+ }
260
+ if (probe === null)
261
+ return 'not_probed';
215
262
  if (!probe.probes(seatKey))
216
263
  return 'not_probed';
217
264
  const deadlineAt = Date.now() + waitMs;
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAA4B,MAAM,kBAAkB,CAAC;AAClG,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAqD,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAwC,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AAiBrF;;uFAEuF;AACvF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAsChD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9H,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,KAAK,SAAS;QAC5B,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC1D,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,CAAC;IACb,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,MAAM,aAAa,GACjB,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5I,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,GAAuB,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvJ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,GAAuB,EAAE;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC7C,OAAO,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,QAAQ,GAAuB,GAAiB,EAAE;QACtD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,EAAkB,CAAC;QACzC,gGAAgG;QAChG,IAAI,cAAc,GAA+B,IAAI,CAAC;QACtD,IAAI,CAAC;YACH,cAAc,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,GAAG,IAAI,CAAC,CAAC,mEAAmE;QAC5F,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,0FAA0F;YAC1F,yFAAyF;YACzF,sFAAsF;YACtF,gEAAgE;YAChE,MAAM,MAAM,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,+FAA+F;YAC/F,mGAAmG;YACnG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAChF,UAAU,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACnD,8FAA8F;YAC9F,+DAA+D;YAC/D,IAAI,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,WAAW,KAAK,IAAI,IAAI,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrE,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACjC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GACV,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;gBAC9C,CAAC,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;oBACjD,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,SAAS,CAAC;YAClB,8FAA8F;YAC9F,0FAA0F;YAC1F,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,YAAY,CAC3B,IAA+F,EAC/F,MAAM;YACN,qFAAqF;YACrF,wFAAwF;YACxF,0DAA0D;YAC1D,WAAW,EACX,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,yFAAyF;YACzF,0FAA0F;YAC1F,4EAA4E;YAC5E,WAAW,CACZ,CAAC;YACF,gGAAgG;YAChG,6FAA6F;YAC7F,4FAA4F;YAC5F,0FAA0F;YAC1F,8BAA8B;YAC9B,MAAM,YAAY,GAAG,IAA+B,CAAC;YACrD,yFAAyF;YACzF,mFAAmF;YACnF,8EAA8E;YAC9E,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,oFAAoF;YACpF,sEAAsE;YACtE,MAAM,cAAc,GAAG,mBAAmB,CAAC;gBACzC,GAAI,IAAwB;gBAC5B,GAAG;gBACH,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACtG,MAAM,aAAa,GAAG;gBACpB,QAAQ,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;gBAClE,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;gBAC/D,YAAY,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC;aAC5E,CAAC;YACF,8DAA8D;YAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAuD,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YACtH,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5D,oFAAoF;YACpF,IAAI,aAAa,GAAmB,IAAI,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAI,IAA0C,CAAC,mBAAmB,CAAC;gBAC5E,aAAa,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1G,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,oFAAoF;YACpF,MAAM,MAAM,GACV,cAAc,KAAK,IAAI;gBACrB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC;oBACE,mBAAmB,EAAG,IAA0C,CAAC,mBAAmB;oBACpF,sBAAsB,EAAG,IAA6C,CAAC,sBAAsB;oBAC7F,QAAQ;oBACR,WAAW;oBACX,YAAY,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI;oBACzF,aAAa;oBACb,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;iBAC/C,CAAC;YACR,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM;gBACN,SAAS,EAAE,MAAM;gBACjB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,QAAQ;gBACX,yFAAyF;gBACzF,+FAA+F;gBAC/F,+EAA+E;gBAC/E,eAAe,EAAE,cAAc;gBAC/B,cAAc,EAAE,aAAa;gBAC7B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzG,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,8FAA8F;QAC9F,yFAAyF;QACzF,6EAA6E;QAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,WAAsC,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;QAC3I,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,CAAC;YACJ,MAAM,EAAE,UAAU,CAAC;gBACjB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClB,YAAY,EAAE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBACjF,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/D,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,GAAG,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9F,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;gBACzB,QAAQ,EAAE,CAA4B;gBACtC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,UAAU,EAAE,CAAC,CAAC,eAAkE;gBAChF,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,CAAC,CAAC,YAAY;gBAC3B,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,cAA4D,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5H,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,WAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,QAAQ;gBACR,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IACF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,QAAQ,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,IAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,GAAI,QAAQ,EAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,oEAAoE;YAC9E,CAAC;YACD,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,QAAQ,CAAC,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE;YACrC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,QAAQ,CAAC,OAAO,GAAG,KAAK,EAAE,OAAe,EAAE,MAAc,EAA2B,EAAE;YACpF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBAAE,OAAO,YAAY,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YACvC,2FAA2F;YAC3F,8FAA8F;YAC9F,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAM,CAAC;gBAC/B,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,IAAI,SAAS,IAAI,CAAC;oBAAE,OAAO,WAAW,CAAC;gBACvC,IAAI,KAAiC,CAAC;gBACtC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;oBACpD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1D,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAiB,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACrD,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,OAAO,KAAK,WAAW;oBAAE,OAAO,OAAO,CAAC;gBAC5C,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;gBACvB,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,QAAQ,CAAC;gBAClC,IAAI,GAAG,GAAG,CAAC;YACb,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IACD,+FAA+F;IAC/F,sFAAsF;IACtF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import type { ElicitationCache } from './elicitation-cache.js';
9
9
  import type { SessionView } from '../core/types.js';
10
10
  import { SeatHealthTracker } from './seat-health.js';
11
11
  import { type RosterWithStanding } from './roster-standing.js';
12
+ import { type ExecLike } from './seat-container-login.js';
12
13
  import { ChatTurnIndex } from './chat-turns.js';
13
14
  import type { ChatTranscriptStore } from './chat-transcripts.js';
14
15
  import { ChatScopeIndex } from './chat-scope.js';
@@ -1471,6 +1472,8 @@ export interface RuntimeDeps {
1471
1472
  * same seats (F-RECON-002/003); a directly-driven route set builds one over `seatHealth` +
1472
1473
  * `signedIn` above. */
1473
1474
  rosterWithStanding?: RosterWithStanding;
1475
+ /** Injectable so container-login route tests never spawn the engine or a login container. */
1476
+ seatLoginExec?: ExecLike;
1474
1477
  /** The `/ws` fan-out, for the few routes that say something to a thread themselves (a refused
1475
1478
  * chat seat, F-2R2-007). Absent (unit tests, library use) = nothing is broadcast. */
1476
1479
  broadcast?: (frame: CoreEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { readFileSync, existsSync } from 'node:fs';
8
8
  import { promises as fsp } from 'node:fs';
9
9
  import { isAbsolute, join, relative, resolve } from 'node:path';
10
10
  import { fileURLToPath } from 'node:url';
11
+ import { videoPalette } from '../appearance/video-palette.js';
11
12
  import { CampaignsUnsupportedError, ChatUnsupportedError, CoreAdapter, ElicitationUnsupportedError, GovernanceReplayUnsupportedError, PlanLaunchUnsupportedError, SteeringUnsupportedError, addonSupportsQeOverride, addonSupportsReducedAssurance, humanGatePhaseIds, settingsFilePath } from '../core/adapter.js';
12
13
  import { codeGraphDb, codeGraphErrorStatus, requirementsGraph } from '../core/repoPaths.js';
13
14
  import { resolveCursorUnit } from '../core/cursor.js';
@@ -25,6 +26,7 @@ import { defaultLaunchRoster, markOptIn } from '../core/opt-in-seats.js';
25
26
  import { chatSeatAdmission } from './seat-standing.js';
26
27
  import { seatGovernanceDiagnostics, seatGovernanceWarnings, } from './seat-governance.js';
27
28
  import { ROSTER_REFRESH_WAIT_MS, rosterWithStandingFactory } from './roster-standing.js';
29
+ import { SeatContainerStatus, isContainerLoginCli, isContainerSeatFloor, loginDetail, runSeatLogin, seatLoginDepsFor, } from './seat-container-login.js';
28
30
  import { ChatTurnIndex } from './chat-turns.js';
29
31
  import { ChatScopeIndex, chatScopeDeps, chatScopeStatement, prepareChatScratch, removeChatScratch, namedKindRefusal, resolveChatScope, } from './chat-scope.js';
30
32
  import { ASK_TURN_BUDGET_SECS, AskPathIndex, answerStep, isAskTurn } from './ask-paths.js';
@@ -1267,7 +1269,9 @@ runtime = {}) {
1267
1269
  // (built over the same `seatHealth`); a directly-driven route set builds an equivalent one here.
1268
1270
  // `POST /chats` seats its defaults through the SAME standing, so the roster and the chat never
1269
1271
  // disagree about a seat.
1270
- const rosterWithStanding = runtime.rosterWithStanding ?? rosterWithStandingFactory({ seatHealth, signedIn });
1272
+ const seatLoginDeps = seatLoginDepsFor(adapter.dbPath, runtime.seatLoginExec);
1273
+ const containerStatus = runtime.rosterWithStanding?.containerStatus ?? new SeatContainerStatus(seatLoginDeps);
1274
+ const rosterWithStanding = runtime.rosterWithStanding ?? rosterWithStandingFactory({ seatHealth, signedIn, containerStatus });
1271
1275
  // A3b (DES-seats-page): `?refresh=<key>` re-runs that seat's sign-in check now and waits for it,
1272
1276
  // bounded, so the Agents page's "I've signed in: check again" reads the seat's fresh answer, not
1273
1277
  // the probe cache's 30-second-old one. A read with no parameter never waits.
@@ -5126,6 +5130,159 @@ runtime = {}) {
5126
5130
  return reply.code(201).send({ terminalId: termId, cli, action });
5127
5131
  });
5128
5132
  }
5133
+ const containerLoginOutcomes = new Map();
5134
+ const containerSeat = (cli) => isContainerSeatFloor() && isContainerLoginCli(cli) && rosterWithStanding().some((seat) => seat.key === cli);
5135
+ const loginError = (stderr) => loginDetail(stderr) || 'seat-login failed';
5136
+ // One sign-in/sign-out at a time per seat, and a generation every new sign-in and every sign-out
5137
+ // bumps (agy crew-r1): an abandoned login terminal that exits later never ingests over a newer
5138
+ // sign-in or a sign-out, and an ingest in flight finishes before a sign-out runs.
5139
+ const loginGeneration = new Map();
5140
+ const seatOps = new Map();
5141
+ const serial = (cli, op) => {
5142
+ const next = (seatOps.get(cli) ?? Promise.resolve()).then(op, op);
5143
+ seatOps.set(cli, next.catch(() => undefined));
5144
+ return next;
5145
+ };
5146
+ const bump = (cli) => {
5147
+ const g = (loginGeneration.get(cli) ?? 0) + 1;
5148
+ loginGeneration.set(cli, g);
5149
+ return g;
5150
+ };
5151
+ // The one sign-in per seat, reserved synchronously from the request's first await until its
5152
+ // ingest settles (codex crew-r1/r2: two sessions would share the engine's login session), and
5153
+ // released only by its owner (the generation that reserved it).
5154
+ const openLogins = new Map();
5155
+ const release = (cli, generation) => {
5156
+ if (openLogins.get(cli) === generation)
5157
+ openLogins.delete(cli);
5158
+ };
5159
+ app.post(`${V}/seats/:cli/container-login`, { config: { manifest: { requestType: 'SeatSessionBody', responseType: 'SeatContainerLoginResponse', statusCodes: [201, 400, 404, 502] } } }, async (req, reply) => {
5160
+ const { cli } = req.params;
5161
+ if (!containerSeat(cli))
5162
+ return reply.code(404).send({ error: `container login unavailable for seat: ${cli}` });
5163
+ const parsed = SeatSessionSchema.safeParse(req.body ?? {});
5164
+ if (!parsed.success)
5165
+ return reply.code(400).send(invalidBody(parsed.error, 'Invalid request body'));
5166
+ if (openLogins.has(cli)) {
5167
+ return reply.code(409).send({ error: `a sign-in is already open for ${cli}; finish or close it first` });
5168
+ }
5169
+ // Reserved BEFORE the first await (codex crew-r1): a sign-out that lands meanwhile wins.
5170
+ const generation = bump(cli);
5171
+ openLogins.set(cli, generation);
5172
+ containerLoginOutcomes.delete(cli);
5173
+ const out = await serial(cli, () => runSeatLogin('argv', cli, seatLoginDeps));
5174
+ if (out.rc !== 0) {
5175
+ release(cli, generation);
5176
+ return reply.code(502).send({ error: loginError(out.stderr) });
5177
+ }
5178
+ if (loginGeneration.get(cli) !== generation) {
5179
+ release(cli, generation);
5180
+ return reply.code(409).send({ error: `the ${cli} sign-in was superseded (a sign-out or another sign-in)` });
5181
+ }
5182
+ let argv;
5183
+ try {
5184
+ const value = JSON.parse(out.stdout);
5185
+ if (!Array.isArray(value) || value.length === 0 || !value.every((arg) => typeof arg === 'string' && arg.length > 0)) {
5186
+ throw new Error('seat-login argv must be a non-empty array of non-empty strings');
5187
+ }
5188
+ argv = value;
5189
+ }
5190
+ catch (err) {
5191
+ release(cli, generation);
5192
+ return reply.code(502).send({ error: message(err) });
5193
+ }
5194
+ let termId = null;
5195
+ let completed = false;
5196
+ const exitedEarly = new Set();
5197
+ const ingest = () => serial(cli, async () => {
5198
+ // A newer sign-in or a sign-out superseded this terminal: nothing to ingest or record.
5199
+ if (loginGeneration.get(cli) !== generation)
5200
+ return;
5201
+ // Refusals the OLD credential earned up to now are superseded by this sign-in (codex
5202
+ // crew-r2: a 401 during the interactive login must not outlive it).
5203
+ const cutoff = Date.now();
5204
+ const result = await runSeatLogin('ingest', cli, seatLoginDeps);
5205
+ // The broker may have changed whatever happens next: the next reading is its own.
5206
+ containerStatus.invalidate(cli);
5207
+ rosterWithStanding.reprobe?.(cli);
5208
+ const outcome = { cli, ok: result.rc === 0, at: new Date().toISOString() };
5209
+ if (result.rc !== 0)
5210
+ outcome.error = loginError(result.stderr);
5211
+ else {
5212
+ try {
5213
+ const value = JSON.parse(result.stdout);
5214
+ if (value === null || !Array.isArray(value.files) || !value.files.every((file) => typeof file === 'string') ||
5215
+ !(value.expires_at === null || (typeof value.expires_at === 'number' && Number.isFinite(value.expires_at)))) {
5216
+ throw new Error('invalid seat-login ingest response');
5217
+ }
5218
+ // Only the public ingest fields cross the wire; raw stdout may contain credentials.
5219
+ outcome.files = value.files;
5220
+ outcome.expires_at = value.expires_at;
5221
+ }
5222
+ catch {
5223
+ outcome.ok = false;
5224
+ outcome.error = 'invalid seat-login ingest response';
5225
+ }
5226
+ }
5227
+ if (outcome.ok) {
5228
+ seatHealth.clearAuthFailureBefore(cli, cutoff);
5229
+ seatHealth.clearRecentBench(cli);
5230
+ }
5231
+ // A sign-out (or a newer sign-in) while this ingest ran owns the outcome now.
5232
+ if (loginGeneration.get(cli) === generation)
5233
+ containerLoginOutcomes.set(cli, outcome);
5234
+ }).finally(() => release(cli, generation));
5235
+ const done = () => {
5236
+ if (completed)
5237
+ return;
5238
+ completed = true;
5239
+ stop();
5240
+ void ingest();
5241
+ };
5242
+ // Subscribe before spawn: an immediate exit still needs exactly one ingest.
5243
+ const stop = adapter.onEvent((event) => {
5244
+ if (event.type !== 'terminalExited' || typeof event.id !== 'string')
5245
+ return;
5246
+ if (termId === null)
5247
+ exitedEarly.add(event.id);
5248
+ else if (event.id === termId)
5249
+ done();
5250
+ });
5251
+ try {
5252
+ termId = await adapter.openTerminal(homedir(), argv, parsed.data.cols ?? 100, parsed.data.rows ?? 30, true);
5253
+ }
5254
+ catch (err) {
5255
+ stop();
5256
+ release(cli, generation);
5257
+ return reply.code(400).send({ error: message(err) });
5258
+ }
5259
+ if (exitedEarly.has(termId))
5260
+ done();
5261
+ return reply.code(201).send({ terminalId: termId, cli, action: 'sign_in' });
5262
+ });
5263
+ app.get(`${V}/seats/:cli/container-login`, { config: { manifest: { responseType: 'SeatContainerLoginOutcome', statusCodes: [200, 404] } } }, async (req, reply) => {
5264
+ const { cli } = req.params;
5265
+ const outcome = containerSeat(cli) ? containerLoginOutcomes.get(cli) : undefined;
5266
+ if (outcome === undefined)
5267
+ return reply.code(404).send({ error: `no container login outcome for seat: ${cli}` });
5268
+ return reply.send(outcome);
5269
+ });
5270
+ app.post(`${V}/seats/:cli/container-logout`, { config: { manifest: { responseType: 'SeatContainerLogoutResponse', statusCodes: [200, 404, 502] } } }, async (req, reply) => {
5271
+ const { cli } = req.params;
5272
+ if (!containerSeat(cli))
5273
+ return reply.code(404).send({ error: `container logout unavailable for seat: ${cli}` });
5274
+ bump(cli);
5275
+ const out = await serial(cli, async () => {
5276
+ containerLoginOutcomes.delete(cli);
5277
+ return runSeatLogin('sign-out', cli, seatLoginDeps);
5278
+ });
5279
+ // Whatever the engine managed before failing, the next reading is the broker's (codex crew-r1).
5280
+ containerStatus.invalidate(cli);
5281
+ rosterWithStanding.reprobe?.(cli);
5282
+ if (out.rc !== 0)
5283
+ return reply.code(502).send({ error: loginError(out.stderr) });
5284
+ return reply.send({ cli, action: 'sign_out' });
5285
+ });
5129
5286
  // Resize a live terminal's PTY.
5130
5287
  app.post(`${V}/terminals/:id/resize`, async (req, reply) => {
5131
5288
  const { id } = req.params;
@@ -5163,6 +5320,9 @@ runtime = {}) {
5163
5320
  // additive `path` (api-types 0.38.0 `SettingsResponse.path?`; adjudicated §4.6 — `path`, not
5164
5321
  // `settings_path`).
5165
5322
  app.get(`${V}/settings`, async () => ({ settings: await adapter.getSettings(), path: settingsFilePath() }));
5323
+ // The demo video's palette from the studio skin (operator 2026-10-14): read-only, derived from `studio.appearance`;
5324
+ // garden's demo stage and interactive's re-cuts read it as their default colours.
5325
+ app.get(`${V}/appearance/video-palette`, { config: { manifest: { responseType: 'VideoPaletteResponse', statusCodes: [200] } } }, async () => videoPalette((await adapter.getSettings())['studio.appearance']));
5166
5326
  app.put(`${V}/settings`, async (req, reply) => {
5167
5327
  const patch = req.body;
5168
5328
  if (typeof patch !== 'object' || patch === null || Array.isArray(patch)) {