@claudexor/cli 3.6.0 → 3.8.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/accounts-projection.d.ts +4 -2
- package/dist/accounts-projection.d.ts.map +1 -1
- package/dist/accounts-projection.js +49 -2
- package/dist/accounts-projection.js.map +1 -1
- package/dist/accounts-services.d.ts +7 -1
- package/dist/accounts-services.d.ts.map +1 -1
- package/dist/accounts-services.js +7 -2
- package/dist/accounts-services.js.map +1 -1
- package/dist/agy-quota-source.d.ts +2 -0
- package/dist/agy-quota-source.d.ts.map +1 -1
- package/dist/agy-quota-source.js +83 -108
- package/dist/agy-quota-source.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +6 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/claudexord-entry.d.ts +7 -2
- package/dist/claudexord-entry.d.ts.map +1 -1
- package/dist/claudexord-entry.js +33 -11
- package/dist/claudexord-entry.js.map +1 -1
- package/dist/claudexord.d.ts.map +1 -1
- package/dist/claudexord.js +9 -12
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-io.d.ts +1 -0
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +14 -0
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +12 -18
- package/dist/cli.js.map +1 -1
- package/dist/command-flags.d.ts.map +1 -1
- package/dist/command-flags.js +3 -2
- package/dist/command-flags.js.map +1 -1
- package/dist/control-services.d.ts +824 -806
- package/dist/control-services.d.ts.map +1 -1
- package/dist/control-services.js +4 -16
- package/dist/control-services.js.map +1 -1
- package/dist/credential-commands.d.ts +17 -0
- package/dist/credential-commands.d.ts.map +1 -1
- package/dist/credential-commands.js +62 -14
- package/dist/credential-commands.js.map +1 -1
- package/dist/credential-profile-mutations.d.ts +9 -0
- package/dist/credential-profile-mutations.d.ts.map +1 -1
- package/dist/credential-profile-mutations.js +63 -31
- package/dist/credential-profile-mutations.js.map +1 -1
- package/dist/credential-status-invalidation.d.ts +2 -0
- package/dist/credential-status-invalidation.d.ts.map +1 -1
- package/dist/credential-status-invalidation.js +10 -0
- package/dist/credential-status-invalidation.js.map +1 -1
- package/dist/delegation-belt-descriptor.d.ts +2 -1
- package/dist/delegation-belt-descriptor.d.ts.map +1 -1
- package/dist/delegation-belt-descriptor.js +2 -1
- package/dist/delegation-belt-descriptor.js.map +1 -1
- package/dist/harness-command-specs.d.ts.map +1 -1
- package/dist/harness-command-specs.js +4 -4
- package/dist/harness-command-specs.js.map +1 -1
- package/dist/harness-command.d.ts +5 -3
- package/dist/harness-command.d.ts.map +1 -1
- package/dist/harness-command.js +5 -3
- package/dist/harness-command.js.map +1 -1
- package/dist/harness-install-lease.d.ts +11 -0
- package/dist/harness-install-lease.d.ts.map +1 -0
- package/dist/harness-install-lease.js +98 -0
- package/dist/harness-install-lease.js.map +1 -0
- package/dist/harness-install-proof.d.ts +36 -0
- package/dist/harness-install-proof.d.ts.map +1 -0
- package/dist/harness-install-proof.js +148 -0
- package/dist/harness-install-proof.js.map +1 -0
- package/dist/harness-install-recipes.d.ts +80 -0
- package/dist/harness-install-recipes.d.ts.map +1 -0
- package/dist/harness-install-recipes.js +130 -0
- package/dist/harness-install-recipes.js.map +1 -0
- package/dist/harness-installer.d.ts +45 -46
- package/dist/harness-installer.d.ts.map +1 -1
- package/dist/harness-installer.js +248 -156
- package/dist/harness-installer.js.map +1 -1
- package/dist/mcp-run-projections.d.ts +1 -1
- package/dist/native-login.d.ts +7 -0
- package/dist/native-login.d.ts.map +1 -1
- package/dist/native-login.js +29 -13
- package/dist/native-login.js.map +1 -1
- package/dist/profile-registration.d.ts +2 -0
- package/dist/profile-registration.d.ts.map +1 -1
- package/dist/profile-registration.js +49 -6
- package/dist/profile-registration.js.map +1 -1
- package/dist/quota-services.d.ts +2 -2
- package/dist/remote-command.d.ts +0 -2
- package/dist/remote-command.d.ts.map +1 -1
- package/dist/remote-command.js +3 -74
- package/dist/remote-command.js.map +1 -1
- package/dist/request-preflight.d.ts +1 -1
- package/dist/request-preflight.d.ts.map +1 -1
- package/dist/request-preflight.js +35 -11
- package/dist/request-preflight.js.map +1 -1
- package/dist/retry-command.d.ts.map +1 -1
- package/dist/retry-command.js +4 -0
- package/dist/retry-command.js.map +1 -1
- package/dist/setup-attach-command.d.ts +30 -0
- package/dist/setup-attach-command.d.ts.map +1 -0
- package/dist/setup-attach-command.js +118 -0
- package/dist/setup-attach-command.js.map +1 -0
- package/dist/setup-job-control-services.d.ts +2064 -0
- package/dist/setup-job-control-services.d.ts.map +1 -0
- package/dist/setup-job-control-services.js +33 -0
- package/dist/setup-job-control-services.js.map +1 -0
- package/dist/setup-job-store.d.ts +2 -2
- package/dist/setup-job-support.d.ts +23 -13
- package/dist/setup-job-support.d.ts.map +1 -1
- package/dist/setup-job-support.js +55 -13
- package/dist/setup-job-support.js.map +1 -1
- package/dist/setup-jobs.d.ts +4 -4
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +50 -47
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-login-capability.d.ts +37 -0
- package/dist/setup-login-capability.d.ts.map +1 -0
- package/dist/setup-login-capability.js +96 -0
- package/dist/setup-login-capability.js.map +1 -0
- package/dist/setup-login-io.d.ts +4 -1
- package/dist/setup-login-io.d.ts.map +1 -1
- package/dist/setup-login-io.js +22 -3
- package/dist/setup-login-io.js.map +1 -1
- package/dist/setup-login-pty.d.ts +64 -22
- package/dist/setup-login-pty.d.ts.map +1 -1
- package/dist/setup-login-pty.js +289 -48
- package/dist/setup-login-pty.js.map +1 -1
- package/dist/setup-login-runner-support.d.ts +12 -0
- package/dist/setup-login-runner-support.d.ts.map +1 -0
- package/dist/setup-login-runner-support.js +65 -0
- package/dist/setup-login-runner-support.js.map +1 -0
- package/dist/setup-login-runner.d.ts +3 -0
- package/dist/setup-login-runner.d.ts.map +1 -1
- package/dist/setup-login-runner.js +133 -116
- package/dist/setup-login-runner.js.map +1 -1
- package/dist/setup-runner-outcome.d.ts +10 -0
- package/dist/setup-runner-outcome.d.ts.map +1 -0
- package/dist/setup-runner-outcome.js +49 -0
- package/dist/setup-runner-outcome.js.map +1 -0
- package/dist/thread-execution-workspace.d.ts +11 -6
- package/dist/thread-execution-workspace.d.ts.map +1 -1
- package/dist/thread-execution-workspace.js +52 -6
- package/dist/thread-execution-workspace.js.map +1 -1
- package/package.json +24 -24
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type SpawnOptions } from "node:child_process";
|
|
2
|
+
import { type ParsedArgs } from "./args.js";
|
|
3
|
+
export declare function claimSetupAttachment(directory: string): void;
|
|
4
|
+
export interface SetupAttachRunnerInvocation {
|
|
5
|
+
command: string;
|
|
6
|
+
args: string[];
|
|
7
|
+
options: SpawnOptions;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Windows must keep the login worker in the terminal that attached the job:
|
|
11
|
+
* entering `--worker` directly avoids the detached bootstrap hop that daemon-
|
|
12
|
+
* hosted jobs require. POSIX retains the existing bootstrap invocation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function setupAttachRunnerInvocation(input: {
|
|
15
|
+
platform: NodeJS.Platform;
|
|
16
|
+
nodePath: string;
|
|
17
|
+
runnerPath: string;
|
|
18
|
+
manifestPath: string;
|
|
19
|
+
cwd: string;
|
|
20
|
+
env: NodeJS.ProcessEnv;
|
|
21
|
+
}): SetupAttachRunnerInvocation;
|
|
22
|
+
/**
|
|
23
|
+
* One owner for the interactive setup attachment role. The full CLI and the
|
|
24
|
+
* packaged daemon bundle both enter here; neither re-authors daemon lookup,
|
|
25
|
+
* the one-use claim, adjacent runner resolution, nor the Windows worker shape.
|
|
26
|
+
*/
|
|
27
|
+
export declare function setupAttachCommand(argv: readonly string[], json: boolean): Promise<number>;
|
|
28
|
+
/** Full-CLI adapter over the shared raw-argv role owner. */
|
|
29
|
+
export declare function setupCommand(args: Pick<ParsedArgs, "_">, json: boolean): Promise<number>;
|
|
30
|
+
//# sourceMappingURL=setup-attach-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-attach-command.d.ts","sourceRoot":"","sources":["../src/setup-attach-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAqB5C,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAa5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,GAAG,2BAA2B,CAkB9B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDhG;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAExF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { closeSync, constants, existsSync, openSync } from "node:fs";
|
|
3
|
+
import { platform } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { daemonDir } from "@claudexor/daemon";
|
|
6
|
+
import { printUsageError } from "./cli-io.js";
|
|
7
|
+
import { connectDaemonIfRunning } from "./daemon-run.js";
|
|
8
|
+
import { controlApiFetch } from "./live.js";
|
|
9
|
+
import { resolveSetupLoginRunnerPath } from "./setup-job-support.js";
|
|
10
|
+
import { runnerBootstrapEnv } from "./setup-login-runner-support.js";
|
|
11
|
+
function waitForChild(child) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
child.once("error", reject);
|
|
14
|
+
child.once("close", (code, signal) => {
|
|
15
|
+
if (signal) {
|
|
16
|
+
process.stderr.write(`claudexor setup attach: runner exited on ${signal}\n`);
|
|
17
|
+
resolve(1);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
resolve(code ?? 1);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function claimSetupAttachment(directory) {
|
|
26
|
+
const path = join(directory, "client-pty-attached");
|
|
27
|
+
let descriptor;
|
|
28
|
+
try {
|
|
29
|
+
descriptor = openSync(path, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW, 0o600);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw new Error("setup job already has a client_pty attachment");
|
|
33
|
+
}
|
|
34
|
+
closeSync(descriptor);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Windows must keep the login worker in the terminal that attached the job:
|
|
38
|
+
* entering `--worker` directly avoids the detached bootstrap hop that daemon-
|
|
39
|
+
* hosted jobs require. POSIX retains the existing bootstrap invocation.
|
|
40
|
+
*/
|
|
41
|
+
export function setupAttachRunnerInvocation(input) {
|
|
42
|
+
if (input.platform === "win32") {
|
|
43
|
+
return {
|
|
44
|
+
command: input.nodePath,
|
|
45
|
+
args: [input.runnerPath, "--worker", input.manifestPath],
|
|
46
|
+
options: {
|
|
47
|
+
cwd: input.cwd,
|
|
48
|
+
stdio: "inherit",
|
|
49
|
+
env: runnerBootstrapEnv(input.env),
|
|
50
|
+
detached: false,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
command: input.nodePath,
|
|
56
|
+
args: [input.runnerPath, input.manifestPath],
|
|
57
|
+
options: { cwd: input.cwd, stdio: "inherit", env: input.env },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* One owner for the interactive setup attachment role. The full CLI and the
|
|
62
|
+
* packaged daemon bundle both enter here; neither re-authors daemon lookup,
|
|
63
|
+
* the one-use claim, adjacent runner resolution, nor the Windows worker shape.
|
|
64
|
+
*/
|
|
65
|
+
export async function setupAttachCommand(argv, json) {
|
|
66
|
+
const sub = argv[1];
|
|
67
|
+
const jobId = argv[2];
|
|
68
|
+
if (argv[0] !== "setup" ||
|
|
69
|
+
sub !== "attach" ||
|
|
70
|
+
typeof jobId !== "string" ||
|
|
71
|
+
!/^setup-[A-Za-z0-9-]+$/.test(jobId) ||
|
|
72
|
+
argv.length !== 3) {
|
|
73
|
+
return printUsageError(json, "usage: claudexor setup attach <jobId>");
|
|
74
|
+
}
|
|
75
|
+
if (json) {
|
|
76
|
+
return printUsageError(true, "claudexor setup attach owns an interactive PTY and cannot use --json");
|
|
77
|
+
}
|
|
78
|
+
const daemon = await connectDaemonIfRunning();
|
|
79
|
+
if (!daemon)
|
|
80
|
+
throw new Error("setup daemon is not running");
|
|
81
|
+
const response = await controlApiFetch(daemon.addr, `/setup/jobs/${encodeURIComponent(jobId)}`);
|
|
82
|
+
const body = (await response.json());
|
|
83
|
+
if (!response.ok)
|
|
84
|
+
throw new Error(`setup job lookup failed (HTTP ${response.status})`);
|
|
85
|
+
if (body.transport !== "client_pty") {
|
|
86
|
+
throw new Error("setup job is not authorized for client_pty attachment");
|
|
87
|
+
}
|
|
88
|
+
if (!["queued", "running", "waiting_for_input"].includes(body.state ?? "") ||
|
|
89
|
+
!["launching", "awaiting_user"].includes(body.phase ?? "")) {
|
|
90
|
+
throw new Error(`setup job is not attachable (${body.state ?? "unknown"})`);
|
|
91
|
+
}
|
|
92
|
+
const artifactDirectory = join(daemonDir(), "setup-artifacts", jobId);
|
|
93
|
+
const manifest = join(artifactDirectory, "runner-manifest.json");
|
|
94
|
+
if (!existsSync(manifest))
|
|
95
|
+
throw new Error("sealed setup manifest is unavailable");
|
|
96
|
+
const runner = resolveSetupLoginRunnerPath();
|
|
97
|
+
if (!existsSync(runner))
|
|
98
|
+
throw new Error("setup login runner is unavailable");
|
|
99
|
+
// A sealed login job authorizes exactly one terminal runner. O_EXCL is the
|
|
100
|
+
// cross-process fence; the marker intentionally survives a crashed client so
|
|
101
|
+
// users cancel/recreate instead of accidentally launching the vendor login
|
|
102
|
+
// twice against one daemon-owned job.
|
|
103
|
+
claimSetupAttachment(artifactDirectory);
|
|
104
|
+
const invocation = setupAttachRunnerInvocation({
|
|
105
|
+
platform: platform(),
|
|
106
|
+
nodePath: process.execPath,
|
|
107
|
+
runnerPath: runner,
|
|
108
|
+
manifestPath: manifest,
|
|
109
|
+
cwd: artifactDirectory,
|
|
110
|
+
env: process.env,
|
|
111
|
+
});
|
|
112
|
+
return waitForChild(spawn(invocation.command, invocation.args, invocation.options));
|
|
113
|
+
}
|
|
114
|
+
/** Full-CLI adapter over the shared raw-argv role owner. */
|
|
115
|
+
export function setupCommand(args, json) {
|
|
116
|
+
return setupAttachCommand(args._, json);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=setup-attach-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-attach-command.js","sourceRoot":"","sources":["../src/setup-attach-command.ts"],"names":[],"mappings":"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"}
|