wicked-crew 0.9.13 → 0.10.1
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/dist/api/job-title.d.ts +24 -0
- package/dist/api/job-title.d.ts.map +1 -0
- package/dist/api/job-title.js +97 -0
- package/dist/api/job-title.js.map +1 -0
- package/dist/api/mcp.d.ts +26 -6
- package/dist/api/mcp.d.ts.map +1 -1
- package/dist/api/mcp.js +87 -10
- package/dist/api/mcp.js.map +1 -1
- package/dist/api/roster-standing.d.ts +27 -1
- package/dist/api/roster-standing.d.ts.map +1 -1
- package/dist/api/roster-standing.js +126 -10
- package/dist/api/roster-standing.js.map +1 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +60 -13
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-timing-index.d.ts +23 -1
- package/dist/api/run-timing-index.d.ts.map +1 -1
- package/dist/api/run-timing-index.js +66 -1
- package/dist/api/run-timing-index.js.map +1 -1
- package/dist/api/seat-agents.d.ts +135 -0
- package/dist/api/seat-agents.d.ts.map +1 -0
- package/dist/api/seat-agents.js +186 -0
- package/dist/api/seat-agents.js.map +1 -0
- package/dist/api/seat-health.d.ts +22 -0
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +53 -6
- package/dist/api/seat-health.js.map +1 -1
- package/dist/api/seat-probe.d.ts +11 -2
- package/dist/api/seat-probe.d.ts.map +1 -1
- package/dist/api/seat-probe.js +28 -9
- package/dist/api/seat-probe.js.map +1 -1
- package/dist/api/seat-record.d.ts +1 -1
- package/dist/api/seat-record.js +1 -1
- package/dist/api/seat-scrub.d.ts +65 -0
- package/dist/api/seat-scrub.d.ts.map +1 -0
- package/dist/api/seat-scrub.js +193 -0
- package/dist/api/seat-scrub.js.map +1 -0
- package/dist/api/seat-standing.d.ts +3 -2
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +8 -7
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/seat-version.d.ts +81 -0
- package/dist/api/seat-version.d.ts.map +1 -0
- package/dist/api/seat-version.js +174 -0
- package/dist/api/seat-version.js.map +1 -0
- package/dist/api/server.js +2 -2
- package/dist/api/server.js.map +1 -1
- package/dist/core/adapter.d.ts +12 -0
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +25 -0
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/engine-roster.d.ts.map +1 -1
- package/dist/core/engine-roster.js +8 -0
- package/dist/core/engine-roster.js.map +1 -1
- package/dist/editors/registry.d.ts +13 -13
- package/dist/editors/registry.d.ts.map +1 -1
- package/dist/editors/registry.js +1 -0
- package/dist/editors/registry.js.map +1 -1
- package/dist/editors/routes.d.ts +19 -1
- package/dist/editors/routes.d.ts.map +1 -1
- package/dist/editors/routes.js +85 -7
- package/dist/editors/routes.js.map +1 -1
- package/dist/interactive/council-outcome.js +1 -1
- package/dist/mcp/broker.d.ts.map +1 -1
- package/dist/mcp/broker.js +17 -0
- package/dist/mcp/broker.js.map +1 -1
- package/dist/mcp/classify.d.ts +12 -2
- package/dist/mcp/classify.d.ts.map +1 -1
- package/dist/mcp/classify.js +5 -2
- package/dist/mcp/classify.js.map +1 -1
- package/dist/mcp/policies.d.ts +10 -1
- package/dist/mcp/policies.d.ts.map +1 -1
- package/dist/mcp/policies.js +16 -4
- package/dist/mcp/policies.js.map +1 -1
- package/dist/mcp/probe.d.ts +2 -0
- package/dist/mcp/probe.d.ts.map +1 -1
- package/dist/mcp/probe.js.map +1 -1
- package/dist/mcp/registry-store.d.ts +6 -0
- package/dist/mcp/registry-store.d.ts.map +1 -1
- package/dist/mcp/registry-store.js.map +1 -1
- package/dist/mcp/registry.d.ts +83 -7
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +213 -24
- package/dist/mcp/registry.js.map +1 -1
- package/dist/mcp/rest.d.ts +29 -2
- package/dist/mcp/rest.d.ts.map +1 -1
- package/dist/mcp/rest.js +123 -2
- package/dist/mcp/rest.js.map +1 -1
- package/dist/mcp-inspect/routes.d.ts +55 -0
- package/dist/mcp-inspect/routes.d.ts.map +1 -0
- package/dist/mcp-inspect/routes.js +268 -0
- package/dist/mcp-inspect/routes.js.map +1 -0
- package/dist/mcp-inspect/session.d.ts +153 -0
- package/dist/mcp-inspect/session.d.ts.map +1 -0
- package/dist/mcp-inspect/session.js +487 -0
- package/dist/mcp-inspect/session.js.map +1 -0
- package/dist/projects/state-home.d.ts +2 -1
- package/dist/projects/state-home.d.ts.map +1 -1
- package/dist/projects/state-home.js +34 -4
- package/dist/projects/state-home.js.map +1 -1
- package/dist/standing-orders/parse.js +1 -1
- package/dist/studio/assets/index-C6DLorst.css +32 -0
- package/dist/studio/assets/index-CAhuFWeA.js +609 -0
- package/dist/studio/editors/wicked-page/editor.json +1 -1
- package/dist/studio/editors/wicked-page/index.html +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +553 -144
- package/endpoint-manifest.json +61 -15
- package/package.json +3 -3
- package/dist/studio/assets/index-DlZl1q2Q.js +0 -593
- package/dist/studio/assets/index-eLCOoPWX.css +0 -32
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-scrub.js","sourceRoot":"","sources":["../../src/api/seat-scrub.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,11 +44,12 @@ import type { SeatProbeReading } from './seat-probe.js';
|
|
|
44
44
|
export declare function plainEvidence(detail: string): string | null;
|
|
45
45
|
/**
|
|
46
46
|
* `auth_evidence` with the operator's home directory written `~` (crew#771: screen shares and
|
|
47
|
-
* recordings).
|
|
47
|
+
* recordings). A command's display passes `$HOME` instead (`seat-agents.ts`): it expands inside the
|
|
48
|
+
* double quotes the engine puts around a seat's root, where `~` does not. Only the home as a whole path segment — `/home/al` never eats the start of
|
|
48
49
|
* `/home/alice` — and in every separator spelling: `/`, `\`, and the JSON-escaped `\\` a Windows
|
|
49
50
|
* home takes inside a CLI's JSON status (codex on #797). A root home (`/`) is left alone.
|
|
50
51
|
*/
|
|
51
|
-
export declare function homeless(detail: string, home?: string): string;
|
|
52
|
+
export declare function homeless(detail: string, home?: string, replacement?: string): string;
|
|
52
53
|
/** The seat's auth state, read for what it MEANS for the seat's usability. */
|
|
53
54
|
export type SeatAuth = 'signed_in' | 'signed_out' | 'not_required' | 'unknown';
|
|
54
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-standing.d.ts","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAMtD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAMD
|
|
1
|
+
{"version":3,"file":"seat-standing.d.ts","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,11 +59,12 @@ function escapeRegExp(s) {
|
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* `auth_evidence` with the operator's home directory written `~` (crew#771: screen shares and
|
|
62
|
-
* recordings).
|
|
62
|
+
* recordings). A command's display passes `$HOME` instead (`seat-agents.ts`): it expands inside the
|
|
63
|
+
* double quotes the engine puts around a seat's root, where `~` does not. Only the home as a whole path segment — `/home/al` never eats the start of
|
|
63
64
|
* `/home/alice` — and in every separator spelling: `/`, `\`, and the JSON-escaped `\\` a Windows
|
|
64
65
|
* home takes inside a CLI's JSON status (codex on #797). A root home (`/`) is left alone.
|
|
65
66
|
*/
|
|
66
|
-
export function homeless(detail, home = homedir()) {
|
|
67
|
+
export function homeless(detail, home = homedir(), replacement = '~') {
|
|
67
68
|
const trimmed = home.replace(/[\\/]+$/, '');
|
|
68
69
|
if (trimmed === '')
|
|
69
70
|
return detail;
|
|
@@ -71,7 +72,7 @@ export function homeless(detail, home = homedir()) {
|
|
|
71
72
|
const spellings = new Set([trimmed, trimmed.replace(/\\/g, '/'), back, back.replace(/\\/g, '\\\\')]);
|
|
72
73
|
let out = detail;
|
|
73
74
|
for (const h of [...spellings].sort((a, b) => b.length - a.length))
|
|
74
|
-
out = out.replace(new RegExp(`${escapeRegExp(h)}(?=$|[\\\\/\\s"'),;:])`, 'g'),
|
|
75
|
+
out = out.replace(new RegExp(`${escapeRegExp(h)}(?=$|[\\\\/\\s"'),;:])`, 'g'), () => replacement);
|
|
75
76
|
return out;
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
@@ -154,10 +155,10 @@ export function seatStanding(seat, signedIn, authFailure = null, probeInput = un
|
|
|
154
155
|
...base,
|
|
155
156
|
council_eligible: false,
|
|
156
157
|
council_ineligible_reason: authFailure !== null
|
|
157
|
-
? `signed out — the seat itself reported no credential (${noCredentialCause(authFailure)}); sign it in from the
|
|
158
|
+
? `signed out — the seat itself reported no credential (${noCredentialCause(authFailure)}); sign it in from the Agents page`
|
|
158
159
|
: read.auth_source === 'probe'
|
|
159
|
-
? `signed out — the seat's own auth check says ${probeWords(read.auth_evidence)}; sign it in from the
|
|
160
|
-
: 'signed out — a council would bench this seat on its first ballot; sign it in from the
|
|
160
|
+
? `signed out — the seat's own auth check says ${probeWords(read.auth_evidence)}; sign it in from the Agents page`
|
|
161
|
+
: 'signed out — a council would bench this seat on its first ballot; sign it in from the Agents page',
|
|
161
162
|
};
|
|
162
163
|
}
|
|
163
164
|
// A seat the ENGINE benched in a recent run on its own refusal (`seatBenched`: out of quota, not
|
|
@@ -217,7 +218,7 @@ kind = 'pool') {
|
|
|
217
218
|
const reasons = [];
|
|
218
219
|
let source = 'scope';
|
|
219
220
|
if (!authUsable(auth)) {
|
|
220
|
-
reasons.push('signed out — it cannot take a turn until it is signed in from the
|
|
221
|
+
reasons.push('signed out — it cannot take a turn until it is signed in from the Agents page');
|
|
221
222
|
source = 'auth';
|
|
222
223
|
}
|
|
223
224
|
if (seat.enabled_for_council === false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-standing.js","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,mFAAmF;AACnF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,kBAAkB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,gGAAgG;IAChG,kGAAkG;IAClG,qGAAqG;IACrG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"seat-standing.js","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every seat's installed version (DES-seats-page A1): `RosterSeat.version`.
|
|
3
|
+
*
|
|
4
|
+
* `version_pin` (core#581, `diagnostics.ts`) exists only for a seat whose ACP config pins a build
|
|
5
|
+
* (opencode). Every other seat read "Not reported" on the Agents page, although the registry record
|
|
6
|
+
* already carries the argv that answers it (`version_probe`, e.g. `["claude", "--version"]`).
|
|
7
|
+
*
|
|
8
|
+
* The reading, per seat:
|
|
9
|
+
* - `installed`: the first non-empty line the seat's `version_probe` prints (stdout, then stderr),
|
|
10
|
+
* bounded and with the home directory written `~`; `null` when it did not answer;
|
|
11
|
+
* - `proven` / `status`: from the pin reading when the seat pins a build (`proven` = the pinned
|
|
12
|
+
* build; `status` = `proven` when the pin holds, else `unproven`), `no_pin` otherwise. A pinned
|
|
13
|
+
* seat whose pin has not been probed yet carries no `version` at all, never a guessed status;
|
|
14
|
+
* - `install_source`: how the binary on PATH was installed, read off its resolved path (no
|
|
15
|
+
* spawn): under `node_modules` = `npm`, under a Homebrew prefix = `brew`, else `other`; `null`
|
|
16
|
+
* when the binary is not on PATH. It lets the Agents page offer a real update command instead of
|
|
17
|
+
* guessing one. The path itself never reaches the wire.
|
|
18
|
+
*
|
|
19
|
+
* Cost: one bounded `--version` per seat per {@link SEAT_VERSION_TTL_MS}, in the background; the
|
|
20
|
+
* roster read never waits on it. A test-built server spawns nothing (no source under a runner).
|
|
21
|
+
*/
|
|
22
|
+
import type { SeatVersionPin } from './diagnostics.js';
|
|
23
|
+
/** How long a version reading is trusted before a background refresh. */
|
|
24
|
+
export declare const SEAT_VERSION_TTL_MS: number;
|
|
25
|
+
export type SeatInstallSource = 'npm' | 'brew' | 'other';
|
|
26
|
+
/** One seat's probed version (what the cache keeps). */
|
|
27
|
+
export interface SeatVersionReading {
|
|
28
|
+
cli: string;
|
|
29
|
+
installed: string | null;
|
|
30
|
+
checked_at: string;
|
|
31
|
+
install_source: SeatInstallSource | null;
|
|
32
|
+
}
|
|
33
|
+
/** `RosterSeat.version` (api-types 0.115.0). */
|
|
34
|
+
export interface SeatVersion {
|
|
35
|
+
installed: string | null;
|
|
36
|
+
proven: string | null;
|
|
37
|
+
status: 'proven' | 'unproven' | 'no_pin';
|
|
38
|
+
checked_at: string;
|
|
39
|
+
install_source: SeatInstallSource | null;
|
|
40
|
+
}
|
|
41
|
+
/** Runs one version probe; resolves to its combined output, or `null` when it did not answer. */
|
|
42
|
+
export type VersionExec = (cmd: string, args: string[]) => Promise<string | null>;
|
|
43
|
+
/** Resolves a binary name to its real path on PATH, or `null`. */
|
|
44
|
+
export type BinaryResolver = (binary: string) => string | null;
|
|
45
|
+
/** The binary's real path on PATH (`which` + realpath), or `null` when it is not there. */
|
|
46
|
+
export declare function resolveOnPath(binary: string, env?: NodeJS.ProcessEnv): string | null;
|
|
47
|
+
/** How a binary was installed, from its resolved path (see the module doc). */
|
|
48
|
+
export declare function installSourceOf(realPath: string | null): SeatInstallSource | null;
|
|
49
|
+
/** The first non-empty line of a probe's output, bounded and home-free; `null` for none. */
|
|
50
|
+
export declare function firstVersionLine(output: string | null): string | null;
|
|
51
|
+
/** Probe every seat's version (in parallel, each bounded). */
|
|
52
|
+
export declare function probeSeatVersions(roster: unknown[], exec?: VersionExec, resolve?: BinaryResolver, now?: () => number): Promise<SeatVersionReading[]>;
|
|
53
|
+
/** A TTL cache of {@link probeSeatVersions}: read synchronously, refreshed in the background. */
|
|
54
|
+
export declare class SeatVersionCache {
|
|
55
|
+
private readonly source;
|
|
56
|
+
private readonly ttlMs;
|
|
57
|
+
private readonly now;
|
|
58
|
+
private value;
|
|
59
|
+
private inFlight;
|
|
60
|
+
private failedAt;
|
|
61
|
+
constructor(source?: (() => Promise<SeatVersionReading[]>) | null, ttlMs?: number, now?: () => number);
|
|
62
|
+
private stale;
|
|
63
|
+
/** Probe now unless a probe is running; resolves when the answer is in. */
|
|
64
|
+
refresh(): Promise<void>;
|
|
65
|
+
/** The last reading for `cli`, without waiting; a stale or empty cache starts a refresh. */
|
|
66
|
+
read(cli: string): SeatVersionReading | undefined;
|
|
67
|
+
}
|
|
68
|
+
/** The daemon's source: the engine's production roster. `null` under a test runner (no spawns). */
|
|
69
|
+
export declare function defaultSeatVersionSource(): (() => Promise<SeatVersionReading[]>) | null;
|
|
70
|
+
/** The daemon's one version cache. */
|
|
71
|
+
export declare const seatVersions: SeatVersionCache;
|
|
72
|
+
/**
|
|
73
|
+
* `RosterSeat.version` from a seat's reading and its pin reading (see the module doc). `undefined`
|
|
74
|
+
* when there is no reading yet, or when the seat pins a build whose pin has not been probed.
|
|
75
|
+
*/
|
|
76
|
+
export declare function seatVersion(seat: {
|
|
77
|
+
acp?: {
|
|
78
|
+
verified_version?: unknown;
|
|
79
|
+
} | null;
|
|
80
|
+
}, reading: SeatVersionReading | undefined, pin: SeatVersionPin | undefined): SeatVersion | undefined;
|
|
81
|
+
//# sourceMappingURL=seat-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-version.d.ts","sourceRoot":"","sources":["../../src/api/seat-version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every seat's installed version (DES-seats-page A1): `RosterSeat.version`.
|
|
3
|
+
*
|
|
4
|
+
* `version_pin` (core#581, `diagnostics.ts`) exists only for a seat whose ACP config pins a build
|
|
5
|
+
* (opencode). Every other seat read "Not reported" on the Agents page, although the registry record
|
|
6
|
+
* already carries the argv that answers it (`version_probe`, e.g. `["claude", "--version"]`).
|
|
7
|
+
*
|
|
8
|
+
* The reading, per seat:
|
|
9
|
+
* - `installed`: the first non-empty line the seat's `version_probe` prints (stdout, then stderr),
|
|
10
|
+
* bounded and with the home directory written `~`; `null` when it did not answer;
|
|
11
|
+
* - `proven` / `status`: from the pin reading when the seat pins a build (`proven` = the pinned
|
|
12
|
+
* build; `status` = `proven` when the pin holds, else `unproven`), `no_pin` otherwise. A pinned
|
|
13
|
+
* seat whose pin has not been probed yet carries no `version` at all, never a guessed status;
|
|
14
|
+
* - `install_source`: how the binary on PATH was installed, read off its resolved path (no
|
|
15
|
+
* spawn): under `node_modules` = `npm`, under a Homebrew prefix = `brew`, else `other`; `null`
|
|
16
|
+
* when the binary is not on PATH. It lets the Agents page offer a real update command instead of
|
|
17
|
+
* guessing one. The path itself never reaches the wire.
|
|
18
|
+
*
|
|
19
|
+
* Cost: one bounded `--version` per seat per {@link SEAT_VERSION_TTL_MS}, in the background; the
|
|
20
|
+
* roster read never waits on it. A test-built server spawns nothing (no source under a runner).
|
|
21
|
+
*/
|
|
22
|
+
import { execFile } from 'node:child_process';
|
|
23
|
+
import { accessSync, constants, realpathSync } from 'node:fs';
|
|
24
|
+
import { tmpdir } from 'node:os';
|
|
25
|
+
import { delimiter, join } from 'node:path';
|
|
26
|
+
import { CoreAdapter } from '../core/adapter.js';
|
|
27
|
+
import { childEnvWithBootEstateDb } from '../core/governance-store.js';
|
|
28
|
+
import { scrubEvidence } from './seat-scrub.js';
|
|
29
|
+
import { homeless } from './seat-standing.js';
|
|
30
|
+
/** How long a version reading is trusted before a background refresh. */
|
|
31
|
+
export const SEAT_VERSION_TTL_MS = 10 * 60 * 1000;
|
|
32
|
+
const VERSION_TIMEOUT_MS = 10 * 1000;
|
|
33
|
+
const VERSION_MAX = 80;
|
|
34
|
+
const execVersion = (cmd, args) => new Promise((resolve) => {
|
|
35
|
+
const child = execFile(cmd, args, { env: childEnvWithBootEstateDb(process.env), cwd: tmpdir(), timeout: VERSION_TIMEOUT_MS, windowsHide: true, maxBuffer: 64 * 1024 }, (err, stdout, stderr) => resolve(err === null ? `${String(stdout ?? '')}\n${String(stderr ?? '')}` : null));
|
|
36
|
+
child.stdin?.on('error', () => undefined);
|
|
37
|
+
child.stdin?.end();
|
|
38
|
+
});
|
|
39
|
+
/** The binary's real path on PATH (`which` + realpath), or `null` when it is not there. */
|
|
40
|
+
export function resolveOnPath(binary, env = process.env) {
|
|
41
|
+
if (binary.includes('/') || binary.includes('\\'))
|
|
42
|
+
return null;
|
|
43
|
+
const exts = process.platform === 'win32' ? (env['PATHEXT'] ?? '.EXE;.CMD;.BAT').split(';') : [''];
|
|
44
|
+
for (const dir of (env['PATH'] ?? '').split(delimiter)) {
|
|
45
|
+
if (dir === '')
|
|
46
|
+
continue;
|
|
47
|
+
for (const ext of exts) {
|
|
48
|
+
const candidate = join(dir, binary + ext);
|
|
49
|
+
try {
|
|
50
|
+
accessSync(candidate, constants.X_OK);
|
|
51
|
+
return realpathSync(candidate);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* next */
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/** How a binary was installed, from its resolved path (see the module doc). */
|
|
61
|
+
export function installSourceOf(realPath) {
|
|
62
|
+
if (realPath === null)
|
|
63
|
+
return null;
|
|
64
|
+
const p = realPath.replace(/\\/g, '/');
|
|
65
|
+
if (p.includes('/node_modules/'))
|
|
66
|
+
return 'npm';
|
|
67
|
+
if (/\/(?:Cellar|Caskroom)\/|^\/opt\/homebrew\/|\/\.?linuxbrew\//.test(p))
|
|
68
|
+
return 'brew';
|
|
69
|
+
return 'other';
|
|
70
|
+
}
|
|
71
|
+
/** The first non-empty line of a probe's output, bounded and home-free; `null` for none. */
|
|
72
|
+
export function firstVersionLine(output) {
|
|
73
|
+
if (output === null)
|
|
74
|
+
return null;
|
|
75
|
+
const line = output
|
|
76
|
+
.split('\n')
|
|
77
|
+
.map((l) => l.trim())
|
|
78
|
+
.find((l) => l !== '');
|
|
79
|
+
if (line === undefined)
|
|
80
|
+
return null;
|
|
81
|
+
// A `--version` line is a CLI's own output: the home is written `~`, and the A8 mask is the guard.
|
|
82
|
+
const safe = scrubEvidence(homeless(line));
|
|
83
|
+
return safe.length <= VERSION_MAX ? safe : `${safe.slice(0, VERSION_MAX - 1)}…`;
|
|
84
|
+
}
|
|
85
|
+
/** Probe every seat's version (in parallel, each bounded). */
|
|
86
|
+
export async function probeSeatVersions(roster, exec = execVersion, resolve = resolveOnPath, now = Date.now) {
|
|
87
|
+
return Promise.all(roster
|
|
88
|
+
.filter((s) => typeof s.key === 'string' && typeof s.binary === 'string')
|
|
89
|
+
.map(async (s) => {
|
|
90
|
+
const binary = String(s.binary);
|
|
91
|
+
const argv = Array.isArray(s.version_probe) && s.version_probe.length > 0 && s.version_probe.every((a) => typeof a === 'string')
|
|
92
|
+
? s.version_probe
|
|
93
|
+
: [binary, '--version'];
|
|
94
|
+
const out = await exec(argv[0], argv.slice(1)).catch(() => null);
|
|
95
|
+
return {
|
|
96
|
+
cli: String(s.key),
|
|
97
|
+
installed: firstVersionLine(out),
|
|
98
|
+
checked_at: new Date(now()).toISOString(),
|
|
99
|
+
install_source: installSourceOf(resolve(argv[0])),
|
|
100
|
+
};
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
/** A TTL cache of {@link probeSeatVersions}: read synchronously, refreshed in the background. */
|
|
104
|
+
export class SeatVersionCache {
|
|
105
|
+
source;
|
|
106
|
+
ttlMs;
|
|
107
|
+
now;
|
|
108
|
+
value = null;
|
|
109
|
+
inFlight = null;
|
|
110
|
+
failedAt = null;
|
|
111
|
+
constructor(source = defaultSeatVersionSource(), ttlMs = SEAT_VERSION_TTL_MS, now = Date.now) {
|
|
112
|
+
this.source = source;
|
|
113
|
+
this.ttlMs = ttlMs;
|
|
114
|
+
this.now = now;
|
|
115
|
+
}
|
|
116
|
+
stale() {
|
|
117
|
+
const t = this.now();
|
|
118
|
+
if (this.failedAt !== null && t - this.failedAt < this.ttlMs)
|
|
119
|
+
return false;
|
|
120
|
+
return this.value === null || t - this.value.at >= this.ttlMs;
|
|
121
|
+
}
|
|
122
|
+
/** Probe now unless a probe is running; resolves when the answer is in. */
|
|
123
|
+
refresh() {
|
|
124
|
+
if (this.source === null)
|
|
125
|
+
return Promise.resolve();
|
|
126
|
+
if (this.inFlight !== null)
|
|
127
|
+
return this.inFlight;
|
|
128
|
+
this.inFlight = this.source()
|
|
129
|
+
.then((readings) => {
|
|
130
|
+
this.value = { at: this.now(), readings };
|
|
131
|
+
this.failedAt = null;
|
|
132
|
+
})
|
|
133
|
+
.catch(() => {
|
|
134
|
+
this.failedAt = this.now();
|
|
135
|
+
})
|
|
136
|
+
.finally(() => {
|
|
137
|
+
this.inFlight = null;
|
|
138
|
+
});
|
|
139
|
+
return this.inFlight;
|
|
140
|
+
}
|
|
141
|
+
/** The last reading for `cli`, without waiting; a stale or empty cache starts a refresh. */
|
|
142
|
+
read(cli) {
|
|
143
|
+
if (this.source !== null && this.stale())
|
|
144
|
+
void this.refresh();
|
|
145
|
+
return this.value?.readings.find((r) => r.cli === cli);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/** The daemon's source: the engine's production roster. `null` under a test runner (no spawns). */
|
|
149
|
+
export function defaultSeatVersionSource() {
|
|
150
|
+
if (process.env['VITEST'] !== undefined || process.env['NODE_ENV'] === 'test')
|
|
151
|
+
return null;
|
|
152
|
+
return async () => probeSeatVersions(CoreAdapter.roster());
|
|
153
|
+
}
|
|
154
|
+
/** The daemon's one version cache. */
|
|
155
|
+
export const seatVersions = new SeatVersionCache();
|
|
156
|
+
/**
|
|
157
|
+
* `RosterSeat.version` from a seat's reading and its pin reading (see the module doc). `undefined`
|
|
158
|
+
* when there is no reading yet, or when the seat pins a build whose pin has not been probed.
|
|
159
|
+
*/
|
|
160
|
+
export function seatVersion(seat, reading, pin) {
|
|
161
|
+
if (reading === undefined)
|
|
162
|
+
return undefined;
|
|
163
|
+
const pinned = typeof seat.acp?.verified_version === 'string' ? seat.acp.verified_version : null;
|
|
164
|
+
if (pinned !== null && pin === undefined)
|
|
165
|
+
return undefined;
|
|
166
|
+
return {
|
|
167
|
+
installed: reading.installed,
|
|
168
|
+
proven: pinned,
|
|
169
|
+
status: pinned === null ? 'no_pin' : pin?.matched === true ? 'proven' : 'unproven',
|
|
170
|
+
checked_at: reading.checked_at,
|
|
171
|
+
install_source: reading.install_source,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=seat-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-version.js","sourceRoot":"","sources":["../../src/api/seat-version.ts"],"names":[],"mappings":"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"}
|
package/dist/api/server.js
CHANGED
|
@@ -185,7 +185,7 @@ export async function createServer(adapter, options) {
|
|
|
185
185
|
// tracker's standing, built ONCE and handed to every launch path — the routes (below, through
|
|
186
186
|
// `runtime.rosterWithStanding`), the four interactive seams (`roster`), and the adapter's own
|
|
187
187
|
// launches (`setRosterProvider` → `seatsForWorkflow` / `wicked-crew start`). Read at call time,
|
|
188
|
-
// so a seat signed in from the
|
|
188
|
+
// so a seat signed in from the Agents page is eligible on the very next launch.
|
|
189
189
|
const rosterWithStanding = rosterWithStandingFactory({
|
|
190
190
|
seatHealth,
|
|
191
191
|
...(options?.seats?.signedIn !== undefined ? { signedIn: options.seats.signedIn } : {}),
|
|
@@ -1409,7 +1409,7 @@ export async function createServer(adapter, options) {
|
|
|
1409
1409
|
// second terminal frame) finds the run already dated and writes nothing; a restart re-reads the
|
|
1410
1410
|
// trail (newest entry wins) instead of re-emitting. The one hole — a crash between the engine's
|
|
1411
1411
|
// status write and this record — leaves that run ABSENT, never null (the wire contract).
|
|
1412
|
-
if (runTimingIndex.
|
|
1412
|
+
if (!runTimingIndex.hasRecordedEnd(session)) {
|
|
1413
1413
|
const endedTs = audit.record('run.ended', DAEMON_ACTOR, {
|
|
1414
1414
|
runId: session,
|
|
1415
1415
|
detail: { status: event.type },
|