@claudexor/cli 3.3.11 → 3.3.13
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/cli-error.d.ts +25 -1
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +37 -4
- package/dist/cli-error.js.map +1 -1
- package/dist/cli.js +5 -5
- package/dist/cli.js.map +1 -1
- package/dist/daemon-run.d.ts +11 -78
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +43 -177
- package/dist/daemon-run.js.map +1 -1
- package/dist/engine-skew.d.ts +64 -0
- package/dist/engine-skew.d.ts.map +1 -0
- package/dist/engine-skew.js +101 -0
- package/dist/engine-skew.js.map +1 -0
- package/dist/live.d.ts +1 -8
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +64 -33
- package/dist/live.js.map +1 -1
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +25 -4
- package/dist/ops-commands.js.map +1 -1
- package/dist/retention-service.d.ts.map +1 -1
- package/dist/retention-service.js +17 -2
- package/dist/retention-service.js.map +1 -1
- package/dist/run-detail-fetch.d.ts +77 -0
- package/dist/run-detail-fetch.d.ts.map +1 -0
- package/dist/run-detail-fetch.js +159 -0
- package/dist/run-detail-fetch.js.map +1 -0
- package/package.json +23 -23
package/dist/daemon-run.js
CHANGED
|
@@ -5,38 +5,42 @@ import { fileURLToPath } from "node:url";
|
|
|
5
5
|
import { DaemonClient, daemonDir, defaultSocketPath, ensureToken, readToken, } from "@claudexor/daemon";
|
|
6
6
|
import { harnessRuntimeEnv } from "@claudexor/core";
|
|
7
7
|
import { hashJson } from "@claudexor/util";
|
|
8
|
-
import { controlProblemError } from "./cli-error.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
8
|
+
import { CliError, controlProblemError } from "./cli-error.js";
|
|
9
|
+
import { recordEngineSkew } from "./engine-skew.js";
|
|
10
|
+
import { controlApiAddress, controlApiFetch, handshakeControlApi, } from "./live.js";
|
|
11
|
+
import { TERMINAL_LIFECYCLES } from "@claudexor/schema";
|
|
12
12
|
export { projectOutcomeBanner } from "./run-detail-projections.js";
|
|
13
|
-
import { projectRunOutcomeFacts } from "./daemon-outcome.js";
|
|
14
|
-
import { readRunDetailResponse } from "./run-detail-response.js";
|
|
15
13
|
export { projectRunOutcomeFacts, mergeDaemonRunOutcome } from "./daemon-outcome.js";
|
|
16
14
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
17
15
|
/** Is something accepting on the daemon socket right now? (cheap reachability probe). */
|
|
18
16
|
async function daemonReachable(client) {
|
|
19
|
-
|
|
20
|
-
await client.health();
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
17
|
+
return client.health().then(() => true, () => false);
|
|
26
18
|
}
|
|
27
|
-
/** Is the daemon's control-api up and answering /healthz right now?
|
|
19
|
+
/** Is the daemon's control-api up and answering /healthz right now? Returns
|
|
20
|
+
* the address WITH the handshake's validated engine identity — callers that
|
|
21
|
+
* need capability negotiation (gc's data_root_report) reuse this one
|
|
22
|
+
* handshake instead of performing a second.
|
|
23
|
+
* Absence-vs-refusal (#93): null means ABSENCE only — no pointer file, connect
|
|
24
|
+
* refused/timeout, non-ok healthz (a STOPPING daemon's 503 included, R1 C-C3b),
|
|
25
|
+
* or the same stopping daemon losing the healthz/handshake race and answering
|
|
26
|
+
* the handshake with its typed `daemon_stopping` problem (R2) — and clears the
|
|
27
|
+
* skew record; any OTHER typed handshake problem THROWS, because "not
|
|
28
|
+
* reachable" would send callers into a doomed wait/auto-start. */
|
|
28
29
|
async function controlApiReachable() {
|
|
29
30
|
try {
|
|
30
31
|
const addr = controlApiAddress();
|
|
31
32
|
const res = await controlApiFetch(addr, "/healthz", { signal: AbortSignal.timeout(1500) });
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
if (res.ok) {
|
|
34
|
+
const engine = await handshakeControlApi(addr);
|
|
35
|
+
return { addr, engine };
|
|
36
|
+
}
|
|
36
37
|
}
|
|
37
|
-
catch {
|
|
38
|
-
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (err instanceof CliError && err.code !== "daemon_stopping")
|
|
40
|
+
throw err;
|
|
39
41
|
}
|
|
42
|
+
recordEngineSkew(null); // absence (stopping included): no live connection to be skewed with
|
|
43
|
+
return null;
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* Ensure a daemon (and its control API) is running and return a connected
|
|
@@ -45,6 +49,9 @@ async function controlApiReachable() {
|
|
|
45
49
|
* socket and the control-api.json pointer to come up. FAILS LOUDLY if the daemon
|
|
46
50
|
* cannot be started — never silently falls back to an in-process run (the apply
|
|
47
51
|
* gate refuses a run no daemon tracks, so an in-process run is un-unblockable).
|
|
52
|
+
* A daemon that is up but REFUSES the typed handshake fails IMMEDIATELY with
|
|
53
|
+
* that typed problem — including after an auto-start that lost the singleton
|
|
54
|
+
* race to a foreign daemon (macOS app relaunch) this CLI then handshakes (#93).
|
|
48
55
|
*/
|
|
49
56
|
export async function ensureDaemon(timeoutMs = 30_000) {
|
|
50
57
|
const token = ensureToken();
|
|
@@ -83,18 +90,18 @@ export async function ensureDaemon(timeoutMs = 30_000) {
|
|
|
83
90
|
}
|
|
84
91
|
// The control API (HTTP/SSE viewport over the daemon) is what streams events
|
|
85
92
|
// and resolves the run for apply/decision. Wait for its pointer to be written.
|
|
86
|
-
let
|
|
87
|
-
if (!
|
|
93
|
+
let reached = await controlApiReachable();
|
|
94
|
+
if (!reached) {
|
|
88
95
|
const deadline = Date.now() + 10_000;
|
|
89
|
-
while (Date.now() < deadline && !
|
|
96
|
+
while (Date.now() < deadline && !reached) {
|
|
90
97
|
await sleep(150);
|
|
91
|
-
|
|
98
|
+
reached = await controlApiReachable();
|
|
92
99
|
}
|
|
93
100
|
}
|
|
94
|
-
if (!
|
|
101
|
+
if (!reached) {
|
|
95
102
|
throw new Error(`daemon is up but its control API is not reachable (no ${daemonDir()}/control-api.json); it may be disabled by CLAUDEXOR_NO_CONTROL_API=1`);
|
|
96
103
|
}
|
|
97
|
-
return { client, addr };
|
|
104
|
+
return { client, addr: reached.addr, engine: reached.engine };
|
|
98
105
|
}
|
|
99
106
|
/**
|
|
100
107
|
* Connect to an ALREADY-RUNNING daemon + control API WITHOUT ever spawning one.
|
|
@@ -102,7 +109,8 @@ export async function ensureDaemon(timeoutMs = 30_000) {
|
|
|
102
109
|
* API is down. Used by read-only-looking run lookups (inspect/apply) so a typo'd
|
|
103
110
|
* run id reports "no such run" instead of silently launching a background daemon
|
|
104
111
|
* (`ensureDaemon`, by contrast, auto-starts and is reserved for paths that act —
|
|
105
|
-
* enqueue/decision).
|
|
112
|
+
* enqueue/decision). A daemon that REFUSES the typed handshake is NOT "not
|
|
113
|
+
* running": the typed problem propagates — still without spawning (#93).
|
|
106
114
|
*/
|
|
107
115
|
export async function connectDaemonIfRunning() {
|
|
108
116
|
const token = readToken();
|
|
@@ -111,15 +119,16 @@ export async function connectDaemonIfRunning() {
|
|
|
111
119
|
const client = new DaemonClient(defaultSocketPath(), token);
|
|
112
120
|
if (!(await daemonReachable(client)))
|
|
113
121
|
return null;
|
|
114
|
-
const
|
|
115
|
-
if (!
|
|
122
|
+
const reached = await controlApiReachable();
|
|
123
|
+
if (!reached)
|
|
116
124
|
return null;
|
|
117
|
-
return { client, addr };
|
|
125
|
+
return { client, addr: reached.addr };
|
|
118
126
|
}
|
|
119
127
|
/**
|
|
120
128
|
* Poll until the daemon (socket + control API) is fully ready, or the timeout
|
|
121
129
|
* elapses. Lets `claudexor daemon start` return only once a subsequent `status`
|
|
122
|
-
* is guaranteed to succeed (no start/status race).
|
|
130
|
+
* is guaranteed to succeed (no start/status race). A typed handshake refusal
|
|
131
|
+
* propagates — waiting cannot fix an incompatible daemon (#93).
|
|
123
132
|
*/
|
|
124
133
|
export async function waitForDaemonReady(timeoutMs = 15_000) {
|
|
125
134
|
const deadline = Date.now() + timeoutMs;
|
|
@@ -321,150 +330,7 @@ async function ensureRunProject(addr, body) {
|
|
|
321
330
|
throw new Error(`project registration failed (HTTP ${response.status})${detail ? `: ${detail}` : ""}`);
|
|
322
331
|
}
|
|
323
332
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
* available, the D-16 outcome-aware projection is used instead so a
|
|
328
|
-
* needs_input/incomplete work_state exits non-zero on a succeeded lifecycle. */
|
|
329
|
-
export function exitCodeForState(state, facts) {
|
|
330
|
-
if (facts)
|
|
331
|
-
return outcomeExitCode(facts);
|
|
332
|
-
return processExitCodeForRunStatus(state);
|
|
333
|
-
}
|
|
334
|
-
/** Server-derived plan readiness projection (mode=plan runs). */
|
|
335
|
-
export async function fetchPlanReadiness(addr, runId) {
|
|
336
|
-
if (!runId)
|
|
337
|
-
return null;
|
|
338
|
-
try {
|
|
339
|
-
const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
|
|
340
|
-
headers: { authorization: `Bearer ${addr.token}` },
|
|
341
|
-
});
|
|
342
|
-
if (!res.ok)
|
|
343
|
-
return null;
|
|
344
|
-
const detail = (await res.json());
|
|
345
|
-
const v = detail["planReadiness"];
|
|
346
|
-
return v && typeof v === "object" ? v : null;
|
|
347
|
-
}
|
|
348
|
-
catch {
|
|
349
|
-
return null;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
/** The plan run's open questions (D17), projected from GET /runs/:id — the
|
|
353
|
-
* SAME server artifact readiness derives from, never a client re-parse. Empty
|
|
354
|
-
* for ready/unverified plans and every non-plan run. */
|
|
355
|
-
export async function fetchPlanQuestions(addr, runId) {
|
|
356
|
-
if (!runId)
|
|
357
|
-
return [];
|
|
358
|
-
try {
|
|
359
|
-
const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
|
|
360
|
-
headers: { authorization: `Bearer ${addr.token}` },
|
|
361
|
-
});
|
|
362
|
-
if (!res.ok)
|
|
363
|
-
return [];
|
|
364
|
-
const detail = (await res.json());
|
|
365
|
-
const v = detail["planQuestions"];
|
|
366
|
-
return Array.isArray(v) ? v : [];
|
|
367
|
-
}
|
|
368
|
-
catch {
|
|
369
|
-
return [];
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
/** Council membership + merge disclosure (INV-031) for a --council plan run;
|
|
373
|
-
* null for solo plans and non-plan runs. Server-projected — the CLI never
|
|
374
|
-
* re-derives membership. */
|
|
375
|
-
export async function fetchCouncil(addr, runId) {
|
|
376
|
-
if (!runId)
|
|
377
|
-
return null;
|
|
378
|
-
try {
|
|
379
|
-
const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
|
|
380
|
-
headers: { authorization: `Bearer ${addr.token}` },
|
|
381
|
-
});
|
|
382
|
-
if (!res.ok)
|
|
383
|
-
return null;
|
|
384
|
-
const detail = (await res.json());
|
|
385
|
-
const v = detail["council"];
|
|
386
|
-
return v && typeof v === "object"
|
|
387
|
-
? v
|
|
388
|
-
: null;
|
|
389
|
-
}
|
|
390
|
-
catch {
|
|
391
|
-
return null;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
/**
|
|
395
|
-
* ONE GET /runs/:id for the terminal path (INV-120/122): fetch the run detail
|
|
396
|
-
* once and feed every pure projection below. Three-state semantics:
|
|
397
|
-
* a MISSING detail (404 / legacy run) and a transport-UNAVAILABLE detail both
|
|
398
|
-
* soft-fail to null (a hiccup must never eat a finished run's result), while a
|
|
399
|
-
* typed problem response — especially 500 run_facts_invalid, the server's
|
|
400
|
-
* verdict that the run's canonical receipt cannot be trusted — raises through
|
|
401
|
-
* the typed CLI failure path (controlProblemError -> renderCliFailure,
|
|
402
|
-
* non-zero exit) instead of masquerading as a legacy run. The per-projection
|
|
403
|
-
* `fetch*` wrappers stay for callers that need exactly one projection.
|
|
404
|
-
*/
|
|
405
|
-
export async function fetchRunDetail(addr, runId) {
|
|
406
|
-
if (!runId)
|
|
407
|
-
return null;
|
|
408
|
-
let res;
|
|
409
|
-
try {
|
|
410
|
-
res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
|
|
411
|
-
headers: { authorization: `Bearer ${addr.token}` },
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
catch {
|
|
415
|
-
return null;
|
|
416
|
-
}
|
|
417
|
-
if (res.status === 404)
|
|
418
|
-
return null;
|
|
419
|
-
if (!res.ok) {
|
|
420
|
-
const body = await res.json().catch(() => ({}));
|
|
421
|
-
throw controlProblemError(res.status, body, `run detail failed (HTTP ${res.status})`);
|
|
422
|
-
}
|
|
423
|
-
return readRunDetailResponse(res);
|
|
424
|
-
}
|
|
425
|
-
export async function fetchApplyEligibility(addr, runId) {
|
|
426
|
-
return projectApplyEligibility(await fetchRunDetail(addr, runId));
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* The run's terminal outcome facts through fetchRunDetail's THREE-state
|
|
430
|
-
* semantics (INV-120/122): missing/legacy detail and transport loss project
|
|
431
|
-
* null (the lifecycle-only exit stands), while a typed problem response — the
|
|
432
|
-
* server's verdict that the terminal cannot be trusted (500 run_facts_invalid)
|
|
433
|
-
* — raises into the CLI failure path instead of silently exiting as if the
|
|
434
|
-
* facts never existed. Makes the direct-run CLI exit outcome-aware for a
|
|
435
|
-
* work_state veto (callers that need only this one projection).
|
|
436
|
-
*/
|
|
437
|
-
export async function fetchRunOutcomeFacts(addr, runId) {
|
|
438
|
-
return projectRunOutcomeFacts(await fetchRunDetail(addr, runId));
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* The server-owned outcome banner for a run (D18): the single honest headline,
|
|
442
|
-
* derived by the control-plane projection owner. The CLI PRINTS it verbatim —
|
|
443
|
-
* it never re-derives a headline of its own, so model prose can never outrank
|
|
444
|
-
* the arbitrated truth. Null while the run is not terminal or unavailable.
|
|
445
|
-
*/
|
|
446
|
-
export async function fetchOutcomeBanner(addr, runId) {
|
|
447
|
-
return projectOutcomeBanner(await fetchRunDetail(addr, runId));
|
|
448
|
-
}
|
|
449
|
-
/**
|
|
450
|
-
* Machine-readable reason for a non-clean DAEMON terminal (P2, D8). A
|
|
451
|
-
* needs-decision run (review blocked / checks failed) has a SUCCEEDED lifecycle
|
|
452
|
-
* and no `error`, so key the actionable decision hint on the run FACTS, not on
|
|
453
|
-
* the lifecycle; other non-succeeded lifecycles use the error or a reason
|
|
454
|
-
* label. A clean succeeded run returns undefined (no `summary` key emitted).
|
|
455
|
-
*/
|
|
456
|
-
export function daemonOutcomeSummary(out) {
|
|
457
|
-
const facts = out.outcomeFacts ?? null;
|
|
458
|
-
const needsDecision = !!facts &&
|
|
459
|
-
facts.lifecycle === "succeeded" &&
|
|
460
|
-
(facts.review === "blocked" || facts.checks === "failed");
|
|
461
|
-
if (needsDecision) {
|
|
462
|
-
return `run needs a human decision — claudexor decision ${out.runId} --accept-risk | --rerun --feedback "..."`;
|
|
463
|
-
}
|
|
464
|
-
if (out.error)
|
|
465
|
-
return out.error;
|
|
466
|
-
if (exitCodeForState(out.status, facts) === 0)
|
|
467
|
-
return undefined;
|
|
468
|
-
return `run ${out.status}${facts?.reason ? ` (${facts.reason})` : ""}`;
|
|
469
|
-
}
|
|
333
|
+
// Run-detail fetch wrappers + terminal projections live in run-detail-fetch.ts
|
|
334
|
+
// (ratchet split); re-exported so existing import sites stay stable.
|
|
335
|
+
export { exitCodeForState, fetchPlanReadiness, fetchPlanQuestions, fetchCouncil, fetchRunDetail, fetchApplyEligibility, fetchRunOutcomeFacts, fetchOutcomeBanner, daemonOutcomeSummary, } from "./run-detail-fetch.js";
|
|
470
336
|
//# sourceMappingURL=daemon-run.js.map
|
package/dist/daemon-run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-run.js","sourceRoot":"","sources":["../src/daemon-run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon-run.js","sourceRoot":"","sources":["../src/daemon-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** Same-major daemon/CLI skew observed on this process's control connection. */
|
|
2
|
+
export interface EngineSkew {
|
|
3
|
+
daemonVersion: string;
|
|
4
|
+
/** Present only when the daemon reported a well-formed 40-hex build SHA. */
|
|
5
|
+
daemonSha?: string;
|
|
6
|
+
cliVersion: string;
|
|
7
|
+
}
|
|
8
|
+
/** The daemon's validated build identity from a successful handshake. The
|
|
9
|
+
* engine version is the AUTHORITATIVE running-engine version (QA-033a): a
|
|
10
|
+
* `release check` must trust this live process identity over the executing CLI
|
|
11
|
+
* package constant. Null when the daemon did not report a well-formed version. */
|
|
12
|
+
export interface EngineIdentity {
|
|
13
|
+
engineVersion: string | null;
|
|
14
|
+
engineBuildSha: string | null;
|
|
15
|
+
}
|
|
16
|
+
/** The ONE remedy wording — stderr advisory and typed requiredActions speak
|
|
17
|
+
* with the same voice, so it must stay CALLER-NEUTRAL: acting commands
|
|
18
|
+
* (`ensureDaemon`) auto-start the CLI's own dist daemon after the stop, which
|
|
19
|
+
* cannot mismatch, but read-only paths (`connectDaemonIfRunning`: bare
|
|
20
|
+
* `follow`/`inspect`, the release check) never auto-start and need an
|
|
21
|
+
* explicit `claudexor daemon start` (a running macOS app may still relaunch
|
|
22
|
+
* its own runtime afterwards; its reconciler owns that lifecycle). */
|
|
23
|
+
export declare const ENGINE_STOP_REMEDY = "run `claudexor daemon stop`, then rerun \u2014 an acting command starts a matching daemon (read-only commands: run `claudexor daemon start` first)";
|
|
24
|
+
/** Overwrite the recorded skew (null clears). Called on every successful
|
|
25
|
+
* handshake and on transport absence — the record always reflects the LAST
|
|
26
|
+
* live observation, never a daemon this process can no longer see. */
|
|
27
|
+
export declare function recordEngineSkew(skew: EngineSkew | null): void;
|
|
28
|
+
/** The skew observed on this process's current connection, or null. */
|
|
29
|
+
export declare function observedEngineSkew(): EngineSkew | null;
|
|
30
|
+
export interface HandshakeIdentity {
|
|
31
|
+
/** The daemon's validated build identity (QA-033a); nulls when unreported. */
|
|
32
|
+
engine: EngineIdentity;
|
|
33
|
+
/** Pre-formatted stderr advisory line for a same-major skew; null when the
|
|
34
|
+
* daemon matches this CLI (or reported no well-formed version). */
|
|
35
|
+
skewAdvisory: string | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Consume a SUCCESSFUL (HTTP 200) handshake response body: parse the
|
|
39
|
+
* canonical envelope, validate the echoed identity, and update the skew
|
|
40
|
+
* record — set on a validated version mismatch, cleared otherwise (a
|
|
41
|
+
* malformed body observed nothing trustworthy and clears too).
|
|
42
|
+
*/
|
|
43
|
+
export declare function consumeHandshakeIdentity(body: unknown): HandshakeIdentity;
|
|
44
|
+
/** The typed-problem fields `stampEngineSkew` shapes — a structural mirror of
|
|
45
|
+
* cli-error's CliProblemFields (deliberately NOT imported: the projector's
|
|
46
|
+
* dependency graph stays acyclic and last-resort-safe). */
|
|
47
|
+
export interface SkewStampableFields {
|
|
48
|
+
code?: string;
|
|
49
|
+
retryable?: boolean;
|
|
50
|
+
fieldErrors?: Record<string, string[]>;
|
|
51
|
+
requiredActions?: string[];
|
|
52
|
+
details?: Record<string, unknown>;
|
|
53
|
+
context?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Shape a typed problem's fields at the controlProblemError choke point:
|
|
57
|
+
* append `appendRequiredActions` (the handshake-refusal path names the stop
|
|
58
|
+
* remedy explicitly), and when a same-major skew is recorded attach
|
|
59
|
+
* `context.engineSkew` plus the stop remedy. Duplicate actions are elided so
|
|
60
|
+
* the remedy reads once. With nothing to add, returns `fields` UNCHANGED —
|
|
61
|
+
* unskewed envelopes are byte-identical to before this fix.
|
|
62
|
+
*/
|
|
63
|
+
export declare function stampEngineSkew(fields: SkewStampableFields, appendRequiredActions?: string[]): SkewStampableFields;
|
|
64
|
+
//# sourceMappingURL=engine-skew.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-skew.d.ts","sourceRoot":"","sources":["../src/engine-skew.ts"],"names":[],"mappings":"AA0BA,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;kFAGkF;AAClF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;sEAMsE;AACtE,eAAO,MAAM,kBAAkB,uJACkH,CAAC;AAIlJ;;sEAEsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAE9D;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,IAAI,UAAU,GAAG,IAAI,CAEtD;AAQD,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,MAAM,EAAE,cAAc,CAAC;IACvB;uEACmE;IACnE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAyBzE;AAED;;2DAE2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAC/B,mBAAmB,CAYrB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine/CLI version-skew evidence — the one small owner (issue #93).
|
|
3
|
+
*
|
|
4
|
+
* A CLI process talks to exactly one daemon connection at a time, and the
|
|
5
|
+
* /v2/handshake already reports the serving engine's build identity. This
|
|
6
|
+
* module keeps that fact usable at failure time:
|
|
7
|
+
*
|
|
8
|
+
* - `consumeHandshakeIdentity` parses the CANONICAL handshake envelope
|
|
9
|
+
* (`ControlHandshakeResponse` — never a hand-rolled partial parser),
|
|
10
|
+
* applies echo hygiene, and OVERWRITES the module-scoped skew record on
|
|
11
|
+
* every successful handshake. Long-lived MCP/ACP processes reconnect after
|
|
12
|
+
* daemon restarts, so a stale record must never annotate post-fix failures;
|
|
13
|
+
* transport absence clears the record too (daemon-run.ts).
|
|
14
|
+
* - `stampEngineSkew` is called by `controlProblemError` (cli-error.ts) — the
|
|
15
|
+
* single choke point every typed control-problem projection funnels
|
|
16
|
+
* through — so a stale daemon's own typed failure (e.g. a 422
|
|
17
|
+
* config_invalid raised against a NEWER config schema) carries the observed
|
|
18
|
+
* skew as bounded typed context plus the stop remedy. With no recorded skew
|
|
19
|
+
* the fields pass through UNTOUCHED: unskewed envelopes stay byte-identical.
|
|
20
|
+
*
|
|
21
|
+
* Same-major skew stays ADVISORY (a0c16964/PDR-02: the protocol major is the
|
|
22
|
+
* only hard fence) — this module records evidence, it never blocks.
|
|
23
|
+
*/
|
|
24
|
+
import { ControlHandshakeResponse } from "@claudexor/schema";
|
|
25
|
+
import { CLAUDEXOR_VERSION } from "@claudexor/util";
|
|
26
|
+
/** The ONE remedy wording — stderr advisory and typed requiredActions speak
|
|
27
|
+
* with the same voice, so it must stay CALLER-NEUTRAL: acting commands
|
|
28
|
+
* (`ensureDaemon`) auto-start the CLI's own dist daemon after the stop, which
|
|
29
|
+
* cannot mismatch, but read-only paths (`connectDaemonIfRunning`: bare
|
|
30
|
+
* `follow`/`inspect`, the release check) never auto-start and need an
|
|
31
|
+
* explicit `claudexor daemon start` (a running macOS app may still relaunch
|
|
32
|
+
* its own runtime afterwards; its reconciler owns that lifecycle). */
|
|
33
|
+
export const ENGINE_STOP_REMEDY = "run `claudexor daemon stop`, then rerun — an acting command starts a matching daemon (read-only commands: run `claudexor daemon start` first)";
|
|
34
|
+
let observedSkew = null;
|
|
35
|
+
/** Overwrite the recorded skew (null clears). Called on every successful
|
|
36
|
+
* handshake and on transport absence — the record always reflects the LAST
|
|
37
|
+
* live observation, never a daemon this process can no longer see. */
|
|
38
|
+
export function recordEngineSkew(skew) {
|
|
39
|
+
observedSkew = skew;
|
|
40
|
+
}
|
|
41
|
+
/** The skew observed on this process's current connection, or null. */
|
|
42
|
+
export function observedEngineSkew() {
|
|
43
|
+
return observedSkew ? { ...observedSkew } : null;
|
|
44
|
+
}
|
|
45
|
+
// Echo hygiene (INV-062-adjacent): only a validated engine version/SHA may
|
|
46
|
+
// reach a terminal or a typed envelope — never arbitrary response text. Same
|
|
47
|
+
// bounds the plugin-skew check uses.
|
|
48
|
+
const ENGINE_VERSION_RE = /^[\w.+-]{1,32}$/;
|
|
49
|
+
const BUILD_SHA_RE = /^[0-9a-f]{40}$/;
|
|
50
|
+
/**
|
|
51
|
+
* Consume a SUCCESSFUL (HTTP 200) handshake response body: parse the
|
|
52
|
+
* canonical envelope, validate the echoed identity, and update the skew
|
|
53
|
+
* record — set on a validated version mismatch, cleared otherwise (a
|
|
54
|
+
* malformed body observed nothing trustworthy and clears too).
|
|
55
|
+
*/
|
|
56
|
+
export function consumeHandshakeIdentity(body) {
|
|
57
|
+
const parsed = ControlHandshakeResponse.safeParse(body);
|
|
58
|
+
if (!parsed.success) {
|
|
59
|
+
// Identity is advisory; a malformed body never fails the handshake.
|
|
60
|
+
recordEngineSkew(null);
|
|
61
|
+
return { engine: { engineVersion: null, engineBuildSha: null }, skewAdvisory: null };
|
|
62
|
+
}
|
|
63
|
+
const { version, sha } = parsed.data.engine;
|
|
64
|
+
const daemonVersion = ENGINE_VERSION_RE.test(version) ? version : null;
|
|
65
|
+
const engineBuildSha = sha === "unknown" || BUILD_SHA_RE.test(sha) ? sha : null;
|
|
66
|
+
if (daemonVersion && daemonVersion !== CLAUDEXOR_VERSION) {
|
|
67
|
+
recordEngineSkew({
|
|
68
|
+
daemonVersion,
|
|
69
|
+
...(engineBuildSha && engineBuildSha !== "unknown" ? { daemonSha: engineBuildSha } : {}),
|
|
70
|
+
cliVersion: CLAUDEXOR_VERSION,
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
engine: { engineVersion: daemonVersion, engineBuildSha },
|
|
74
|
+
skewAdvisory: `claudexor: daemon is engine ${daemonVersion} but this CLI is ${CLAUDEXOR_VERSION}; ` +
|
|
75
|
+
`${ENGINE_STOP_REMEDY}\n`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
recordEngineSkew(null);
|
|
79
|
+
return { engine: { engineVersion: daemonVersion, engineBuildSha }, skewAdvisory: null };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Shape a typed problem's fields at the controlProblemError choke point:
|
|
83
|
+
* append `appendRequiredActions` (the handshake-refusal path names the stop
|
|
84
|
+
* remedy explicitly), and when a same-major skew is recorded attach
|
|
85
|
+
* `context.engineSkew` plus the stop remedy. Duplicate actions are elided so
|
|
86
|
+
* the remedy reads once. With nothing to add, returns `fields` UNCHANGED —
|
|
87
|
+
* unskewed envelopes are byte-identical to before this fix.
|
|
88
|
+
*/
|
|
89
|
+
export function stampEngineSkew(fields, appendRequiredActions) {
|
|
90
|
+
const skew = observedSkew;
|
|
91
|
+
const existing = fields.requiredActions ?? [];
|
|
92
|
+
const appended = [...(appendRequiredActions ?? []), ...(skew ? [ENGINE_STOP_REMEDY] : [])].filter((action, index, all) => !existing.includes(action) && all.indexOf(action) === index);
|
|
93
|
+
if (!skew && appended.length === 0)
|
|
94
|
+
return fields;
|
|
95
|
+
return {
|
|
96
|
+
...fields,
|
|
97
|
+
requiredActions: [...existing, ...appended],
|
|
98
|
+
...(skew ? { context: { ...(fields.context ?? {}), engineSkew: { ...skew } } } : {}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=engine-skew.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-skew.js","sourceRoot":"","sources":["../src/engine-skew.ts"],"names":[],"mappings":"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"}
|
package/dist/live.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type EngineIdentity } from "./engine-skew.js";
|
|
1
2
|
export { collectInteractionAnswers } from "./interaction-prompt.js";
|
|
2
3
|
/** One CLI process-status policy for direct runs and streamed terminals — a
|
|
3
4
|
* thin re-export of the ONE projection owner (D8): the lifecycle IS the exit
|
|
@@ -45,14 +46,6 @@ export { CONTROL_PROTOCOL_MAJOR };
|
|
|
45
46
|
export declare function controlApiAddress(): ControlApiAddress;
|
|
46
47
|
/** One control-plane transport boundary for CLI, MCP and ACP projections. */
|
|
47
48
|
export declare function controlApiFetch(addr: ControlApiAddress, path: string, init?: RequestInit): Promise<Response>;
|
|
48
|
-
/** The daemon's validated build identity from a successful handshake. The
|
|
49
|
-
* engine version is the AUTHORITATIVE running-engine version (QA-033a): a
|
|
50
|
-
* `release check` must trust this live process identity over the executing CLI
|
|
51
|
-
* package constant. Null when the daemon did not report a well-formed version. */
|
|
52
|
-
export interface EngineIdentity {
|
|
53
|
-
engineVersion: string | null;
|
|
54
|
-
engineBuildSha: string | null;
|
|
55
|
-
}
|
|
56
49
|
export declare function handshakeControlApi(addr: ControlApiAddress, client?: string): Promise<EngineIdentity>;
|
|
57
50
|
/**
|
|
58
51
|
* `claudexor follow <run_id>`: live SSE tail of a daemon-backed run with full
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAeA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAMpE;;sEAEsE;AACtE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;6EAG6E;AAC7E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAInF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAqI7E;AAcD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAgB5F;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,wBAAgB,iBAAiB,IAAI,iBAAiB,CAwCrD;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,MAAM,SAAkB,GACvB,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA+J7E"}
|