@claudexor/cli 1.0.1 → 2.1.3
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/acp-surface-runner.d.ts +17 -0
- package/dist/acp-surface-runner.d.ts.map +1 -0
- package/dist/acp-surface-runner.js +187 -0
- package/dist/acp-surface-runner.js.map +1 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js.map +1 -1
- package/dist/bridge-serve.d.ts +3 -0
- package/dist/bridge-serve.d.ts.map +1 -0
- package/dist/bridge-serve.js +39 -0
- package/dist/bridge-serve.js.map +1 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +12 -3
- package/dist/capabilities.js.map +1 -1
- package/dist/claude-oauth-usage.d.ts +33 -0
- package/dist/claude-oauth-usage.d.ts.map +1 -0
- package/dist/claude-oauth-usage.js +190 -0
- package/dist/claude-oauth-usage.js.map +1 -0
- package/dist/claude-statusline.d.ts +25 -0
- package/dist/claude-statusline.d.ts.map +1 -0
- package/dist/claude-statusline.js +259 -0
- package/dist/claude-statusline.js.map +1 -0
- package/dist/claudexord.js +346 -543
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-io.d.ts +8 -9
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +11 -7
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +475 -516
- package/dist/cli.js.map +1 -1
- package/dist/codex-quota-source.d.ts +11 -0
- package/dist/codex-quota-source.d.ts.map +1 -0
- package/dist/codex-quota-source.js +181 -0
- package/dist/codex-quota-source.js.map +1 -0
- package/dist/command-flags.d.ts +18 -0
- package/dist/command-flags.d.ts.map +1 -0
- package/dist/command-flags.js +124 -0
- package/dist/command-flags.js.map +1 -0
- package/dist/command-registry.d.ts +2 -40
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +74 -164
- package/dist/command-registry.js.map +1 -1
- package/dist/control-services.d.ts +2490 -0
- package/dist/control-services.d.ts.map +1 -0
- package/dist/control-services.js +453 -0
- package/dist/control-services.js.map +1 -0
- package/dist/credential-commands.d.ts +9 -0
- package/dist/credential-commands.d.ts.map +1 -0
- package/dist/credential-commands.js +224 -0
- package/dist/credential-commands.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +7 -3
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +40 -12
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-run.d.ts +2 -0
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +62 -14
- package/dist/daemon-run.js.map +1 -1
- package/dist/daemon-runtime-shutdown.d.ts +58 -0
- package/dist/daemon-runtime-shutdown.d.ts.map +1 -0
- package/dist/daemon-runtime-shutdown.js +142 -0
- package/dist/daemon-runtime-shutdown.js.map +1 -0
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +12 -3
- package/dist/decision.js.map +1 -1
- package/dist/live.d.ts +29 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +117 -6
- package/dist/live.js.map +1 -1
- package/dist/local-attachment.d.ts +14 -0
- package/dist/local-attachment.d.ts.map +1 -0
- package/dist/local-attachment.js +67 -0
- package/dist/local-attachment.js.map +1 -0
- package/dist/mcp-runner.d.ts +4 -15
- package/dist/mcp-runner.d.ts.map +1 -1
- package/dist/mcp-runner.js +276 -145
- package/dist/mcp-runner.js.map +1 -1
- package/dist/native-login.d.ts +21 -0
- package/dist/native-login.d.ts.map +1 -0
- package/dist/native-login.js +110 -0
- package/dist/native-login.js.map +1 -0
- package/dist/ops-commands.d.ts +8 -6
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +250 -168
- package/dist/ops-commands.js.map +1 -1
- package/dist/orchestrate-options.d.ts.map +1 -1
- package/dist/orchestrate-options.js +1 -1
- package/dist/orchestrate-options.js.map +1 -1
- package/dist/orphan-reaper.d.ts +4 -5
- package/dist/orphan-reaper.d.ts.map +1 -1
- package/dist/orphan-reaper.js +29 -56
- package/dist/orphan-reaper.js.map +1 -1
- package/dist/orphan-sweeper.d.ts +1 -2
- package/dist/orphan-sweeper.d.ts.map +1 -1
- package/dist/orphan-sweeper.js +29 -48
- package/dist/orphan-sweeper.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +196 -64
- package/dist/plugins.js.map +1 -1
- package/dist/primary-output.d.ts.map +1 -1
- package/dist/primary-output.js.map +1 -1
- package/dist/profile-compatibility.d.ts +6 -0
- package/dist/profile-compatibility.d.ts.map +1 -0
- package/dist/profile-compatibility.js +21 -0
- package/dist/profile-compatibility.js.map +1 -0
- package/dist/profile-registration.d.ts +15 -0
- package/dist/profile-registration.d.ts.map +1 -0
- package/dist/profile-registration.js +68 -0
- package/dist/profile-registration.js.map +1 -0
- package/dist/project-command.d.ts +3 -0
- package/dist/project-command.d.ts.map +1 -0
- package/dist/project-command.js +87 -0
- package/dist/project-command.js.map +1 -0
- package/dist/quota-command.d.ts +3 -0
- package/dist/quota-command.d.ts.map +1 -0
- package/dist/quota-command.js +59 -0
- package/dist/quota-command.js.map +1 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -4
- package/dist/registry.js.map +1 -1
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +15 -3
- package/dist/release.js.map +1 -1
- package/dist/repl.d.ts +3 -8
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +23 -122
- package/dist/repl.js.map +1 -1
- package/dist/request-preflight.d.ts +13 -0
- package/dist/request-preflight.d.ts.map +1 -0
- package/dist/request-preflight.js +81 -0
- package/dist/request-preflight.js.map +1 -0
- package/dist/retention-service.d.ts +24 -0
- package/dist/retention-service.d.ts.map +1 -0
- package/dist/retention-service.js +100 -0
- package/dist/retention-service.js.map +1 -0
- package/dist/retry-command-specs.d.ts +3 -0
- package/dist/retry-command-specs.d.ts.map +1 -0
- package/dist/retry-command-specs.js +21 -0
- package/dist/retry-command-specs.js.map +1 -0
- package/dist/retry-command.d.ts +4 -0
- package/dist/retry-command.d.ts.map +1 -0
- package/dist/retry-command.js +57 -0
- package/dist/retry-command.js.map +1 -0
- package/dist/review-command.d.ts.map +1 -1
- package/dist/review-command.js +47 -12
- package/dist/review-command.js.map +1 -1
- package/dist/run-options.d.ts +2 -2
- package/dist/run-options.d.ts.map +1 -1
- package/dist/run-options.js +27 -5
- package/dist/run-options.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +143 -188
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +50 -0
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +67 -1
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-job-reducer.d.ts +9 -0
- package/dist/setup-job-reducer.d.ts.map +1 -0
- package/dist/setup-job-reducer.js +290 -0
- package/dist/setup-job-reducer.js.map +1 -0
- package/dist/setup-job-store.d.ts +250 -0
- package/dist/setup-job-store.d.ts.map +1 -0
- package/dist/setup-job-store.js +359 -0
- package/dist/setup-job-store.js.map +1 -0
- package/dist/setup-job-support.d.ts +27 -0
- package/dist/setup-job-support.d.ts.map +1 -0
- package/dist/setup-job-support.js +141 -0
- package/dist/setup-job-support.js.map +1 -0
- package/dist/setup-jobs.d.ts +437 -22
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +813 -423
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-lifecycle-binding.d.ts +40 -0
- package/dist/setup-lifecycle-binding.d.ts.map +1 -0
- package/dist/setup-lifecycle-binding.js +159 -0
- package/dist/setup-lifecycle-binding.js.map +1 -0
- package/dist/setup-login-protocol.d.ts +13 -0
- package/dist/setup-login-protocol.d.ts.map +1 -0
- package/dist/setup-login-protocol.js +179 -0
- package/dist/setup-login-protocol.js.map +1 -0
- package/dist/setup-login-runner.d.ts +20 -0
- package/dist/setup-login-runner.d.ts.map +1 -0
- package/dist/setup-login-runner.js +225 -0
- package/dist/setup-login-runner.js.map +1 -0
- package/dist/setup-supervisor.d.ts +53 -0
- package/dist/setup-supervisor.d.ts.map +1 -0
- package/dist/setup-supervisor.js +177 -0
- package/dist/setup-supervisor.js.map +1 -0
- package/dist/spec-thread-scope.d.ts +3 -0
- package/dist/spec-thread-scope.d.ts.map +1 -0
- package/dist/spec-thread-scope.js +9 -0
- package/dist/spec-thread-scope.js.map +1 -0
- package/dist/spec.d.ts +9 -20
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +49 -21
- package/dist/spec.js.map +1 -1
- package/dist/thread-delivery.d.ts +18 -0
- package/dist/thread-delivery.d.ts.map +1 -0
- package/dist/thread-delivery.js +67 -0
- package/dist/thread-delivery.js.map +1 -0
- package/dist/thread-select.d.ts +9 -0
- package/dist/thread-select.d.ts.map +1 -0
- package/dist/thread-select.js +12 -0
- package/dist/thread-select.js.map +1 -0
- package/dist/trust-command.d.ts.map +1 -1
- package/dist/trust-command.js +69 -61
- package/dist/trust-command.js.map +1 -1
- package/dist/trust-services.d.ts +5 -6
- package/dist/trust-services.d.ts.map +1 -1
- package/dist/trust-services.js +42 -13
- package/dist/trust-services.js.map +1 -1
- package/package.json +24 -22
- package/dist/attachment-resolver.d.ts +0 -11
- package/dist/attachment-resolver.d.ts.map +0 -1
- package/dist/attachment-resolver.js +0 -61
- package/dist/attachment-resolver.js.map +0 -1
- package/dist/settings-display.d.ts +0 -3
- package/dist/settings-display.d.ts.map +0 -1
- package/dist/settings-display.js +0 -33
- package/dist/settings-display.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface RuntimeStopParticipant {
|
|
2
|
+
stop(): Promise<void>;
|
|
3
|
+
}
|
|
4
|
+
export interface RuntimeSetupParticipant {
|
|
5
|
+
beginDrain(): void;
|
|
6
|
+
shutdown(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export interface RuntimeJournalParticipant {
|
|
9
|
+
close(): void;
|
|
10
|
+
}
|
|
11
|
+
export interface DaemonRuntimeShutdownOptions {
|
|
12
|
+
daemon: RuntimeStopParticipant;
|
|
13
|
+
setup: RuntimeSetupParticipant;
|
|
14
|
+
control: () => RuntimeStopParticipant | null;
|
|
15
|
+
journal: RuntimeJournalParticipant;
|
|
16
|
+
/** Shutdown diagnostics sink (must never throw); silent by default. */
|
|
17
|
+
log?: (message: string) => void;
|
|
18
|
+
/** Injectable force-exit (tests); defaults to process.exit. */
|
|
19
|
+
forceExit?: (code: number) => void;
|
|
20
|
+
/** Observes a failed participant stop; defaults to process.exitCode = 1. */
|
|
21
|
+
onStopFailure?: (error: unknown) => void;
|
|
22
|
+
/** Graceful-stop deadline before the escalation exit (default 15s). */
|
|
23
|
+
stopDeadlineMs?: number;
|
|
24
|
+
/** Post-stop grace for the event loop to drain before the sweep exit (default 2s). */
|
|
25
|
+
drainGraceMs?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* THE daemon shutdown state machine (W3.5): every trigger — OS signal,
|
|
29
|
+
* socket-RPC stop, startup failure, test dispose — enters through
|
|
30
|
+
* beginShutdown(reason) and gets the SAME escalation ladder (F2.5 W-C8:
|
|
31
|
+
* hung-stop deadline, then post-stop leaked-handle sweep). It stops ingress
|
|
32
|
+
* and setup work before closing the journal they write to; a hung
|
|
33
|
+
* participant or a leaked handle can no longer immortalize the daemon,
|
|
34
|
+
* whichever trigger asked it to die. Every rung is DISCLOSED in the log and
|
|
35
|
+
* every timer is unref'd so the ladder itself never keeps a clean process
|
|
36
|
+
* alive. Nothing outside the machine can disarm it: the clean-stop
|
|
37
|
+
* continuation itself clears the hung-stop deadline (the exit-1 hazard), a
|
|
38
|
+
* FAILED stop keeps that deadline armed to guarantee termination, and the
|
|
39
|
+
* drain sweep is deliberately uncancellable — the F2.5 finalize() hook let
|
|
40
|
+
* the composition root cancel the sweep and thereby disabled the
|
|
41
|
+
* leaked-handle protection in every production shutdown (F3 final review).
|
|
42
|
+
*/
|
|
43
|
+
export declare class DaemonRuntimeShutdown {
|
|
44
|
+
private readonly options;
|
|
45
|
+
private requestedValue;
|
|
46
|
+
private deadlineTimer;
|
|
47
|
+
private readonly completion;
|
|
48
|
+
private resolveCompletion;
|
|
49
|
+
private rejectCompletion;
|
|
50
|
+
constructor(options: DaemonRuntimeShutdownOptions);
|
|
51
|
+
beginShutdown(reason: string): Promise<void>;
|
|
52
|
+
wait(): Promise<void>;
|
|
53
|
+
requested(): boolean;
|
|
54
|
+
private settleFailure;
|
|
55
|
+
private armExitTimer;
|
|
56
|
+
private log;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=daemon-runtime-shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-runtime-shutdown.d.ts","sourceRoot":"","sources":["../src/daemon-runtime-shutdown.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,OAAO,EAAE,MAAM,sBAAsB,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IACnC,uEAAuE;IACvE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAqB;IAOpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,gBAAgB,CAA4B;gBAEvB,OAAO,EAAE,4BAA4B;IAQlE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0E5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,SAAS,IAAI,OAAO;IAIpB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,GAAG;CAOZ"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE daemon shutdown state machine (W3.5): every trigger — OS signal,
|
|
3
|
+
* socket-RPC stop, startup failure, test dispose — enters through
|
|
4
|
+
* beginShutdown(reason) and gets the SAME escalation ladder (F2.5 W-C8:
|
|
5
|
+
* hung-stop deadline, then post-stop leaked-handle sweep). It stops ingress
|
|
6
|
+
* and setup work before closing the journal they write to; a hung
|
|
7
|
+
* participant or a leaked handle can no longer immortalize the daemon,
|
|
8
|
+
* whichever trigger asked it to die. Every rung is DISCLOSED in the log and
|
|
9
|
+
* every timer is unref'd so the ladder itself never keeps a clean process
|
|
10
|
+
* alive. Nothing outside the machine can disarm it: the clean-stop
|
|
11
|
+
* continuation itself clears the hung-stop deadline (the exit-1 hazard), a
|
|
12
|
+
* FAILED stop keeps that deadline armed to guarantee termination, and the
|
|
13
|
+
* drain sweep is deliberately uncancellable — the F2.5 finalize() hook let
|
|
14
|
+
* the composition root cancel the sweep and thereby disabled the
|
|
15
|
+
* leaked-handle protection in every production shutdown (F3 final review).
|
|
16
|
+
*/
|
|
17
|
+
export class DaemonRuntimeShutdown {
|
|
18
|
+
options;
|
|
19
|
+
requestedValue = false;
|
|
20
|
+
deadlineTimer = null;
|
|
21
|
+
completion;
|
|
22
|
+
resolveCompletion;
|
|
23
|
+
rejectCompletion;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.options = options;
|
|
26
|
+
this.completion = new Promise((resolve, reject) => {
|
|
27
|
+
this.resolveCompletion = resolve;
|
|
28
|
+
this.rejectCompletion = reject;
|
|
29
|
+
});
|
|
30
|
+
void this.completion.catch(() => undefined);
|
|
31
|
+
}
|
|
32
|
+
beginShutdown(reason) {
|
|
33
|
+
if (this.requestedValue) {
|
|
34
|
+
this.log(`shutdown already in progress (${reason} coalesced)`);
|
|
35
|
+
return this.completion;
|
|
36
|
+
}
|
|
37
|
+
this.requestedValue = true;
|
|
38
|
+
this.log(`shutdown requested (${reason})`);
|
|
39
|
+
const stopDeadlineMs = this.options.stopDeadlineMs ?? 15_000;
|
|
40
|
+
this.deadlineTimer = this.armExitTimer(stopDeadlineMs, `graceful stop exceeded ${stopDeadlineMs}ms; forcing exit`, 1);
|
|
41
|
+
const failures = [];
|
|
42
|
+
const operations = [];
|
|
43
|
+
const start = (operation) => {
|
|
44
|
+
try {
|
|
45
|
+
operations.push(Promise.resolve(operation()));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
failures.push(error);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
try {
|
|
52
|
+
this.options.setup.beginDrain();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
failures.push(error);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const control = this.options.control();
|
|
59
|
+
if (control)
|
|
60
|
+
start(() => control.stop());
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
failures.push(error);
|
|
64
|
+
}
|
|
65
|
+
start(() => this.options.daemon.stop());
|
|
66
|
+
start(() => this.options.setup.shutdown());
|
|
67
|
+
void Promise.allSettled(operations).then((results) => {
|
|
68
|
+
for (const result of results) {
|
|
69
|
+
if (result.status === "rejected")
|
|
70
|
+
failures.push(result.reason);
|
|
71
|
+
}
|
|
72
|
+
if (failures.length > 0) {
|
|
73
|
+
this.settleFailure(new AggregateError(failures, "daemon runtime shutdown failed"));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
this.options.journal.close();
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.settleFailure(error);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Clean stop: the hung-stop deadline (exit 1) is no longer needed —
|
|
84
|
+
// this continuation is its one owner. The leaked-handle drain sweep is
|
|
85
|
+
// then armed UNCONDITIONALLY and nothing can disarm it: unref'd, it
|
|
86
|
+
// cannot force-exit a process whose loop drains naturally — it fires
|
|
87
|
+
// ONLY when something keeps the loop alive past the grace, which is
|
|
88
|
+
// exactly the leak it exists to catch. (The F2.5 finalize() hook let
|
|
89
|
+
// main()'s tail cancel it, which removed the sweep from every
|
|
90
|
+
// production shutdown — the tail always runs right after this
|
|
91
|
+
// continuation.) Exit code is read at FIRE time so a late failure
|
|
92
|
+
// still exits nonzero.
|
|
93
|
+
if (this.deadlineTimer)
|
|
94
|
+
clearTimeout(this.deadlineTimer);
|
|
95
|
+
this.deadlineTimer = null;
|
|
96
|
+
const drainGraceMs = this.options.drainGraceMs ?? 2_000;
|
|
97
|
+
this.armExitTimer(drainGraceMs, `event loop still alive ${drainGraceMs}ms after a clean stop (leaked handle); forcing exit`);
|
|
98
|
+
this.resolveCompletion();
|
|
99
|
+
});
|
|
100
|
+
return this.completion;
|
|
101
|
+
}
|
|
102
|
+
wait() {
|
|
103
|
+
return this.completion;
|
|
104
|
+
}
|
|
105
|
+
requested() {
|
|
106
|
+
return this.requestedValue;
|
|
107
|
+
}
|
|
108
|
+
settleFailure(error) {
|
|
109
|
+
if (this.options.onStopFailure) {
|
|
110
|
+
try {
|
|
111
|
+
this.options.onStopFailure(error);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
/* the observer must not mask the shutdown failure */
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
process.exitCode = 1;
|
|
119
|
+
}
|
|
120
|
+
this.log(`shutdown FAILED: ${error instanceof Error ? error.message : String(error)}`);
|
|
121
|
+
// Failure: the deadline timer stays armed to guarantee termination.
|
|
122
|
+
this.rejectCompletion(error);
|
|
123
|
+
}
|
|
124
|
+
armExitTimer(ms, reason, code) {
|
|
125
|
+
const forceExit = this.options.forceExit ?? ((exitCode) => process.exit(exitCode));
|
|
126
|
+
const t = setTimeout(() => {
|
|
127
|
+
this.log(reason);
|
|
128
|
+
forceExit(code ?? Number(process.exitCode ?? 0));
|
|
129
|
+
}, ms);
|
|
130
|
+
t.unref?.();
|
|
131
|
+
return t;
|
|
132
|
+
}
|
|
133
|
+
log(message) {
|
|
134
|
+
try {
|
|
135
|
+
this.options.log?.(message);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
/* shutdown safety must not depend on diagnostic I/O */
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=daemon-runtime-shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-runtime-shutdown.js","sourceRoot":"","sources":["../src/daemon-runtime-shutdown.ts"],"names":[],"mappings":"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"}
|
package/dist/decision.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAa/D,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAa/D,MAAM,MAAM,kBAAkB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,CAqCxE"}
|
package/dist/decision.js
CHANGED
|
@@ -18,10 +18,16 @@ const APPLY_MODES = ["artifact_only", "apply", "branch", "commit", "pr"];
|
|
|
18
18
|
export function resolveDecisionBody(args) {
|
|
19
19
|
const chosen = ACTION_FLAGS.filter((f) => flagBool(args, f.flag));
|
|
20
20
|
if (chosen.length === 0) {
|
|
21
|
-
return {
|
|
21
|
+
return {
|
|
22
|
+
ok: false,
|
|
23
|
+
message: "one action is required (--accept-risk | --override | --revert | --accept-clean-patch | --rerun)",
|
|
24
|
+
};
|
|
22
25
|
}
|
|
23
26
|
if (chosen.length > 1) {
|
|
24
|
-
return {
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
message: `only one action at a time (got ${chosen.map((c) => `--${c.flag}`).join(", ")})`,
|
|
30
|
+
};
|
|
25
31
|
}
|
|
26
32
|
const action = chosen[0].action;
|
|
27
33
|
const body = { action };
|
|
@@ -36,7 +42,10 @@ export function resolveDecisionBody(args) {
|
|
|
36
42
|
const applyMode = flagStr(args, "apply-mode");
|
|
37
43
|
if (applyMode !== undefined) {
|
|
38
44
|
if (!APPLY_MODES.includes(applyMode)) {
|
|
39
|
-
return {
|
|
45
|
+
return {
|
|
46
|
+
ok: false,
|
|
47
|
+
message: `invalid --apply-mode '${applyMode}' (expected apply|branch|commit|pr|artifact_only)`,
|
|
48
|
+
};
|
|
40
49
|
}
|
|
41
50
|
body["applyMode"] = applyMode;
|
|
42
51
|
}
|
package/dist/decision.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAE/D,mFAAmF;AACnF,MAAM,YAAY,GAAuC;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;IAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE;IACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;IACxC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,EAAE;IAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE;CACjD,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAE/D,mFAAmF;AACnF,MAAM,YAAY,GAAuC;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;IAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE;IACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;IACxC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,EAAE;IAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE;CACjD,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAKzE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EACL,iGAAiG;SACpG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,kCAAkC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC1F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;IACjC,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,CAAC;IACjD,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,yBAAyB,SAAS,mDAAmD;iBAC/F,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/live.d.ts
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import type { InteractionAnswerSet, InteractionQuestion } from "@claudexor/schema";
|
|
2
|
+
/** One CLI process-status policy for direct runs and streamed terminals. */
|
|
3
|
+
export declare function processExitCodeForRunStatus(state: unknown): number;
|
|
2
4
|
/**
|
|
3
5
|
* One concise line per run event for live terminal progress. Returns null for
|
|
4
6
|
* noise (heartbeats, raw harness deltas we do not surface in a TTY).
|
|
5
7
|
*/
|
|
6
8
|
export declare function formatRunEventLine(ev: Record<string, unknown>): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Stateful live formatter: `formatRunEventLine` plus the typed-final dedup.
|
|
11
|
+
*
|
|
12
|
+
* Codex narrates its answer mid-run (agent_message) and then repeats the SAME
|
|
13
|
+
* text as its typed final message, so a stateless printer prints the answer
|
|
14
|
+
* twice. The app's transcript reducer keys the same dedup on `final`
|
|
15
|
+
* (TranscriptModels) but drops EVERY final — it renders the answer in its own
|
|
16
|
+
* bubble. The CLI has no such bubble: the live stream IS the answer, so a final
|
|
17
|
+
* is suppressed only when it is already on screen. A final that adds new
|
|
18
|
+
* text (claude/cursor, whose result never repeats narration) still prints.
|
|
19
|
+
*
|
|
20
|
+
* The dedup keys on the RENDERED line, not the raw text: the printer's
|
|
21
|
+
* contract is "never print a byte-identical answer line twice", and the
|
|
22
|
+
* 160-char title truncation means distinct texts can render identically
|
|
23
|
+
* (sol review of 00448bd8, major). The line is also bounded, so per-lane
|
|
24
|
+
* state never holds a full message body (ibid., minor).
|
|
25
|
+
*
|
|
26
|
+
* Only the TYPED final flag dedups; a rendered match between two narration
|
|
27
|
+
* messages is the harness genuinely saying the same thing twice, and stays.
|
|
28
|
+
*
|
|
29
|
+
* Text mode only — `--json`/NDJSON stay verbatim machine surfaces.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createRunEventLineFormatter(): (ev: Record<string, unknown>) => string | null;
|
|
7
32
|
/**
|
|
8
33
|
* Prompt the questions on the controlling TTY. Returns null on a non-TTY
|
|
9
34
|
* stdin or when the deadline passes (the engine then declines benignly).
|
|
@@ -13,7 +38,11 @@ export interface ControlApiAddress {
|
|
|
13
38
|
baseUrl: string;
|
|
14
39
|
token: string;
|
|
15
40
|
}
|
|
41
|
+
export declare const CONTROL_PROTOCOL_MAJOR = 2;
|
|
16
42
|
export declare function controlApiAddress(): ControlApiAddress;
|
|
43
|
+
/** One control-plane transport boundary for CLI, MCP and ACP projections. */
|
|
44
|
+
export declare function controlApiFetch(addr: ControlApiAddress, path: string, init?: RequestInit): Promise<Response>;
|
|
45
|
+
export declare function handshakeControlApi(addr: ControlApiAddress, client?: string): Promise<void>;
|
|
17
46
|
/**
|
|
18
47
|
* `claudexor follow <run_id>`: live SSE tail of a daemon-backed run with full
|
|
19
48
|
* replay (persisted seq), bounded reconnects via Last-Event-ID, and
|
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":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOnF,4EAA4E;AAC5E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAyD7E;AAcD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAgB5F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,mBAAmB,EAAE,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwDtC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,wBAAgB,iBAAiB,IAAI,iBAAiB,CASrD;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CA6BnB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,MAAM,SAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH7E"}
|
package/dist/live.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
import { createInterface } from "node:readline/promises";
|
|
4
5
|
import { daemonDir, readToken } from "@claudexor/daemon";
|
|
@@ -6,6 +7,10 @@ import { InteractionQuestion as InteractionQuestionSchema } from "@claudexor/sch
|
|
|
6
7
|
const print = (s) => {
|
|
7
8
|
process.stdout.write(s + "\n");
|
|
8
9
|
};
|
|
10
|
+
/** One CLI process-status policy for direct runs and streamed terminals. */
|
|
11
|
+
export function processExitCodeForRunStatus(state) {
|
|
12
|
+
return state === "success" || state === "succeeded" || state === "no_op" ? 0 : 1;
|
|
13
|
+
}
|
|
9
14
|
/**
|
|
10
15
|
* One concise line per run event for live terminal progress. Returns null for
|
|
11
16
|
* noise (heartbeats, raw harness deltas we do not surface in a TTY).
|
|
@@ -20,6 +25,10 @@ export function formatRunEventLine(ev) {
|
|
|
20
25
|
case "project.git.initialized":
|
|
21
26
|
return `initialized git repository at ${String(p["repo_root"] ?? "?")} (baseline commit)`;
|
|
22
27
|
case "harness.started":
|
|
28
|
+
if (p["request_requirement"] && typeof p["request_requirement"] === "object") {
|
|
29
|
+
const requirement = p["request_requirement"];
|
|
30
|
+
return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")}, browser=${requirement["effective"] === true ? "effective" : `unavailable:${String(requirement["reason"] ?? "unknown")}`})`;
|
|
31
|
+
}
|
|
23
32
|
return `[${who}] started (web=${String(p["external_context_policy"] ?? "auto")})`;
|
|
24
33
|
case "harness.event": {
|
|
25
34
|
const sub = String(p["type"] ?? "");
|
|
@@ -68,6 +77,55 @@ export function formatRunEventLine(ev) {
|
|
|
68
77
|
function truncate(s, n) {
|
|
69
78
|
return s.length > n ? `${s.slice(0, n - 1)}…` : s;
|
|
70
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Lane key for per-attempt dedup state — the same pair the line renders,
|
|
82
|
+
* bounded so a pathological id never bloats the map (confirm review, minor).
|
|
83
|
+
*/
|
|
84
|
+
function laneOf(p) {
|
|
85
|
+
return truncate([p["attempt_id"], p["harness_id"]].filter(Boolean).join("/"), 256);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Stateful live formatter: `formatRunEventLine` plus the typed-final dedup.
|
|
89
|
+
*
|
|
90
|
+
* Codex narrates its answer mid-run (agent_message) and then repeats the SAME
|
|
91
|
+
* text as its typed final message, so a stateless printer prints the answer
|
|
92
|
+
* twice. The app's transcript reducer keys the same dedup on `final`
|
|
93
|
+
* (TranscriptModels) but drops EVERY final — it renders the answer in its own
|
|
94
|
+
* bubble. The CLI has no such bubble: the live stream IS the answer, so a final
|
|
95
|
+
* is suppressed only when it is already on screen. A final that adds new
|
|
96
|
+
* text (claude/cursor, whose result never repeats narration) still prints.
|
|
97
|
+
*
|
|
98
|
+
* The dedup keys on the RENDERED line, not the raw text: the printer's
|
|
99
|
+
* contract is "never print a byte-identical answer line twice", and the
|
|
100
|
+
* 160-char title truncation means distinct texts can render identically
|
|
101
|
+
* (sol review of 00448bd8, major). The line is also bounded, so per-lane
|
|
102
|
+
* state never holds a full message body (ibid., minor).
|
|
103
|
+
*
|
|
104
|
+
* Only the TYPED final flag dedups; a rendered match between two narration
|
|
105
|
+
* messages is the harness genuinely saying the same thing twice, and stays.
|
|
106
|
+
*
|
|
107
|
+
* Text mode only — `--json`/NDJSON stay verbatim machine surfaces.
|
|
108
|
+
*/
|
|
109
|
+
export function createRunEventLineFormatter() {
|
|
110
|
+
const lastMessageTitleByLane = new Map();
|
|
111
|
+
return (ev) => {
|
|
112
|
+
const line = formatRunEventLine(ev);
|
|
113
|
+
if (line === null || String(ev["type"] ?? "") !== "harness.event")
|
|
114
|
+
return line;
|
|
115
|
+
const p = (ev["payload"] ?? {});
|
|
116
|
+
if (String(p["type"] ?? "") !== "message" || typeof p["title"] !== "string")
|
|
117
|
+
return line;
|
|
118
|
+
// The per-lane value is ONLY the truncated rendered title — the lane key
|
|
119
|
+
// already carries the `[who]` prefix, and storing the whole line would
|
|
120
|
+
// retain an unbounded id a second time (confirm review, minor).
|
|
121
|
+
const rendered = truncate(p["title"], 160);
|
|
122
|
+
const lane = laneOf(p);
|
|
123
|
+
if (p["final"] === true && lastMessageTitleByLane.get(lane) === rendered)
|
|
124
|
+
return null;
|
|
125
|
+
lastMessageTitleByLane.set(lane, rendered);
|
|
126
|
+
return line;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
71
129
|
/**
|
|
72
130
|
* Prompt the questions on the controlling TTY. Returns null on a non-TTY
|
|
73
131
|
* stdin or when the deadline passes (the engine then declines benignly).
|
|
@@ -128,6 +186,7 @@ export async function promptQuestionsOnTty(interactionId, questions, timeoutAt)
|
|
|
128
186
|
rl.close();
|
|
129
187
|
}
|
|
130
188
|
}
|
|
189
|
+
export const CONTROL_PROTOCOL_MAJOR = 2;
|
|
131
190
|
export function controlApiAddress() {
|
|
132
191
|
const info = JSON.parse(readFileSync(join(daemonDir(), "control-api.json"), "utf8"));
|
|
133
192
|
const token = readToken();
|
|
@@ -135,6 +194,45 @@ export function controlApiAddress() {
|
|
|
135
194
|
throw new Error("daemon control API is not available (run: claudexor daemon start)");
|
|
136
195
|
return { baseUrl: `http://${info.host}:${info.port}`, token };
|
|
137
196
|
}
|
|
197
|
+
/** One control-plane transport boundary for CLI, MCP and ACP projections. */
|
|
198
|
+
export function controlApiFetch(addr, path, init = {}) {
|
|
199
|
+
const externalPath = path === "/healthz"
|
|
200
|
+
? path
|
|
201
|
+
: path.startsWith("/v2/")
|
|
202
|
+
? path
|
|
203
|
+
: `/v2${path.startsWith("/") ? path : `/${path}`}`;
|
|
204
|
+
const headers = new Headers(init.headers);
|
|
205
|
+
headers.set("Authorization", `Bearer ${addr.token}`);
|
|
206
|
+
if (externalPath !== "/healthz")
|
|
207
|
+
headers.set("X-Claudexor-Protocol-Major", String(CONTROL_PROTOCOL_MAJOR));
|
|
208
|
+
if ((init.method ?? "GET").toUpperCase() === "POST" &&
|
|
209
|
+
(externalPath === "/v2/runs" ||
|
|
210
|
+
externalPath === "/v2/uploads" ||
|
|
211
|
+
externalPath === "/v2/projects" ||
|
|
212
|
+
externalPath === "/v2/spec/sessions" ||
|
|
213
|
+
externalPath === "/v2/setup/jobs" ||
|
|
214
|
+
externalPath === "/v2/threads" ||
|
|
215
|
+
/^\/v2\/recovery\/partitions\/[^/]+\/quarantine$/.test(externalPath) ||
|
|
216
|
+
/^\/v2\/runs\/[^/]+\/(?:retry|decision|apply)$/.test(externalPath) ||
|
|
217
|
+
/^\/v2\/threads\/[^/]+\/apply$/.test(externalPath) ||
|
|
218
|
+
/^\/v2\/threads\/[^/]+\/turns(?:\/[^/]+\/retry)?$/.test(externalPath) ||
|
|
219
|
+
/^\/v2\/uploads\/[^/]+\/finalize$/.test(externalPath)) &&
|
|
220
|
+
!headers.has("Idempotency-Key")) {
|
|
221
|
+
headers.set("Idempotency-Key", randomUUID());
|
|
222
|
+
}
|
|
223
|
+
return fetch(`${addr.baseUrl}${externalPath}`, { ...init, headers });
|
|
224
|
+
}
|
|
225
|
+
export async function handshakeControlApi(addr, client = "claudexor-cli") {
|
|
226
|
+
const response = await controlApiFetch(addr, "/v2/handshake", {
|
|
227
|
+
method: "POST",
|
|
228
|
+
headers: { "content-type": "application/json" },
|
|
229
|
+
body: JSON.stringify({ protocolMajor: CONTROL_PROTOCOL_MAJOR, client }),
|
|
230
|
+
});
|
|
231
|
+
if (!response.ok) {
|
|
232
|
+
const detail = await response.text().catch(() => "");
|
|
233
|
+
throw new Error(`control API handshake failed (HTTP ${response.status})${detail ? `: ${detail}` : ""}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
138
236
|
/**
|
|
139
237
|
* `claudexor follow <run_id>`: live SSE tail of a daemon-backed run with full
|
|
140
238
|
* replay (persisted seq), bounded reconnects via Last-Event-ID, and
|
|
@@ -147,6 +245,7 @@ export async function followRun(runId, json) {
|
|
|
147
245
|
let addr;
|
|
148
246
|
try {
|
|
149
247
|
addr = controlApiAddress();
|
|
248
|
+
await handshakeControlApi(addr);
|
|
150
249
|
}
|
|
151
250
|
catch (err) {
|
|
152
251
|
process.stderr.write(`claudexor follow: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
@@ -156,6 +255,9 @@ export async function followRun(runId, json) {
|
|
|
156
255
|
let sawTerminal = false;
|
|
157
256
|
let lastSeq = 0;
|
|
158
257
|
const maxReconnects = 5;
|
|
258
|
+
// One formatter for the whole follow, reconnects included: a resumed stream
|
|
259
|
+
// replays from Last-Event-ID, and the dedup state has to span that seam.
|
|
260
|
+
const formatLine = createRunEventLineFormatter();
|
|
159
261
|
const handleFrame = async (name, data) => {
|
|
160
262
|
if (name === "end")
|
|
161
263
|
return "end";
|
|
@@ -174,15 +276,20 @@ export async function followRun(runId, json) {
|
|
|
174
276
|
print(JSON.stringify(ev));
|
|
175
277
|
}
|
|
176
278
|
else {
|
|
177
|
-
const line =
|
|
279
|
+
const line = formatLine(ev);
|
|
178
280
|
if (line)
|
|
179
281
|
print(line);
|
|
180
282
|
}
|
|
181
283
|
const type = String(ev["type"] ?? "");
|
|
182
284
|
if (type === "run.completed" || type === "run.failed" || type === "run.blocked")
|
|
183
285
|
sawTerminal = true;
|
|
184
|
-
if (type === "run.
|
|
286
|
+
if (type === "run.completed") {
|
|
287
|
+
const payload = (ev["payload"] ?? {});
|
|
288
|
+
exitCode = processExitCodeForRunStatus(payload["status"]);
|
|
289
|
+
}
|
|
290
|
+
else if (type === "run.failed" || type === "run.blocked") {
|
|
185
291
|
exitCode = 1;
|
|
292
|
+
}
|
|
186
293
|
if (type === "interaction.requested" && !json) {
|
|
187
294
|
await answerInteractionFromTty(addr, runId, ev);
|
|
188
295
|
}
|
|
@@ -196,7 +303,7 @@ export async function followRun(runId, json) {
|
|
|
196
303
|
}
|
|
197
304
|
let res;
|
|
198
305
|
try {
|
|
199
|
-
res = await
|
|
306
|
+
res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/events`, {
|
|
200
307
|
headers: {
|
|
201
308
|
Authorization: `Bearer ${addr.token}`,
|
|
202
309
|
Accept: "text/event-stream",
|
|
@@ -277,7 +384,7 @@ async function answerInteractionFromTty(addr, runId, ev) {
|
|
|
277
384
|
// LIVE question is always visible here). On a detail fetch failure, fall
|
|
278
385
|
// through — the expired-deadline guard in promptQuestionsOnTty still holds.
|
|
279
386
|
try {
|
|
280
|
-
const detailRes = await
|
|
387
|
+
const detailRes = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
|
|
281
388
|
headers: { Authorization: `Bearer ${addr.token}` },
|
|
282
389
|
});
|
|
283
390
|
if (detailRes.ok) {
|
|
@@ -296,9 +403,13 @@ async function answerInteractionFromTty(addr, runId, ev) {
|
|
|
296
403
|
if (!answers)
|
|
297
404
|
return;
|
|
298
405
|
const body = {
|
|
299
|
-
answers: answers.answers.map((a) => ({
|
|
406
|
+
answers: answers.answers.map((a) => ({
|
|
407
|
+
questionId: a.question_id,
|
|
408
|
+
selectedLabels: a.selected_labels,
|
|
409
|
+
freeText: a.free_text,
|
|
410
|
+
})),
|
|
300
411
|
};
|
|
301
|
-
const res = await
|
|
412
|
+
const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(interactionId)}/answer`, {
|
|
302
413
|
method: "POST",
|
|
303
414
|
headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
|
|
304
415
|
body: JSON.stringify(body),
|
package/dist/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,IAAI,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGrF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAQ,EAAE;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAA2B;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,gBAAgB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QACrD,KAAK,yBAAyB;YAC5B,OAAO,iCAAiC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC;QAC5F,KAAK,iBAAiB;YACpB,OAAO,IAAI,GAAG,kBAAkB,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;QACpF,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,IAAI,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAChH,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAA4B,CAAC;gBAClD,OAAO,IAAI,GAAG,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9H,CAAC;YACD,IAAI,GAAG,KAAK,uBAAuB;gBAAE,OAAO,IAAI,GAAG,2BAA2B,CAAC;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,uBAAuB;YAC1B,OAAO,IAAI,GAAG,mCAAmC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QACzF,KAAK,sBAAsB;YACzB,OAAO,IAAI,GAAG,oBAAoB,CAAC;QACrC,KAAK,qBAAqB;YACxB,OAAO,IAAI,GAAG,mDAAmD,CAAC;QACpE,KAAK,mBAAmB;YACtB,OAAO,IAAI,GAAG,gBAAgB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3H,KAAK,gBAAgB;YACnB,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1F,KAAK,gBAAgB;YACnB,OAAO,mBAAmB,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC;QACvE,KAAK,oBAAoB;YACvB,OAAO,uBAAuB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;QAClE,KAAK,mBAAmB;YACtB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,KAAK,uBAAuB;YAC1B,OAAO,uBAAuB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrG,KAAK,cAAc;YACjB,OAAO,iBAAiB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpG,KAAK,oBAAoB;YACvB,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAY,CAAC,CAAC,KAAK,CAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,KAAK,eAAe;YAClB,OAAO,kBAAkB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC;QAC9D,KAAK,YAAY;YACf,OAAO,eAAe,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACvF,KAAK,aAAa;YAChB,OAAO,gBAAgB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,sBAAsB,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACvF;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,aAAqB,EACrB,SAAgC,EAChC,SAAkB;IAElB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7E,wEAAwE;QACxE,wEAAwE;QACxE,4DAA4D;QAC5D,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,OAAO,GAAoC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/G,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,2CAA2C;oBAC7C,CAAC,CAAC,wBAAwB;gBAC5B,CAAC,CAAC,WAAW,CAAC;YAChB,MAAM,GAAG,GAAG,CAAC,MAAM;gBACjB,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;gBACxD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,CAAC,CAC7C,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,KAAK,GAAG,GAAG;iBACd,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;iBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC;oBACX,WAAW,EAAE,CAAC,CAAC,EAAE;oBACjB,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAChF,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAqC,CAAC;IACzH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC7H,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,IAAa;IAC1D,IAAI,IAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,IAAI,GAAG,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,aAAa,GAAG,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,IAAY,EAA+B,EAAE;QACpF,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,UAAU,CAAC;QAC7B,IAAI,EAA2B,CAAC;QAChC,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAW,CAAC;QAC/F,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa;YAAE,WAAW,GAAG,IAAI,CAAC;QACpG,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa;YAAE,QAAQ,GAAG,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,OAAO,IAAI,aAAa,qBAAqB,OAAO,QAAQ,CAAC,CAAC;QACnI,CAAC;QACD,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC5E,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;oBACrC,MAAM,EAAE,mBAAmB;oBAC3B,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7D;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,6DAA6D;QACzE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,IAAI,EAAU,CAAC;gBACf,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACpD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC9B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBAChB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnE,SAAS,GAAG,EAAE,CAAC;wBACf,SAAS,GAAG,SAAS,CAAC;wBACtB,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;4BACtB,IAAI,WAAW;gCAAE,OAAO,QAAQ,CAAC;4BACjC,6DAA6D;4BAC7D,2DAA2D;4BAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;4BAClF,OAAO,CAAC,CAAC;wBACX,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;yBAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;QACD,IAAI,WAAW;YAAE,OAAO,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,aAAa,4CAA4C,CAAC,CAAC;IACvH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAAuB,EAAE,KAAa,EAAE,EAA2B;IACzG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAqD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACnC,qEAAqE;IACrE,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YACjF,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE;SACnD,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAGrC,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,CAAC;YACzD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC;YACzG,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;gBAAE,OAAO;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxI,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;KAC/H,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,kBAAkB,CAAC,aAAa,CAAC,SAAS,EAAE;QACpI,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACtF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface LocalAttachment {
|
|
2
|
+
kind: "image" | "file";
|
|
3
|
+
mime: string;
|
|
4
|
+
name: string;
|
|
5
|
+
path: string;
|
|
6
|
+
sizeBytes: number;
|
|
7
|
+
device: number;
|
|
8
|
+
inode: number;
|
|
9
|
+
}
|
|
10
|
+
/** Snapshot source metadata; the caller immediately streams bytes to the daemon. */
|
|
11
|
+
export declare function resolveLocalAttachment(path: string, forceImage: boolean): LocalAttachment;
|
|
12
|
+
/** Open the exact file identity that was selected, without following a swapped symlink. */
|
|
13
|
+
export declare function openLocalAttachment(attachment: LocalAttachment): number;
|
|
14
|
+
//# sourceMappingURL=local-attachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-attachment.d.ts","sourceRoot":"","sources":["../src/local-attachment.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,eAAe,CAmBzF;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAkBvE"}
|