wicked-crew 0.10.0 → 0.10.2

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 (55) hide show
  1. package/dist/api/roster-standing.d.ts +27 -1
  2. package/dist/api/roster-standing.d.ts.map +1 -1
  3. package/dist/api/roster-standing.js +126 -10
  4. package/dist/api/roster-standing.js.map +1 -1
  5. package/dist/api/routes.d.ts.map +1 -1
  6. package/dist/api/routes.js +28 -11
  7. package/dist/api/routes.js.map +1 -1
  8. package/dist/api/seat-agents.d.ts +135 -0
  9. package/dist/api/seat-agents.d.ts.map +1 -0
  10. package/dist/api/seat-agents.js +186 -0
  11. package/dist/api/seat-agents.js.map +1 -0
  12. package/dist/api/seat-health.d.ts +23 -0
  13. package/dist/api/seat-health.d.ts.map +1 -1
  14. package/dist/api/seat-health.js +70 -8
  15. package/dist/api/seat-health.js.map +1 -1
  16. package/dist/api/seat-probe.d.ts +11 -2
  17. package/dist/api/seat-probe.d.ts.map +1 -1
  18. package/dist/api/seat-probe.js +28 -9
  19. package/dist/api/seat-probe.js.map +1 -1
  20. package/dist/api/seat-scrub.d.ts +65 -0
  21. package/dist/api/seat-scrub.d.ts.map +1 -0
  22. package/dist/api/seat-scrub.js +193 -0
  23. package/dist/api/seat-scrub.js.map +1 -0
  24. package/dist/api/seat-standing.d.ts +3 -2
  25. package/dist/api/seat-standing.d.ts.map +1 -1
  26. package/dist/api/seat-standing.js +8 -7
  27. package/dist/api/seat-standing.js.map +1 -1
  28. package/dist/api/seat-version.d.ts +81 -0
  29. package/dist/api/seat-version.d.ts.map +1 -0
  30. package/dist/api/seat-version.js +174 -0
  31. package/dist/api/seat-version.js.map +1 -0
  32. package/dist/api/server.js +1 -1
  33. package/dist/core/adapter.d.ts +12 -0
  34. package/dist/core/adapter.d.ts.map +1 -1
  35. package/dist/core/adapter.js +25 -0
  36. package/dist/core/adapter.js.map +1 -1
  37. package/dist/core/engine-roster.d.ts.map +1 -1
  38. package/dist/core/engine-roster.js +8 -0
  39. package/dist/core/engine-roster.js.map +1 -1
  40. package/dist/editors/registry.d.ts +2 -2
  41. package/dist/interactive/council-outcome.d.ts +5 -1
  42. package/dist/interactive/council-outcome.d.ts.map +1 -1
  43. package/dist/interactive/council-outcome.js +11 -2
  44. package/dist/interactive/council-outcome.js.map +1 -1
  45. package/dist/standing-orders/parse.js +1 -1
  46. package/dist/studio/assets/index-C6DLorst.css +32 -0
  47. package/dist/studio/assets/index-CAhuFWeA.js +609 -0
  48. package/dist/studio/editors/wicked-page/editor.json +1 -1
  49. package/dist/studio/editors/wicked-page/index.html +1 -1
  50. package/dist/studio/index.html +2 -2
  51. package/dist/studio/testid-inventory.json +553 -144
  52. package/endpoint-manifest.json +6 -14
  53. package/package.json +4 -4
  54. package/dist/studio/assets/index-DlZl1q2Q.js +0 -593
  55. package/dist/studio/assets/index-eLCOoPWX.css +0 -32
@@ -14,12 +14,13 @@
14
14
  * builds exactly one over its `SeatHealthTracker` and hands the same function everywhere.
15
15
  *
