@claudexor/cli 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +22 -0
- package/dist/args.d.ts +12 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +88 -0
- package/dist/args.js.map +1 -0
- package/dist/attachment-resolver.d.ts +11 -0
- package/dist/attachment-resolver.d.ts.map +1 -0
- package/dist/attachment-resolver.js +61 -0
- package/dist/attachment-resolver.js.map +1 -0
- package/dist/capabilities.d.ts +13 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +90 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/claudexord.d.ts +3 -0
- package/dist/claudexord.d.ts.map +1 -0
- package/dist/claudexord.js +564 -0
- package/dist/claudexord.js.map +1 -0
- package/dist/cli-io.d.ts +28 -0
- package/dist/cli-io.d.ts.map +1 -0
- package/dist/cli-io.js +37 -0
- package/dist/cli-io.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1459 -0
- package/dist/cli.js.map +1 -0
- package/dist/command-registry.d.ts +105 -0
- package/dist/command-registry.d.ts.map +1 -0
- package/dist/command-registry.js +516 -0
- package/dist/command-registry.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +18 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -0
- package/dist/daemon-lifecycle.js +62 -0
- package/dist/daemon-lifecycle.js.map +1 -0
- package/dist/daemon-run.d.ts +86 -0
- package/dist/daemon-run.d.ts.map +1 -0
- package/dist/daemon-run.js +269 -0
- package/dist/daemon-run.js.map +1 -0
- package/dist/decision.d.ts +18 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +46 -0
- package/dist/decision.js.map +1 -0
- package/dist/live.d.ts +26 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +311 -0
- package/dist/live.js.map +1 -0
- package/dist/mcp-runner.d.ts +41 -0
- package/dist/mcp-runner.d.ts.map +1 -0
- package/dist/mcp-runner.js +306 -0
- package/dist/mcp-runner.js.map +1 -0
- package/dist/ops-commands.d.ts +11 -0
- package/dist/ops-commands.d.ts.map +1 -0
- package/dist/ops-commands.js +358 -0
- package/dist/ops-commands.js.map +1 -0
- package/dist/orchestrate-options.d.ts +9 -0
- package/dist/orchestrate-options.d.ts.map +1 -0
- package/dist/orchestrate-options.js +16 -0
- package/dist/orchestrate-options.js.map +1 -0
- package/dist/orphan-reaper.d.ts +9 -0
- package/dist/orphan-reaper.d.ts.map +1 -0
- package/dist/orphan-reaper.js +97 -0
- package/dist/orphan-reaper.js.map +1 -0
- package/dist/orphan-sweeper.d.ts +7 -0
- package/dist/orphan-sweeper.d.ts.map +1 -0
- package/dist/orphan-sweeper.js +289 -0
- package/dist/orphan-sweeper.js.map +1 -0
- package/dist/plugins.d.ts +44 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +1383 -0
- package/dist/plugins.js.map +1 -0
- package/dist/primary-output.d.ts +14 -0
- package/dist/primary-output.d.ts.map +1 -0
- package/dist/primary-output.js +34 -0
- package/dist/primary-output.js.map +1 -0
- package/dist/registry.d.ts +26 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +71 -0
- package/dist/registry.js.map +1 -0
- package/dist/release.d.ts +14 -0
- package/dist/release.d.ts.map +1 -0
- package/dist/release.js +49 -0
- package/dist/release.js.map +1 -0
- package/dist/repl.d.ts +26 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +277 -0
- package/dist/repl.js.map +1 -0
- package/dist/review-command.d.ts +3 -0
- package/dist/review-command.d.ts.map +1 -0
- package/dist/review-command.js +83 -0
- package/dist/review-command.js.map +1 -0
- package/dist/reviewer-options.d.ts +18 -0
- package/dist/reviewer-options.d.ts.map +1 -0
- package/dist/reviewer-options.js +110 -0
- package/dist/reviewer-options.js.map +1 -0
- package/dist/run-options.d.ts +8 -0
- package/dist/run-options.d.ts.map +1 -0
- package/dist/run-options.js +50 -0
- package/dist/run-options.js.map +1 -0
- package/dist/run-secret-scan.d.ts +2 -0
- package/dist/run-secret-scan.d.ts.map +1 -0
- package/dist/run-secret-scan.js +5 -0
- package/dist/run-secret-scan.js.map +1 -0
- package/dist/settings-command.d.ts +3 -0
- package/dist/settings-command.d.ts.map +1 -0
- package/dist/settings-command.js +202 -0
- package/dist/settings-command.js.map +1 -0
- package/dist/settings-display.d.ts +3 -0
- package/dist/settings-display.d.ts.map +1 -0
- package/dist/settings-display.js +33 -0
- package/dist/settings-display.js.map +1 -0
- package/dist/settings-service.d.ts +15 -0
- package/dist/settings-service.d.ts.map +1 -0
- package/dist/settings-service.js +91 -0
- package/dist/settings-service.js.map +1 -0
- package/dist/setup-jobs.d.ts +28 -0
- package/dist/setup-jobs.d.ts.map +1 -0
- package/dist/setup-jobs.js +477 -0
- package/dist/setup-jobs.js.map +1 -0
- package/dist/spec.d.ts +84 -0
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +438 -0
- package/dist/spec.js.map +1 -0
- package/dist/trust-command.d.ts +3 -0
- package/dist/trust-command.d.ts.map +1 -0
- package/dist/trust-command.js +80 -0
- package/dist/trust-command.js.map +1 -0
- package/dist/trust-services.d.ts +7 -0
- package/dist/trust-services.d.ts.map +1 -0
- package/dist/trust-services.js +35 -0
- package/dist/trust-services.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,306 @@
|
|
|
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";
|
|
7
|
+
import { primaryOutputForCli } from "./primary-output.js";
|
|
8
|
+
/**
|
|
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.
|
|
12
|
+
*/
|
|
13
|
+
export function orchestratorRunner() {
|
|
14
|
+
const registry = buildRegistry();
|
|
15
|
+
const orch = new Orchestrator({ registry });
|
|
16
|
+
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
|
+
};
|
|
42
|
+
}
|
|
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();
|
|
47
|
+
}
|
|
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 : "");
|
|
50
|
+
}
|
|
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);
|
|
104
|
+
const { client, addr } = await ensureDaemon();
|
|
105
|
+
const repoRoot = typeof p?.repoPath === "string" && p.repoPath.trim() ? p.repoPath : process.cwd();
|
|
106
|
+
const body = {
|
|
107
|
+
prompt: String(p?.prompt ?? ""),
|
|
108
|
+
mode: "agent",
|
|
109
|
+
scope: { kind: "project", root: repoRoot },
|
|
110
|
+
execution: { isolation: "envelope" },
|
|
111
|
+
...(p?.harness ? { harnesses: [String(p.harness)] } : {}),
|
|
112
|
+
...(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 } : {}),
|
|
114
|
+
...(p?.create === true ? { create: true } : {}),
|
|
115
|
+
...(Array.isArray(p?.tests) ? { tests: p.tests.map(String) } : {}),
|
|
116
|
+
...(typeof p?.maxUsd === "number" ? { maxUsd: p.maxUsd } : {}),
|
|
117
|
+
...(p?.access ? { access: String(p.access) } : {}),
|
|
118
|
+
// `externalContextPolicy` is the control-api-parity alias of `web`; the
|
|
119
|
+
// validator already enforced equality when both are present. Honor the
|
|
120
|
+
// alias alone too — dropping it would silently run the daemon default.
|
|
121
|
+
...(p?.web ? { web: String(p.web) } : p?.externalContextPolicy ? { web: String(p.externalContextPolicy) } : {}),
|
|
122
|
+
...(p?.model ? { model: String(p.model) } : {}),
|
|
123
|
+
...(p?.effort ? { effort: String(p.effort) } : {}),
|
|
124
|
+
...(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 } : {}),
|
|
128
|
+
};
|
|
129
|
+
const interactionBridge = hooks?.onInteraction ? makeInteractionBridge(addr, hooks.onInteraction) : undefined;
|
|
130
|
+
// Host cancellation (MCP notifications/cancelled -> ctx signal) becomes
|
|
131
|
+
// the same TYPED daemon cancel the CLI's Ctrl-C path posts; the wait loop
|
|
132
|
+
// then resolves with the honest cancelled terminal.
|
|
133
|
+
const cancelBridge = hooks?.signal ? makeCancelBridge(addr, hooks.signal) : undefined;
|
|
134
|
+
const onPollTick = interactionBridge || cancelBridge
|
|
135
|
+
? async (info) => {
|
|
136
|
+
cancelBridge?.(info);
|
|
137
|
+
await interactionBridge?.(info);
|
|
138
|
+
}
|
|
139
|
+
: undefined;
|
|
140
|
+
const out = await enqueueAndAwait(client, addr, body, {
|
|
141
|
+
waitForTerminal: true,
|
|
142
|
+
...(onPollTick ? { onPollTick } : {}),
|
|
143
|
+
});
|
|
144
|
+
// The MCP result: the run's primary output as the summary (the daemon
|
|
145
|
+
// outcome reason for non-success terminals), plus the artifact handle.
|
|
146
|
+
const primary = out.runDir ? primaryOutputForCli(out.runDir, "agent") : null;
|
|
147
|
+
const reason = daemonOutcomeSummary(out);
|
|
148
|
+
const summary = primary && primary.kind !== "patch"
|
|
149
|
+
? primary.text.trim()
|
|
150
|
+
: (reason ?? (primary?.kind === "patch" ? "patch produced (see artifacts)" : `run ${out.status}`));
|
|
151
|
+
// The derived apply verdict rides the result (single producer: the run
|
|
152
|
+
// detail endpoint). Soft-fail: a detail hiccup never eats the run result.
|
|
153
|
+
const applyEligibility = await fetchApplyEligibility(addr, out.runId);
|
|
154
|
+
return { runId: out.runId, runDir: out.runDir, status: out.status, summary, applyEligibility };
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Recovery queries — thin read-only projections over the daemon control API
|
|
159
|
+
* (auto-starting it like every daemon-tracked path). A host that lost a run
|
|
160
|
+
* handle finds it again without shelling out to the CLI.
|
|
161
|
+
*/
|
|
162
|
+
async function recoveryQuery(mode, runId) {
|
|
163
|
+
// Read-only recovery must not BOOT a daemon: with no daemon there are no
|
|
164
|
+
// daemon-tracked runs to recover — say so instead of spawning one.
|
|
165
|
+
const conn = await connectDaemonIfRunning();
|
|
166
|
+
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)" };
|
|
168
|
+
}
|
|
169
|
+
const { addr } = conn;
|
|
170
|
+
const get = async (path) => {
|
|
171
|
+
const res = await fetch(`${addr.baseUrl}${path}`, { headers: { authorization: `Bearer ${addr.token}` } });
|
|
172
|
+
const body = (await res.json().catch(() => ({})));
|
|
173
|
+
if (!res.ok)
|
|
174
|
+
throw new Error(typeof body["error"] === "string" ? body["error"] : `HTTP ${res.status} for ${path}`);
|
|
175
|
+
return body;
|
|
176
|
+
};
|
|
177
|
+
if (mode === "__runs_list") {
|
|
178
|
+
const body = await get("/runs");
|
|
179
|
+
const runs = Array.isArray(body["runs"]) ? body["runs"] : [];
|
|
180
|
+
return {
|
|
181
|
+
summary: `${runs.length} daemon-tracked run(s)`,
|
|
182
|
+
runs: runs.map((r) => ({
|
|
183
|
+
runId: r["runId"] ?? r["id"] ?? null,
|
|
184
|
+
status: r["status"] ?? r["state"] ?? null,
|
|
185
|
+
mode: r["mode"] ?? null,
|
|
186
|
+
createdAt: r["createdAt"] ?? null,
|
|
187
|
+
})),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
if (!runId)
|
|
191
|
+
throw new Error("runId is required");
|
|
192
|
+
if (mode === "__run_inspect") {
|
|
193
|
+
const detail = await get(`/runs/${encodeURIComponent(runId)}`);
|
|
194
|
+
const summary = (detail["summary"] ?? {});
|
|
195
|
+
const decision = (detail["decision"] ?? null);
|
|
196
|
+
return {
|
|
197
|
+
summary: typeof detail["finalSummary"] === "string" && detail["finalSummary"] ? detail["finalSummary"] : `run ${runId}: ${String(summary["status"] ?? "unknown")}`,
|
|
198
|
+
runId,
|
|
199
|
+
status: summary["status"] ?? null,
|
|
200
|
+
decisionStatus: decision ? (decision["status"] ?? null) : null,
|
|
201
|
+
applyEligibility: detail["applyEligibility"] ?? null,
|
|
202
|
+
pendingInteractions: Array.isArray(detail["pendingInteractions"]) ? detail["pendingInteractions"].length : 0,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// __apply_check: the server-side dry gate + patch check (no mutation).
|
|
206
|
+
const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/apply/check`, {
|
|
207
|
+
method: "POST",
|
|
208
|
+
headers: { authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
|
|
209
|
+
body: JSON.stringify({}),
|
|
210
|
+
});
|
|
211
|
+
const body = (await res.json().catch(() => ({})));
|
|
212
|
+
if (!res.ok) {
|
|
213
|
+
return { summary: `apply check refused: ${typeof body["error"] === "string" ? body["error"] : `HTTP ${res.status}`}`, runId, eligible: false };
|
|
214
|
+
}
|
|
215
|
+
// HTTP 200 carries the ApplyResult; `ok:false` means `git apply --check`
|
|
216
|
+
// itself failed — an honest conflict verdict, never "applies cleanly".
|
|
217
|
+
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 };
|
|
220
|
+
}
|
|
221
|
+
return { summary: "apply check passed: the patch applies cleanly to the original project", runId, eligible: true, check: body };
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Cancel bridge: once the run is BOUND (we know its id), an aborted host
|
|
225
|
+
* signal posts the typed cancel control exactly once. Runs on the poll tick
|
|
226
|
+
* so an abort that races run-binding still lands.
|
|
227
|
+
*/
|
|
228
|
+
export function makeCancelBridge(addr, signal) {
|
|
229
|
+
let posted = false;
|
|
230
|
+
return ({ runId }) => {
|
|
231
|
+
if (posted || !signal.aborted || !runId)
|
|
232
|
+
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
|
+
});
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Poll-tick bridge: watch the run's pendingInteractions on the control API and
|
|
245
|
+
* forward each NEW interaction to the caller's hook exactly once; answers go
|
|
246
|
+
* back through the typed answer endpoint. A stale answer (engine already
|
|
247
|
+
* timed out and declined) is the endpoint's problem to refuse — the bridge
|
|
248
|
+
* never fakes delivery.
|
|
249
|
+
*/
|
|
250
|
+
export function makeInteractionBridge(addr, onInteraction) {
|
|
251
|
+
const seen = new Set();
|
|
252
|
+
let lastCheck = 0;
|
|
253
|
+
let handling = false;
|
|
254
|
+
return async ({ runId }) => {
|
|
255
|
+
if (handling || Date.now() - lastCheck < 1_000)
|
|
256
|
+
return;
|
|
257
|
+
lastCheck = Date.now();
|
|
258
|
+
let pending = [];
|
|
259
|
+
try {
|
|
260
|
+
const res = await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}`, {
|
|
261
|
+
headers: { Authorization: `Bearer ${addr.token}` },
|
|
262
|
+
signal: AbortSignal.timeout(2_000),
|
|
263
|
+
});
|
|
264
|
+
if (!res.ok)
|
|
265
|
+
return;
|
|
266
|
+
const detail = (await res.json());
|
|
267
|
+
pending = detail.pendingInteractions ?? [];
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return; // transient control-api hiccup: the next tick retries
|
|
271
|
+
}
|
|
272
|
+
for (const pi of pending) {
|
|
273
|
+
const id = typeof pi.interactionId === "string" ? pi.interactionId : "";
|
|
274
|
+
if (!id || seen.has(id))
|
|
275
|
+
continue;
|
|
276
|
+
seen.add(id);
|
|
277
|
+
handling = true;
|
|
278
|
+
try {
|
|
279
|
+
const result = await onInteraction({
|
|
280
|
+
request: { interaction_id: id, questions: Array.isArray(pi.questions) ? pi.questions : [] },
|
|
281
|
+
timeoutAt: pi.timeoutAt ?? undefined,
|
|
282
|
+
});
|
|
283
|
+
const answers = result && Array.isArray(result.answers) ? result.answers : null;
|
|
284
|
+
if (answers) {
|
|
285
|
+
await fetch(`${addr.baseUrl}/runs/${encodeURIComponent(runId)}/interactions/${encodeURIComponent(id)}/answer`, {
|
|
286
|
+
method: "POST",
|
|
287
|
+
headers: { Authorization: `Bearer ${addr.token}`, "Content-Type": "application/json" },
|
|
288
|
+
body: JSON.stringify({
|
|
289
|
+
answers: answers.map((a) => ({
|
|
290
|
+
questionId: a.question_id,
|
|
291
|
+
selectedLabels: a.selected_labels ?? [],
|
|
292
|
+
...(a.free_text ? { freeText: a.free_text } : {}),
|
|
293
|
+
})),
|
|
294
|
+
}),
|
|
295
|
+
}).catch(() => {
|
|
296
|
+
/* stale/failed answers surface as engine timeout-decline; never crash the wait loop */
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
finally {
|
|
301
|
+
handling = false;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=mcp-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-runner.js","sourceRoot":"","sources":["../src/mcp-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ParsedArgs } from "./args.js";
|
|
2
|
+
export declare function daemonCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
3
|
+
/**
|
|
4
|
+
* The real CONSUMER (ADP4) of the adapter models() producer: list a harness's
|
|
5
|
+
* enumerable models. With --harness it queries that one; otherwise it tries
|
|
6
|
+
* every non-unavailable harness and shows which can honestly enumerate.
|
|
7
|
+
*/
|
|
8
|
+
export declare function modelsCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
9
|
+
export declare function authCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
10
|
+
export declare function secretsCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=ops-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops-commands.d.ts","sourceRoot":"","sources":["../src/ops-commands.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAM/D,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyHpF;AAGD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CpF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkElF;AAQD,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyErF"}
|