@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
@@ -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,168 @@ 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 presentedPrimaryText = primaryText && primaryOutput?.["truncated"] === true
176
+ ? `${primaryText}\n\n[Inline preview bounded; full artifact: ${String(primaryOutput["path"] ?? "unknown")}]`
177
+ : primaryText;
178
+ const primaryKind = typeof primaryOutput?.["kind"] === "string" ? primaryOutput["kind"] : null;
179
+ const terminalSummary = presentedPrimaryText && primaryKind !== "patch"
180
+ ? presentedPrimaryText
181
+ : typeof detail["finalSummary"] === "string" && detail["finalSummary"]
182
+ ? detail["finalSummary"]
183
+ : primaryKind === "patch"
184
+ ? "patch produced (see artifact handles)"
185
+ : `run ${runId}: ${String(status ?? "unknown")}`;
186
+ return {
187
+ summary: terminalSummary,
188
+ runId,
189
+ runDir: typeof summary["runDir"] === "string" ? summary["runDir"] : null,
190
+ status,
191
+ primaryOutput,
192
+ artifacts: Array.isArray(detail["artifacts"]) ? detail["artifacts"] : [],
193
+ result: summary["result"] && typeof summary["result"] === "object" ? summary["result"] : null,
194
+ applyEligibility: detail["applyEligibility"] ?? null,
195
+ };
196
+ }
196
197
  return {
197
- summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"] ? detail["finalSummary"] : `run ${runId}: ${String(summary["status"] ?? "unknown")}`,
198
+ summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"]
199
+ ? detail["finalSummary"]
200
+ : `run ${runId}: ${String(status ?? "unknown")}`,
198
201
  runId,
199
- status: summary["status"] ?? null,
202
+ status,
200
203
  decisionStatus: decision ? (decision["status"] ?? null) : null,
201
204
  applyEligibility: detail["applyEligibility"] ?? null,
202
- pendingInteractions: Array.isArray(detail["pendingInteractions"]) ? detail["pendingInteractions"].length : 0,
205
+ pendingInteractions: Array.isArray(detail["pendingInteractions"])
206
+ ? detail["pendingInteractions"].length
207
+ : 0,
208
+ };
209
+ }
210
+ if (mode === "__run_cancel") {
211
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/control`, {
212
+ method: "POST",
213
+ headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
214
+ body: JSON.stringify({
215
+ control: { kind: "cancel", reason: "MCP host requested durable run cancellation" },
216
+ }),
217
+ });
218
+ const body = (await res.json().catch(() => ({})));
219
+ if (!res.ok) {
220
+ throw new Error(typeof body["message"] === "string"
221
+ ? body["message"]
222
+ : `run cancel failed (HTTP ${res.status})`);
223
+ }
224
+ return { summary: `cancellation acknowledged for run ${runId}`, runId, acknowledged: true };
225
+ }
226
+ if (mode === "__run_interactions") {
227
+ const detail = await get(`/runs/${encodeURIComponent(runId)}`);
228
+ const interactions = Array.isArray(detail["pendingInteractions"])
229
+ ? detail["pendingInteractions"]
230
+ : [];
231
+ return {
232
+ summary: `${interactions.length} pending interaction(s) for run ${runId}`,
233
+ runId,
234
+ interactions,
235
+ };
236
+ }
237
+ if (mode === "__run_answer") {
238
+ const interactionId = String(input["interactionId"] ?? "");
239
+ if (!interactionId)
240
+ throw new Error("interactionId is required");
241
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(interactionId)}/answer`, {
242
+ method: "POST",
243
+ headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
244
+ body: JSON.stringify({ answers: input["answers"] }),
245
+ });
246
+ const body = (await res.json().catch(() => ({})));
247
+ if (!res.ok) {
248
+ throw new Error(typeof body["message"] === "string"
249
+ ? body["message"]
250
+ : `interaction answer failed (HTTP ${res.status})`);
251
+ }
252
+ return {
253
+ summary: `answer acknowledged for interaction ${interactionId}`,
254
+ runId,
255
+ interactionId,
203
256
  };
204
257
  }
205
258
  // __apply_check: the server-side dry gate + patch check (no mutation).
206
- const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/apply/check`, {
259
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/apply/check`, {
207
260
  method: "POST",
208
261
  headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
209
262
  body: JSON.stringify({}),
210
263
  });
211
264
  const body = (await res.json().catch(() => ({})));
212
265
  if (!res.ok) {
213
- return { summary: `apply check refused: ${typeof body["error"] === "string" ? body["error"] : `HTTP ${res.status}`}`, runId, eligible: false };
266
+ return {
267
+ summary: `apply check refused: ${typeof body["message"] === "string" ? body["message"] : `HTTP ${res.status}`}`,
268
+ runId,
269
+ eligible: false,
270
+ };
214
271
  }
215
272
  // HTTP 200 carries the ApplyResult; `ok:false` means `git apply --check`
216
273
  // itself failed — an honest conflict verdict, never "applies cleanly".
217
274
  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 };
