@claudexor/cli 1.0.1 → 2.1.2

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 (213) 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 +2483 -0
  43. package/dist/control-services.d.ts.map +1 -0
  44. package/dist/control-services.js +437 -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 +273 -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 +111 -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-registration.d.ts +15 -0
  102. package/dist/profile-registration.d.ts.map +1 -0
  103. package/dist/profile-registration.js +68 -0
  104. package/dist/profile-registration.js.map +1 -0
  105. package/dist/project-command.d.ts +3 -0
  106. package/dist/project-command.d.ts.map +1 -0
  107. package/dist/project-command.js +87 -0
  108. package/dist/project-command.js.map +1 -0
  109. package/dist/quota-command.d.ts +3 -0
  110. package/dist/quota-command.d.ts.map +1 -0
  111. package/dist/quota-command.js +59 -0
  112. package/dist/quota-command.js.map +1 -0
  113. package/dist/registry.d.ts +1 -1
  114. package/dist/registry.d.ts.map +1 -1
  115. package/dist/registry.js +16 -4
  116. package/dist/registry.js.map +1 -1
  117. package/dist/release.d.ts.map +1 -1
  118. package/dist/release.js +15 -3
  119. package/dist/release.js.map +1 -1
  120. package/dist/repl.d.ts +3 -8
  121. package/dist/repl.d.ts.map +1 -1
  122. package/dist/repl.js +23 -122
  123. package/dist/repl.js.map +1 -1
  124. package/dist/request-preflight.d.ts +13 -0
  125. package/dist/request-preflight.d.ts.map +1 -0
  126. package/dist/request-preflight.js +81 -0
  127. package/dist/request-preflight.js.map +1 -0
  128. package/dist/retention-service.d.ts +24 -0
  129. package/dist/retention-service.d.ts.map +1 -0
  130. package/dist/retention-service.js +100 -0
  131. package/dist/retention-service.js.map +1 -0
  132. package/dist/retry-command-specs.d.ts +3 -0
  133. package/dist/retry-command-specs.d.ts.map +1 -0
  134. package/dist/retry-command-specs.js +21 -0
  135. package/dist/retry-command-specs.js.map +1 -0
  136. package/dist/retry-command.d.ts +4 -0
  137. package/dist/retry-command.d.ts.map +1 -0
  138. package/dist/retry-command.js +57 -0
  139. package/dist/retry-command.js.map +1 -0
  140. package/dist/review-command.d.ts.map +1 -1
  141. package/dist/review-command.js +47 -12
  142. package/dist/review-command.js.map +1 -1
  143. package/dist/run-options.d.ts +2 -2
  144. package/dist/run-options.d.ts.map +1 -1
  145. package/dist/run-options.js +27 -5
  146. package/dist/run-options.js.map +1 -1
  147. package/dist/settings-command.d.ts.map +1 -1
  148. package/dist/settings-command.js +143 -188
  149. package/dist/settings-command.js.map +1 -1
  150. package/dist/settings-service.d.ts +50 -0
  151. package/dist/settings-service.d.ts.map +1 -1
  152. package/dist/settings-service.js +67 -1
  153. package/dist/settings-service.js.map +1 -1
  154. package/dist/setup-job-reducer.d.ts +9 -0
  155. package/dist/setup-job-reducer.d.ts.map +1 -0
  156. package/dist/setup-job-reducer.js +290 -0
  157. package/dist/setup-job-reducer.js.map +1 -0
  158. package/dist/setup-job-store.d.ts +250 -0
  159. package/dist/setup-job-store.d.ts.map +1 -0
  160. package/dist/setup-job-store.js +359 -0
  161. package/dist/setup-job-store.js.map +1 -0
  162. package/dist/setup-job-support.d.ts +27 -0
  163. package/dist/setup-job-support.d.ts.map +1 -0
  164. package/dist/setup-job-support.js +141 -0
  165. package/dist/setup-job-support.js.map +1 -0
  166. package/dist/setup-jobs.d.ts +437 -22
  167. package/dist/setup-jobs.d.ts.map +1 -1
  168. package/dist/setup-jobs.js +813 -423
  169. package/dist/setup-jobs.js.map +1 -1
  170. package/dist/setup-lifecycle-binding.d.ts +40 -0
  171. package/dist/setup-lifecycle-binding.d.ts.map +1 -0
  172. package/dist/setup-lifecycle-binding.js +159 -0
  173. package/dist/setup-lifecycle-binding.js.map +1 -0
  174. package/dist/setup-login-protocol.d.ts +13 -0
  175. package/dist/setup-login-protocol.d.ts.map +1 -0
  176. package/dist/setup-login-protocol.js +179 -0
  177. package/dist/setup-login-protocol.js.map +1 -0
  178. package/dist/setup-login-runner.d.ts +20 -0
  179. package/dist/setup-login-runner.d.ts.map +1 -0
  180. package/dist/setup-login-runner.js +225 -0
  181. package/dist/setup-login-runner.js.map +1 -0
  182. package/dist/setup-supervisor.d.ts +53 -0
  183. package/dist/setup-supervisor.d.ts.map +1 -0
  184. package/dist/setup-supervisor.js +177 -0
  185. package/dist/setup-supervisor.js.map +1 -0
  186. package/dist/spec.d.ts +9 -20
  187. package/dist/spec.d.ts.map +1 -1
  188. package/dist/spec.js +49 -21
  189. package/dist/spec.js.map +1 -1
  190. package/dist/thread-delivery.d.ts +18 -0
  191. package/dist/thread-delivery.d.ts.map +1 -0
  192. package/dist/thread-delivery.js +67 -0
  193. package/dist/thread-delivery.js.map +1 -0
  194. package/dist/thread-select.d.ts +9 -0
  195. package/dist/thread-select.d.ts.map +1 -0
  196. package/dist/thread-select.js +12 -0
  197. package/dist/thread-select.js.map +1 -0
  198. package/dist/trust-command.d.ts.map +1 -1
  199. package/dist/trust-command.js +69 -61
  200. package/dist/trust-command.js.map +1 -1
  201. package/dist/trust-services.d.ts +5 -6
  202. package/dist/trust-services.d.ts.map +1 -1
  203. package/dist/trust-services.js +42 -13
  204. package/dist/trust-services.js.map +1 -1
  205. package/package.json +24 -22
  206. package/dist/attachment-resolver.d.ts +0 -11
  207. package/dist/attachment-resolver.d.ts.map +0 -1
  208. package/dist/attachment-resolver.js +0 -61
  209. package/dist/attachment-resolver.js.map +0 -1
  210. package/dist/settings-display.d.ts +0 -3
  211. package/dist/settings-display.d.ts.map +0 -1
  212. package/dist/settings-display.js +0 -33
  213. package/dist/settings-display.js.map +0 -1
