@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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -0
  3. package/dist/args.d.ts +12 -0
  4. package/dist/args.d.ts.map +1 -0
  5. package/dist/args.js +88 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/attachment-resolver.d.ts +11 -0
  8. package/dist/attachment-resolver.d.ts.map +1 -0
  9. package/dist/attachment-resolver.js +61 -0
  10. package/dist/attachment-resolver.js.map +1 -0
  11. package/dist/capabilities.d.ts +13 -0
  12. package/dist/capabilities.d.ts.map +1 -0
  13. package/dist/capabilities.js +90 -0
  14. package/dist/capabilities.js.map +1 -0
  15. package/dist/claudexord.d.ts +3 -0
  16. package/dist/claudexord.d.ts.map +1 -0
  17. package/dist/claudexord.js +564 -0
  18. package/dist/claudexord.js.map +1 -0
  19. package/dist/cli-io.d.ts +28 -0
  20. package/dist/cli-io.d.ts.map +1 -0
  21. package/dist/cli-io.js +37 -0
  22. package/dist/cli-io.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +1459 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/command-registry.d.ts +105 -0
  28. package/dist/command-registry.d.ts.map +1 -0
  29. package/dist/command-registry.js +516 -0
  30. package/dist/command-registry.js.map +1 -0
  31. package/dist/daemon-lifecycle.d.ts +18 -0
  32. package/dist/daemon-lifecycle.d.ts.map +1 -0
  33. package/dist/daemon-lifecycle.js +62 -0
  34. package/dist/daemon-lifecycle.js.map +1 -0
  35. package/dist/daemon-run.d.ts +86 -0
  36. package/dist/daemon-run.d.ts.map +1 -0
  37. package/dist/daemon-run.js +269 -0
  38. package/dist/daemon-run.js.map +1 -0
  39. package/dist/decision.d.ts +18 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +46 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/live.d.ts +26 -0
  44. package/dist/live.d.ts.map +1 -0
  45. package/dist/live.js +311 -0
  46. package/dist/live.js.map +1 -0
  47. package/dist/mcp-runner.d.ts +41 -0
  48. package/dist/mcp-runner.d.ts.map +1 -0
  49. package/dist/mcp-runner.js +306 -0
  50. package/dist/mcp-runner.js.map +1 -0
  51. package/dist/ops-commands.d.ts +11 -0
  52. package/dist/ops-commands.d.ts.map +1 -0
  53. package/dist/ops-commands.js +358 -0
  54. package/dist/ops-commands.js.map +1 -0
  55. package/dist/orchestrate-options.d.ts +9 -0
  56. package/dist/orchestrate-options.d.ts.map +1 -0
  57. package/dist/orchestrate-options.js +16 -0
  58. package/dist/orchestrate-options.js.map +1 -0
  59. package/dist/orphan-reaper.d.ts +9 -0
  60. package/dist/orphan-reaper.d.ts.map +1 -0
  61. package/dist/orphan-reaper.js +97 -0
  62. package/dist/orphan-reaper.js.map +1 -0
  63. package/dist/orphan-sweeper.d.ts +7 -0
  64. package/dist/orphan-sweeper.d.ts.map +1 -0
  65. package/dist/orphan-sweeper.js +289 -0
  66. package/dist/orphan-sweeper.js.map +1 -0
  67. package/dist/plugins.d.ts +44 -0
  68. package/dist/plugins.d.ts.map +1 -0
  69. package/dist/plugins.js +1383 -0
  70. package/dist/plugins.js.map +1 -0
  71. package/dist/primary-output.d.ts +14 -0
  72. package/dist/primary-output.d.ts.map +1 -0
  73. package/dist/primary-output.js +34 -0
  74. package/dist/primary-output.js.map +1 -0
  75. package/dist/registry.d.ts +26 -0
  76. package/dist/registry.d.ts.map +1 -0
  77. package/dist/registry.js +71 -0
  78. package/dist/registry.js.map +1 -0
  79. package/dist/release.d.ts +14 -0
  80. package/dist/release.d.ts.map +1 -0
  81. package/dist/release.js +49 -0
  82. package/dist/release.js.map +1 -0
  83. package/dist/repl.d.ts +26 -0
  84. package/dist/repl.d.ts.map +1 -0
  85. package/dist/repl.js +277 -0
  86. package/dist/repl.js.map +1 -0
  87. package/dist/review-command.d.ts +3 -0
  88. package/dist/review-command.d.ts.map +1 -0
  89. package/dist/review-command.js +83 -0
  90. package/dist/review-command.js.map +1 -0
  91. package/dist/reviewer-options.d.ts +18 -0
  92. package/dist/reviewer-options.d.ts.map +1 -0
  93. package/dist/reviewer-options.js +110 -0
  94. package/dist/reviewer-options.js.map +1 -0
  95. package/dist/run-options.d.ts +8 -0
  96. package/dist/run-options.d.ts.map +1 -0
  97. package/dist/run-options.js +50 -0
  98. package/dist/run-options.js.map +1 -0
  99. package/dist/run-secret-scan.d.ts +2 -0
  100. package/dist/run-secret-scan.d.ts.map +1 -0
  101. package/dist/run-secret-scan.js +5 -0
  102. package/dist/run-secret-scan.js.map +1 -0
  103. package/dist/settings-command.d.ts +3 -0
  104. package/dist/settings-command.d.ts.map +1 -0
  105. package/dist/settings-command.js +202 -0
  106. package/dist/settings-command.js.map +1 -0
  107. package/dist/settings-display.d.ts +3 -0
  108. package/dist/settings-display.d.ts.map +1 -0
  109. package/dist/settings-display.js +33 -0
  110. package/dist/settings-display.js.map +1 -0
  111. package/dist/settings-service.d.ts +15 -0
  112. package/dist/settings-service.d.ts.map +1 -0
  113. package/dist/settings-service.js +91 -0
  114. package/dist/settings-service.js.map +1 -0
  115. package/dist/setup-jobs.d.ts +28 -0
  116. package/dist/setup-jobs.d.ts.map +1 -0
  117. package/dist/setup-jobs.js +477 -0
  118. package/dist/setup-jobs.js.map +1 -0
  119. package/dist/spec.d.ts +84 -0
  120. package/dist/spec.d.ts.map +1 -0
  121. package/dist/spec.js +438 -0
  122. package/dist/spec.js.map +1 -0
  123. package/dist/trust-command.d.ts +3 -0
  124. package/dist/trust-command.d.ts.map +1 -0
  125. package/dist/trust-command.js +80 -0
  126. package/dist/trust-command.js.map +1 -0
  127. package/dist/trust-services.d.ts +7 -0
  128. package/dist/trust-services.d.ts.map +1 -0
  129. package/dist/trust-services.js +35 -0
  130. package/dist/trust-services.js.map +1 -0
  131. 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"}