275
+ const stderr = typeof body["stderr"] === "string" && body["stderr"].trim()
276
+ ? `: ${body["stderr"].trim()}`
277
+ : "";
278
+ return {
279
+ summary: `apply check failed: the patch does NOT apply cleanly${stderr}`,
280
+ runId,
281
+ eligible: false,
282
+ check: body,
283
+ };
284
+ }
285
+ return {
286
+ summary: "apply check passed: the patch applies cleanly to the original project",
287
+ runId,
288
+ eligible: true,
289
+ check: body,
290
+ };
291
+ }
292
+ async function journalRecoveryQuery(input) {
293
+ const conn = await connectDaemonIfRunning();
294
+ if (!conn)
295
+ throw new Error("the Claudexor daemon is not running");
296
+ const action = String(input["action"] ?? "inspect");
297
+ const partition = String(input["partition"] ?? "");
298
+ if (!partition)
299
+ throw new Error("partition is required");
300
+ const base = `/recovery/partitions/${encodeURIComponent(partition)}`;
301
+ const suffix = action === "inspect"
302
+ ? ""
303
+ : action === "validate" || action === "export" || action === "quarantine"
304
+ ? `/${action}`
305
+ : null;
306
+ if (suffix === null)
307
+ throw new Error(`unknown journal recovery action '${action}'`);
308
+ const body = action === "quarantine"
309
+ ? {
310
+ expectedFingerprint: String(input["expectedFingerprint"] ?? ""),
311
+ confirmation: String(input["confirmation"] ?? ""),
312
+ }
313
+ : undefined;
314
+ const response = await controlApiFetch(conn.addr, `${base}${suffix}`, {
315
+ method: action === "inspect" ? "GET" : "POST",
316
+ ...(body
317
+ ? { headers: { "content-type": "application/json" }, body: JSON.stringify(body) }
318
+ : {}),
319
+ });
320
+ const result = (await response.json().catch(() => ({})));
321
+ if (!response.ok) {
322
+ throw new Error(typeof result["message"] === "string"
323
+ ? result["message"]
324
+ : `journal recovery failed (HTTP ${response.status})`);
220
325
  }
221
- return { summary: "apply check passed: the patch applies cleanly to the original project", runId, eligible: true, check: body };
326
+ return result;
222
327
  }
223
328
  /**
224
329
  * Cancel bridge: once the run is BOUND (we know its id), an aborted host
@@ -227,17 +332,27 @@ async function recoveryQuery(mode, runId) {
227
332
  */
228
333
  export function makeCancelBridge(addr, signal) {
229
334
  let posted = false;
230
- return ({ runId }) => {
231
- if (posted || !signal.aborted || !runId)
335
+ let inFlight = false;
336
+ return async ({ runId }) => {
337
+ if (posted || inFlight || !signal.aborted || !runId)
232
338
  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
- });
339
+ inFlight = true;
340
+ try {
341
+ const response = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/control`, {
342
+ method: "POST",
343
+ headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
344
+ body: JSON.stringify({
345
+ control: { kind: "cancel", reason: "mcp host cancelled the tool call" },
346
+ }),
347
+ });
348
+ posted = response.ok;
349
+ }
350
+ catch {
351
+ posted = false;
352
+ }
353
+ finally {
354
+ inFlight = false;
355
+ }
241
356
  };
242
357
  }
243
358
  /**
@@ -248,7 +363,8 @@ export function makeCancelBridge(addr, signal) {
248
363
  * never fakes delivery.
249
364
  */
250
365
  export function makeInteractionBridge(addr, onInteraction) {
251
- const seen = new Set();
366
+ const delivered = new Set();
367
+ const answerCache = new Map();
252
368
  let lastCheck = 0;
253
369
  let handling = false;
254
370
  return async ({ runId }) => {
@@ -257,7 +373,7 @@ export function makeInteractionBridge(addr, onInteraction) {
257
373
  lastCheck = Date.now();
258
374
  let pending = [];
259
375
  try {
260
- const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}`, {
376
+ const res = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}`, {
261
377
  headers: { Authorization: `Bearer ${addr.token}` },
262
378
  signal: AbortSignal.timeout(2_000),
263
379
  });
@@ -271,20 +387,28 @@ export function makeInteractionBridge(addr, onInteraction) {
271
387
  }
272
388
  for (const pi of pending) {
273
389
  const id = typeof pi.interactionId === "string" ? pi.interactionId : "";
274
- if (!id || seen.has(id))
390
+ if (!id || delivered.has(id))
275
391
  continue;
276
- seen.add(id);
277
392
  handling = true;
278
393
  try {
279
- const result = await onInteraction({
280
- request: { interaction_id: id, questions: Array.isArray(pi.questions) ? pi.questions : [] },
281
- timeoutAt: pi.timeoutAt ?? undefined,
282
- });
394
+ const result = answerCache.has(id)
395
+ ? answerCache.get(id)
396
+ : await onInteraction({
397
+ request: {
398
+ interaction_id: id,
399
+ questions: Array.isArray(pi.questions) ? pi.questions : [],
400
+ },
401
+ timeoutAt: pi.timeoutAt ?? undefined,
402
+ });
403
+ answerCache.set(id, result);
283
404
  const answers = result && Array.isArray(result.answers) ? result.answers : null;
284
405
  if (answers) {
285
- await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
406
+ const response = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
286
407
  method: "POST",
287
- headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
408
+ headers: {
409
+ Authorization: `Bearer ${addr.token}`,
410
+ "Content-Type": "application/json",
411
+ },
288
412
  body: JSON.stringify({
289
413
  answers: answers.map((a) => ({
290
414
  questionId: a.question_id,
@@ -292,9 +416,16 @@ export function makeInteractionBridge(addr, onInteraction) {
292
416
  ...(a.free_text ? { freeText: a.free_text } : {}),
293
417
  })),
294
418
  }),
295
- }).catch(() => {
296
- /* stale/failed answers surface as engine timeout-decline; never crash the wait loop */
297
- });
419
+ }).catch(() => null);
420
+ if (response?.ok) {
421
+ delivered.add(id);
422
+ answerCache.delete(id);
423
+ }
424
+ }
425
+ else {
426
+ // A deliberate decline has no answer mutation to acknowledge.
427
+ delivered.add(id);
428
+ answerCache.delete(id);
298
429
  }
299
430
  }
300
431
  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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"}