@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.
Files changed (221) hide show
  1. package/dist/acp-surface-runner.d.ts +17 -0
  2. package/dist/acp-surface-runner.d.ts.map +1 -0
  3. package/dist/acp-surface-runner.js +187 -0
  4. package/dist/acp-surface-runner.js.map +1 -0
  5. package/dist/args.d.ts.map +1 -1
  6. package/dist/args.js.map +1 -1
  7. package/dist/bridge-serve.d.ts +3 -0
  8. package/dist/bridge-serve.d.ts.map +1 -0
  9. package/dist/bridge-serve.js +39 -0
  10. package/dist/bridge-serve.js.map +1 -0
  11. package/dist/capabilities.d.ts.map +1 -1
  12. package/dist/capabilities.js +12 -3
  13. package/dist/capabilities.js.map +1 -1
  14. package/dist/claude-oauth-usage.d.ts +33 -0
  15. package/dist/claude-oauth-usage.d.ts.map +1 -0
  16. package/dist/claude-oauth-usage.js +190 -0
  17. package/dist/claude-oauth-usage.js.map +1 -0
  18. package/dist/claude-statusline.d.ts +25 -0
  19. package/dist/claude-statusline.d.ts.map +1 -0
  20. package/dist/claude-statusline.js +259 -0
  21. package/dist/claude-statusline.js.map +1 -0
  22. package/dist/claudexord.js +346 -543
  23. package/dist/claudexord.js.map +1 -1
  24. package/dist/cli-io.d.ts +8 -9
  25. package/dist/cli-io.d.ts.map +1 -1
  26. package/dist/cli-io.js +11 -7
  27. package/dist/cli-io.js.map +1 -1
  28. package/dist/cli.js +475 -516
  29. package/dist/cli.js.map +1 -1
  30. package/dist/codex-quota-source.d.ts +11 -0
  31. package/dist/codex-quota-source.d.ts.map +1 -0
  32. package/dist/codex-quota-source.js +181 -0
  33. package/dist/codex-quota-source.js.map +1 -0
  34. package/dist/command-flags.d.ts +18 -0
  35. package/dist/command-flags.d.ts.map +1 -0
  36. package/dist/command-flags.js +124 -0
  37. package/dist/command-flags.js.map +1 -0
  38. package/dist/command-registry.d.ts +2 -40
  39. package/dist/command-registry.d.ts.map +1 -1
  40. package/dist/command-registry.js +74 -164
  41. package/dist/command-registry.js.map +1 -1
  42. package/dist/control-services.d.ts +2490 -0
  43. package/dist/control-services.d.ts.map +1 -0
  44. package/dist/control-services.js +453 -0
  45. package/dist/control-services.js.map +1 -0
  46. package/dist/credential-commands.d.ts +9 -0
  47. package/dist/credential-commands.d.ts.map +1 -0
  48. package/dist/credential-commands.js +224 -0
  49. package/dist/credential-commands.js.map +1 -0
  50. package/dist/daemon-lifecycle.d.ts +7 -3
  51. package/dist/daemon-lifecycle.d.ts.map +1 -1
  52. package/dist/daemon-lifecycle.js +40 -12
  53. package/dist/daemon-lifecycle.js.map +1 -1
  54. package/dist/daemon-run.d.ts +2 -0
  55. package/dist/daemon-run.d.ts.map +1 -1
  56. package/dist/daemon-run.js +62 -14
  57. package/dist/daemon-run.js.map +1 -1
  58. package/dist/daemon-runtime-shutdown.d.ts +58 -0
  59. package/dist/daemon-runtime-shutdown.d.ts.map +1 -0
  60. package/dist/daemon-runtime-shutdown.js +142 -0
  61. package/dist/daemon-runtime-shutdown.js.map +1 -0
  62. package/dist/decision.d.ts.map +1 -1
  63. package/dist/decision.js +12 -3
  64. package/dist/decision.js.map +1 -1
  65. package/dist/live.d.ts +29 -0
  66. package/dist/live.d.ts.map +1 -1
  67. package/dist/live.js +117 -6
  68. package/dist/live.js.map +1 -1
  69. package/dist/local-attachment.d.ts +14 -0
  70. package/dist/local-attachment.d.ts.map +1 -0
  71. package/dist/local-attachment.js +67 -0
  72. package/dist/local-attachment.js.map +1 -0
  73. package/dist/mcp-runner.d.ts +4 -15
  74. package/dist/mcp-runner.d.ts.map +1 -1
  75. package/dist/mcp-runner.js +276 -145
  76. package/dist/mcp-runner.js.map +1 -1
  77. package/dist/native-login.d.ts +21 -0
  78. package/dist/native-login.d.ts.map +1 -0
  79. package/dist/native-login.js +110 -0
  80. package/dist/native-login.js.map +1 -0
  81. package/dist/ops-commands.d.ts +8 -6
  82. package/dist/ops-commands.d.ts.map +1 -1
  83. package/dist/ops-commands.js +250 -168
  84. package/dist/ops-commands.js.map +1 -1
  85. package/dist/orchestrate-options.d.ts.map +1 -1
  86. package/dist/orchestrate-options.js +1 -1
  87. package/dist/orchestrate-options.js.map +1 -1
  88. package/dist/orphan-reaper.d.ts +4 -5
  89. package/dist/orphan-reaper.d.ts.map +1 -1
  90. package/dist/orphan-reaper.js +29 -56
  91. package/dist/orphan-reaper.js.map +1 -1
  92. package/dist/orphan-sweeper.d.ts +1 -2
  93. package/dist/orphan-sweeper.d.ts.map +1 -1
  94. package/dist/orphan-sweeper.js +29 -48
  95. package/dist/orphan-sweeper.js.map +1 -1
  96. package/dist/plugins.d.ts.map +1 -1
  97. package/dist/plugins.js +196 -64
  98. package/dist/plugins.js.map +1 -1
  99. package/dist/primary-output.d.ts.map +1 -1
  100. package/dist/primary-output.js.map +1 -1
  101. package/dist/profile-compatibility.d.ts +6 -0
  102. package/dist/profile-compatibility.d.ts.map +1 -0
  103. package/dist/profile-compatibility.js +21 -0
  104. package/dist/profile-compatibility.js.map +1 -0
  105. package/dist/profile-registration.d.ts +15 -0
  106. package/dist/profile-registration.d.ts.map +1 -0
  107. package/dist/profile-registration.js +68 -0
  108. package/dist/profile-registration.js.map +1 -0
  109. package/dist/project-command.d.ts +3 -0
  110. package/dist/project-command.d.ts.map +1 -0
  111. package/dist/project-command.js +87 -0
  112. package/dist/project-command.js.map +1 -0
  113. package/dist/quota-command.d.ts +3 -0
  114. package/dist/quota-command.d.ts.map +1 -0
  115. package/dist/quota-command.js +59 -0
  116. package/dist/quota-command.js.map +1 -0
  117. package/dist/registry.d.ts +1 -1
  118. package/dist/registry.d.ts.map +1 -1
  119. package/dist/registry.js +16 -4
  120. package/dist/registry.js.map +1 -1
  121. package/dist/release.d.ts.map +1 -1
  122. package/dist/release.js +15 -3
  123. package/dist/release.js.map +1 -1
  124. package/dist/repl.d.ts +3 -8
  125. package/dist/repl.d.ts.map +1 -1
  126. package/dist/repl.js +23 -122
  127. package/dist/repl.js.map +1 -1
  128. package/dist/request-preflight.d.ts +13 -0
  129. package/dist/request-preflight.d.ts.map +1 -0
  130. package/dist/request-preflight.js +81 -0
  131. package/dist/request-preflight.js.map +1 -0
  132. package/dist/retention-service.d.ts +24 -0
  133. package/dist/retention-service.d.ts.map +1 -0
  134. package/dist/retention-service.js +100 -0
  135. package/dist/retention-service.js.map +1 -0
  136. package/dist/retry-command-specs.d.ts +3 -0
  137. package/dist/retry-command-specs.d.ts.map +1 -0
  138. package/dist/retry-command-specs.js +21 -0
  139. package/dist/retry-command-specs.js.map +1 -0
  140. package/dist/retry-command.d.ts +4 -0
  141. package/dist/retry-command.d.ts.map +1 -0
  142. package/dist/retry-command.js +57 -0
  143. package/dist/retry-command.js.map +1 -0
  144. package/dist/review-command.d.ts.map +1 -1
  145. package/dist/review-command.js +47 -12
  146. package/dist/review-command.js.map +1 -1
  147. package/dist/run-options.d.ts +2 -2
  148. package/dist/run-options.d.ts.map +1 -1
  149. package/dist/run-options.js +27 -5
  150. package/dist/run-options.js.map +1 -1
  151. package/dist/settings-command.d.ts.map +1 -1
  152. package/dist/settings-command.js +143 -188
  153. package/dist/settings-command.js.map +1 -1
  154. package/dist/settings-service.d.ts +50 -0
  155. package/dist/settings-service.d.ts.map +1 -1
  156. package/dist/settings-service.js +67 -1
  157. package/dist/settings-service.js.map +1 -1
  158. package/dist/setup-job-reducer.d.ts +9 -0
  159. package/dist/setup-job-reducer.d.ts.map +1 -0
  160. package/dist/setup-job-reducer.js +290 -0
  161. package/dist/setup-job-reducer.js.map +1 -0
  162. package/dist/setup-job-store.d.ts +250 -0
  163. package/dist/setup-job-store.d.ts.map +1 -0
  164. package/dist/setup-job-store.js +359 -0
  165. package/dist/setup-job-store.js.map +1 -0
  166. package/dist/setup-job-support.d.ts +27 -0
  167. package/dist/setup-job-support.d.ts.map +1 -0
  168. package/dist/setup-job-support.js +141 -0
  169. package/dist/setup-job-support.js.map +1 -0
  170. package/dist/setup-jobs.d.ts +437 -22
  171. package/dist/setup-jobs.d.ts.map +1 -1
  172. package/dist/setup-jobs.js +813 -423
  173. package/dist/setup-jobs.js.map +1 -1
  174. package/dist/setup-lifecycle-binding.d.ts +40 -0
  175. package/dist/setup-lifecycle-binding.d.ts.map +1 -0
  176. package/dist/setup-lifecycle-binding.js +159 -0
  177. package/dist/setup-lifecycle-binding.js.map +1 -0
  178. package/dist/setup-login-protocol.d.ts +13 -0
  179. package/dist/setup-login-protocol.d.ts.map +1 -0
  180. package/dist/setup-login-protocol.js +179 -0
  181. package/dist/setup-login-protocol.js.map +1 -0
  182. package/dist/setup-login-runner.d.ts +20 -0
  183. package/dist/setup-login-runner.d.ts.map +1 -0
  184. package/dist/setup-login-runner.js +225 -0
  185. package/dist/setup-login-runner.js.map +1 -0
  186. package/dist/setup-supervisor.d.ts +53 -0
  187. package/dist/setup-supervisor.d.ts.map +1 -0
  188. package/dist/setup-supervisor.js +177 -0
  189. package/dist/setup-supervisor.js.map +1 -0
  190. package/dist/spec-thread-scope.d.ts +3 -0
  191. package/dist/spec-thread-scope.d.ts.map +1 -0
  192. package/dist/spec-thread-scope.js +9 -0
  193. package/dist/spec-thread-scope.js.map +1 -0
  194. package/dist/spec.d.ts +9 -20
  195. package/dist/spec.d.ts.map +1 -1
  196. package/dist/spec.js +49 -21
  197. package/dist/spec.js.map +1 -1
  198. package/dist/thread-delivery.d.ts +18 -0
  199. package/dist/thread-delivery.d.ts.map +1 -0
  200. package/dist/thread-delivery.js +67 -0
  201. package/dist/thread-delivery.js.map +1 -0
  202. package/dist/thread-select.d.ts +9 -0
  203. package/dist/thread-select.d.ts.map +1 -0
  204. package/dist/thread-select.js +12 -0
  205. package/dist/thread-select.js.map +1 -0
  206. package/dist/trust-command.d.ts.map +1 -1
  207. package/dist/trust-command.js +69 -61
  208. package/dist/trust-command.js.map +1 -1
  209. package/dist/trust-services.d.ts +5 -6
  210. package/dist/trust-services.d.ts.map +1 -1
  211. package/dist/trust-services.js +42 -13
  212. package/dist/trust-services.js.map +1 -1
  213. package/package.json +24 -22
  214. package/dist/attachment-resolver.d.ts +0 -11
  215. package/dist/attachment-resolver.d.ts.map +0 -1
  216. package/dist/attachment-resolver.js +0 -61
  217. package/dist/attachment-resolver.js.map +0 -1
  218. package/dist/settings-display.d.ts +0 -3
  219. package/dist/settings-display.d.ts.map +0 -1
  220. package/dist/settings-display.js +0 -33
  221. package/dist/settings-display.js.map +0 -1