16
16
  * Standing is read at CALL time (the tracker's live state, the LIVE `WICKED_WORKER_HOME`), never
17
- * captured — a seat signed in from the System page is eligible on the very next launch.
17
+ * captured — a seat signed in from the Agents page is eligible on the very next launch.
18
18
  */
19
19
  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 { type SeatVersionCache } from './seat-version.js';
23
24
  /** The accessor: the registry roster WITH crew's standing, freshly read on every call. `ready`
24
25
  * (crew#645), awaited by a launch before it reads the roster, waits — bounded — for every seat's
25
26
  * missing or stale login check, so an expired login reads `signed_out` before work is routed. */
@@ -27,7 +28,16 @@ export type RosterWithStanding = (() => RosterSeat[]) & {
27
28
  ready?: () => Promise<void>;
28
29
  /** crew#615: re-run one seat's credential probe now (after a sign-in / sign-out terminal). */
29
30
  reprobe?: (seatKey: string) => void;
31
+ /** A3b (`GET /roster?refresh=<key>`): re-run one seat's sign-in check now and wait for it, at most
32
+ * `waitMs`. `probed` — the fresh answer is in; `timed_out` — still running (the read serves the
33
+ * last answer); `not_probed` — the seat has no sign-in check (pi, copilot, opencode). */
34
+ recheck?: (seatKey: string, waitMs: number) => Promise<RecheckOutcome>;
30
35
  };
36
+ export type RecheckOutcome = 'probed' | 'timed_out' | 'not_probed';
37
+ /** A3b: how long `GET /roster?refresh=<key>` waits for the seat's sign-in check — the status
38
+ * command (about a second) plus its one live request (a CLI start and a one-word reply). Past it
39
+ * the read answers with the last reading and `timed_out`; the check keeps running. */
40
+ export declare const ROSTER_REFRESH_WAIT_MS: number;
31
41
  export interface RosterStandingDeps {
32
42
  /** The daemon's per-seat runtime health + council evidence (councilSeatFailed, auth refusals). */
33
43
  seatHealth: SeatHealthTracker;
@@ -46,6 +56,22 @@ export interface RosterStandingDeps {
46
56
  /** The seats' ACP version-pin readings (core#581, `diagnostics.ts`). Default: the daemon's
47
57
  * shared cache under the same rule as `probe`; `null` turns it off. */
48
58
  versionPins?: SeatVersionPinCache | null;
59
+ /** (A1) Every seat's `--version` reading (`seat-version.ts`). Default: the daemon's cache under
60
+ * the same rule as `probe`; `null` turns it off. */
61
+ versions?: SeatVersionCache | null;
62
+ /** (A5, core#920) The engine's worktree bench for a bound run: seat key → reason, or `null` when
63
+ * the engine cannot answer (an addon before the predicate). Default: `CoreAdapter.worktreeBenched`
64
+ * under the same rule as `probe`; `null` (or a test that injects a registry) turns it off, and
65
+ * then `work_admission` and `qe_reviewer` are absent. */
66
+ worktreeBench?: ((engineSeats: readonly unknown[]) => Map<string, string> | null) | null;
67
+ /** (A4) The engine's QE reviewer admission for one seat (`Core.qeReviewerAdmitted`), `null` when
68
+ * the engine cannot answer. Default under the same rule as `worktreeBench`; without it (or with
69
+ * `worktreeBench` absent) `qe_reviewer` is absent. */
70
+ qeAdmitted?: ((key: string, invocation: string | undefined) => boolean | null) | null;
71
+ /** (A6) The OS launcher the repository boundary arms with (`hostSandboxLauncher`). */
72
+ hostBoundary?: () => string | null;
73
+ /** (A6) The home directory a command's display writes as `$HOME` (default `os.homedir()`). */
74
+ home?: string;
49
75
  }
50
76
  /**
51
77
  * Build the accessor. Each seat's registry fields ride through verbatim — the spread is
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.d.ts","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;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;CACrC,CAAC;AAEF,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;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAgHtF"}
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"}
@@ -14,14 +14,21 @@
14
14
  * builds exactly one over its `SeatHealthTracker` and hands the same function everywhere.
15
15
  *
16
16
  * Standing is read at CALL time (the tracker's live state, the LIVE `WICKED_WORKER_HOME`), never
17
- * captured — a seat signed in from the System page is eligible on the very next launch.
17
+ * captured — a seat signed in from the Agents page is eligible on the very next launch.
18
18
  */
19
19
  import { CoreAdapter } from '../core/adapter.js';
20
- import { seatVersionPins } from './diagnostics.js';
20
+ import { defaultLaunchRoster, isOptInSeat } from '../core/opt-in-seats.js';
21
+ import { hostSandboxLauncher, seatVersionPins } from './diagnostics.js';
22
+ import { liveCheckLiftsBench, qeReviewer, recentBenchWire, seatAccount, seatIssues, workAdmission, } from './seat-agents.js';
21
23
  import { signedInHeuristic } from './seat-signin.js';
22
24
  import { SeatProbe } from './seat-probe.js';
23
25
  import { seatGovernanceModes } from './seat-governance.js';
24
26
  import { seatStanding, chatSeatAdmission } from './seat-standing.js';
27
+ import { seatVersion, seatVersions } from './seat-version.js';
28
+ /** A3b: how long `GET /roster?refresh=<key>` waits for the seat's sign-in check — the status
29
+ * command (about a second) plus its one live request (a CLI start and a one-word reply). Past it
30
+ * the read answers with the last reading and `timed_out`; the check keeps running. */
31
+ export const ROSTER_REFRESH_WAIT_MS = 20 * 1000;
25
32
  /**
26
33
  * Build the accessor. Each seat's registry fields ride through verbatim — the spread is
27
34
  * deliberately NOT a field whitelist, which is what lets the engine's `login_invocation` pass
@@ -39,13 +46,28 @@ export function rosterWithStandingFactory(deps) {
39
46
  : deps.signedIn === undefined && deps.registry === undefined
40
47
  ? seatVersionPins
41
48
  : null;
49
+ const daemon = deps.signedIn === undefined && deps.registry === undefined;
50
+ const versions = deps.versions !== undefined ? deps.versions : daemon ? seatVersions : null;
51
+ const worktreeBench = deps.worktreeBench !== undefined ? deps.worktreeBench : daemon ? (seats) => CoreAdapter.worktreeBenched(seats) : null;
52
+ const qeAdmitted = deps.qeAdmitted !== undefined ? deps.qeAdmitted : daemon ? (key, inv) => CoreAdapter.qeReviewerAdmitted(key, inv) : null;
53
+ const hostBoundary = deps.hostBoundary ?? (() => hostSandboxLauncher());
42
54
  const liveRoot = () => {
43
55
  const workerRoot = env['WICKED_WORKER_HOME'];
44
56
  return workerRoot === '' ? undefined : workerRoot;
45
57
  };
46
58
  const accessor = () => {
47
59
  const root = liveRoot();
48
- return registry().map((seat) => {
60
+ const seats = registry();
61
+ // A5: one engine call per read — the predicate takes the whole (engine-shaped) registry roster.
62
+ let benchedOnBound = null;
63
+ try {
64
+ benchedOnBound = worktreeBench === null ? null : worktreeBench(seats);
65
+ }
66
+ catch {
67
+ benchedOnBound = null; // an engine that cannot answer says nothing, never a guessed bench
68
+ }
69
+ const boundary = hostBoundary();
70
+ const decorated = seats.map((seat) => {
49
71
  const key = String(seat.key);
50
72
  const health = seatHealth.healthFor(key);
51
73
  // crew#630: the seat's own auth-status answer (cached; never awaited here). A probed seat
@@ -53,6 +75,19 @@ export function rosterWithStandingFactory(deps) {
53
75
  // file is not a working login (a moved worker home keeps `.claude.json` and loses the
54
76
  // keychain token) — it reads `unknown` until the probe answers.
55
77
  const probed = probe?.read(key, root);
78
+ // A seat's own "no credential" report that its LIVE sign-in check answered AFTER is stale: the
79
+ // operator signed in since (codex r1 on #996 — it otherwise outranked the fresh probe for 30 min).
80
+ if (probed !== undefined && probed.signedIn === true && probed.check === 'live') {
81
+ seatHealth.clearAuthFailureBefore(key, Date.parse(probed.probedAt));
82
+ }
83
+ const authFailure = seatHealth.authFailureFor(key);
84
+ // A3: an account bench (signed out, out of quota) the seat's own LIVE sign-in check disproved
85
+ // after it landed is lifted here, as an ok turn would lift it.
86
+ let recentBench = seatHealth.recentBenchFor(key);
87
+ if (recentBench !== null && liveCheckLiftsBench(recentBench, probed)) {
88
+ seatHealth.clearRecentBench(key);
89
+ recentBench = null;
90
+ }
56
91
  const heuristic = signedIn(key, root);
57
92
  const signed = probed !== undefined && probed.signedIn !== null
58
93
  ? probed.signedIn
@@ -66,11 +101,11 @@ export function rosterWithStandingFactory(deps) {
66
101
  // F-A45-006: the seat's OWN "no credential" report (a ballot's "No API key found", a
67
102
  // worker's 401, an auth ACP fallback) overrides the file probe — `auth` flips, not only
68
103
  // `council_eligible`, and the evidence rides on the wire.
69
- seatHealth.authFailureFor(key), probed ?? (probe?.probes(key) === true ? 'pending' : undefined),
104
+ authFailure, probed ?? (probe?.probes(key) === true ? 'pending' : undefined),
70
105
  // The engine's own in-run bench of the seat, carried to this launch for a bounded window
71
106
  // (`seatBenched`, SEAT_BENCH_WINDOW_MS): a seat that reads signed in but refused its work
72
107
  // in a recent run is benched up front instead of being handed a unit again.
73
- seatHealth.recentBenchFor(key));
108
+ recentBench);
74
109
  // F-W1-005 (wave-1 P6): the chat admission verdict the daemon itself applies when `POST /chats`
75
110
  // picks its default seats — the SAME `chatSeatAdmission` call, for both scope modes — so the
76
111
  // studio's picker offers exactly the seats an open would seat, from one source of truth (no
@@ -89,6 +124,35 @@ export function rosterWithStandingFactory(deps) {
89
124
  ...(versionPin !== undefined ? { version_pin: versionPin } : {}),
90
125
  });
91
126
  const govSeat = { ...standingSeat, ...(versionPin !== undefined ? { version_pin: versionPin } : {}) };
127
+ const chatAdmission = {
128
+ unscoped: chatSeatAdmission(govSeat, standing.auth, false, 'path'),
129
+ scoped: chatSeatAdmission(govSeat, standing.auth, true, 'path'),
130
+ scoped_bound: chatSeatAdmission(govSeat, standing.auth, true, 'path-bound'),
131
+ };
132
+ // A1: every seat's installed version, beside the pin reading.
133
+ const version = seatVersion(seat, versions?.read(key), versionPin);
134
+ const account = seatAccount(standing.auth, probed?.account);
135
+ // A4: the engine's QE skill admission for this seat (`null` when it cannot answer).
136
+ let skillAdmitted = null;
137
+ try {
138
+ const inv = seat.headless_invocation;
139
+ skillAdmitted = qeAdmitted === null ? null : qeAdmitted(key, typeof inv === 'string' ? inv : undefined);
140
+ }
141
+ catch {
142
+ skillAdmitted = null;
143
+ }
144
+ // A4 / A5: only when the engine can say whether it benches the seat on a bound run.
145
+ const inputs = benchedOnBound === null
146
+ ? null
147
+ : {
148
+ enabled_for_council: seat.enabled_for_council,
149
+ seat_eligible_for_work: seat.seat_eligible_for_work,
150
+ standing,
151
+ recentBench,
152
+ loginPending: probed === undefined && probe?.probes(key) === true && authFailure === null,
153
+ chatAdmission,
154
+ worktreeBench: benchedOnBound.get(key) ?? null,
155
+ };
92
156
  return {
93
157
  ...seat,
94
158
  health,
@@ -99,13 +163,39 @@ export function rosterWithStandingFactory(deps) {
99
163
  // standing only; `scoped` = the wider-scope rule (several repos / a project); `scoped_bound` =
100
164
  // a single-repo ask (bound run — standing only). The picker offers from these.
101
165
  governance_mode: governanceMode,
102
- chat_admission: {
103
- unscoped: chatSeatAdmission(govSeat, standing.auth, false, 'path'),
104
- scoped: chatSeatAdmission(govSeat, standing.auth, true, 'path'),
105
- scoped_bound: chatSeatAdmission(govSeat, standing.auth, true, 'path-bound'),
106
- },
166
+ chat_admission: chatAdmission,
167
+ ...(version !== undefined ? { version } : {}),
168
+ ...(account !== undefined ? { account } : {}),
169
+ ...(recentBench !== null ? { recent_bench: recentBenchWire(recentBench) } : {}),
170
+ ...(inputs !== null ? { work_admission: workAdmission(inputs) } : {}),
171
+ ...(inputs !== null && skillAdmitted !== null ? { qe_reviewer: qeReviewer(inputs, skillAdmitted) } : {}),
107
172
  };
108
173
  });
174
+ // A6: the issues read the whole roster once — can any seat a DEFAULT launch holds run QE now?
175
+ // The default launch roster leaves opt-in seats out unless they are all it could convene
176
+ // (`defaultLaunchRoster`), so this follows the same rule (codex r1 on #996).
177
+ const qeKnown = decorated.some((s) => s.qe_reviewer !== undefined);
178
+ const rosterQe = !qeKnown ? undefined : defaultLaunchRoster(decorated).some((s) => s.qe_reviewer?.ok === true);
179
+ return decorated.map((s) => ({
180
+ ...s,
181
+ issues: seatIssues({
182
+ key: String(s.key),
183
+ display_name: typeof s.display_name === 'string' ? s.display_name : String(s.key),
184
+ binary: typeof s.binary === 'string' ? s.binary : String(s.key),
185
+ ...(typeof s.login_invocation === 'string' ? { login_invocation: s.login_invocation } : {}),
186
+ ...(typeof s.logout_invocation === 'string' ? { logout_invocation: s.logout_invocation } : {}),
187
+ optIn: isOptInSeat(s.key),
188
+ standing: s,
189
+ ...(s.version !== undefined ? { version: s.version } : {}),
190
+ governance: s.governance_mode,
191
+ hostBoundary: boundary,
192
+ recentBench: s.recent_bench,
193
+ ...(s.work_admission !== undefined ? { workAdmission: s.work_admission } : {}),
194
+ ...(s.qe_reviewer !== undefined ? { qeReviewer: s.qe_reviewer } : {}),
195
+ rosterQe,
196
+ ...(deps.home !== undefined ? { home: deps.home } : {}),
197
+ }),
198
+ }));
109
199
  };
110
200
  if (probe !== null) {
111
201
  accessor.ready = async () => {
@@ -121,6 +211,32 @@ export function rosterWithStandingFactory(deps) {
121
211
  accessor.reprobe = (seatKey) => {
122
212
  void probe.refresh(seatKey, liveRoot());
123
213
  };
214
+ accessor.recheck = async (seatKey, waitMs) => {
215
+ if (!probe.probes(seatKey))
216
+ return 'not_probed';
217
+ const deadlineAt = Date.now() + waitMs;
218
+ // `probed` must describe the worker home the answer is READ under: if `worker_config_root`
219
+ // changed while the check ran, check the new home too, inside the same bound (codex r1 #996).
220
+ for (let root = liveRoot();;) {
221
+ const remaining = deadlineAt - Date.now();
222
+ if (remaining <= 0)
223
+ return 'timed_out';
224
+ let timer;
225
+ const deadline = new Promise((resolve) => {
226
+ timer = setTimeout(() => resolve('timed_out'), remaining);
227
+ timer.unref();
228
+ });
229
+ const done = probe.refreshFresh(seatKey, root).then(() => 'probed');
230
+ const outcome = await Promise.race([done, deadline]);
231
+ clearTimeout(timer);
232
+ if (outcome === 'timed_out')
233
+ return outcome;
234
+ const now = liveRoot();
235
+ if (now === root)
236
+ return 'probed';
237
+ root = now;
238
+ }
239
+ };
124
240
  }
125
241
  // Warm the probe at boot, so the first launch after a restart already routes on the seat's own
126
242
  // answer (a probe runs in the background; the roster read itself never waits on one).
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -24,7 +24,7 @@ import { applyCouncilSettings, isCouncilSize, isCouncilStaggerMs } from '../core
24
24
  import { defaultLaunchRoster, markOptIn } from '../core/opt-in-seats.js';
25
25
  import { chatSeatAdmission } from './seat-standing.js';
26
26
  import { seatGovernanceDiagnostics, seatGovernanceWarnings, } from './seat-governance.js';
27
- import { rosterWithStandingFactory } from './roster-standing.js';
27
+ import { ROSTER_REFRESH_WAIT_MS, rosterWithStandingFactory } from './roster-standing.js';
28
28
  import { ChatTurnIndex } from './chat-turns.js';
29
29
  import { ChatScopeIndex, chatScopeDeps, chatScopeStatement, prepareChatScratch, removeChatScratch, namedKindRefusal, resolveChatScope, } from './chat-scope.js';
30
30
  import { ASK_TURN_BUDGET_SECS, AskPathIndex, answerStep, isAskTurn } from './ask-paths.js';
@@ -1268,7 +1268,20 @@ runtime = {}) {
1268
1268
  // `POST /chats` seats its defaults through the SAME standing, so the roster and the chat never
1269
1269
  // disagree about a seat.
1270
1270
  const rosterWithStanding = runtime.rosterWithStanding ?? rosterWithStandingFactory({ seatHealth, signedIn });
1271
- app.get(`${V}/roster`, async () => ({ roster: markOptIn(rosterWithStanding()) }));
1271
+ // A3b (DES-seats-page): `?refresh=<key>` re-runs that seat's sign-in check now and waits for it,
1272
+ // bounded, so the Agents page's "I've signed in: check again" reads the seat's fresh answer, not
1273
+ // the probe cache's 30-second-old one. A read with no parameter never waits.
1274
+ app.get(`${V}/roster`, { config: { manifest: { responseType: 'RosterResponse', statusCodes: [200, 400] } } }, async (req, reply) => {
1275
+ const raw = req.query.refresh;
1276
+ if (raw === undefined)
1277
+ return { roster: markOptIn(rosterWithStanding()) };
1278
+ const key = Array.isArray(raw) ? undefined : raw.trim();
1279
+ if (key === undefined || key === '' || !rosterWithStanding().some((s) => s.key === key)) {
1280
+ return reply.code(400).send({ error: `Invalid ?refresh — expected one roster seat key, got ${JSON.stringify(raw)}` });
1281
+ }
1282
+ const outcome = rosterWithStanding.recheck !== undefined ? await rosterWithStanding.recheck(key, ROSTER_REFRESH_WAIT_MS) : 'not_probed';
1283
+ return { roster: markOptIn(rosterWithStanding()), refresh: { key, outcome } };
1284
+ });
1272
1285
  /** crew#742: the seats' governance standing, read from the standing roster (empty when the
1273
1286
  * roster cannot be read — the roster route reports that failure itself). */
1274
1287
  const seatGovernanceNow = () => {
@@ -2808,7 +2821,7 @@ runtime = {}) {
2808
2821
  ? 'no seat in standing can be held to an ask that reads several repositories (or a project) ' +
2809
2822
  'the run cannot bind; scope the ask to one repository, sign a seat in, or open it unscoped'
2810
2823
  : 'no seat in the roster can take a turn (every seat is signed out or disabled); sign a seat ' +
2811
- 'in from the System page, or name seats with `clis`') + ' — see refused',
2824
+ 'in from the Agents page, or name seats with `clis`') + ' — see refused',
2812
2825
  refused,
2813
2826
  });