@@ -1,132 +1,78 @@
1
- import { Orchestrator } from "@claudexor/orchestrator";
2
- import { AccessProfile, EffortHint, ExternalContextPolicy } from "@claudexor/schema";
3
- import { loadConfig } from "@claudexor/config";
4
- import { buildGateway, buildRegistry } from "./registry.js";
5
- import { buildAgentCapabilityCatalog } from "./capabilities.js";
6
- import { connectDaemonIfRunning, daemonOutcomeSummary, ensureDaemon, enqueueAndAwait, fetchApplyEligibility } from "./daemon-run.js";
1
+ import { ModeKind } from "@claudexor/schema";
2
+ import { connectDaemonIfRunning, daemonOutcomeSummary, ensureDaemon, enqueueAndAwait, fetchApplyEligibility, } from "./daemon-run.js";
7
3
  import { primaryOutputForCli } from "./primary-output.js";
4
+ import { controlApiFetch } from "./live.js";
5
+ import { acpSessionQuery } from "./acp-surface-runner.js";
8
6
  /**
9
- * The IN-PROCESS runner for read-only surface calls (ask/plan/audit and a
10
- * suggest-autonomy orchestrate nothing to apply or unblock, per the CLI
11
- * doctrine in cli.ts). Also answers `__status` from the doctor-backed gateway.
7
+ * Shared MCP/ACP runner. All product modes cross the daemon's /v2 boundary;
8
+ * interactive questions bridge through pendingInteractions and typed answers.
12
9
  */
