wicked-crew 0.10.0 → 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/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 +28 -11
- package/dist/api/routes.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-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 +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 +2 -2
- package/dist/interactive/council-outcome.js +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 +6 -14
- package/package.json +2 -2
- package/dist/studio/assets/index-DlZl1q2Q.js +0 -593
- package/dist/studio/assets/index-eLCOoPWX.css +0 -32
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Agents page's readings per seat (DES-seats-page §7, asks A2–A6): what crew can say about a
|
|
3
|
+
* seat's readiness as FACTS and CODES, so studio owns every word (one copy table per code) and
|
|
4
|
+
* never re-derives an engine or crew rule.
|
|
5
|
+
*
|
|
6
|
+
* - `account` (A2): the account KIND only, never an identifier (`seat-scrub.ts`);
|
|
7
|
+
* - `recent_bench` (A3): the engine's bench of the seat that is ACTIVE now, not the week's history
|
|
8
|
+
* (`/roster/record` keeps that);
|
|
9
|
+
* - `work_admission` (A5): per scope kind, whether a job would give the seat work, with ONE reason
|
|
10
|
+
* code and where the refusal comes from (`auth`, `launcher`, `scope`). It reads the same standing
|
|
11
|
+
* the launch does, plus the engine's own worktree bench through `Core.worktreeBenched` (core#920).
|
|
12
|
+
* Without that predicate (an older addon) it is ABSENT: crew does not restate the engine's rule;
|
|
13
|
+
* - `qe_reviewer` (A4): whether the seat can run the isolated QE review. Since wicked-core#917 the
|
|
14
|
+
* engine starts the reviewer as a fresh session on ANY run seat it ADMITS, so the rule is: signed
|
|
15
|
+
* in, kept by a run bound to one repository (QE runs only there), and admitted by the host's skill
|
|
16
|
+
* routing to the QE skill (`Core.qeReviewerAdmitted`, wicked-core#923: a Claude-only skills root admits claude
|
|
17
|
+
* seats only). A reviewer-only seat counts: the engine's reviewer pool is the run's seats, not
|
|
18
|
+
* its workers. Absent unless the engine answers both predicates;
|
|
19
|
+
* - `issues` (A6): one entry per thing the page shows, most important first.
|
|
20
|
+
*
|
|
21
|
+
* Pure: no IO, no clock.
|
|
22
|
+
*/
|
|
23
|
+
import type { SeatRecentBench } from './seat-health.js';
|
|
24
|
+
import type { GovernanceScopeKind, SeatGovernanceMode } from './seat-governance.js';
|
|
25
|
+
import type { SeatAccount } from './seat-scrub.js';
|
|
26
|
+
import { type ChatAdmission, type SeatStanding } from './seat-standing.js';
|
|
27
|
+
import type { SeatVersion } from './seat-version.js';
|
|
28
|
+
/** `RosterSeat.recent_bench` (api-types 0.115.0). */
|
|
29
|
+
export interface RecentBenchWire {
|
|
30
|
+
/** The engine's cause token (`quota_exhausted`, `not_logged_in`, `not_installed`,
|
|
31
|
+
* `approval_unavailable`, `timed_out`, …). */
|
|
32
|
+
kind: string;
|
|
33
|
+
/** Runs that benched the seat while this bench was active. */
|
|
34
|
+
runs: number;
|
|
35
|
+
/** ISO-8601 of the latest bench. */
|
|
36
|
+
last_at: string;
|
|
37
|
+
/** ISO-8601 of when crew stops carrying the bench to new launches (sooner on an ok turn). This is
|
|
38
|
+
* crew's window, not a provider reset time: no provider states one on the wire today. */
|
|
39
|
+
lifts_at: string;
|
|
40
|
+
/** Who benched it in the run: `worker` or `judge`. */
|
|
41
|
+
source: string;
|
|
42
|
+
/** The engine's own reason, verbatim (Technical details). */
|
|
43
|
+
reason: string;
|
|
44
|
+
}
|
|
45
|
+
/** The engine's cause token: the reason up to its first parenthesis. */
|
|
46
|
+
export declare function benchKind(reason: string): string;
|
|
47
|
+
export declare function recentBenchWire(bench: SeatRecentBench): RecentBenchWire;
|
|
48
|
+
/** Whether the seat's live sign-in check, answered AFTER the bench, lifts it. */
|
|
49
|
+
export declare function liveCheckLiftsBench(bench: SeatRecentBench, probe: {
|
|
50
|
+
signedIn: boolean | null;
|
|
51
|
+
check: string;
|
|
52
|
+
probedAt: string;
|
|
53
|
+
} | undefined): boolean;
|
|
54
|
+
/** `RosterSeat.account`: absent unless the seat can take a turn on its sign-in. */
|
|
55
|
+
export declare function seatAccount(auth: SeatStanding['auth'], stated: SeatAccount | undefined): SeatAccount | undefined;
|
|
56
|
+
export type WorkRefusalSource = 'auth' | 'launcher' | 'scope';
|
|
57
|
+
/** One reason code per refusal (studio's copy table keys on it). */
|
|
58
|
+
export type WorkReasonCode = 'signed_out' | 'not_enabled' | 'reviewer_only' | 'recent_bench' | 'login_pending' | 'worktree_bench' | 'scope_ungoverned';
|
|
59
|
+
export type WorkAdmission = {
|
|
60
|
+
ok: true;
|
|
61
|
+
} | {
|
|
62
|
+
ok: false;
|
|
63
|
+
reason_code: WorkReasonCode;
|
|
64
|
+
source: WorkRefusalSource;
|
|
65
|
+
reason: string;
|
|
66
|
+
};
|
|
67
|
+
/** `RosterSeat.qe_reviewer` (api-types 0.115.0). */
|
|
68
|
+
export type QeReviewerReasonCode = Exclude<WorkReasonCode, 'reviewer_only' | 'scope_ungoverned'> | 'skill_not_admitted';
|
|
69
|
+
export type QeReviewer = {
|
|
70
|
+
ok: true;
|
|
71
|
+
} | {
|
|
72
|
+
ok: false;
|
|
73
|
+
reason_code: QeReviewerReasonCode;
|
|
74
|
+
reason: string;
|
|
75
|
+
};
|
|
76
|
+
export interface WorkInputs {
|
|
77
|
+
enabled_for_council?: boolean | undefined;
|
|
78
|
+
seat_eligible_for_work?: boolean | undefined;
|
|
79
|
+
standing: SeatStanding;
|
|
80
|
+
/** The engine's bench crew carries to new launches (`SeatHealthTracker.recentBenchFor`). */
|
|
81
|
+
recentBench: SeatRecentBench | null;
|
|
82
|
+
/** The seat's login check has not answered yet (a launch would wait, then leave it out). */
|
|
83
|
+
loginPending: boolean;
|
|
84
|
+
/** The chat admission per scope kind the roster already serves (ASK-C2). */
|
|
85
|
+
chatAdmission: Record<GovernanceScopeKind, ChatAdmission>;
|
|
86
|
+
/** The engine's worktree bench reason for THIS seat on a bound run, `null` for none. */
|
|
87
|
+
worktreeBench: string | null;
|
|
88
|
+
}
|
|
89
|
+
/** `RosterSeat.work_admission` (see the module doc). */
|
|
90
|
+
export declare function workAdmission(i: WorkInputs): Record<GovernanceScopeKind, WorkAdmission>;
|
|
91
|
+
/** `RosterSeat.qe_reviewer` (see the module doc). `skillAdmitted` is the engine's answer. */
|
|
92
|
+
export declare function qeReviewer(i: WorkInputs, skillAdmitted: boolean): QeReviewer;
|
|
93
|
+
export type IssueSeverity = 'problem' | 'warning' | 'note';
|
|
94
|
+
export interface SeatIssueCommand {
|
|
95
|
+
purpose: 'sign_in' | 'sign_out' | 'version';
|
|
96
|
+
/** The safe rendering: the home directory written `$HOME` (it expands inside the double quotes
|
|
97
|
+
* the engine puts around the seat's root; `~` would not). The command to RUN stays the roster's
|
|
98
|
+
* `login_invocation` / `logout_invocation`. */
|
|
99
|
+
display: string;
|
|
100
|
+
}
|
|
101
|
+
export interface SeatIssue {
|
|
102
|
+
code: string;
|
|
103
|
+
severity: IssueSeverity;
|
|
104
|
+
/** Only names, versions, counts and ISO times — never free text from a CLI. */
|
|
105
|
+
params: Record<string, string | number>;
|
|
106
|
+
/** Crew's own one line, for a client that does not know the code (Technical details). */
|
|
107
|
+
message: string;
|
|
108
|
+
commands?: SeatIssueCommand[];
|
|
109
|
+
}
|
|
110
|
+
/** Everything the issue list reads, all already computed by the roster accessor. */
|
|
111
|
+
export interface IssueInputs {
|
|
112
|
+
key: string;
|
|
113
|
+
display_name: string;
|
|
114
|
+
binary: string;
|
|
115
|
+
login_invocation?: string;
|
|
116
|
+
logout_invocation?: string;
|
|
117
|
+
optIn: boolean;
|
|
118
|
+
standing: SeatStanding;
|
|
119
|
+
version?: SeatVersion;
|
|
120
|
+
governance: Record<GovernanceScopeKind, SeatGovernanceMode>;
|
|
121
|
+
/** `/diagnostics.seatGovernance.hostBoundary`: the OS launcher the repository boundary arms
|
|
122
|
+
* with, `null` when the host has none. */
|
|
123
|
+
hostBoundary: string | null;
|
|
124
|
+
recentBench: RecentBenchWire | undefined;
|
|
125
|
+
workAdmission?: Record<GovernanceScopeKind, WorkAdmission>;
|
|
126
|
+
qeReviewer?: QeReviewer;
|
|
127
|
+
/** Whether ANY seat on the roster can run QE now (`undefined` when that is not known). */
|
|
128
|
+
rosterQe: boolean | undefined;
|
|
129
|
+
home?: string;
|
|
130
|
+
}
|
|
131
|
+
/** A command for display: the home directory as `$HOME`. */
|
|
132
|
+
export declare function displayCommand(cmd: string, home?: string): string;
|
|
133
|
+
/** `RosterSeat.issues` (A6), most important first. */
|
|
134
|
+
export declare function seatIssues(i: IssueInputs): SeatIssue[];
|
|
135
|
+
//# sourceMappingURL=seat-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-agents.d.ts","sourceRoot":"","sources":["../../src/api/seat-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Agents page's readings per seat (DES-seats-page §7, asks A2–A6): what crew can say about a
|
|
3
|
+
* seat's readiness as FACTS and CODES, so studio owns every word (one copy table per code) and
|
|
4
|
+
* never re-derives an engine or crew rule.
|
|
5
|
+
*
|
|
6
|
+
* - `account` (A2): the account KIND only, never an identifier (`seat-scrub.ts`);
|
|
7
|
+
* - `recent_bench` (A3): the engine's bench of the seat that is ACTIVE now, not the week's history
|
|
8
|
+
* (`/roster/record` keeps that);
|
|
9
|
+
* - `work_admission` (A5): per scope kind, whether a job would give the seat work, with ONE reason
|
|
10
|
+
* code and where the refusal comes from (`auth`, `launcher`, `scope`). It reads the same standing
|
|
11
|
+
* the launch does, plus the engine's own worktree bench through `Core.worktreeBenched` (core#920).
|
|
12
|
+
* Without that predicate (an older addon) it is ABSENT: crew does not restate the engine's rule;
|
|
13
|
+
* - `qe_reviewer` (A4): whether the seat can run the isolated QE review. Since wicked-core#917 the
|
|
14
|
+
* engine starts the reviewer as a fresh session on ANY run seat it ADMITS, so the rule is: signed
|
|
15
|
+
* in, kept by a run bound to one repository (QE runs only there), and admitted by the host's skill
|
|
16
|
+
* routing to the QE skill (`Core.qeReviewerAdmitted`, wicked-core#923: a Claude-only skills root admits claude
|
|
17
|
+
* seats only). A reviewer-only seat counts: the engine's reviewer pool is the run's seats, not
|
|
18
|
+
* its workers. Absent unless the engine answers both predicates;
|
|
19
|
+
* - `issues` (A6): one entry per thing the page shows, most important first.
|
|
20
|
+
*
|
|
21
|
+
* Pure: no IO, no clock.
|
|
22
|
+
*/
|
|
23
|
+
import { homeless } from './seat-standing.js';
|
|
24
|
+
/** The engine's cause token: the reason up to its first parenthesis. */
|
|
25
|
+
export function benchKind(reason) {
|
|
26
|
+
return reason.split(' (', 1)[0].trim();
|
|
27
|
+
}
|
|
28
|
+
export function recentBenchWire(bench) {
|
|
29
|
+
return {
|
|
30
|
+
kind: benchKind(bench.reason),
|
|
31
|
+
runs: bench.runs,
|
|
32
|
+
last_at: bench.at,
|
|
33
|
+
lifts_at: bench.until,
|
|
34
|
+
source: bench.source,
|
|
35
|
+
reason: bench.reason,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Bench kinds a LIVE sign-in answer disproves: the seat answered an authenticated request, so it is
|
|
39
|
+
* signed in and has quota. Other kinds (`approval_unavailable`, `not_installed`, `timed_out`) are
|
|
40
|
+
* about doing work, which a one-word reply does not prove. */
|
|
41
|
+
const LIVE_CLEARS = new Set(['not_logged_in', 'quota_exhausted', 'usage_limit']);
|
|
42
|
+
/** Whether the seat's live sign-in check, answered AFTER the bench, lifts it. */
|
|
43
|
+
export function liveCheckLiftsBench(bench, probe) {
|
|
44
|
+
if (probe === undefined || probe.signedIn !== true || probe.check !== 'live')
|
|
45
|
+
return false;
|
|
46
|
+
if (!LIVE_CLEARS.has(benchKind(bench.reason)))
|
|
47
|
+
return false;
|
|
48
|
+
return Date.parse(probe.probedAt) > Date.parse(bench.at);
|
|
49
|
+
}
|
|
50
|
+
// ── A2 ──────────────────────────────────────────────────────────────────────────────────────────
|
|
51
|
+
/** `RosterSeat.account`: absent unless the seat can take a turn on its sign-in. */
|
|
52
|
+
export function seatAccount(auth, stated) {
|
|
53
|
+
if (auth === 'not_required')
|
|
54
|
+
return { kind: 'free' };
|
|
55
|
+
if (auth !== 'signed_in')
|
|
56
|
+
return undefined;
|
|
57
|
+
return stated ?? { kind: 'unknown' };
|
|
58
|
+
}
|
|
59
|
+
/** The refusals every scope shares, in order: the first one is the seat's reason. */
|
|
60
|
+
function standingRefusal(i, opts) {
|
|
61
|
+
if (i.standing.auth === 'signed_out') {
|
|
62
|
+
return { ok: false, reason_code: 'signed_out', source: 'auth', reason: i.standing.council_ineligible_reason ?? 'signed out' };
|
|
63
|
+
}
|
|
64
|
+
if (i.enabled_for_council === false) {
|
|
65
|
+
return { ok: false, reason_code: 'not_enabled', source: 'launcher', reason: 'not enabled for council, so a launch benches it' };
|
|
66
|
+
}
|
|
67
|
+
if (!opts.reviewer && i.seat_eligible_for_work === false) {
|
|
68
|
+
return { ok: false, reason_code: 'reviewer_only', source: 'launcher', reason: 'a reviewer-only seat: it reviews work and is never given a unit' };
|
|
69
|
+
}
|
|
70
|
+
if (i.recentBench !== null) {
|
|
71
|
+
return { ok: false, reason_code: 'recent_bench', source: 'launcher', reason: i.standing.council_ineligible_reason ?? i.recentBench.reason };
|
|
72
|
+
}
|
|
73
|
+
if (i.loginPending) {
|
|
74
|
+
return { ok: false, reason_code: 'login_pending', source: 'launcher', reason: i.standing.council_ineligible_reason ?? 'login not verified yet' };
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/** `RosterSeat.work_admission` (see the module doc). */
|
|
79
|
+
export function workAdmission(i) {
|
|
80
|
+
const base = standingRefusal(i, { reviewer: false });
|
|
81
|
+
const scope = (kind) => {
|
|
82
|
+
if (base !== null)
|
|
83
|
+
return base;
|
|
84
|
+
if (kind === 'scoped_bound' && i.worktreeBench !== null) {
|
|
85
|
+
return { ok: false, reason_code: 'worktree_bench', source: 'launcher', reason: i.worktreeBench };
|
|
86
|
+
}
|
|
87
|
+
const chat = i.chatAdmission[kind];
|
|
88
|
+
if (!chat.ok && chat.source === 'scope')
|
|
89
|
+
return { ok: false, reason_code: 'scope_ungoverned', source: 'scope', reason: chat.reason };
|
|
90
|
+
return { ok: true };
|
|
91
|
+
};
|
|
92
|
+
return { unscoped: scope('unscoped'), scoped: scope('scoped'), scoped_bound: scope('scoped_bound') };
|
|
93
|
+
}
|
|
94
|
+
/** `RosterSeat.qe_reviewer` (see the module doc). `skillAdmitted` is the engine's answer. */
|
|
95
|
+
export function qeReviewer(i, skillAdmitted) {
|
|
96
|
+
const r = standingRefusal(i, { reviewer: true });
|
|
97
|
+
if (r !== null)
|
|
98
|
+
return { ok: false, reason_code: r.reason_code, reason: r.reason };
|
|
99
|
+
if (i.worktreeBench !== null)
|
|
100
|
+
return { ok: false, reason_code: 'worktree_bench', reason: i.worktreeBench };
|
|
101
|
+
if (!skillAdmitted) {
|
|
102
|
+
return {
|
|
103
|
+
ok: false,
|
|
104
|
+
reason_code: 'skill_not_admitted',
|
|
105
|
+
reason: "this host's skills root admits only a claude seat to the QE skill (no published portability verdict, or the skill is not portable)",
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return { ok: true };
|
|
109
|
+
}
|
|
110
|
+
const SEVERITY_ORDER = { problem: 0, warning: 1, note: 2 };
|
|
111
|
+
/** Within a severity: safety before availability (DES-seats-page §4, codex HIER r7). */
|
|
112
|
+
const SAFETY_CODES = new Set(['unchecked', 'version_unproven', 'fence_scoped']);
|
|
113
|
+
/** A command for display: the home directory as `$HOME`. */
|
|
114
|
+
export function displayCommand(cmd, home) {
|
|
115
|
+
return homeless(cmd, home, '$HOME');
|
|
116
|
+
}
|
|
117
|
+
/** `RosterSeat.issues` (A6), most important first. */
|
|
118
|
+
export function seatIssues(i) {
|
|
119
|
+
const out = [];
|
|
120
|
+
const name = i.display_name;
|
|
121
|
+
const signIn = typeof i.login_invocation === 'string' && i.login_invocation.trim() !== ''
|
|
122
|
+
? [{ purpose: 'sign_in', display: displayCommand(i.login_invocation.trim(), i.home) }]
|
|
123
|
+
: [];
|
|
124
|
+
const signOut = typeof i.logout_invocation === 'string' && i.logout_invocation.trim() !== ''
|
|
125
|
+
? [{ purpose: 'sign_out', display: displayCommand(i.logout_invocation.trim(), i.home) }]
|
|
126
|
+
: [];
|
|
127
|
+
const add = (code, severity, message, params = {}, commands = []) => {
|
|
128
|
+
out.push({ code, severity, params, message, ...(commands.length > 0 ? { commands } : {}) });
|
|
129
|
+
};
|
|
130
|
+
const st = i.standing;
|
|
131
|
+
if (st.auth === 'signed_out') {
|
|
132
|
+
add('signed_out', 'problem', `${name} is signed out, so it takes no work until it is signed in`, st.probed_at !== undefined ? { checked_at: st.probed_at } : {}, signIn);
|
|
133
|
+
if (i.rosterQe === false) {
|
|
134
|
+
add('qe_blocked', 'problem', 'no agent can run quality checks now, so jobs that need one wait before delivery', {}, signIn);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const bench = i.recentBench;
|
|
138
|
+
if (bench !== undefined) {
|
|
139
|
+
const code = bench.kind === 'quota_exhausted' ? 'quota' : bench.kind === 'usage_limit' ? 'usage_limit' : 'benched';
|
|
140
|
+
add(code, 'warning', `the engine benched ${name} (${bench.kind}) in ${bench.runs} run(s); new jobs leave it out until ${bench.lifts_at} or its next good turn`, {
|
|
141
|
+
kind: bench.kind,
|
|
142
|
+
runs: bench.runs,
|
|
143
|
+
last_at: bench.last_at,
|
|
144
|
+
lifts_at: bench.lifts_at,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
const bound = i.workAdmission?.scoped_bound;
|
|
148
|
+
if (bound !== undefined && !bound.ok && bound.reason_code === 'worktree_bench') {
|
|
149
|
+
add('codex_worktree', 'warning', `${name} is benched on every job bound to a repository on this host`, {}, [...signOut, ...signIn]);
|
|
150
|
+
}
|
|
151
|
+
// Safety: the bound-run mode decides what holds the seat's writes in a job.
|
|
152
|
+
const gov = i.governance.scoped_bound;
|
|
153
|
+
if (i.version?.status === 'unproven') {
|
|
154
|
+
add('version_unproven', 'warning', `${name} ${i.version.installed ?? '(no version answer)'} is not the build its safety checks were proven on, so they switch off`, {
|
|
155
|
+
...(i.version.installed !== null ? { installed: i.version.installed } : {}),
|
|
156
|
+
...(i.version.proven !== null ? { proven: i.version.proven } : {}),
|
|
157
|
+
}, [{ purpose: 'version', display: `${i.binary} --version` }]);
|
|
158
|
+
}
|
|
159
|
+
else if (gov.mode === 'none') {
|
|
160
|
+
add('unchecked', 'warning', `nothing checks ${name}'s actions on this version`, { why: 'no_governance' });
|
|
161
|
+
}
|
|
162
|
+
else if (gov.source === 'repo_boundary' && i.hostBoundary === null) {
|
|
163
|
+
add('unchecked', 'warning', `there is no sandbox tool on this computer, so nothing limits what ${name} writes`, { why: 'no_host_boundary' });
|
|
164
|
+
}
|
|
165
|
+
else if (gov.source === 'repo_boundary' && i.governance.unscoped.mode === 'none') {
|
|
166
|
+
add('fence_scoped', 'warning', `${name}'s writes are kept inside one repository only when the work is bound to it`);
|
|
167
|
+
}
|
|
168
|
+
if (st.auth === 'signed_in' && st.login_check === 'status') {
|
|
169
|
+
add('live_check_failed', 'warning', `${name}'s status command says signed in, but its one live request did not answer`, st.probed_at !== undefined ? { checked_at: st.probed_at } : {}, signIn);
|
|
170
|
+
}
|
|
171
|
+
if (i.optIn)
|
|
172
|
+
add('opt_in', 'note', `${name} is opt-in: it is left out of new work unless you pick it`);
|
|
173
|
+
if (i.qeReviewer !== undefined && !i.qeReviewer.ok && i.qeReviewer.reason_code !== 'signed_out') {
|
|
174
|
+
add('no_qe', 'note', `${name} can't run quality checks now (${i.qeReviewer.reason_code})`, { reason_code: i.qeReviewer.reason_code });
|
|
175
|
+
}
|
|
176
|
+
if (st.auth === 'signed_in' && st.login_check === 'unverified') {
|
|
177
|
+
add('unverified', 'note', `${name}'s sign-in can't be confirmed: it has no status command`, {}, signIn);
|
|
178
|
+
}
|
|
179
|
+
return out
|
|
180
|
+
.map((issue, idx) => ({ issue, idx }))
|
|
181
|
+
.sort((a, b) => SEVERITY_ORDER[a.issue.severity] - SEVERITY_ORDER[b.issue.severity] ||
|
|
182
|
+
Number(!SAFETY_CODES.has(a.issue.code)) - Number(!SAFETY_CODES.has(b.issue.code)) ||
|
|
183
|
+
a.idx - b.idx)
|
|
184
|
+
.map(({ issue }) => issue);
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=seat-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-agents.js","sourceRoot":"","sources":["../../src/api/seat-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,14 @@ export type { SeatHealth };
|
|
|
10
10
|
export declare const AUTH_REFUSAL_PATTERNS: RegExp[];
|
|
11
11
|
/** Whether a failure detail / stderr says the seat has no usable credential. */
|
|
12
12
|
export declare function isAuthRefusal(text: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* A8 (DES-seats-page §4.3): what a seat's refusal SAID, in crew's own vocabulary — the words each
|
|
15
|
+
* {@link AUTH_REFUSAL_PATTERNS} entry matched (`No API key`, `Not logged in`, `HTTP/1.1 401`,
|
|
16
|
+
* `OAuth session expired`), deduplicated, joined `; ` — or `null` when none matched. Never the
|
|
17
|
+
* CLI's surrounding prose: a refusal can carry a key, an account or an organisation in any shape,
|
|
18
|
+
* and no mask can know them all, so the roster carries only what crew's patterns name.
|
|
19
|
+
*/
|
|
20
|
+
export declare function refusalSummary(text: string): string | null;
|
|
13
21
|
/** How long a seat's own "no credential" report keeps its `auth` at `signed_out` with no ok output
|
|
14
22
|
* since — the same window as the council bench; an ok unit output clears it at once. */
|
|
15
23
|
export declare const AUTH_FAILURE_WINDOW_MS: number;
|
|
@@ -37,6 +45,8 @@ export interface SeatRecentBench {
|
|
|
37
45
|
source: string;
|
|
38
46
|
/** The run that benched it, when the frame named one. */
|
|
39
47
|
run?: string;
|
|
48
|
+
/** (A3) How many runs benched the seat while this bench was active (at least 1). */
|
|
49
|
+
runs: number;
|
|
40
50
|
}
|
|
41
51
|
/** A seat's own report that it has no credential (`RosterSeat.auth_evidence`). */
|
|
42
52
|
export interface SeatAuthFailure {
|
|
@@ -80,6 +90,18 @@ export declare class SeatHealthTracker {
|
|
|
80
90
|
ingest(event: CoreEvent): void;
|
|
81
91
|
/** Flip a seat ACTIVE: message cleared, `since` updated on a genuine transition. */
|
|
82
92
|
markActive(key: string, atMs?: number): void;
|
|
93
|
+
/**
|
|
94
|
+
* (A3) Lift the seat's recent bench because something else proved it can work again — the roster
|
|
95
|
+
* calls this when the seat's own LIVE sign-in check answered after an account bench (signed out,
|
|
96
|
+
* out of quota). An ok output does the same through {@link markActive}.
|
|
97
|
+
*/
|
|
98
|
+
clearRecentBench(key: string): void;
|
|
99
|
+
/**
|
|
100
|
+
* Drop the seat's own "no credential" report when it is OLDER than `beforeMs` — the roster calls
|
|
101
|
+
* this when the seat's LIVE sign-in check answered after it (the operator signed in since). A
|
|
102
|
+
* report that landed after the check is kept: the seat refused again.
|
|
103
|
+
*/
|
|
104
|
+
clearAuthFailureBefore(key: string, beforeMs: number): void;
|
|
83
105
|
/** Record a seat's own "no credential" report (F-A45-006) — the newest report wins. */
|
|
84
106
|
private recordAuthFailure;
|
|
85
107
|
/** Stamp an OBSERVED error on the seat — `lastErrorAt` only; the status stays `active` (R5). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-health.d.ts","sourceRoot":"","sources":["../../src/api/seat-health.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,eAAe,EAEhB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EAAE,UAAU,EAAE,CAAC;AAmC3B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAuBzC,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAKD;yFACyF;AACzF,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAYhB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0G;IACvI;qDACiD;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"seat-health.d.ts","sourceRoot":"","sources":["../../src/api/seat-health.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,eAAe,EAEhB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EAAE,UAAU,EAAE,CAAC;AAmC3B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAuBzC,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS1D;AAKD;yFACyF;AACzF,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAYhB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0G;IACvI;qDACiD;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqG;IACnI,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAEzB,IAAI,GAAE;QACjC;;;WAGG;QACH,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,wEAAwE;QACxE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KACtB;IAEN,4FAA4F;IAC5F,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAiL9B,oFAAoF;IACpF,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAa,GAAG,IAAI;IAWhD;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK3D,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IAqBzB,gGAAgG;IAChG,OAAO,CAAC,UAAU;IAUlB;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,eAAe,GAAG,IAAI;IAevE;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,eAAe,GAAG,IAAI;IAiBvE,iGAAiG;IACjG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAGnC"}
|
package/dist/api/seat-health.js
CHANGED
|
@@ -70,7 +70,7 @@ function str(v) {
|
|
|
70
70
|
* `auth` must flip to `signed_out` (not only `council_eligible`), and the evidence rides with it.
|
|
71
71
|
*/
|
|
72
72
|
export const AUTH_REFUSAL_PATTERNS = [
|
|
73
|
-
/no api key
|
|
73
|
+
/no api key(?: found)?/i,
|
|
74
74
|
/not logged in/i,
|
|
75
75
|
/\bunauthenticated\b/i,
|
|
76
76
|
/\bunauthori[sz]ed\b/i,
|
|
@@ -97,6 +97,25 @@ export const AUTH_REFUSAL_PATTERNS = [
|
|
|
97
97
|
export function isAuthRefusal(text) {
|
|
98
98
|
return AUTH_REFUSAL_PATTERNS.some((re) => re.test(text));
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* A8 (DES-seats-page §4.3): what a seat's refusal SAID, in crew's own vocabulary — the words each
|
|
102
|
+
* {@link AUTH_REFUSAL_PATTERNS} entry matched (`No API key`, `Not logged in`, `HTTP/1.1 401`,
|
|
103
|
+
* `OAuth session expired`), deduplicated, joined `; ` — or `null` when none matched. Never the
|
|
104
|
+
* CLI's surrounding prose: a refusal can carry a key, an account or an organisation in any shape,
|
|
105
|
+
* and no mask can know them all, so the roster carries only what crew's patterns name.
|
|
106
|
+
*/
|
|
107
|
+
export function refusalSummary(text) {
|
|
108
|
+
const hits = [];
|
|
109
|
+
for (const re of AUTH_REFUSAL_PATTERNS) {
|
|
110
|
+
const m = re.exec(text);
|
|
111
|
+
if (m === null)
|
|
112
|
+
continue;
|
|
113
|
+
const phrase = m[0].replace(/\s+/g, ' ').trim();
|
|
114
|
+
if (!hits.some((h) => h.toLowerCase() === phrase.toLowerCase()))
|
|
115
|
+
hits.push(phrase);
|
|
116
|
+
}
|
|
117
|
+
return hits.length > 0 ? hits.join('; ') : null;
|
|
118
|
+
}
|
|
100
119
|
/** `acpFallback.fallbackKind` values that mean the seat's ACCOUNT refused (wave 6 adds two). */
|
|
101
120
|
const AUTH_FALLBACK_KINDS = new Set(['auth_required', 'auth_failed', 'unauthenticated']);
|
|
102
121
|
/** How long a seat's own "no credential" report keeps its `auth` at `signed_out` with no ok output
|
|
@@ -211,7 +230,7 @@ export class SeatHealthTracker {
|
|
|
211
230
|
// F-A45-006: a ballot the seat lost to its own missing credential (`not_logged_in`, or
|
|
212
231
|
// its own words saying "No API key found") flips `auth`, whatever the file probe read.
|
|
213
232
|
if (cli !== undefined && (kind === 'not_logged_in' || reason === 'not_logged_in' || said !== undefined)) {
|
|
214
|
-
this.recordAuthFailure(cli, said ?? texts[0] ?? '
|
|
233
|
+
this.recordAuthFailure(cli, said ?? texts[0] ?? '', 'ballot', at, session, 'not logged in');
|
|
215
234
|
}
|
|
216
235
|
// (R5b) An observed error — stamped, never counted: the engine benches the seat for the
|
|
217
236
|
// run at its own ballot threshold and says so in `unitDistributed.degradedReason`; crew
|
|
@@ -243,7 +262,12 @@ export class SeatHealthTracker {
|
|
|
243
262
|
// neither may bench a seat for the window.
|
|
244
263
|
if (cli === undefined || reason === undefined || (source !== 'worker' && source !== 'judge'))
|
|
245
264
|
return;
|
|
246
|
-
|
|
265
|
+
// A3: a bench that lands while the last one is still active counts one more run (the same
|
|
266
|
+
// run benching twice — its worker, then its judge — counts once).
|
|
267
|
+
const prev = this.recentBenches.get(cli);
|
|
268
|
+
const active = prev !== undefined && at - prev.at < SEAT_BENCH_WINDOW_MS;
|
|
269
|
+
const runs = !active ? 1 : session !== undefined && session === prev.session ? prev.runs : prev.runs + 1;
|
|
270
|
+
this.recentBenches.set(cli, { at, reason, source, runs, ...(session !== undefined ? { session } : {}) });
|
|
247
271
|
this.stampError(cli, at);
|
|
248
272
|
// The run moves its units OFF the benched seat: the refusing unit fails over (a
|
|
249
273
|
// `stepFailed` naming the new seat, no `unitReassigned`) and a later one is re-seated
|
|
@@ -270,7 +294,7 @@ export class SeatHealthTracker {
|
|
|
270
294
|
// `unauthenticated`) is the seat's account refusing — `auth` flips, with the engine's reason.
|
|
271
295
|
if (fallbackKind !== undefined && AUTH_FALLBACK_KINDS.has(fallbackKind)) {
|
|
272
296
|
const why = str(event.reason) ?? fallbackKind;
|
|
273
|
-
this.recordAuthFailure(cliKey, why, 'acp', at, session);
|
|
297
|
+
this.recordAuthFailure(cliKey, why, 'acp', at, session, fallbackKind);
|
|
274
298
|
}
|
|
275
299
|
// (R5) A fallback — one or many — is an observed error, never a status flip: the unit
|
|
276
300
|
// still runs on the wrapped carrier, and the seat's next turn is the engine's call.
|
|
@@ -323,11 +347,33 @@ export class SeatHealthTracker {
|
|
|
323
347
|
this.authFailures.delete(key); // …and the seat's own "no credential" report (F-A45-006)
|
|
324
348
|
this.recentBenches.delete(key); // …and a run's bench of it: the seat just did work
|
|
325
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* (A3) Lift the seat's recent bench because something else proved it can work again — the roster
|
|
352
|
+
* calls this when the seat's own LIVE sign-in check answered after an account bench (signed out,
|
|
353
|
+
* out of quota). An ok output does the same through {@link markActive}.
|
|
354
|
+
*/
|
|
355
|
+
clearRecentBench(key) {
|
|
356
|
+
this.recentBenches.delete(key);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Drop the seat's own "no credential" report when it is OLDER than `beforeMs` — the roster calls
|
|
360
|
+
* this when the seat's LIVE sign-in check answered after it (the operator signed in since). A
|
|
361
|
+
* report that landed after the check is kept: the seat refused again.
|
|
362
|
+
*/
|
|
363
|
+
clearAuthFailureBefore(key, beforeMs) {
|
|
364
|
+
const rec = this.authFailures.get(key);
|
|
365
|
+
if (rec !== undefined && rec.at < beforeMs)
|
|
366
|
+
this.authFailures.delete(key);
|
|
367
|
+
}
|
|
326
368
|
/** Record a seat's own "no credential" report (F-A45-006) — the newest report wins. */
|
|
327
|
-
recordAuthFailure(key, detail, source, atMs, session) {
|
|
369
|
+
recordAuthFailure(key, detail, source, atMs, session, fallback = 'no credential') {
|
|
328
370
|
this.authFailures.set(key, {
|
|
329
371
|
at: atMs,
|
|
330
|
-
|
|
372
|
+
// A8: a seat's own words can carry a key or name its account, so only crew's own vocabulary
|
|
373
|
+
// for them is kept (`refusalSummary`); every reader — the roster, a chat refusal, a bench
|
|
374
|
+
// reason — gets that, never the CLI's prose. A refusal no pattern names keeps its source's
|
|
375
|
+
// controlled word (the caller's `fallback`).
|
|
376
|
+
detail: excerpt(refusalSummary(detail) ?? fallback),
|
|
331
377
|
source,
|
|
332
378
|
...(session !== undefined ? { session } : {}),
|
|
333
379
|
});
|
|
@@ -383,6 +429,7 @@ export class SeatHealthTracker {
|
|
|
383
429
|
reason: rec.reason,
|
|
384
430
|
source: rec.source,
|
|
385
431
|
...(rec.session !== undefined ? { run: rec.session } : {}),
|
|
432
|
+
runs: rec.runs,
|
|
386
433
|
};
|
|
387
434
|
}
|
|
388
435
|
/** The seat's health — a seat never seen in an event is ACTIVE with no message (the default). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-health.js","sourceRoot":"","sources":["../../src/api/seat-health.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seat-health.js","sourceRoot":"","sources":["../../src/api/seat-health.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,EAAE;AACF,gGAAgG;AAChG,gGAAgG;AAChG,+FAA+F;AAC/F,kGAAkG;AAClG,2EAA2E;AAC3E,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,uFAAuF;AACvF,4FAA4F;AAC5F,iGAAiG;AACjG,+FAA+F;AAC/F,+FAA+F;AAC/F,mGAAmG;AACnG,kGAAkG;AAClG,mHAAmH;AACnH,kGAAkG;AAClG,mGAAmG;AACnG,aAAa;AACb,gGAAgG;AAChG,8FAA8F;AAC9F,yFAAyF;AACzF,iGAAiG;AACjG,4FAA4F;AAC5F,iGAAiG;AACjG,6FAA6F;AAC7F,yDAAyD;AACzD,EAAE;AACF,8FAA8F;AAC9F,6FAA6F;AAC7F,+FAA+F;AAC/F,6FAA6F;AAC7F,4FAA4F;AAC5F,0EAA0E;AAG1E,OAAO,EAEL,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE;;;;;;;;;;GAUG;AAEH,oFAAoF;AACpF,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;AAClF,CAAC;AAED,qGAAqG;AACrG,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD;;;uFAGuF;AACvF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC,CAAC;AAErG,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,wBAAwB;IACxB,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,kGAAkG;IAClG,kGAAkG;IAClG,2BAA2B;IAC3B,4BAA4B;IAC5B,uCAAuC;IACvC,iBAAiB;IACjB,uBAAuB;IACvB,kBAAkB;IAClB,mCAAmC;IACnC,sCAAsC;IACtC,kGAAkG;IAClG,kGAAkG;IAClG,gGAAgG;IAChG,4FAA4F;IAC5F,uCAAuC;IACvC,0FAA0F;IAC1F,iFAAiF;IACjF,gCAAgC;CACjC,CAAC;AAEF,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,gGAAgG;AAChG,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEzF;yFACyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAmCnD;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAYC;IAXZ,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACzD,oGAAoG;IACnF,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,mGAAmG;IAClF,YAAY,GAAG,IAAI,GAAG,EAA+F,CAAC;IACvI;qDACiD;IAChC,aAAa,GAAG,IAAI,GAAG,EAA0F,CAAC;IACnI,+DAA+D;IAC9C,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEtD,YAA6B,OAQzB,EAAE;QARuB,SAAI,GAAJ,IAAI,CAQ3B;IAAG,CAAC;IAEV,4FAA4F;IAC5F,MAAM,CAAC,KAAgB;QACrB,wFAAwF;QACxF,0EAA0E;QAC1E,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,wFAAwF;gBACxF,yFAAyF;gBACzF,yFAAyF;gBACzF,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO;gBACpF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvD,IAAI,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,iFAAiF;gBACjF,yFAAyF;gBACzF,mFAAmF;gBACnF,2FAA2F;gBAC3F,2FAA2F;gBAC3F,uFAAuF;gBACvF,+CAA+C;gBAC/C,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI;oBAAE,OAAO;gBAClD,wFAAwF;gBACxF,wFAAwF;gBACxF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GACZ,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;oBACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;oBAC3C,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC;gBAC/B,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO;gBAC/B,yFAAyF;gBACzF,IAAI,aAAa,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACvF,sFAAsF;gBACtF,yFAAyF;gBACzF,8EAA8E;;oBACzE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,GAAG,CAAE,KAA4B,CAAC,IAAI,CAAC,CAAC;gBACrD,yFAAyF;gBACzF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,oFAAoF;gBACpF,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAG,KAA8B,CAAC,MAAM,EAAG,KAA8B,CAAC,MAAM,CAAC;qBACzG,GAAG,CAAC,GAAG,CAAC;qBACR,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvC,uFAAuF;gBACvF,uFAAuF;gBACvF,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,KAAK,eAAe,IAAI,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;oBACxG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;gBAC9F,CAAC;gBACD,wFAAwF;gBACxF,wFAAwF;gBACxF,+EAA+E;gBAC/E,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,uFAAuF;gBACvF,0FAA0F;gBAC1F,8EAA8E;gBAC9E,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,MAAM,KAAK,SAAS,IAAK,KAA0B,CAAC,EAAE,KAAK,IAAI;oBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjG,OAAO;YACT,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,kFAAkF;gBAClF,sFAAsF;gBACtF,yFAAyF;gBACzF,wFAAwF;gBACxF,0FAA0F;gBAC1F,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,0FAA0F;gBAC1F,yFAAyF;gBACzF,2CAA2C;gBAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC;oBAAE,OAAO;gBACrG,0FAA0F;gBAC1F,kEAAkE;gBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC;gBACzE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACzG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,gFAAgF;gBAChF,sFAAsF;gBACtF,yFAAyF;gBACzF,sFAAsF;gBACtF,gFAAgF;gBAChF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC;oBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBAChD,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,MAAM,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,YAAY,GAAG,GAAG,CAAE,KAAoC,CAAC,YAAY,CAAC,CAAC;gBAC7E,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO;gBACjC,IAAI,YAAY,KAAK,SAAS,IAAI,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC;oBAAE,OAAO;gBAClF,kFAAkF;gBAClF,8FAA8F;gBAC9F,IAAI,YAAY,KAAK,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxE,MAAM,GAAG,GAAG,GAAG,CAAE,KAA8B,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC;oBACxE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxE,CAAC;gBACD,sFAAsF;gBACtF,oFAAoF;gBACpF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,0EAA0E;gBAC1E,4EAA4E;gBAC5E,6EAA6E;gBAC7E,6EAA6E;gBAC7E,IAAI,YAAY,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACzE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBACnD,MAAM,GAAG,GAAG,iCAAiC,MAAM,WAAW,OAAO,IAAI,SAAS,EAAE,CAAC;oBACrF,iFAAiF;oBACjF,uEAAuE;oBACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/D,IAAI,CACF,KAAK;wBACH,CAAC,CAAC,iBAAiB,GAAG,0BAA0B,KAAK,CAAC,MAAM,MAAM;4BAChE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK;4BACrE,4CAA4C;wBAC9C,CAAC,CAAC,iBAAiB,GAAG,4BAA4B;4BAChD,IAAI,4BAA4B,GAAG,IAAI,GAAG;4BAC1C,+DAA+D,CACpE,CAAC;gBACJ,CAAC;gBACD,OAAO;YACT,CAAC;YACD,uFAAuF;YACvF,KAAK,kBAAkB,CAAC;YACxB,KAAK,eAAe,CAAC;YACrB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO;gBAClC,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC;gBAC7B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;wBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO;YACT,CAAC;YACD;gBACE,OAAO;QACX,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,UAAU,CAAC,GAAW,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;YAC5E,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,yDAAyD;QACxF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;IACrF,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,GAAW,EAAE,QAAgB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,GAAG,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,uFAAuF;IAC/E,iBAAiB,CACvB,GAAW,EACX,MAAc,EACd,MAAiC,EACjC,IAAY,EACZ,OAA2B,EAC3B,QAAQ,GAAG,eAAe;QAE1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;YACzB,EAAE,EAAE,IAAI;YACR,4FAA4F;YAC5F,0FAA0F;YAC1F,2FAA2F;YAC3F,6CAA6C;YAC7C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;YACnD,MAAM;YACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,gGAAgG;IACxF,UAAU,CAAC,GAAW,EAAE,IAAY;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,MAAM,EAAE,QAAQ;YAChB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS;YACpC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAW,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,sBAAsB,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,GAAW,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAClC,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,oBAAoB,CAAC,CAAC,WAAW,EAAE;YAC5D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,iGAAiG;IACjG,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9E,CAAC;CACF"}
|
package/dist/api/seat-probe.d.ts
CHANGED
|
@@ -45,10 +45,11 @@
|
|
|
45
45
|
* one refresh in the background (deduplicated per seat, one probe process at a time host-wide
|
|
46
46
|
* for this daemon). A signed-in answer is kept for 5 minutes (so a live check costs at most one
|
|
47
47
|
* one-word request per seat per 5 minutes); a signed-out or unknown one for 30 s, so a seat signed
|
|
48
|
-
* in from the
|
|
48
|
+
* in from the Agents page turns green on the next poll or two. The cache is keyed by (seat, worker
|
|
49
49
|
* home): changing `worker_config_root` discards every answer at once. A launch awaits a missing or
|
|
50
50
|
* stale answer, bounded, before it routes ({@link SeatProbe.ensureFresh}).
|
|
51
51
|
*/
|
|
52
|
+
import { type SeatAccount } from './seat-scrub.js';
|
|
52
53
|
/** A probe process's outcome, as the runner reports it. `error` is set when it never ran to exit
|
|
53
54
|
* (not installed, timed out, killed). */
|
|
54
55
|
export interface ProbeOutput {
|
|
@@ -70,8 +71,11 @@ export interface SeatProbeReading {
|
|
|
70
71
|
check: ProbeCheck;
|
|
71
72
|
/** ISO-8601 of the probe. */
|
|
72
73
|
probedAt: string;
|
|
73
|
-
/** A bounded excerpt of what the CLI said (its own words for a `false`)
|
|
74
|
+
/** A bounded excerpt of what the CLI said (its own words for a `false`), with every account
|
|
75
|
+
* identifier dropped (A8, `seat-scrub.ts`): it rides the roster's `auth_evidence` / `login_note`. */
|
|
74
76
|
detail: string;
|
|
77
|
+
/** (A2) The account KIND the status command stated, when it stated one — never an identifier. */
|
|
78
|
+
account?: SeatAccount;
|
|
75
79
|
}
|
|
76
80
|
/** How long an answer is trusted before a background refresh (the stale answer is served meanwhile). */
|
|
77
81
|
export declare const PROBE_TTL_SIGNED_IN_MS: number;
|
|
@@ -132,6 +136,11 @@ export declare class SeatProbe {
|
|
|
132
136
|
ensureFresh(seatKeys: string[], workerRoot: string | undefined, waitMs?: number): Promise<void>;
|
|
133
137
|
/** Probe now (deduplicated per seat and worker home); resolves to the fresh answer. */
|
|
134
138
|
refresh(seatKey: string, workerRoot: string | undefined): Promise<SeatProbeReading | undefined>;
|
|
139
|
+
/**
|
|
140
|
+
* A3b: probe AGAIN, after any probe already running for this seat has finished. A running probe
|
|
141
|
+
* may have started before the operator signed in, so its answer cannot be the fresh one.
|
|
142
|
+
*/
|
|
143
|
+
refreshFresh(seatKey: string, workerRoot: string | undefined): Promise<SeatProbeReading | undefined>;
|
|
135
144
|
/** The status command, then — when it says signed in — the live check. */
|
|
136
145
|
private probeOnce;
|
|
137
146
|
private reading;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-probe.d.ts","sourceRoot":"","sources":["../../src/api/seat-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;
|
|
1
|
+
{"version":3,"file":"seat-probe.d.ts","sourceRoot":"","sources":["../../src/api/seat-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAQH,OAAO,EAAiD,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAElG;0CAC0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;4FAC4F;AAC5F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,KAAK,EAAE,UAAU,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB;0GACsG;IACtG,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,wGAAwG;AACxG,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AACpD,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAC5C,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAC3C,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAU9C,KAAK,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,CAAC;AAYvE,8FAA8F;AAC9F,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAkB,GACvB,OAAO,GAAG,IAAI,CAMhB;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAkB,GACvB,OAAO,GAAG,IAAI,CAUhB;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAY/E;AAED;8EAC8E;AAC9E,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAG/D;AAED;kGACkG;AAClG,eAAO,MAAM,SAAS,EAAE,WAmBpB,CAAC;AAEL,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0D;IAChF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,kEAAkE;IAClE,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,IAAI,GAAE,gBAAqB;IAOvC,4CAA4C;IAC5C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAcnF;;;;OAIG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAE,MAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3H,uFAAuF;IACvF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAqB/F;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAM1G,0EAA0E;YAC5D,SAAS;IAevB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;CAId"}
|