2814
2827
  }
@@ -5058,13 +5071,17 @@ runtime = {}) {
5058
5071
  return reply.code(400).send({ error: message(err) });
5059
5072
  }
5060
5073
  });
5061
- // crew#615: sign a seat in or out without the client composing the command. The daemon runs the
5062
- // ENGINE's own `login_invocation` / `logout_invocation` for that seat (already prefixed with the
5063
- // seat's configuration root; the daemon never synthesizes one) in a governed PTY, and answers
5064
- // the terminal id — the device URL or the CLI's prompt streams over `/ws/terminals/:id`. The
5065
- // seat's credential probe is re-run when the terminal exits, so the roster's `signed_in` follows
5066
- // the outcome instead of waiting out the probe's TTL.
5067
- for (const action of ['login', 'logout']) {
5074
+ // crew#615: sign a seat out without the client composing the command. The daemon runs the
5075
+ // ENGINE's own `logout_invocation` for that seat (already prefixed with the seat's configuration
5076
+ // root; the daemon never synthesizes one) in a governed PTY, and answers the terminal id — the
5077
+ // CLI's output streams over `/ws/terminals/:id`. The seat's credential probe is re-run when the
5078
+ // terminal exits, so the roster's `signed_in` follows the outcome instead of waiting out the
5079
+ // probe's TTL.
5080
+ // DES-seats-page Q3 (operator, 2026-10-12): studio never handles credentials — a sign-in is a
5081
+ // command the operator runs in their own terminal (`RosterSeat.login_invocation`), so the
5082
+ // `POST /seats/:cli/login` PTY route is deleted. This logout route stays only while studio's
5083
+ // Configuration page still calls it; it goes with that page's Log out terminal (studio S2).
5084
+ for (const action of ['logout']) {
5068
5085
  app.post(`${V}/seats/:cli/${action}`, { config: { manifest: { requestType: 'SeatSessionBody', responseType: 'SeatSessionResponse', statusCodes: [201, 400, 404] } } }, async (req, reply) => {
5069
5086
  const { cli } = req.params;
5070
5087
  const parsed = SeatSessionSchema.safeParse(req.body ?? {});
@@ -5074,7 +5091,7 @@ runtime = {}) {
5074
5091
  const seat = rosterWithStanding().find((s) => s.key === cli);
5075
5092
  if (seat === undefined)
5076
5093
  return reply.code(404).send({ error: `unknown seat: ${cli}` });
5077
- const field = action === 'login' ? seat.login_invocation : seat.logout_invocation;
5094
+ const field = seat.logout_invocation;
5078
5095
  const invocation = typeof field === 'string' ? field.trim() : '';
5079
5096
  if (invocation === '') {
5080
5097
  return reply.code(404).send({