@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.
- package/dist/acp-surface-runner.d.ts +17 -0
- package/dist/acp-surface-runner.d.ts.map +1 -0
- package/dist/acp-surface-runner.js +187 -0
- package/dist/acp-surface-runner.js.map +1 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js.map +1 -1
- package/dist/bridge-serve.d.ts +3 -0
- package/dist/bridge-serve.d.ts.map +1 -0
- package/dist/bridge-serve.js +39 -0
- package/dist/bridge-serve.js.map +1 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +12 -3
- package/dist/capabilities.js.map +1 -1
- package/dist/claude-oauth-usage.d.ts +33 -0
- package/dist/claude-oauth-usage.d.ts.map +1 -0
- package/dist/claude-oauth-usage.js +190 -0
- package/dist/claude-oauth-usage.js.map +1 -0
- package/dist/claude-statusline.d.ts +25 -0
- package/dist/claude-statusline.d.ts.map +1 -0
- package/dist/claude-statusline.js +259 -0
- package/dist/claude-statusline.js.map +1 -0
- package/dist/claudexord.js +346 -543
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-io.d.ts +8 -9
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +11 -7
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +475 -516
- package/dist/cli.js.map +1 -1
- package/dist/codex-quota-source.d.ts +11 -0
- package/dist/codex-quota-source.d.ts.map +1 -0
- package/dist/codex-quota-source.js +181 -0
- package/dist/codex-quota-source.js.map +1 -0
- package/dist/command-flags.d.ts +18 -0
- package/dist/command-flags.d.ts.map +1 -0
- package/dist/command-flags.js +124 -0
- package/dist/command-flags.js.map +1 -0
- package/dist/command-registry.d.ts +2 -40
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +74 -164
- package/dist/command-registry.js.map +1 -1
- package/dist/control-services.d.ts +2490 -0
- package/dist/control-services.d.ts.map +1 -0
- package/dist/control-services.js +453 -0
- package/dist/control-services.js.map +1 -0
- package/dist/credential-commands.d.ts +9 -0
- package/dist/credential-commands.d.ts.map +1 -0
- package/dist/credential-commands.js +224 -0
- package/dist/credential-commands.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +7 -3
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +40 -12
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-run.d.ts +2 -0
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +62 -14
- package/dist/daemon-run.js.map +1 -1
- package/dist/daemon-runtime-shutdown.d.ts +58 -0
- package/dist/daemon-runtime-shutdown.d.ts.map +1 -0
- package/dist/daemon-runtime-shutdown.js +142 -0
- package/dist/daemon-runtime-shutdown.js.map +1 -0
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +12 -3
- package/dist/decision.js.map +1 -1
- package/dist/live.d.ts +29 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +117 -6
- package/dist/live.js.map +1 -1
- package/dist/local-attachment.d.ts +14 -0
- package/dist/local-attachment.d.ts.map +1 -0
- package/dist/local-attachment.js +67 -0
- package/dist/local-attachment.js.map +1 -0
- package/dist/mcp-runner.d.ts +4 -15
- package/dist/mcp-runner.d.ts.map +1 -1
- package/dist/mcp-runner.js +276 -145
- package/dist/mcp-runner.js.map +1 -1
- package/dist/native-login.d.ts +21 -0
- package/dist/native-login.d.ts.map +1 -0
- package/dist/native-login.js +110 -0
- package/dist/native-login.js.map +1 -0
- package/dist/ops-commands.d.ts +8 -6
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +250 -168
- package/dist/ops-commands.js.map +1 -1
- package/dist/orchestrate-options.d.ts.map +1 -1
- package/dist/orchestrate-options.js +1 -1
- package/dist/orchestrate-options.js.map +1 -1
- package/dist/orphan-reaper.d.ts +4 -5
- package/dist/orphan-reaper.d.ts.map +1 -1
- package/dist/orphan-reaper.js +29 -56
- package/dist/orphan-reaper.js.map +1 -1
- package/dist/orphan-sweeper.d.ts +1 -2
- package/dist/orphan-sweeper.d.ts.map +1 -1
- package/dist/orphan-sweeper.js +29 -48
- package/dist/orphan-sweeper.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +196 -64
- package/dist/plugins.js.map +1 -1
- package/dist/primary-output.d.ts.map +1 -1
- package/dist/primary-output.js.map +1 -1
- package/dist/profile-compatibility.d.ts +6 -0
- package/dist/profile-compatibility.d.ts.map +1 -0
- package/dist/profile-compatibility.js +21 -0
- package/dist/profile-compatibility.js.map +1 -0
- package/dist/profile-registration.d.ts +15 -0
- package/dist/profile-registration.d.ts.map +1 -0
- package/dist/profile-registration.js +68 -0
- package/dist/profile-registration.js.map +1 -0
- package/dist/project-command.d.ts +3 -0
- package/dist/project-command.d.ts.map +1 -0
- package/dist/project-command.js +87 -0
- package/dist/project-command.js.map +1 -0
- package/dist/quota-command.d.ts +3 -0
- package/dist/quota-command.d.ts.map +1 -0
- package/dist/quota-command.js +59 -0
- package/dist/quota-command.js.map +1 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -4
- package/dist/registry.js.map +1 -1
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +15 -3
- package/dist/release.js.map +1 -1
- package/dist/repl.d.ts +3 -8
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +23 -122
- package/dist/repl.js.map +1 -1
- package/dist/request-preflight.d.ts +13 -0
- package/dist/request-preflight.d.ts.map +1 -0
- package/dist/request-preflight.js +81 -0
- package/dist/request-preflight.js.map +1 -0
- package/dist/retention-service.d.ts +24 -0
- package/dist/retention-service.d.ts.map +1 -0
- package/dist/retention-service.js +100 -0
- package/dist/retention-service.js.map +1 -0
- package/dist/retry-command-specs.d.ts +3 -0
- package/dist/retry-command-specs.d.ts.map +1 -0
- package/dist/retry-command-specs.js +21 -0
- package/dist/retry-command-specs.js.map +1 -0
- package/dist/retry-command.d.ts +4 -0
- package/dist/retry-command.d.ts.map +1 -0
- package/dist/retry-command.js +57 -0
- package/dist/retry-command.js.map +1 -0
- package/dist/review-command.d.ts.map +1 -1
- package/dist/review-command.js +47 -12
- package/dist/review-command.js.map +1 -1
- package/dist/run-options.d.ts +2 -2
- package/dist/run-options.d.ts.map +1 -1
- package/dist/run-options.js +27 -5
- package/dist/run-options.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +143 -188
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +50 -0
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +67 -1
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-job-reducer.d.ts +9 -0
- package/dist/setup-job-reducer.d.ts.map +1 -0
- package/dist/setup-job-reducer.js +290 -0
- package/dist/setup-job-reducer.js.map +1 -0
- package/dist/setup-job-store.d.ts +250 -0
- package/dist/setup-job-store.d.ts.map +1 -0
- package/dist/setup-job-store.js +359 -0
- package/dist/setup-job-store.js.map +1 -0
- package/dist/setup-job-support.d.ts +27 -0
- package/dist/setup-job-support.d.ts.map +1 -0
- package/dist/setup-job-support.js +141 -0
- package/dist/setup-job-support.js.map +1 -0
- package/dist/setup-jobs.d.ts +437 -22
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +813 -423
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-lifecycle-binding.d.ts +40 -0
- package/dist/setup-lifecycle-binding.d.ts.map +1 -0
- package/dist/setup-lifecycle-binding.js +159 -0
- package/dist/setup-lifecycle-binding.js.map +1 -0
- package/dist/setup-login-protocol.d.ts +13 -0
- package/dist/setup-login-protocol.d.ts.map +1 -0
- package/dist/setup-login-protocol.js +179 -0
- package/dist/setup-login-protocol.js.map +1 -0
- package/dist/setup-login-runner.d.ts +20 -0
- package/dist/setup-login-runner.d.ts.map +1 -0
- package/dist/setup-login-runner.js +225 -0
- package/dist/setup-login-runner.js.map +1 -0
- package/dist/setup-supervisor.d.ts +53 -0
- package/dist/setup-supervisor.d.ts.map +1 -0
- package/dist/setup-supervisor.js +177 -0
- package/dist/setup-supervisor.js.map +1 -0
- package/dist/spec-thread-scope.d.ts +3 -0
- package/dist/spec-thread-scope.d.ts.map +1 -0
- package/dist/spec-thread-scope.js +9 -0
- package/dist/spec-thread-scope.js.map +1 -0
- package/dist/spec.d.ts +9 -20
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +49 -21
- package/dist/spec.js.map +1 -1
- package/dist/thread-delivery.d.ts +18 -0
- package/dist/thread-delivery.d.ts.map +1 -0
- package/dist/thread-delivery.js +67 -0
- package/dist/thread-delivery.js.map +1 -0
- package/dist/thread-select.d.ts +9 -0
- package/dist/thread-select.d.ts.map +1 -0
- package/dist/thread-select.js +12 -0
- package/dist/thread-select.js.map +1 -0
- package/dist/trust-command.d.ts.map +1 -1
- package/dist/trust-command.js +69 -61
- package/dist/trust-command.js.map +1 -1
- package/dist/trust-services.d.ts +5 -6
- package/dist/trust-services.d.ts.map +1 -1
- package/dist/trust-services.js +42 -13
- package/dist/trust-services.js.map +1 -1
- package/package.json +24 -22
- package/dist/attachment-resolver.d.ts +0 -11
- package/dist/attachment-resolver.d.ts.map +0 -1
- package/dist/attachment-resolver.js +0 -61
- package/dist/attachment-resolver.js.map +0 -1
- package/dist/settings-display.d.ts +0 -3
- package/dist/settings-display.d.ts.map +0 -1
- package/dist/settings-display.js +0 -33
- package/dist/settings-display.js.map +0 -1
package/dist/mcp-runner.js
CHANGED
|
@@ -1,132 +1,78 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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
|
-
*
|
|
10
|
-
*
|
|
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
|
|
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
|
-
|
|
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 === "
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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 === "
|
|
49
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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
|
|
116
|
-
...(
|
|
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
|
|
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"
|
|
126
|
-
|
|
127
|
-
|
|
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
|
|
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,
|
|
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 ??
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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["
|
|
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"]
|
|
198
|
+
summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"]
|
|
199
|
+
? detail["finalSummary"]
|
|
200
|
+
: `run ${runId}: ${String(status ?? "unknown")}`,
|
|
198
201
|
runId,
|
|
199
|
-
status
|
|
202
|
+
status,
|
|
200
203
|
decisionStatus: decision ? (decision["status"] ?? null) : null,
|
|
201
204
|
applyEligibility: detail["applyEligibility"] ?? null,
|
|
202
|
-
pendingInteractions: Array.isArray(detail["pendingInteractions"])
|
|
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
|
|
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 {
|
|
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()
|
|
219
|
-
|
|
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
|
|
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
|
-
|
|
231
|
-
|
|
335
|
+
let inFlight = false;
|
|
336
|
+
return async ({ runId }) => {
|
|
337
|
+
if (posted || inFlight || !signal.aborted || !runId)
|
|
232
338
|
return;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
|
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
|
|
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 ||
|
|
390
|
+
if (!id || delivered.has(id))
|
|
275
391
|
continue;
|
|
276
|
-
seen.add(id);
|
|
277
392
|
handling = true;
|
|
278
393
|
try {
|
|
279
|
-
const result =
|
|
280
|
-
|
|
281
|
-
|
|
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
|
|
406
|
+
const response = await controlApiFetch(addr, `/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
|
|
286
407
|
method: "POST",
|
|
287
|
-
headers: {
|
|
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
|
-
|
|
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 {
|
package/dist/mcp-runner.js.map
CHANGED
|
@@ -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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"}
|