13
- export function orchestratorRunner() {
14
- const registry = buildRegistry();
15
- const orch = new Orchestrator({ registry });
10
+ export function mcpSurfaceRunner() {
16
11
  return async (p, hooks) => {
17
- if (p?.mode === "__status") {
18
- // Doctor-backed truth (probe-cheap): fakes and unavailable harnesses are
19
- // never presented as available tools to an MCP host. Enriched view:
20
- // disabled intents, doctor reasons/checks, and the configured model
21
- // (same facts GET /harnesses serves).
22
- const statuses = await buildGateway({ includeFakes: false }).statusAll({
23
- cwd: process.cwd(),
24
- });
25
- const cfg = loadConfig(process.cwd());
26
- // ADD-ONLY contract: {harnesses:[{id,status,intents}],available} is the
27
- // pre-existing shape deployed MCP hosts parse; the enrichment fields
28
- // (disabledIntents/reasons/checks/configuredModel) may grow but the
29
- // original keys must not be renamed or removed.
30
- return {
31
- harnesses: statuses.map((s) => ({
32
- id: s.id,
33
- status: s.status,
34
- intents: s.enabledIntents,
35
- disabledIntents: s.disabledIntents,
36
- reasons: s.reasons,
37
- checks: s.checks.map((c) => ({ id: c.id, status: c.status })),
38
- configuredModel: cfg.global.harnesses[s.id]?.default_model ?? null,
39
- })),
40
- available: statuses.filter((s) => s.status === "ok").map((s) => s.id),
41
- };
12
+ if (p?.mode === "__status" || p?.mode === "__capabilities") {
13
+ return catalogQuery(p.mode);
42
14
  }
43
- if (p?.mode === "__capabilities") {
44
- // The derived AgentCapabilityCatalog — same composer as the CLI verb
45
- // and the daemon's GET /agent-capabilities.
46
- return buildAgentCapabilityCatalog();
15
+ if (p?.mode === "__runs_list" ||
16
+ p?.mode === "__run_inspect" ||
17
+ p?.mode === "__run_status" ||
18
+ p?.mode === "__run_result" ||
19
+ p?.mode === "__run_cancel" ||
20
+ p?.mode === "__run_interactions" ||
21
+ p?.mode === "__run_answer" ||
22
+ p?.mode === "__apply_check") {
23
+ return recoveryQuery(p.mode, typeof p?.runId === "string" ? p.runId : "", p);
47
24
  }
48
- if (p?.mode === "__runs_list" || p?.mode === "__run_inspect" || p?.mode === "__apply_check") {
49
- return recoveryQuery(p.mode, typeof p?.runId === "string" ? p.runId : "");
25
+ if (p?.mode === "__journal_recovery")
26
+ return journalRecoveryQuery(p);
27
+ if (typeof p?.mode === "string" && p.mode.startsWith("__acp_session_")) {
28
+ return acpSessionQuery(p, hooks, {
29
+ cancel: makeCancelBridge,
30
+ interactions: makeInteractionBridge,
31
+ });
50
32
  }
51
- const reviewerPanel = Array.isArray(p?.reviewerPanel) ? p.reviewerPanel : undefined;
52
- const reviewerModels = p?.reviewerModels && typeof p.reviewerModels === "object" ? p.reviewerModels : undefined;
53
- const reviewerEfforts = p?.reviewerEfforts && typeof p.reviewerEfforts === "object" ? p.reviewerEfforts : undefined;
54
- const runner = reviewerPanel || reviewerModels || reviewerEfforts
55
- ? new Orchestrator({
56
- registry,
57
- reviewerPanel,
58
- reviewerModels,
59
- reviewerEfforts,
60
- })
61
- : orch;
62
- return runner.run({
63
- repoRoot: typeof p?.repoPath === "string" && p.repoPath.trim() ? p.repoPath : process.cwd(),
64
- prompt: String(p?.prompt ?? ""),
65
- mode: p?.mode ?? "agent",
66
- harnesses: p?.harness ? [String(p.harness)] : undefined,
67
- primaryHarness: p?.primaryHarness ? String(p.primaryHarness) : undefined,
68
- web: p?.web ? ExternalContextPolicy.parse(String(p.web)) : undefined,
69
- externalContextPolicy: p?.externalContextPolicy
70
- ? ExternalContextPolicy.parse(String(p.externalContextPolicy))
71
- : undefined,
72
- model: p?.model ? String(p.model) : undefined,
73
- effort: p?.effort ? EffortHint.parse(String(p.effort)) : undefined,
74
- n: typeof p?.n === "number" ? p.n : p?.race === true ? 2 : undefined,
75
- untilClean: p?.untilClean === true,
76
- swarm: p?.swarm === true,
77
- create: p?.create === true,
78
- tests: Array.isArray(p?.tests) ? p.tests.map(String) : undefined,
79
- maxUsd: typeof p?.maxUsd === "number" ? p.maxUsd : undefined,
80
- access: p?.access ? AccessProfile.parse(String(p.access)) : undefined,
81
- protectedPathApprovals: Array.isArray(p?.protectedPathApprovals)
82
- ? p.protectedPathApprovals
83
- : undefined,
84
- onEvent: hooks?.onEvent,
85
- onInteraction: hooks?.onInteraction,
86
- signal: hooks?.signal,
87
- });
88
- };
89
- }
90
- /**
91
- * The MCP surface runner: MUTATING verbs (mode=agent — agent/best-of/create)
92
- * are DAEMON-TRACKED exactly like the CLI (`GET /runs` sees them, `claudexor
93
- * decision` can unblock them, cancel works), read-only verbs stay in-process
94
- * — the same doctrine split as cli.ts. Interactive questions on daemon runs
95
- * bridge through pendingInteractions polling + the typed answer endpoint,
96
- * driven by the caller's onInteraction hook (the MCP server maps that hook to
97
- * host elicitation).
98
- */
99
- export function mcpSurfaceRunner() {
100
- const inProcess = orchestratorRunner();
101
- return async (p, hooks) => {
102
- if (p?.mode !== "agent")
103
- return inProcess(p, hooks);
33
+ const mode = ModeKind.parse(p?.mode ?? "agent");
104
34
  const { client, addr } = await ensureDaemon();
105
35
  const repoRoot = typeof p?.repoPath === "string" && p.repoPath.trim() ? p.repoPath : process.cwd();
106
36
  const body = {
107
37
  prompt: String(p?.prompt ?? ""),
108
- mode: "agent",
38
+ mode,
109
39
  scope: { kind: "project", root: repoRoot },
110
40
  execution: { isolation: "envelope" },
111
41
  ...(p?.harness ? { harnesses: [String(p.harness)] } : {}),
112
42
  ...(p?.primaryHarness ? { primaryHarness: String(p.primaryHarness) } : {}),
113
- ...(p?.race === true ? { n: typeof p?.n === "number" ? p.n : 2 } : typeof p?.n === "number" ? { n: p.n } : {}),
43
+ ...(p?.race === true
44
+ ? { n: typeof p?.n === "number" ? p.n : 2 }
45
+ : typeof p?.n === "number"
46
+ ? { n: p.n }
47
+ : {}),
114
48
  ...(p?.create === true ? { create: true } : {}),
115
- ...(Array.isArray(p?.tests) ? { tests: p.tests.map(String) } : {}),
116
- ...(typeof p?.maxUsd === "number" ? { maxUsd: p.maxUsd } : {}),
49
+ ...(Array.isArray(p?.tests) ? { tests: p.tests } : {}),
50
+ ...(p?.paidBudget ? { paidBudget: p.paidBudget } : {}),
117
51
  ...(p?.access ? { access: String(p.access) } : {}),
118
52
  // `externalContextPolicy` is the control-api-parity alias of `web`; the
119
53
  // validator already enforced equality when both are present. Honor the
120
54
  // alias alone too — dropping it would silently run the daemon default.
121
- ...(p?.web ? { web: String(p.web) } : p?.externalContextPolicy ? { web: String(p.externalContextPolicy) } : {}),
55
+ ...(p?.web
56
+ ? { web: String(p.web) }
57
+ : p?.externalContextPolicy
58
+ ? { web: String(p.externalContextPolicy) }
59
+ : {}),
122
60
  ...(p?.model ? { model: String(p.model) } : {}),
123
61
  ...(p?.effort ? { effort: String(p.effort) } : {}),
124
62
  ...(Array.isArray(p?.reviewerPanel) ? { reviewerPanel: p.reviewerPanel } : {}),
125
- ...(p?.reviewerModels && typeof p.reviewerModels === "object" ? { reviewerModels: p.reviewerModels } : {}),
126
- ...(p?.reviewerEfforts && typeof p.reviewerEfforts === "object" ? { reviewerEfforts: p.reviewerEfforts } : {}),
127
- ...(Array.isArray(p?.protectedPathApprovals) ? { protectedPathApprovals: p.protectedPathApprovals } : {}),
63
+ ...(p?.reviewerModels && typeof p.reviewerModels === "object"
64
+ ? { reviewerModels: p.reviewerModels }
65
+ : {}),
66
+ ...(p?.reviewerEfforts && typeof p.reviewerEfforts === "object"
67
+ ? { reviewerEfforts: p.reviewerEfforts }
68
+ : {}),
69
+ ...(Array.isArray(p?.protectedPathApprovals)
70
+ ? { protectedPathApprovals: p.protectedPathApprovals }
71
+ : {}),
128
72
  };
129
- const interactionBridge = hooks?.onInteraction ? makeInteractionBridge(addr, hooks.onInteraction) : undefined;
73
+ const interactionBridge = hooks?.onInteraction
74
+ ? makeInteractionBridge(addr, hooks.onInteraction)
75
+ : undefined;
130
76
  // Host cancellation (MCP notifications/cancelled -> ctx signal) becomes
131
77
  // the same TYPED daemon cancel the CLI's Ctrl-C path posts; the wait loop
132
78
  // then resolves with the honest cancelled terminal.
@@ -138,40 +84,67 @@ export function mcpSurfaceRunner() {
138
84
  }
139
85
  : undefined;
140
86
  const out = await enqueueAndAwait(client, addr, body, {
141
- waitForTerminal: true,
87
+ waitForTerminal: p?.deferred !== true,
142
88
  ...(onPollTick ? { onPollTick } : {}),
143
89
  });
144
90
  // The MCP result: the run's primary output as the summary (the daemon
145
91
  // outcome reason for non-success terminals), plus the artifact handle.
146
- const primary = out.runDir ? primaryOutputForCli(out.runDir, "agent") : null;
92
+ const primary = out.runDir ? primaryOutputForCli(out.runDir, mode) : null;
147
93
  const reason = daemonOutcomeSummary(out);
148
94
  const summary = primary && primary.kind !== "patch"
149
95
  ? primary.text.trim()
150
- : (reason ?? (primary?.kind === "patch" ? "patch produced (see artifacts)" : `run ${out.status}`));
96
+ : (reason ??
97
+ (primary?.kind === "patch" ? "patch produced (see artifacts)" : `run ${out.status}`));
151
98
  // The derived apply verdict rides the result (single producer: the run
152
99
  // detail endpoint). Soft-fail: a detail hiccup never eats the run result.
153
- const applyEligibility = await fetchApplyEligibility(addr, out.runId);
100
+ // A deferred MCP call intentionally returns while the run is still live.
101
+ // Apply eligibility is a terminal projection, so querying it here would
102
+ // delay the durable handle on a result that cannot be actionable yet.
103
+ const applyEligibility = p?.deferred === true ? null : await fetchApplyEligibility(addr, out.runId);
154
104
  return { runId: out.runId, runDir: out.runDir, status: out.status, summary, applyEligibility };
155
105
  };
156
106
  }
107
+ async function catalogQuery(mode) {
108
+ const { addr } = await ensureDaemon();
109
+ const path = mode === "__status" ? "/harnesses" : "/agent-capabilities";
110
+ const response = await controlApiFetch(addr, path);
111
+ const body = (await response.json().catch(() => ({})));
112
+ if (!response.ok)
113
+ throw new Error(`control API ${path} failed (HTTP ${response.status})`);
114
+ if (mode === "__capabilities")
115
+ return body;
116
+ const harnesses = Array.isArray(body["harnesses"])
117
+ ? body["harnesses"]
118
+ : [];
119
+ return {
120
+ ...body,
121
+ available: harnesses.filter((item) => item["status"] === "ok").map((item) => item["id"]),
122
+ };
123
+ }
157
124
  /**
158
125
  * Recovery queries — thin read-only projections over the daemon control API
159
126
  * (auto-starting it like every daemon-tracked path). A host that lost a run
160
127
  * handle finds it again without shelling out to the CLI.
161
128
  */
162
- async function recoveryQuery(mode, runId) {
129
+ async function recoveryQuery(mode, runId, input = {}) {
163
130
  // Read-only recovery must not BOOT a daemon: with no daemon there are no
164
131
  // daemon-tracked runs to recover — say so instead of spawning one.
165
132
  const conn = await connectDaemonIfRunning();
166
133
  if (!conn) {
167
- return { summary: "the Claudexor daemon is not running — there are no live daemon-tracked runs to recover (start one with `claudexor daemon start` or run a mutating tool first)" };
134
+ return {
135
+ summary: "the Claudexor daemon is not running — there are no live daemon-tracked runs to recover (start one with `claudexor daemon start` or run a mutating tool first)",
136
+ };
168
137
  }
169
138
  const { addr } = conn;
170
139
  const get = async (path) => {
171
- const res = await fetch(`${addr.baseUrl}${path}`, { headers: { authorization: `Bearer ${addr.token}` } });
140
+ const res = await controlApiFetch(addr, path, {
141
+ headers: { authorization: `Bearer ${addr.token}` },
142
+ });
172
143
  const body = (await res.json().catch(() => ({})));
173
144
  if (!res.ok)
174
- throw new Error(typeof body["error"] === "string" ? body["error"] : `HTTP ${res.status} for ${path}`);
145
+ throw new Error(typeof body["message"] === "string"
146
+ ? body["message"]
147
+ : `HTTP ${res.status} for ${path}`);
175
148
  return body;
176
149
  };
177
150
  if (mode === "__runs_list") {
@@ -189,36 +162,165 @@ async function recoveryQuery(mode, runId) {
189
162
  }
190
163
  if (!runId)
191
164
  throw new Error("runId is required");
192
- if (mode === "__run_inspect") {
165
+ if (mode === "__run_inspect" || mode === "__run_status" || mode === "__run_result") {
193
166
  const detail = await get(`/runs/${encodeURIComponent(runId)}`);
194
167
  const summary = (detail["summary"] ?? {});
195
168
  const decision = (detail["decision"] ?? null);
169
+ const status = summary["status"] ?? summary["state"] ?? null;
170
+ if (mode === "__run_result") {
171
+ const primaryOutput = detail["primaryOutput"] && typeof detail["primaryOutput"] === "object"
172
+ ? detail["primaryOutput"]
173
+ : null;
174
+ const primaryText = typeof primaryOutput?.["text"] === "string" ? primaryOutput["text"].trim() : "";
175
+ const primaryKind = typeof primaryOutput?.["kind"] === "string" ? primaryOutput["kind"] : null;
176
+ const terminalSummary = primaryText && primaryKind !== "patch"
177
+ ? primaryText
178
+ : typeof detail["finalSummary"] === "string" && detail["finalSummary"]
179
+ ? detail["finalSummary"]
180
+ : primaryKind === "patch"
181
+ ? "patch produced (see artifact handles)"
182
+ : `run ${runId}: ${String(status ?? "unknown")}`;
183
+ return {
184
+ summary: terminalSummary,
185
+ runId,
186
+ runDir: typeof summary["runDir"] === "string" ? summary["runDir"] : null,
187
+ status,
188
+ primaryOutput,
189
+ artifacts: Array.isArray(detail["artifacts"]) ? detail["artifacts"] : [],
190
+ result: summary["result"] && typeof summary["result"] === "object" ? summary["result"] : null,
191
+ applyEligibility: detail["applyEligibility"] ?? null,
192
+ };
193
+ }
196
194
  return {
197
- summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"] ? detail["finalSummary"] : `run ${runId}: ${String(summary["status"] ?? "unknown")}`,
195
+ summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"]
196
+ ? detail["finalSummary"]
197
+ : `run ${runId}: ${String(status ?? "unknown")}`,
198
198
  runId,
199
- status: summary["status"] ?? null,
199
+ status,
200
200
  decisionStatus: decision ? (decision["status"] ?? null) : null,
201
201
  applyEligibility: detail["applyEligibility"] ?? null,
202
- pendingInteractions: Array.isArray(detail["pendingInteractions"]) ? detail["pendingInteractions"].length : 0,
202
+ pendingInteractions: Array.isArray(detail["pendingInteractions"])
203
+ ? detail["pendingInteractions"].length
204
+ : 0,
205
+ };
206
+ }
207
+ if (mode === "__run_cancel") {
208
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/control`, {
209
+ method: "POST",
210
+ headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
211
+ body: JSON.stringify({
212
+ control: { kind: "cancel", reason: "MCP host requested durable run cancellation" },
213
+ }),
214
+ });
215
+ const body = (await res.json().catch(() => ({})));
216
+ if (!res.ok) {
217
+ throw new Error(typeof body["message"] === "string"
218
+ ? body["message"]
219
+ : `run cancel failed (HTTP ${res.status})`);
220
+ }
221
+ return { summary: `cancellation acknowledged for run ${runId}`, runId, acknowledged: true };
222
+ }
223
+ if (mode === "__run_interactions") {
224
+ const detail = await get(`/runs/${encodeURIComponent(runId)}`);
225
+ const interactions = Array.isArray(detail["pendingInteractions"])
226
+ ? detail["pendingInteractions"]
227
+ : [];
228
+ return {
229
+ summary: `${interactions.length} pending interaction(s) for run ${runId}`,
230
+ runId,
231
+ interactions,
232
+ };
233
+ }
234
+ if (mode === "__run_answer") {
235
+ const interactionId = String(input["interactionId"] ?? "");
236
+ if (!interactionId)
237
+ throw new Error("interactionId is required");
238
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(interactionId)}/answer`, {
239
+ method: "POST",
240
+ headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
241
+ body: JSON.stringify({ answers: input["answers"] }),
242
+ });
243
+ const body = (await res.json().catch(() => ({})));
244
+ if (!res.ok) {
245
+ throw new Error(typeof body["message"] === "string"
246
+ ? body["message"]
247
+ : `interaction answer failed (HTTP ${res.status})`);
248
+ }
249
+ return {
250
+ summary: `answer acknowledged for interaction ${interactionId}`,
251
+ runId,
252
+ interactionId,
203
253
  };
204
254
  }
205
255
  // __apply_check: the server-side dry gate + patch check (no mutation).
206
- const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/apply/check`, {
256
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/apply/check`, {
207
257
  method: "POST",
208
258
  headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
209
259
  body: JSON.stringify({}),
210
260
  });
211
261
  const body = (await res.json().catch(() => ({})));
212
262
  if (!res.ok) {
213
- return { summary: `apply check refused: ${typeof body["error"] === "string" ? body["error"] : `HTTP ${res.status}`}`, runId, eligible: false };
263
+ return {
264
+ summary: `apply check refused: ${typeof body["message"] === "string" ? body["message"] : `HTTP ${res.status}`}`,
265
+ runId,
266
+ eligible: false,
267
+ };
214
268
  }
215
269
  // HTTP 200 carries the ApplyResult; `ok:false` means `git apply --check`
216
270
  // itself failed — an honest conflict verdict, never "applies cleanly".
217
271
  if (body["ok"] !== true) {
218
- const stderr = typeof body["stderr"] === "string" && body["stderr"].trim() ? `: ${body["stderr"].trim()}` : "";
219
- return { summary: `apply check failed: the patch does NOT apply cleanly${stderr}`, runId, eligible: false, check: body };
272
+ const stderr = typeof body["stderr"] === "string" && body["stderr"].trim()
273
+ ? `: ${body["stderr"].trim()}`
274
+ : "";
275
+ return {
276
+ summary: `apply check failed: the patch does NOT apply cleanly${stderr}`,
277
+ runId,
278
+ eligible: false,
279
+ check: body,
280
+ };
281
+ }
282
+ return {
283
+ summary: "apply check passed: the patch applies cleanly to the original project",
284
+ runId,
285
+ eligible: true,
286
+ check: body,
287
+ };
288
+ }
289
+ async function journalRecoveryQuery(input) {
290
+ const conn = await connectDaemonIfRunning();
291
+ if (!conn)
292
+ throw new Error("the Claudexor daemon is not running");
293
+ const action = String(input["action"] ?? "inspect");
294
+ const partition = String(input["partition"] ?? "");
295
+ if (!partition)
296
+ throw new Error("partition is required");
297
+ const base = `/recovery/partitions/${encodeURIComponent(partition)}`;
298
+ const suffix = action === "inspect"
299
+ ? ""
300
+ : action === "validate" || action === "export" || action === "quarantine"
301
+ ? `/${action}`
302
+ : null;
303
+ if (suffix === null)
304
+ throw new Error(`unknown journal recovery action '${action}'`);
305
+ const body = action === "quarantine"
306
+ ? {
307
+ expectedFingerprint: String(input["expectedFingerprint"] ?? ""),
308
+ confirmation: String(input["confirmation"] ?? ""),
309
+ }
310
+ : undefined;
311
+ const response = await controlApiFetch(conn.addr, `${base}${suffix}`, {
312
+ method: action === "inspect" ? "GET" : "POST",
313
+ ...(body
314
+ ? { headers: { "content-type": "application/json" }, body: JSON.stringify(body) }
315
+ : {}),
316
+ });
317
+ const result = (await response.json().catch(() => ({})));
318
+ if (!response.ok) {
319
+ throw new Error(typeof result["message"] === "string"
320
+ ? result["message"]
321
+ : `journal recovery failed (HTTP ${response.status})`);
220
322
  }
221
- return { summary: "apply check passed: the patch applies cleanly to the original project", runId, eligible: true, check: body };
323
+ return result;
222
324
  }
223
325
  /**
224
326
  * Cancel bridge: once the run is BOUND (we know its id), an aborted host
@@ -227,17 +329,27 @@ async function recoveryQuery(mode, runId) {
227
329
  */
228
330
  export function makeCancelBridge(addr, signal) {
229
331
  let posted = false;
230
- return ({ runId }) => {
231
- if (posted || !signal.aborted || !runId)
332
+ let inFlight = false;
333
+ return async ({ runId }) => {
334
+ if (posted || inFlight || !signal.aborted || !runId)
232
335
  return;
233
- posted = true;
234
- void fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/control`, {
235
- method: "POST",
236
- headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
237
- body: JSON.stringify({ control: { kind: "cancel", reason: "mcp host cancelled the tool call" } }),
238
- }).catch(() => {
239
- posted = false; // transient failure: retry on the next tick
240
- });
336
+ inFlight = true;
337
+ try {
338
+ const response = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/control`, {
339
+ method: "POST",
340
+ headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
341
+ body: JSON.stringify({
342
+ control: { kind: "cancel", reason: "mcp host cancelled the tool call" },
343
+ }),
344
+ });
345
+ posted = response.ok;
346
+ }
347
+ catch {
348
+ posted = false;
349
+ }
350
+ finally {
351
+ inFlight = false;
352
+ }
241
353
  };
242
354
  }
243
355
  /**
@@ -248,7 +360,8 @@ export function makeCancelBridge(addr, signal) {
248
360
  * never fakes delivery.
249
361
  */
250
362
  export function makeInteractionBridge(addr, onInteraction) {
251
- const seen = new Set();
363
+ const delivered = new Set();
364
+ const answerCache = new Map();
252
365
  let lastCheck = 0;
253
366
  let handling = false;
254
367
  return async ({ runId }) => {
@@ -257,7 +370,7 @@ export function makeInteractionBridge(addr, onInteraction) {
257
370
  lastCheck = Date.now();
258
371
  let pending = [];
259
372
  try {
260
- const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}`, {
373
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
261
374
  headers: { Authorization: `Bearer ${addr.token}` },
262
375
  signal: AbortSignal.timeout(2_000),
263
376
  });
@@ -271,20 +384,28 @@ export function makeInteractionBridge(addr, onInteraction) {
271
384
  }
272
385
  for (const pi of pending) {
273
386
  const id = typeof pi.interactionId === "string" ? pi.interactionId : "";
274
- if (!id || seen.has(id))
387
+ if (!id || delivered.has(id))
275
388
  continue;
276
- seen.add(id);
277
389
  handling = true;
278
390
  try {
279
- const result = await onInteraction({
280
- request: { interaction_id: id, questions: Array.isArray(pi.questions) ? pi.questions : [] },
281
- timeoutAt: pi.timeoutAt ?? undefined,
282
- });
391
+ const result = answerCache.has(id)
392
+ ? answerCache.get(id)
393
+ : await onInteraction({
394
+ request: {
395
+ interaction_id: id,
396
+ questions: Array.isArray(pi.questions) ? pi.questions : [],
397
+ },
398
+ timeoutAt: pi.timeoutAt ?? undefined,
399
+ });
400
+ answerCache.set(id, result);
283
401
  const answers = result && Array.isArray(result.answers) ? result.answers : null;
284
402
  if (answers) {
285
- await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
403
+ const response = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
286
404
  method: "POST",
287
- headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
405
+ headers: {
406
+ Authorization: `Bearer ${addr.token}`,
407
+ "Content-Type": "application/json",
408
+ },
288
409
  body: JSON.stringify({
289
410
  answers: answers.map((a) => ({
290
411
  questionId: a.question_id,
@@ -292,9 +413,16 @@ export function makeInteractionBridge(addr, onInteraction) {
292
413
  ...(a.free_text ? { freeText: a.free_text } : {}),
293
414
  })),
294
415
  }),
295
- }).catch(() => {
296
- /* stale/failed answers surface as engine timeout-decline; never crash the wait loop */
297
- });
416
+ }).catch(() => null);
417
+ if (response?.ok) {
418
+ delivered.add(id);
419
+ answerCache.delete(id);
420
+ }
421
+ }
422
+ else {
423
+ // A deliberate decline has no answer mutation to acknowledge.
424
+ delivered.add(id);
425
+ answerCache.delete(id);
298
426
  }
299
427
  }
300
428
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-runner.js","sourceRoot":"","sources":["../src/mcp-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-runner.js","sourceRoot":"","sources":["../src/mcp-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface NativeLoginSpec {
2
+ binary: string;
3
+ args: string[];
4
+ displayCommand: string;
5
+ }
6
+ /**
7
+ * Structured native-login command shared by CLI and setup surfaces. The
8
+ * resolver hook uses the same normalized harness PATH as discovery and makes
9
+ * the spawned executable absolute whenever it is installed.
10
+ */
11
+ export declare function nativeLoginSpec(harness: string, resolver?: (binary: string) => string | null): NativeLoginSpec | null;
12
+ export declare function nativeLoginDisplayCommand(harness: string): string | null;
13
+ /**
14
+ * Terminal opens a setup script in the GUI app's login environment rather than
15
+ * the daemon's. Restore only non-secret paths that select the same native store
16
+ * post-login verification will probe; provider credentials stay excluded.
17
+ */
18
+ export declare function nativeLoginTerminalExports(harness: string, source?: NodeJS.ProcessEnv): string;
19
+ /** Native login must never inherit a provider key or endpoint override. */
20
+ export declare function nativeLoginEnv(harness: string, source?: NodeJS.ProcessEnv, configDirOverride?: string): NodeJS.ProcessEnv;
21
+ //# sourceMappingURL=native-login.d.ts.map