@claudexor/cli 3.0.4 → 3.1.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/about-command.d.ts +32 -0
- package/dist/about-command.d.ts.map +1 -0
- package/dist/about-command.js +40 -0
- package/dist/about-command.js.map +1 -0
- package/dist/acp-auth-command.d.ts +3 -0
- package/dist/acp-auth-command.d.ts.map +1 -0
- package/dist/acp-auth-command.js +18 -0
- package/dist/acp-auth-command.js.map +1 -0
- package/dist/acp-auth.d.ts +13 -0
- package/dist/acp-auth.d.ts.map +1 -0
- package/dist/acp-auth.js +47 -0
- package/dist/acp-auth.js.map +1 -0
- package/dist/acp-surface-runner.d.ts +12 -0
- package/dist/acp-surface-runner.d.ts.map +1 -1
- package/dist/acp-surface-runner.js +113 -11
- package/dist/acp-surface-runner.js.map +1 -1
- package/dist/bridge-serve.d.ts.map +1 -1
- package/dist/bridge-serve.js +2 -0
- package/dist/bridge-serve.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +2 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/claudexord.d.ts +21 -0
- package/dist/claudexord.d.ts.map +1 -1
- package/dist/claudexord.js +105 -21
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-error.d.ts +97 -0
- package/dist/cli-error.d.ts.map +1 -0
- package/dist/cli-error.js +308 -0
- package/dist/cli-error.js.map +1 -0
- package/dist/cli-io.d.ts +9 -0
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +10 -1
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +110 -116
- package/dist/cli.js.map +1 -1
- package/dist/codex-device-login.d.ts +117 -0
- package/dist/codex-device-login.d.ts.map +1 -0
- package/dist/codex-device-login.js +227 -0
- package/dist/codex-device-login.js.map +1 -0
- package/dist/command-flags.d.ts +0 -6
- package/dist/command-flags.d.ts.map +1 -1
- package/dist/command-flags.js +12 -4
- package/dist/command-flags.js.map +1 -1
- package/dist/command-help.d.ts +46 -0
- package/dist/command-help.d.ts.map +1 -0
- package/dist/command-help.js +92 -0
- package/dist/command-help.js.map +1 -0
- package/dist/command-registry.d.ts +2 -0
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +14 -7
- package/dist/command-registry.js.map +1 -1
- package/dist/control-services.d.ts +54 -27
- package/dist/control-services.d.ts.map +1 -1
- package/dist/control-services.js +56 -30
- package/dist/control-services.js.map +1 -1
- package/dist/credential-commands.d.ts.map +1 -1
- package/dist/credential-commands.js +44 -1
- package/dist/credential-commands.js.map +1 -1
- package/dist/daemon-outcome.d.ts +24 -0
- package/dist/daemon-outcome.d.ts.map +1 -0
- package/dist/daemon-outcome.js +59 -0
- package/dist/daemon-outcome.js.map +1 -0
- package/dist/daemon-run.d.ts +23 -4
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +66 -27
- package/dist/daemon-run.js.map +1 -1
- package/dist/delegation-belt-descriptor.d.ts +31 -13
- package/dist/delegation-belt-descriptor.d.ts.map +1 -1
- package/dist/delegation-belt-descriptor.js +43 -15
- package/dist/delegation-belt-descriptor.js.map +1 -1
- package/dist/live.d.ts +13 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +56 -7
- package/dist/live.js.map +1 -1
- package/dist/mcp-runner.d.ts.map +1 -1
- package/dist/mcp-runner.js +60 -6
- package/dist/mcp-runner.js.map +1 -1
- package/dist/native-login.d.ts +10 -1
- package/dist/native-login.d.ts.map +1 -1
- package/dist/native-login.js +32 -10
- package/dist/native-login.js.map +1 -1
- package/dist/ops-commands.d.ts +5 -1
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +45 -52
- package/dist/ops-commands.js.map +1 -1
- package/dist/plan-implement-readiness.d.ts +32 -0
- package/dist/plan-implement-readiness.d.ts.map +1 -0
- package/dist/plan-implement-readiness.js +51 -0
- package/dist/plan-implement-readiness.js.map +1 -0
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +73 -20
- package/dist/plugins.js.map +1 -1
- package/dist/project-command.d.ts +15 -0
- package/dist/project-command.d.ts.map +1 -1
- package/dist/project-command.js +75 -20
- package/dist/project-command.js.map +1 -1
- package/dist/quota-command.d.ts.map +1 -1
- package/dist/quota-command.js +2 -6
- package/dist/quota-command.js.map +1 -1
- package/dist/release-command.d.ts.map +1 -1
- package/dist/release-command.js +31 -6
- package/dist/release-command.js.map +1 -1
- package/dist/release.d.ts +41 -10
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +70 -48
- package/dist/release.js.map +1 -1
- package/dist/repo-asset-authority.d.ts +89 -0
- package/dist/repo-asset-authority.d.ts.map +1 -0
- package/dist/repo-asset-authority.js +175 -0
- package/dist/repo-asset-authority.js.map +1 -0
- package/dist/retry-command.d.ts +15 -0
- package/dist/retry-command.d.ts.map +1 -1
- package/dist/retry-command.js +7 -4
- package/dist/retry-command.js.map +1 -1
- package/dist/review-command.d.ts.map +1 -1
- package/dist/review-command.js +2 -6
- package/dist/review-command.js.map +1 -1
- package/dist/reviewer-options.d.ts +11 -1
- package/dist/reviewer-options.d.ts.map +1 -1
- package/dist/reviewer-options.js +24 -9
- package/dist/reviewer-options.js.map +1 -1
- package/dist/run-options.d.ts.map +1 -1
- package/dist/run-options.js +13 -1
- package/dist/run-options.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +2 -6
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +101 -10
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +201 -12
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-job-store.d.ts +16 -5
- package/dist/setup-job-store.d.ts.map +1 -1
- package/dist/setup-job-store.js +24 -4
- package/dist/setup-job-store.js.map +1 -1
- package/dist/setup-jobs.d.ts +14 -4
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +204 -23
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-login-inline.d.ts +71 -0
- package/dist/setup-login-inline.d.ts.map +1 -0
- package/dist/setup-login-inline.js +207 -0
- package/dist/setup-login-inline.js.map +1 -0
- package/dist/setup-login-protocol.d.ts +3 -2
- package/dist/setup-login-protocol.d.ts.map +1 -1
- package/dist/setup-login-protocol.js +16 -1
- package/dist/setup-login-protocol.js.map +1 -1
- package/dist/setup-login-runner.d.ts +9 -0
- package/dist/setup-login-runner.d.ts.map +1 -1
- package/dist/setup-login-runner.js +212 -5
- package/dist/setup-login-runner.js.map +1 -1
- package/dist/thread-delivery.d.ts.map +1 -1
- package/dist/thread-delivery.js +3 -1
- package/dist/thread-delivery.js.map +1 -1
- package/dist/thread-execution-workspace.d.ts +22 -0
- package/dist/thread-execution-workspace.d.ts.map +1 -0
- package/dist/thread-execution-workspace.js +21 -0
- package/dist/thread-execution-workspace.js.map +1 -0
- package/package.json +23 -23
package/dist/setup-job-store.js
CHANGED
|
@@ -63,6 +63,7 @@ export class SetupJobStore {
|
|
|
63
63
|
runnerState: join(dir, "runner-state.json"),
|
|
64
64
|
runnerResult: join(dir, "runner-result.json"),
|
|
65
65
|
runnerPermit: join(dir, "runner-permit.json"),
|
|
66
|
+
runnerDeviceCode: join(dir, "runner-devicecode.json"),
|
|
66
67
|
command: join(dir, "login.command"),
|
|
67
68
|
};
|
|
68
69
|
}
|
|
@@ -117,11 +118,30 @@ export class SetupJobStore {
|
|
|
117
118
|
this.rememberBinding(binding);
|
|
118
119
|
return cloneJob(stored);
|
|
119
120
|
}
|
|
120
|
-
update(jobId, patch) {
|
|
121
|
+
update(jobId, patch, idempotency) {
|
|
121
122
|
const current = this.jobs.get(jobId);
|
|
122
123
|
if (!current)
|
|
123
124
|
throw Object.assign(new Error("setup job not found"), { status: 404 });
|
|
124
|
-
|
|
125
|
+
// QA-075: an additive extension binds its Idempotency-Key atomically with
|
|
126
|
+
// the state change (one durable `setup.job.saved` record carries both), so
|
|
127
|
+
// replay after restart returns the same job without re-extending.
|
|
128
|
+
const binding = idempotency
|
|
129
|
+
? this.newBinding(jobId, idempotency, "setup.job.extend")
|
|
130
|
+
: undefined;
|
|
131
|
+
return this.persist(reduceSetupJob(current, { ...current, ...patch }), binding);
|
|
132
|
+
}
|
|
133
|
+
/** QA-075: resolve a prior extension bound to this Idempotency-Key. Returns
|
|
134
|
+
* the already-extended job (no further +15) on exact replay, throws on a
|
|
135
|
+
* key reused with a different request, null when the key is new. */
|
|
136
|
+
resolveExtend(idempotency) {
|
|
137
|
+
this.assertAvailable();
|
|
138
|
+
const binding = this.newBinding("pending", idempotency, "setup.job.extend");
|
|
139
|
+
const prior = this.createByKey.get(binding.keyDigest);
|
|
140
|
+
if (!prior)
|
|
141
|
+
return null;
|
|
142
|
+
if (prior.requestDigest !== binding.requestDigest)
|
|
143
|
+
throw idempotencyConflict();
|
|
144
|
+
return this.status(prior.jobId);
|
|
125
145
|
}
|
|
126
146
|
status(jobId) {
|
|
127
147
|
this.assertAvailable();
|
|
@@ -259,7 +279,7 @@ export class SetupJobStore {
|
|
|
259
279
|
// Partition-level recovery is acknowledged only by the global recovery
|
|
260
280
|
// coordinator after every registered projection has validated the prefix.
|
|
261
281
|
}
|
|
262
|
-
newBinding(jobId, input) {
|
|
282
|
+
newBinding(jobId, input, operation = "setup.job.create") {
|
|
263
283
|
if (!input.key.trim() || input.key.length > 256) {
|
|
264
284
|
throw Object.assign(new Error("invalid Idempotency-Key"), { status: 400 });
|
|
265
285
|
}
|
|
@@ -267,7 +287,7 @@ export class SetupJobStore {
|
|
|
267
287
|
keyDigest: hashJson({
|
|
268
288
|
client: input.client,
|
|
269
289
|
partition: "global",
|
|
270
|
-
operation
|
|
290
|
+
operation,
|
|
271
291
|
key: input.key,
|
|
272
292
|
}),
|
|
273
293
|
requestDigest: hashJson(input.request),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-job-store.js","sourceRoot":"","sources":["../src/setup-job-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-job-store.js","sourceRoot":"","sources":["../src/setup-job-store.ts"],"names":[],"mappings":"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"}
|
package/dist/setup-jobs.d.ts
CHANGED
|
@@ -95,8 +95,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
95
95
|
} | undefined;
|
|
96
96
|
outcome?: {
|
|
97
97
|
reason: "completed" | "interrupted_unknown" | "interrupted" | "timed_out" | "not_supported" | "launch_failed" | "command_failed" | "auth_not_ready" | "capability_verification_failed" | "credential_route_mismatch" | "cancelled_by_user" | "cancelled_on_restart" | "termination_unconfirmed";
|
|
98
|
-
exitCode?: number | null | undefined;
|
|
99
98
|
signal?: string | null | undefined;
|
|
99
|
+
exitCode?: number | null | undefined;
|
|
100
100
|
} | undefined;
|
|
101
101
|
deadlineAt?: string | undefined;
|
|
102
102
|
authCapability?: {
|
|
@@ -229,12 +229,12 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
229
229
|
nativeCommand?: {
|
|
230
230
|
commandDigest: string;
|
|
231
231
|
finishedAt: string;
|
|
232
|
+
signal: string | null;
|
|
232
233
|
executionId: string;
|
|
233
234
|
manifestDigest: string;
|
|
234
235
|
permitIssuedAt: string | null;
|
|
235
236
|
commandStarted: boolean;
|
|
236
237
|
exitCode: number | null;
|
|
237
|
-
signal: string | null;
|
|
238
238
|
errorCode?: "permit_timeout" | "spawn_failed" | "device_auth_unsupported" | undefined;
|
|
239
239
|
} | undefined;
|
|
240
240
|
terminationReconciliation?: {
|
|
@@ -242,6 +242,11 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
242
242
|
observedAt: string;
|
|
243
243
|
} | undefined;
|
|
244
244
|
};
|
|
245
|
+
deviceCode?: {
|
|
246
|
+
flow: "chatgptDeviceCode" | "chatgpt";
|
|
247
|
+
verificationUrl: string;
|
|
248
|
+
userCode: string;
|
|
249
|
+
} | undefined;
|
|
245
250
|
};
|
|
246
251
|
events(input: unknown): {
|
|
247
252
|
message: string;
|
|
@@ -286,8 +291,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
286
291
|
} | undefined;
|
|
287
292
|
outcome?: {
|
|
288
293
|
reason: "completed" | "interrupted_unknown" | "interrupted" | "timed_out" | "not_supported" | "launch_failed" | "command_failed" | "auth_not_ready" | "capability_verification_failed" | "credential_route_mismatch" | "cancelled_by_user" | "cancelled_on_restart" | "termination_unconfirmed";
|
|
289
|
-
exitCode?: number | null | undefined;
|
|
290
294
|
signal?: string | null | undefined;
|
|
295
|
+
exitCode?: number | null | undefined;
|
|
291
296
|
} | undefined;
|
|
292
297
|
deadlineAt?: string | undefined;
|
|
293
298
|
authCapability?: {
|
|
@@ -420,12 +425,12 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
420
425
|
nativeCommand?: {
|
|
421
426
|
commandDigest: string;
|
|
422
427
|
finishedAt: string;
|
|
428
|
+
signal: string | null;
|
|
423
429
|
executionId: string;
|
|
424
430
|
manifestDigest: string;
|
|
425
431
|
permitIssuedAt: string | null;
|
|
426
432
|
commandStarted: boolean;
|
|
427
433
|
exitCode: number | null;
|
|
428
|
-
signal: string | null;
|
|
429
434
|
errorCode?: "permit_timeout" | "spawn_failed" | "device_auth_unsupported" | undefined;
|
|
430
435
|
} | undefined;
|
|
431
436
|
terminationReconciliation?: {
|
|
@@ -433,6 +438,11 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
|
|
|
433
438
|
observedAt: string;
|
|
434
439
|
} | undefined;
|
|
435
440
|
};
|
|
441
|
+
deviceCode?: {
|
|
442
|
+
flow: "chatgptDeviceCode" | "chatgpt";
|
|
443
|
+
verificationUrl: string;
|
|
444
|
+
userCode: string;
|
|
445
|
+
} | undefined;
|
|
436
446
|
}[];
|
|
437
447
|
cancel(input: unknown): Promise<ControlSetupJob>;
|
|
438
448
|
reconcile(input: unknown): ControlSetupJob;
|
package/dist/setup-jobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-jobs.d.ts","sourceRoot":"","sources":["../src/setup-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAEL,mBAAmB,EAGpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAE/B,KAAK,uBAAuB,EAE5B,KAAK,eAAe,EACpB,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"setup-jobs.d.ts","sourceRoot":"","sources":["../src/setup-jobs.ts"],"names":[],"mappings":"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"}
|
package/dist/setup-jobs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { chmodSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { chmodSync, existsSync, rmSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { isAbsolute, join } from "node:path";
|
|
5
5
|
import { AuthCapabilityVerifier, ProcessGroupService, parseProcessGroupHandle, } from "@claudexor/core";
|
|
6
6
|
import { daemonDir } from "@claudexor/daemon";
|
|
@@ -10,7 +10,7 @@ import * as NativeLogin from "./native-login.js";
|
|
|
10
10
|
import { SETUP_PROFILES, processGroupFromJob, profileDoctorProbe, resolveProfileBinding, resolveSetupLoginRunnerPath, shellQuote, stateMatchesDurableExecution, waitWithAbort, withAbortAndTimeout, } from "./setup-job-support.js";
|
|
11
11
|
import { buildGateway } from "./registry.js";
|
|
12
12
|
import { ACTIVE_SETUP_STATES, SetupJobStore, TERMINAL_SETUP_STATES } from "./setup-job-store.js";
|
|
13
|
-
import { SETUP_LOGIN_PROTOCOL_VERSION, atomicPrivateJson, captureExecutableEvidence, commandDigest, readLoginManifest, readRunnerResult, readRunnerState, sealLoginManifest, verifyExecutableEvidence, } from "./setup-login-protocol.js";
|
|
13
|
+
import { SETUP_LOGIN_PROTOCOL_VERSION, atomicPrivateJson, captureExecutableEvidence, commandDigest, readLoginManifest, readRunnerDeviceCode, readRunnerResult, readRunnerState, sealLoginManifest, verifyExecutableEvidence, } from "./setup-login-protocol.js";
|
|
14
14
|
import { SetupSupervisor } from "./setup-supervisor.js";
|
|
15
15
|
const NO_PROJECT_ROOT = noProjectRepoRoot();
|
|
16
16
|
const LOGIN_EXTENSION_MS = 15 * 60_000;
|
|
@@ -62,8 +62,54 @@ export function createSetupJobManager(opts = {}) {
|
|
|
62
62
|
function iso() {
|
|
63
63
|
return now().toISOString();
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
/** A device-code (app-server) login is identified by its authorized argv —
|
|
66
|
+
* the sealed manifest args carry `app-server` for that flow only. */
|
|
67
|
+
function isDeviceCodeJob(job) {
|
|
68
|
+
return job.authorization?.args.includes("app-server") ?? false;
|
|
69
|
+
}
|
|
70
|
+
function awaitingUserMessage(job) {
|
|
71
|
+
return isDeviceCodeJob(job)
|
|
72
|
+
? `Complete ${job.harness} sign-in: open the URL and enter the one-time code shown in Claudexor.`
|
|
73
|
+
: `Complete ${job.harness} native login in Terminal.`;
|
|
74
|
+
}
|
|
75
|
+
/** The transient device-code disclosure the runner wrote, projected at READ
|
|
76
|
+
* time onto a snapshot/event. Never journaled: only surfaced while the login
|
|
77
|
+
* is genuinely awaiting the user (the sidecar is removed on terminalization).
|
|
78
|
+
* The one-time userCode rides this projection only (INV-062 / D-17). */
|
|
79
|
+
function projectDeviceCode(job) {
|
|
80
|
+
if (!ACTIVE_SETUP_STATES.has(job.state) || job.phase !== "awaiting_user")
|
|
81
|
+
return undefined;
|
|
82
|
+
if (!isDeviceCodeJob(job) || !job.authorization)
|
|
83
|
+
return undefined;
|
|
84
|
+
let sidecar;
|
|
85
|
+
try {
|
|
86
|
+
sidecar = readRunnerDeviceCode(store.paths(job.jobId).runnerDeviceCode);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
if (!sidecar ||
|
|
92
|
+
sidecar.jobId !== job.jobId ||
|
|
93
|
+
sidecar.executionId !== job.authorization.executionId)
|
|
94
|
+
return undefined;
|
|
95
|
+
return {
|
|
96
|
+
flow: sidecar.flow,
|
|
97
|
+
verificationUrl: sidecar.verificationUrl,
|
|
98
|
+
userCode: sidecar.userCode,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/** Remove the transient device-code sidecar once a login is terminal so the
|
|
102
|
+
* one-time code stops being projected. Best-effort; the journal is authority. */
|
|
103
|
+
function removeDeviceCodeSidecar(jobId) {
|
|
104
|
+
try {
|
|
105
|
+
rmSync(store.paths(jobId).runnerDeviceCode, { force: true });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
/* best-effort; the code is invalid once terminal regardless */
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function update(jobId, patch, idempotency) {
|
|
112
|
+
return store.update(jobId, patch, idempotency);
|
|
67
113
|
}
|
|
68
114
|
function log(jobId, line) {
|
|
69
115
|
store.appendLog(jobId, line);
|
|
@@ -89,6 +135,9 @@ export function createSetupJobManager(opts = {}) {
|
|
|
89
135
|
message,
|
|
90
136
|
...(command ? { command } : {}),
|
|
91
137
|
});
|
|
138
|
+
// The transient device-code disclosure is invalid once terminal — drop the
|
|
139
|
+
// sidecar so its one-time code stops being projected (INV-062 / D-17).
|
|
140
|
+
removeDeviceCodeSidecar(jobId);
|
|
92
141
|
logAfterMutation(jobId, message);
|
|
93
142
|
return done;
|
|
94
143
|
}
|
|
@@ -393,9 +442,13 @@ export function createSetupJobManager(opts = {}) {
|
|
|
393
442
|
if (job.phase === "launching") {
|
|
394
443
|
update(jobId, {
|
|
395
444
|
phase: "awaiting_user",
|
|
396
|
-
message:
|
|
445
|
+
message: awaitingUserMessage(job),
|
|
397
446
|
});
|
|
398
447
|
}
|
|
448
|
+
// Armed for launching AND already-awaiting_user adoption (a successor
|
|
449
|
+
// daemon adopting a runner whose code sidecar has not landed yet —
|
|
450
|
+
// round-7 sol critical); the registry makes repeats no-ops.
|
|
451
|
+
armDeviceCodeDisclosureWatcher(jobId);
|
|
399
452
|
}
|
|
400
453
|
async function consumeLoginResult(jobId, result) {
|
|
401
454
|
let job = store.status(jobId);
|
|
@@ -420,8 +473,9 @@ export function createSetupJobManager(opts = {}) {
|
|
|
420
473
|
job = persistNativeCommandOutcome(jobId, result);
|
|
421
474
|
if (!result.commandStarted) {
|
|
422
475
|
if (result.errorCode === "device_auth_unsupported") {
|
|
423
|
-
finish(jobId, "not_supported", "not_supported", `${job.harness}
|
|
424
|
-
`upgrade the codex CLI, or retry
|
|
476
|
+
finish(jobId, "not_supported", "not_supported", `${job.harness} does not expose typed device-code auth over its app-server ` +
|
|
477
|
+
`(upgrade the codex CLI), or retry the legacy Terminal flow with ` +
|
|
478
|
+
"`claudexor auth login codex --browser-redirect`.");
|
|
425
479
|
return;
|
|
426
480
|
}
|
|
427
481
|
finish(jobId, "failed", "launch_failed", result.errorCode === "permit_timeout"
|
|
@@ -436,10 +490,12 @@ export function createSetupJobManager(opts = {}) {
|
|
|
436
490
|
});
|
|
437
491
|
return;
|
|
438
492
|
}
|
|
439
|
-
// R6: a failed device-auth flow ALWAYS carries the toggle
|
|
440
|
-
// vendor's rejection prose is not classified (no regex
|
|
441
|
-
// remedy is keyed deterministically on the authorized flow
|
|
442
|
-
|
|
493
|
+
// R6: a failed device-code / device-auth flow ALWAYS carries the toggle
|
|
494
|
+
// remedy — the vendor's rejection prose is not classified (no regex
|
|
495
|
+
// governance), the remedy is keyed deterministically on the authorized flow
|
|
496
|
+
// itself (the `--device-auth` Terminal flow or the app-server device-code
|
|
497
|
+
// flow, whose argv carries `app-server`).
|
|
498
|
+
const deviceAuthRemedy = job.authorization?.args.includes("--device-auth") || isDeviceCodeJob(job)
|
|
443
499
|
? " If the sign-in page rejected your one-time code, enable ChatGPT → Settings → Security → " +
|
|
444
500
|
'"Allow device code login" and retry, or use `claudexor auth login codex --browser-redirect`.'
|
|
445
501
|
: "";
|
|
@@ -520,13 +576,54 @@ export function createSetupJobManager(opts = {}) {
|
|
|
520
576
|
remaining -= step;
|
|
521
577
|
}
|
|
522
578
|
}
|
|
579
|
+
/** D-17 disclosure race: awaiting_user flips before the one-time code
|
|
580
|
+
* sidecar exists, and a sidecar write is journal-less — SSE subscribers
|
|
581
|
+
* attached at the flip would never learn the code arrived. Armed at EVERY
|
|
582
|
+
* awaiting_user flip (create AND reconcile-adopt paths, one owner): watch
|
|
583
|
+
* for the sidecar (bounded by the job deadline) and bump ONE message event;
|
|
584
|
+
* the read-time projection then overlays the code as designed. */
|
|
585
|
+
const armedDisclosureWatchers = new Set();
|
|
586
|
+
function armDeviceCodeDisclosureWatcher(jobId) {
|
|
587
|
+
const job = store.status(jobId);
|
|
588
|
+
if (!isDeviceCodeJob(job))
|
|
589
|
+
return;
|
|
590
|
+
// Idempotent: create, permit-flip, and reconcile-adopt may each arm.
|
|
591
|
+
if (armedDisclosureWatchers.has(jobId))
|
|
592
|
+
return;
|
|
593
|
+
armedDisclosureWatchers.add(jobId);
|
|
594
|
+
const disclosurePath = store.paths(jobId).runnerDeviceCode;
|
|
595
|
+
const deadline = job.deadlineAt ? Date.parse(job.deadlineAt) : now().getTime() + 60_000;
|
|
596
|
+
const watch = () => {
|
|
597
|
+
let current;
|
|
598
|
+
try {
|
|
599
|
+
current = store.status(jobId);
|
|
600
|
+
}
|
|
601
|
+
catch {
|
|
602
|
+
return; // journal closed (shutdown/restart) — the successor re-arms
|
|
603
|
+
}
|
|
604
|
+
if (!ACTIVE_SETUP_STATES.has(current.state) || current.phase === "cancelling")
|
|
605
|
+
return;
|
|
606
|
+
if (existsSync(disclosurePath)) {
|
|
607
|
+
if (current.phase === "awaiting_user") {
|
|
608
|
+
update(jobId, {
|
|
609
|
+
message: `One-time code ready — enter it at the ${current.harness} verification page (shown in Claudexor).`,
|
|
610
|
+
});
|
|
611
|
+
}
|
|
612
|
+
return;
|
|
613
|
+
}
|
|
614
|
+
if (now().getTime() < deadline)
|
|
615
|
+
setTimeout(watch, 300).unref();
|
|
616
|
+
};
|
|
617
|
+
setTimeout(watch, 300).unref();
|
|
618
|
+
}
|
|
523
619
|
function markAwaitingUser(jobId) {
|
|
524
620
|
const current = store.status(jobId);
|
|
525
621
|
if (current.phase === "launching") {
|
|
526
622
|
update(jobId, {
|
|
527
623
|
phase: "awaiting_user",
|
|
528
|
-
message:
|
|
624
|
+
message: awaitingUserMessage(current),
|
|
529
625
|
});
|
|
626
|
+
armDeviceCodeDisclosureWatcher(jobId);
|
|
530
627
|
}
|
|
531
628
|
}
|
|
532
629
|
async function monitorLogin(jobId) {
|
|
@@ -658,7 +755,11 @@ export function createSetupJobManager(opts = {}) {
|
|
|
658
755
|
}
|
|
659
756
|
}
|
|
660
757
|
function startObservableLogin(job, spec, profileConfigDir) {
|
|
661
|
-
|
|
758
|
+
const deviceCode = spec.loginMode === "device_code";
|
|
759
|
+
// The device-code flow is driven by the daemon-hosted app-server runner and
|
|
760
|
+
// needs no Terminal, so it is not macOS-gated. The legacy Terminal handoff
|
|
761
|
+
// stays macOS-only.
|
|
762
|
+
if (!deviceCode && platform !== "darwin") {
|
|
662
763
|
return finish(job.jobId, "failed", "launch_failed", `Terminal-handoff login is macOS-only. Run it yourself, then recheck Harness Doctor: ${spec.displayCommand}`, {}, spec.displayCommand);
|
|
663
764
|
}
|
|
664
765
|
try {
|
|
@@ -678,6 +779,16 @@ export function createSetupJobManager(opts = {}) {
|
|
|
678
779
|
// Present ONLY on profile jobs: absent keeps pre-upgrade manifests'
|
|
679
780
|
// sealed digests valid (the field is optional, never defaulted).
|
|
680
781
|
...(profileConfigDir ? { profileConfigDir } : {}),
|
|
782
|
+
// D-17 device-code (app-server) login: the runner hosts the app-server
|
|
783
|
+
// and writes the transient disclosure sidecar. Optional/undefaulted so
|
|
784
|
+
// Terminal manifests keep their sealed digest.
|
|
785
|
+
...(deviceCode
|
|
786
|
+
? {
|
|
787
|
+
loginMode: "device_code",
|
|
788
|
+
appServerFlow: spec.appServerFlow,
|
|
789
|
+
deviceCodePath: paths.runnerDeviceCode,
|
|
790
|
+
}
|
|
791
|
+
: {}),
|
|
681
792
|
statePath: paths.runnerState,
|
|
682
793
|
resultPath: paths.runnerResult,
|
|
683
794
|
permitPath: paths.runnerPermit,
|
|
@@ -686,6 +797,47 @@ export function createSetupJobManager(opts = {}) {
|
|
|
686
797
|
commandDigest: authorizedCommandDigest,
|
|
687
798
|
});
|
|
688
799
|
atomicPrivateJson(paths.manifest, manifest);
|
|
800
|
+
if (deviceCode) {
|
|
801
|
+
// D-17 primary flow: launch the app-server runner DETACHED (no Terminal,
|
|
802
|
+
// no login.command script). The runner survives daemon restart exactly
|
|
803
|
+
// like the Terminal runner (same detached process group + sidecars);
|
|
804
|
+
// reconcile/cancel/timeout/extend semantics are unchanged.
|
|
805
|
+
const waiting = update(job.jobId, {
|
|
806
|
+
state: "waiting_for_input",
|
|
807
|
+
phase: "launching",
|
|
808
|
+
deadlineAt: new Date(now().getTime() + loginTimeoutMs).toISOString(),
|
|
809
|
+
startedAt: iso(),
|
|
810
|
+
command: spec.displayCommand,
|
|
811
|
+
authorization: {
|
|
812
|
+
executionId,
|
|
813
|
+
executable,
|
|
814
|
+
args: [...spec.args],
|
|
815
|
+
commandDigest: authorizedCommandDigest,
|
|
816
|
+
manifestDigest: manifest.manifestDigest,
|
|
817
|
+
},
|
|
818
|
+
message: `Starting ${job.harness} device-code sign-in over the app-server (no Terminal).`,
|
|
819
|
+
});
|
|
820
|
+
log(job.jobId, `device-code runner: ${nodePath} ${runnerPath} ${paths.manifest}`);
|
|
821
|
+
const runner = spawnProcess(nodePath, [runnerPath, paths.manifest], {
|
|
822
|
+
detached: true,
|
|
823
|
+
stdio: "ignore",
|
|
824
|
+
});
|
|
825
|
+
const failLaunch = (detail) => {
|
|
826
|
+
if (!["idle", "healthy"].includes(supervisor.health().state))
|
|
827
|
+
return;
|
|
828
|
+
const current = store.status(job.jobId);
|
|
829
|
+
if (current.phase !== "launching")
|
|
830
|
+
return;
|
|
831
|
+
finish(job.jobId, "failed", "launch_failed", `Could not start the ${job.harness} device-code runner: ${detail}.`, {}, spec.displayCommand);
|
|
832
|
+
};
|
|
833
|
+
runner.once("error", (err) => failLaunch(err.message));
|
|
834
|
+
runner.once("exit", (code, signal) => {
|
|
835
|
+
if (code !== 0 && code !== null)
|
|
836
|
+
failLaunch(signal ? `signal ${signal}` : `exit code ${code}`);
|
|
837
|
+
});
|
|
838
|
+
runner.unref();
|
|
839
|
+
return waiting;
|
|
840
|
+
}
|
|
689
841
|
// External-risk disclosure (v3.0.3, Bible): a browser-based OpenAI
|
|
690
842
|
// sign-in completed in a browser holding ANOTHER account's session can
|
|
691
843
|
// revoke sibling sessions (incl. the ChatGPT desktop app) server-side.
|
|
@@ -799,14 +951,21 @@ export function createSetupJobManager(opts = {}) {
|
|
|
799
951
|
// --browser-redirect request must never be silently answered with the
|
|
800
952
|
// active device-auth job.
|
|
801
953
|
if ((active.profileId ?? null) === (profileBinding?.profileId ?? null)) {
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
954
|
+
// The meaningful flow distinction for codex is the legacy Terminal
|
|
955
|
+
// localhost-redirect ("login" with no app-server / --device-auth argv)
|
|
956
|
+
// vs the app-server device-code / browser-callback flows. A mismatch
|
|
957
|
+
// refuses loudly rather than answering with the wrong-flow active job.
|
|
958
|
+
const activeBrowserRedirect = harness === "codex" && active.authorization
|
|
959
|
+
? !active.authorization.args.includes("app-server") &&
|
|
960
|
+
!active.authorization.args.includes("--device-auth")
|
|
961
|
+
: null;
|
|
962
|
+
const requestedBrowserRedirect = harness === "codex" ? request.loginFlow === "browser_redirect" : null;
|
|
963
|
+
if (activeBrowserRedirect !== null &&
|
|
964
|
+
requestedBrowserRedirect !== null &&
|
|
965
|
+
activeBrowserRedirect !== requestedBrowserRedirect) {
|
|
807
966
|
throw Object.assign(new Error(`another ${harness} login job is active (${active.jobId}) using the ` +
|
|
808
|
-
`${
|
|
809
|
-
`it before starting a ${
|
|
967
|
+
`${activeBrowserRedirect ? "browser-redirect" : "device-code"} flow; finish or cancel ` +
|
|
968
|
+
`it before starting a ${requestedBrowserRedirect ? "browser-redirect" : "device-code"} login`), { status: 409 });
|
|
810
969
|
}
|
|
811
970
|
return binding ? store.bindCreate(active.jobId, binding) : active;
|
|
812
971
|
}
|
|
@@ -860,13 +1019,20 @@ export function createSetupJobManager(opts = {}) {
|
|
|
860
1019
|
},
|
|
861
1020
|
snapshot(input) {
|
|
862
1021
|
const p = (input ?? {});
|
|
863
|
-
|
|
1022
|
+
const snap = store.snapshot(typeof p.jobId === "string" ? p.jobId : "");
|
|
1023
|
+
// D-17: overlay the transient device-code disclosure at READ time. It is
|
|
1024
|
+
// never a field of the journaled job — only projected here (and on SSE).
|
|
1025
|
+
const deviceCode = projectDeviceCode(snap.job);
|
|
1026
|
+
return deviceCode ? { ...snap, deviceCode } : snap;
|
|
864
1027
|
},
|
|
865
1028
|
events(input) {
|
|
866
1029
|
const p = (input ?? {});
|
|
867
1030
|
const jobId = typeof p.jobId === "string" ? p.jobId : "";
|
|
868
1031
|
const afterCursor = typeof p.afterCursor === "string" ? p.afterCursor : null;
|
|
869
|
-
return store.events(jobId, afterCursor)
|
|
1032
|
+
return store.events(jobId, afterCursor).map((event) => {
|
|
1033
|
+
const deviceCode = projectDeviceCode(event.job);
|
|
1034
|
+
return deviceCode ? { ...event, deviceCode } : event;
|
|
1035
|
+
});
|
|
870
1036
|
},
|
|
871
1037
|
async cancel(input) {
|
|
872
1038
|
const p = (input ?? {});
|
|
@@ -906,6 +1072,21 @@ export function createSetupJobManager(opts = {}) {
|
|
|
906
1072
|
supervisor.assertCreateAllowed();
|
|
907
1073
|
const p = (input ?? {});
|
|
908
1074
|
const jobId = typeof p.jobId === "string" ? p.jobId : "";
|
|
1075
|
+
// QA-075: bind the extension to its Idempotency-Key. Exact replay of the
|
|
1076
|
+
// same key returns the same (already-extended) job instead of adding
|
|
1077
|
+
// another 15 minutes; a new key authorizes a distinct extension.
|
|
1078
|
+
const idempotency = typeof p.idempotencyKey === "string" && p.idempotencyKey
|
|
1079
|
+
? {
|
|
1080
|
+
key: p.idempotencyKey,
|
|
1081
|
+
client: "control-api",
|
|
1082
|
+
request: { operation: "extend", jobId },
|
|
1083
|
+
}
|
|
1084
|
+
: undefined;
|
|
1085
|
+
if (idempotency) {
|
|
1086
|
+
const prior = store.resolveExtend(idempotency);
|
|
1087
|
+
if (prior)
|
|
1088
|
+
return prior;
|
|
1089
|
+
}
|
|
909
1090
|
const job = store.status(jobId);
|
|
910
1091
|
if (!ACTIVE_SETUP_STATES.has(job.state) ||
|
|
911
1092
|
!["launching", "awaiting_user"].includes(job.phase ?? "") ||
|
|
@@ -915,7 +1096,7 @@ export function createSetupJobManager(opts = {}) {
|
|
|
915
1096
|
return update(jobId, {
|
|
916
1097
|
deadlineAt: new Date(Date.parse(job.deadlineAt) + LOGIN_EXTENSION_MS).toISOString(),
|
|
917
1098
|
message: `${job.harness} login deadline extended by 15 minutes.`,
|
|
918
|
-
});
|
|
1099
|
+
}, idempotency);
|
|
919
1100
|
},
|
|
920
1101
|
_store: store,
|
|
921
1102
|
_supervisorHealth: () => supervisor.health(),
|