@@ -7,14 +7,36 @@ import { spawn } from "node:child_process";
7
7
  import { closeSync, mkdirSync, openSync, readFileSync } from "node:fs";
8
8
  import { dirname } from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
- import { DaemonClient, defaultSocketPath, logPath, readToken, rotateToken } from "@claudexor/daemon";
11
- import { harnessRuntimeEnv } from "@claudexor/core";
12
- import { MANAGED_SECRET_NAMES, SecretStore, isManagedSecretName } from "@claudexor/secrets";
10
+ import { DaemonClient, awaitDaemonTermination, defaultSocketPath, ensureDaemonRuntimeRoot, logPath, readToken, rotateToken, } from "@claudexor/daemon";
11
+ import { atRiskNodeAdvisory, harnessRuntimeEnv } from "@claudexor/core";
12
+ import { ControlGcReceipt, ControlHarnessListResponse, ControlHarnessModelsResponse, ControlHarnessSetupHarness, ControlJournalExportReceipt, ControlJournalInspection, ControlJournalQuarantineReceipt, ControlJournalQuarantineRequest, ControlJournalValidation, ControlSetupJob, } from "@claudexor/schema";
13
13
  import { flagBool, flagStr } from "./args.js";
14
- import { authSourceAvailability, checksSummary, print, printJson, printUsageError, statusGlyph } from "./cli-io.js";
15
- import { buildGateway, buildRegistry, harnessModels } from "./registry.js";
16
- import { nativeLoginCommand } from "./setup-jobs.js";
17
- import { waitForDaemonReady } from "./daemon-run.js";
14
+ import { profilesCommand, secretsCommand } from "./credential-commands.js";
15
+ import { authSourceAvailability, checksSummary, print, printJson, printUsageError, statusGlyph, } from "./cli-io.js";
16
+ import { ensureDaemon, waitForDaemonReady } from "./daemon-run.js";
17
+ import { controlApiFetch } from "./live.js";
18
+ export function dispatchOpsCommand(command, args, json) {
19
+ switch (command) {
20
+ case "auth":
21
+ return authCommand(args, json);
22
+ case "daemon":
23
+ return daemonCommand(args, json);
24
+ case "doctor":
25
+ return doctorCommand(args, json);
26
+ case "gc":
27
+ return gcCommand(args, json);
28
+ case "models":
29
+ return modelsCommand(args, json);
30
+ case "recovery":
31
+ return recoveryCommand(args, json);
32
+ case "secrets":
33
+ return secretsCommand(args, json);
34
+ case "profiles":
35
+ return profilesCommand(args, json);
36
+ default:
37
+ return undefined;
38
+ }
39
+ }
18
40
  export async function daemonCommand(args, json) {
19
41
  const sub = args._[1] ?? "status";
20
42
  if (sub === "start") {
@@ -27,18 +49,19 @@ export async function daemonCommand(args, json) {
27
49
  if (existingToken) {
28
50
  try {
29
51
  await new DaemonClient(defaultSocketPath(), existingToken).health();
30
- // Same bar as a fresh start; shorter window is fine — an ALREADY
31
- // healthy daemon answers immediately (a fresh start waits out boot).
32
52
  const existingReady = await waitForDaemonReady(5_000);
33
53
  if (existingReady) {
34
54
  if (json)
35
- printJson({ pid: null, socket: defaultSocketPath(), ready: true, alreadyRunning: true });
55
+ printJson({
56
+ pid: null,
57
+ socket: defaultSocketPath(),
58
+ ready: true,
59
+ alreadyRunning: true,
60
+ });
36
61
  else
37
62
  print(`claudexord already running; socket ${defaultSocketPath()}`);
38
63
  return 0;
39
64
  }
40
- // Socket answers but the control API never came up — fall through and
41
- // report the honest failure the same way a fresh start would.
42
65
  if (json)
43
66
  printJson({ pid: null, socket: defaultSocketPath(), ready: false, alreadyRunning: true });
44
67
  else
@@ -53,6 +76,7 @@ export async function daemonCommand(args, json) {
53
76
  // Startup stderr goes to the daemon log (append), not the void — a crash
54
77
  // before the daemon's own logging starts must leave evidence for
55
78
  // `claudexor daemon logs`.
79
+ ensureDaemonRuntimeRoot();
56
80
  mkdirSync(dirname(logPath()), { recursive: true });
57
81
  const stderrFd = openSync(logPath(), "a");
58
82
  const child = spawn(process.execPath, [daemonScript], {
@@ -77,13 +101,32 @@ export async function daemonCommand(args, json) {
77
101
  }
78
102
  return ready ? 0 : 1;
79
103
  }
104
+ if (sub === "logs") {
105
+ let tail;
106
+ try {
107
+ tail = readFileSync(logPath(), "utf8").split("\n").slice(-40).join("\n");
108
+ }
109
+ catch (err) {
110
+ const message = `no daemon log at ${logPath()} (${err instanceof Error ? err.message : String(err)}); the daemon may not have started on this machine yet`;
111
+ if (json)
112
+ printJson({ ok: false, error: message });
113
+ else
114
+ process.stderr.write(`${message}\n`);
115
+ return 1;
116
+ }
117
+ if (json)
118
+ printJson({ ok: true, log_tail: tail });
119
+ else
120
+ print(tail);
121
+ return 0;
122
+ }
80
123
  const token = readToken();
81
124
  if (!token) {
82
- // --json purity: exactly one JSON object on stdout in json mode.
125
+ const message = "daemon not initialized run: claudexor daemon start";
83
126
  if (json)
84
- printJson({ ok: false, error: "daemon not initialized — run: claudexor daemon start" });
127
+ printJson({ ok: false, error: message });
85
128
  else
86
- print("daemon not initialized — run: claudexor daemon start");
129
+ print(message);
87
130
  return 1;
88
131
  }
89
132
  const client = new DaemonClient(defaultSocketPath(), token);
@@ -98,31 +141,23 @@ export async function daemonCommand(args, json) {
98
141
  }
99
142
  if (sub === "stop") {
100
143
  await client.shutdown();
101
- if (json)
102
- printJson({ ok: true, stopping: true });
103
- else
104
- print("claudexord shutting down");
105
- return 0;
106
- }
107
- if (sub === "logs") {
108
- // A missing/unreadable log FILE is not a daemon-reachability problem —
109
- // report it as what it is instead of the catch-all "not reachable".
110
- let tail;
111
- try {
112
- tail = readFileSync(logPath(), "utf8").split("\n").slice(-40).join("\n");
113
- }
114
- catch (err) {
115
- const message = `no daemon log at ${logPath()} (${err instanceof Error ? err.message : String(err)}); the daemon may not have started on this machine yet`;
144
+ // "stop requested" is not "stopped" (W3.5): confirm the daemon's death
145
+ // before reporting success, so scripts and test disposers can trust the
146
+ // exit code instead of racing a still-live process.
147
+ const termination = await awaitDaemonTermination(defaultSocketPath());
148
+ if (termination.outcome === "still_alive") {
116
149
  if (json)
117
- printJson({ ok: false, error: message });
150
+ printJson({ ok: false, stopping: true, stopped: false, ...termination });
118
151
  else
119
- process.stderr.write(`${message}\n`);
152
+ process.stderr.write(`claudexord stop FAILED: ${termination.detail}\n`);
120
153
  return 1;
121
154
  }
122
155
  if (json)
123
- printJson({ ok: true, log_tail: tail });
156
+ printJson({ ok: true, stopping: true, stopped: true, ...termination });
124
157
  else
125
- print(tail);
158
+ print(termination.outcome === "killed"
159
+ ? `claudexord stopped (${termination.detail})`
160
+ : "claudexord stopped");
126
161
  return 0;
127
162
  }
128
163
  if (sub === "rotate-token") {
@@ -149,7 +184,11 @@ export async function daemonCommand(args, json) {
149
184
  return 0;
150
185
  }
151
186
  if (json)
152
- printJson({ ok: false, exitCode: 2, error: "usage: claudexor daemon start|status|stop|logs|rotate-token" });
187
+ printJson({
188
+ ok: false,
189
+ exitCode: 2,
190
+ error: "usage: claudexor daemon start|status|stop|logs|rotate-token",
191
+ });
153
192
  else
154
193
  print("usage: claudexor daemon start|status|stop|logs|rotate-token");
155
194
  return 2;
@@ -163,36 +202,87 @@ export async function daemonCommand(args, json) {
163
202
  return 1;
164
203
  }
165
204
  }
166
- /**
167
- * The real CONSUMER (ADP4) of the adapter models() producer: list a harness's
168
- * enumerable models. With --harness it queries that one; otherwise it tries
169
- * every non-unavailable harness and shows which can honestly enumerate.
170
- */
171
- export async function modelsCommand(args, json) {
172
- // `--all` includes fakes (they honestly report source:"none"); honoring it here
173
- // mirrors doctor/auth/harness-list instead of silently ignoring the flag (P15).
174
- const includeFakes = flagBool(args, "all");
205
+ export async function daemonGet(path) {
206
+ const { addr } = await ensureDaemon();
207
+ const response = await controlApiFetch(addr, path, {
208
+ headers: { Authorization: `Bearer ${addr.token}` },
209
+ });
210
+ if (!response.ok) {
211
+ throw new Error(`control API ${path} failed (${response.status}): ${await response.text()}`);
212
+ }
213
+ return response.json();
214
+ }
215
+ function requestedHarnesses(args) {
175
216
  const only = flagStr(args, "harness");
176
- let ids;
177
- if (only) {
178
- ids = only
217
+ return only
218
+ ? only
179
219
  .split(",")
180
- .map((s) => s.trim())
181
- .filter(Boolean);
182
- // An explicit --harness typo fails loudly (consistent with doctor/auth), not a
183
- // silent source:"none" exit 0.
184
- const known = new Set(buildRegistry({ includeFakes: true }).keys());
185
- const unknown = ids.filter((id) => !known.has(id));
186
- if (unknown.length)
187
- return printUsageError(json, `claudexor: unknown harness(es): ${unknown.join(", ")} (run \`claudexor harness list --all\`)`);
220
+ .map((id) => id.trim())
221
+ .filter(Boolean)
222
+ : undefined;
223
+ }
224
+ function harnessListPath(args, fresh = false) {
225
+ const query = new URLSearchParams();
226
+ if (fresh)
227
+ query.set("fresh", "true");
228
+ if (flagBool(args, "all"))
229
+ query.set("all", "true");
230
+ for (const id of requestedHarnesses(args) ?? [])
231
+ query.append("harness", id);
232
+ const encoded = query.toString();
233
+ return `/harnesses${encoded ? `?${encoded}` : ""}`;
234
+ }
235
+ function unknownHarnesses(requested, observed) {
236
+ if (!requested)
237
+ return [];
238
+ const known = new Set(observed);
239
+ return requested.filter((id) => !known.has(id));
240
+ }
241
+ export async function doctorCommand(args, json) {
242
+ const response = ControlHarnessListResponse.parse(await daemonGet(harnessListPath(args)));
243
+ const unknown = unknownHarnesses(requestedHarnesses(args), response.harnesses.map((status) => status.id));
244
+ if (unknown.length > 0) {
245
+ return printUsageError(json, `claudexor: unknown harness(es): ${unknown.join(", ")} (run \`claudexor harness list --all\`)`);
188
246
  }
189
- else {
190
- // Default to harnesses that doctor considers usable (not unavailable);
191
- // each harnessModels() reports source "none" when it cannot enumerate.
192
- const statuses = await buildGateway({ includeFakes }).statusAll({ cwd: process.cwd() });
193
- ids = statuses.filter((s) => s.status !== "unavailable").map((s) => s.id);
247
+ const advisory = atRiskNodeAdvisory();
248
+ if (json) {
249
+ printJson({ harnesses: response.harnesses, node_advisory: advisory });
250
+ return 0;
251
+ }
252
+ for (const status of response.harnesses) {
253
+ const version = status.manifest?.version ? ` ${status.manifest.version}` : "";
254
+ print(`${statusGlyph(status.status)} ${status.id}${version}`);
255
+ if (status.enabledIntents.length)
256
+ print(` intents: ${status.enabledIntents.join(", ")}`);
257
+ // The doctor-gated availability truth: what this harness can ACTUALLY be
258
+ // routed for right now (empty on degraded/unauth — nothing routes).
259
+ print(` routable: ${status.routableIntents.length ? status.routableIntents.join(", ") : "(none)"}`);
260
+ print(` auth sources: ${authSourceAvailability(status)}`);
261
+ print(` checks: ${checksSummary(status)}`);
262
+ if (status.reasons.length)
263
+ print(` reasons: ${status.reasons.join(", ")}`);
264
+ if (status.configuredModelCheck?.status === "rejected") {
265
+ print(` model: INVALID — ${status.configuredModelCheck.message}`);
266
+ }
267
+ }
268
+ if (advisory)
269
+ print(`advisory: ${advisory}`);
270
+ return 0;
271
+ }
272
+ /** List the daemon's live model truth for each requested/available harness. */
273
+ export async function modelsCommand(args, json) {
274
+ const statuses = ControlHarnessListResponse.parse(await daemonGet(harnessListPath(args)));
275
+ const requested = requestedHarnesses(args);
276
+ const unknown = unknownHarnesses(requested, statuses.harnesses.map((status) => status.id));
277
+ if (unknown.length > 0) {
278
+ return printUsageError(json, `claudexor: unknown harness(es): ${unknown.join(", ")} (run \`claudexor harness list --all\`)`);
194
279
  }
195
- const results = await Promise.all(ids.map((id) => harnessModels(id, process.cwd(), includeFakes)));
280
+ const ids = requested ?? statuses.harnesses.filter((s) => s.status !== "unavailable").map((s) => s.id);
281
+ const route = flagStr(args, "route");
282
+ if (route !== undefined && route !== "local_session" && route !== "api_key") {
283
+ return printUsageError(json, "claudexor: --route must be local_session or api_key");
284
+ }
285
+ const results = await Promise.all(ids.map(async (id) => ControlHarnessModelsResponse.parse(await daemonGet(`/harnesses/${encodeURIComponent(id)}/models${route ? `?route=${route}` : ""}`))));
196
286
  if (json) {
197
287
  printJson({ harnesses: results });
198
288
  return 0;
@@ -206,7 +296,8 @@ export async function modelsCommand(args, json) {
206
296
  for (const m of r.models) {
207
297
  const ctx = m.context_window ? ` (${m.context_window} ctx)` : "";
208
298
  const label = m.label && m.label !== m.id ? ` — ${m.label}` : "";
209
- print(` ${m.id}${label}${ctx}`);
299
+ const routes = m.routes ? ` [routes: ${m.routes.join(", ")}]` : "";
300
+ print(` ${m.id}${label}${ctx}${routes}`);
210
301
  }
211
302
  }
212
303
  return 0;
@@ -215,9 +306,8 @@ export async function authCommand(args, json) {
215
306
  const sub = args._[1] ?? "status";
216
307
  const harness = args._[2];
217
308
  if (sub === "status") {
218
- const gateway = buildGateway({ includeFakes: flagBool(args, "all") });
219
- // Scope discovery to the requested harness (P14) instead of probe-all-then-filter.
220
- const statuses = await gateway.statusAll({ cwd: process.cwd() }, harness ? [harness] : undefined);
309
+ const queryArgs = harness ? { ...args, flags: { ...args.flags, harness } } : args;
310
+ const statuses = ControlHarnessListResponse.parse(await daemonGet(harnessListPath(queryArgs, true))).harnesses;
221
311
  // An explicit unknown harness must FAIL LOUDLY, not silently succeed over empty.
222
312
  if (harness && !statuses.some((s) => s.id === harness)) {
223
313
  return printUsageError(json, `claudexor: unknown harness '${harness}' (run \`claudexor harness list --all\`)`);
@@ -237,122 +327,114 @@ export async function authCommand(args, json) {
237
327
  }
238
328
  if (sub === "login") {
239
329
  if (!harness) {
240
- return printUsageError(json, "usage: claudexor auth login <codex|claude|cursor|opencode>");
330
+ return printUsageError(json, "usage: claudexor auth login <codex|claude|cursor>");
241
331
  }
242
- // On a real terminal, RUN the native login flow instead of only hinting at
243
- // it: inherited stdio hands the TTY to the vendor CLI (device-code /
244
- // browser prompts work), and its exit code is the verb's exit code.
245
- // Non-TTY and --json callers keep the hint (no interactive flow to run).
246
- const native = nativeLoginCommand(harness);
247
- if (!json && process.stdin.isTTY && native) {
248
- print(`launching native login: ${native}`);
249
- return await new Promise((resolve) => {
250
- const child = spawn("sh", ["-c", native], { stdio: "inherit", env: harnessRuntimeEnv() });
251
- child.on("error", (err) => {
252
- print(`could not launch native login (${err.message}); run it yourself: ${native}`);
253
- resolve(1);
254
- });
255
- child.on("exit", (code) => resolve(code ?? 1));
256
- });
332
+ if (!isKnownAuthLoginHarness(harness)) {
333
+ return printUsageError(json, `claudexor: unknown auth-login harness '${harness}' (expected codex|claude|cursor)`);
257
334
  }
258
- const hints = {
259
- codex: "Run the native Codex login flow, or store an API key ref with: claudexor secrets set openai --from-env OPENAI_API_KEY",
260
- claude: "Run the native Claude Code login flow, or store an API key ref with: claudexor secrets set anthropic --from-env ANTHROPIC_API_KEY",
261
- cursor: "Sign in through Cursor, then let Claudexor mirror the native session.",
262
- opencode: "Run the native OpenCode auth flow, or store the provider key as a secret ref.",
263
- };
264
- const hint = hints[harness] ?? `Run the native ${harness} auth flow, then retry: claudexor auth status ${harness}`;
335
+ const { addr } = await ensureDaemon();
336
+ const response = await controlApiFetch(addr, "/setup/jobs", {
337
+ method: "POST",
338
+ headers: {
339
+ Authorization: `Bearer ${addr.token}`,
340
+ "Content-Type": "application/json",
341
+ },
342
+ body: JSON.stringify({ harness, action: "login", authRequest: "subscription" }),
343
+ });
344
+ if (!response.ok) {
345
+ const detail = await response.text();
346
+ if (json)
347
+ printJson({ ok: false, harness, status: response.status, error: detail });
348
+ else
349
+ print(`could not create durable ${harness} login job (${response.status}): ${detail}`);
350
+ return 1;
351
+ }
352
+ const job = ControlSetupJob.parse(await response.json());
353
+ const accepted = !["failed", "cancelled", "timed_out", "not_supported"].includes(job.state);
265
354
  if (json)
266
- printJson({ ok: true, harness, hint });
355
+ printJson({ ok: accepted, job });
267
356
  else
268
- print(hint);
269
- return 0;
357
+ print(accepted
358
+ ? `${harness} login is managed by claudexord as ${job.jobId}; follow the opened Terminal and setup status.`
359
+ : `${harness} login was not started: ${job.message}`);
360
+ return accepted ? 0 : 1;
270
361
  }
271
362
  return printUsageError(json, "usage: claudexor auth status|login");
272
363
  }
273
- async function stdinText() {
274
- const chunks = [];
275
- for await (const chunk of process.stdin)
276
- chunks.push(chunk);
277
- return Buffer.concat(chunks).toString("utf8").trim();
364
+ export function isKnownAuthLoginHarness(harness) {
365
+ return ControlHarnessSetupHarness.safeParse(harness).success;
278
366
  }
279
- export async function secretsCommand(args, json) {
280
- const sub = args._[1] ?? "list";
281
- // `--backend file` (or env CLAUDEXOR_SECRETS_BACKEND=file) keeps secret I/O in
282
- // the 0600 file store sandbox/CI safe (never touches the real login Keychain).
283
- const backendFlag = flagStr(args, "backend");
284
- if (backendFlag !== undefined &&
285
- backendFlag !== "auto" &&
286
- backendFlag !== "keychain" &&
287
- backendFlag !== "file") {
288
- return printUsageError(json, "--backend must be auto|keychain|file");
289
- }
290
- let store;
291
- try {
292
- store = new SecretStore(backendFlag ?? "auto");
293
- // Surface an invalid CLAUDEXOR_SECRETS_BACKEND now, honoring --json, instead of
294
- // letting the throw escape to the plain-text top-level catch.
295
- store.resolvedBackend();
367
+ /** Thin client of the daemon-owned retention service (W3.6). */
368
+ export async function gcCommand(args, json) {
369
+ const dryRun = flagBool(args, "dry-run") === true;
370
+ const { addr } = await ensureDaemon();
371
+ const response = await controlApiFetch(addr, "/maintenance/gc", {
372
+ method: "POST",
373
+ headers: { Authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
374
+ body: JSON.stringify({ dry_run: dryRun }),
375
+ });
376
+ if (!response.ok)
377
+ throw new Error(`gc failed (${response.status}): ${await response.text()}`);
378
+ const receipt = ControlGcReceipt.parse(await response.json());
379
+ if (json) {
380
+ printJson(receipt);
381
+ return 0;
296
382
  }
297
- catch (err) {
298
- const msg = `claudexor secrets: ${err instanceof Error ? err.message : String(err)}`;
299
- if (json)
300
- printJson({ error: msg });
301
- else
302
- process.stderr.write(`${msg}\n`);
303
- return 1;
383
+ const verb = receipt.dry_run ? "would free" : "freed";
384
+ const mb = (receipt.freed_bytes / (1024 * 1024)).toFixed(1);
385
+ print(`${verb} ${mb} MiB: ${receipt.deleted_runs.length} run tree(s), ${receipt.deleted_reviews.length} review tree(s) ` +
386
+ `(examined ${receipt.examined_runs}; kept active=${receipt.kept.active} recent=${receipt.kept.recent} young=${receipt.kept.young} ` +
387
+ `referenced=${receipt.kept.referenced} actionable=${receipt.kept.actionable} unknown=${receipt.kept.unknown_state})`);
388
+ for (const error of receipt.errors)
389
+ print(`warning: ${error}`);
390
+ return 0;
391
+ }
392
+ export async function recoveryCommand(args, json) {
393
+ const action = args._[1] ?? "inspect";
394
+ const partition = args._[2];
395
+ if (!partition) {
396
+ return printUsageError(json, "usage: claudexor recovery inspect|validate|export <partition> | quarantine <partition> <fingerprint> quarantine_and_start_fresh");
304
397
  }
305
- if (sub === "list") {
306
- const secrets = store.list();
307
- if (json)
308
- printJson({ backend: store.resolvedBackend(), secrets });
309
- else {
310
- if (secrets.length === 0)
311
- print(`no stored secrets (${store.resolvedBackend()})`);
312
- for (const s of secrets)
313
- print(`${s.name} [${s.backend}]`);
398
+ const { addr } = await ensureDaemon();
399
+ const base = `/recovery/partitions/${encodeURIComponent(partition)}`;
400
+ const request = async (path, init) => {
401
+ const response = await controlApiFetch(addr, path, init);
402
+ const body = await response.json().catch(() => null);
403
+ if (!response.ok) {
404
+ const detail = body && typeof body === "object" && "message" in body
405
+ ? String(body.message)
406
+ : `HTTP ${response.status}`;
407
+ throw new Error(`journal recovery request failed: ${detail}`);
314
408
  }
315
- return 0;
409
+ return body;
410
+ };
411
+ let result;
412
+ if (action === "inspect") {
413
+ result = ControlJournalInspection.parse(await request(base));
316
414
  }
317
- if (sub === "set") {
318
- const name = args._[2];
319
- if (!name) {
320
- return printUsageError(json, "usage: claudexor secrets set <name> --from-env <ENV_VAR> # or pipe value on stdin");
321
- }
322
- if (!isManagedSecretName(name)) {
323
- return printUsageError(json, `secret name must be one of: ${MANAGED_SECRET_NAMES.join(", ")}`);
324
- }
325
- const envVar = flagStr(args, "from-env");
326
- const value = envVar ? process.env[envVar] : process.stdin.isTTY ? "" : await stdinText();
327
- if (!value) {
328
- return printUsageError(json, "secret value required via --from-env or stdin; values are not accepted as positional args");
329
- }
330
- const backend = store.set(name, value);
331
- const warning = store.lastFallbackReason;
332
- if (json)
333
- printJson({ name, backend, stored: true, ...(warning ? { warning } : {}) });
334
- else {
335
- print(`stored ${name} in ${backend}`);
336
- if (warning)
337
- print(`warning: ${warning}`);
338
- }
339
- return 0;
415
+ else if (action === "validate") {
416
+ result = ControlJournalValidation.parse(await request(`${base}/validate`, { method: "POST" }));
340
417
  }
341
- if (sub === "delete" || sub === "rm") {
342
- const name = args._[2];
343
- if (!name) {
344
- return printUsageError(json, "usage: claudexor secrets delete <name>");
345
- }
346
- if (!isManagedSecretName(name)) {
347
- return printUsageError(json, `secret name must be one of: ${MANAGED_SECRET_NAMES.join(", ")}`);
348
- }
349
- store.delete(name);
350
- if (json)
351
- printJson({ name, deleted: true });
352
- else
353
- print(`deleted ${name}`);
354
- return 0;
418
+ else if (action === "export") {
419
+ result = ControlJournalExportReceipt.parse(await request(`${base}/export`, { method: "POST" }));
355
420
  }
356
- return printUsageError(json, "usage: claudexor secrets list|set|delete");
421
+ else if (action === "quarantine") {
422
+ const expectedFingerprint = args._[3];
423
+ const confirmation = args._[4];
424
+ const body = ControlJournalQuarantineRequest.parse({ expectedFingerprint, confirmation });
425
+ result = ControlJournalQuarantineReceipt.parse(await request(`${base}/quarantine`, {
426
+ method: "POST",
427
+ headers: { "content-type": "application/json" },
428
+ body: JSON.stringify(body),
429
+ }));
430
+ }
431
+ else {
432
+ return printUsageError(json, `unknown recovery action '${action}'`);
433
+ }
434
+ if (json)
435
+ printJson(result);
436
+ else
437
+ print(JSON.stringify(result, null, 2));
438
+ return 0;
357
439
  }
358
440
  //# sourceMappingURL=ops-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ops-commands.js","sourceRoot":"","sources":["../src/ops-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops-commands.js","sourceRoot":"","sources":["../src/ops-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate-options.d.ts","sourceRoot":"","sources":["../src/orchestrate-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE9G;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,wBAAwB,GAAG,SAAS,CAK7F"}
1
+ {"version":3,"file":"orchestrate-options.d.ts","sourceRoot":"","sources":["../src/orchestrate-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,IAAI,wBAAwB,EACrD,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,wBAAwB,GAAG,SAAS,CAM7F"}
@@ -1,4 +1,4 @@
1
- import { OrchestrateAutonomy } from "@claudexor/schema";
1
+ import { OrchestrateAutonomy, } from "@claudexor/schema";
2
2
  /**
3
3
  * Parse `--autonomy <suggest|auto_safe|auto_full>` into the typed
4
4
  * OrchestrateAutonomy. An invalid value FAILS LOUDLY (a typo must never silently
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate-options.js","sourceRoot":"","sources":["../src/orchestrate-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAwD,MAAM,mBAAmB,CAAC;AAE9G;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,0CAA0C,CAAC,CAAC;IAC7G,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"orchestrate-options.js","sourceRoot":"","sources":["../src/orchestrate-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,0CAA0C,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -1,9 +1,8 @@
1
+ import { type ProcessGroupService } from "@claudexor/core";
1
2
  export declare function writePidsSnapshot(path: string): void;
2
3
  /**
3
- * Kill process groups recorded by a PREVIOUS daemon life. Guards against pid
4
- * recycling by requiring the live process's command name to still match the
5
- * recorded command (typed equality on basename, no pattern matching). Returns
6
- * a human-readable action log for the daemon log.
4
+ * Kill process groups recorded by a PREVIOUS daemon life. Legacy pid/cmd-only
5
+ * entries and stale/unknown identities are skipped fail-closed.
7
6
  */
8
- export declare function reapRecordedOrphans(path: string): string[];
7
+ export declare function reapRecordedOrphans(path: string, processGroups?: ProcessGroupService): string[];
9
8
  //# sourceMappingURL=orphan-reaper.d.ts.map