hermes-action-bridge 0.4.0 → 0.5.0

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 (53) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +111 -14
  3. package/dist/adapters/hermes-cli.d.ts +14 -0
  4. package/dist/adapters/hermes-cli.js +80 -19
  5. package/dist/adapters/hermes-cli.js.map +1 -1
  6. package/dist/approvals.d.ts +35 -0
  7. package/dist/approvals.js +96 -0
  8. package/dist/approvals.js.map +1 -0
  9. package/dist/audit-log.d.ts +21 -0
  10. package/dist/audit-log.js +31 -0
  11. package/dist/audit-log.js.map +1 -0
  12. package/dist/capabilities.d.ts +29 -0
  13. package/dist/capabilities.js +24 -0
  14. package/dist/capabilities.js.map +1 -0
  15. package/dist/cli.js +205 -18
  16. package/dist/cli.js.map +1 -1
  17. package/dist/doctor.d.ts +8 -1
  18. package/dist/doctor.js +76 -13
  19. package/dist/doctor.js.map +1 -1
  20. package/dist/execution-gate.d.ts +5 -0
  21. package/dist/execution-gate.js +20 -0
  22. package/dist/execution-gate.js.map +1 -0
  23. package/dist/http-server.d.ts +18 -0
  24. package/dist/http-server.js +310 -0
  25. package/dist/http-server.js.map +1 -0
  26. package/dist/install/launcher.d.ts +3 -0
  27. package/dist/install/launcher.js +7 -0
  28. package/dist/install/launcher.js.map +1 -0
  29. package/dist/install/mcp-service.d.ts +44 -0
  30. package/dist/install/mcp-service.js +172 -0
  31. package/dist/install/mcp-service.js.map +1 -0
  32. package/dist/install/templates.js +38 -32
  33. package/dist/install/templates.js.map +1 -1
  34. package/dist/install/types.d.ts +1 -0
  35. package/dist/jobs.d.ts +51 -0
  36. package/dist/jobs.js +244 -0
  37. package/dist/jobs.js.map +1 -0
  38. package/dist/mcp-server.d.ts +32 -0
  39. package/dist/mcp-server.js +382 -25
  40. package/dist/mcp-server.js.map +1 -1
  41. package/dist/types.d.ts +2 -0
  42. package/dist/validation.d.ts +1 -0
  43. package/dist/validation.js +8 -0
  44. package/dist/validation.js.map +1 -0
  45. package/docs/ARCHITECTURE.md +67 -7
  46. package/docs/FUNCTIONAL-TESTS.md +27 -12
  47. package/examples/claude-code/SKILL.md +35 -29
  48. package/examples/codex/SKILL.md +35 -29
  49. package/package.json +5 -3
  50. package/plugins/hermes-action/.codex-plugin/plugin.json +30 -0
  51. package/plugins/hermes-action/.mcp.json +8 -0
  52. package/plugins/hermes-action/assets/app-icon.png +0 -0
  53. package/plugins/hermes-action/skills/hermes-action-bridge/SKILL.md +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../src/audit-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAiB;IAC9D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACzD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC;QACvC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { BridgeConfig, PresetConfig } from "./types.js";
2
+ export interface BridgeCapabilities {
3
+ bridge: {
4
+ version: string;
5
+ transport: "stdio" | "http";
6
+ };
7
+ runtime: {
8
+ available: boolean;
9
+ command: string;
10
+ version?: string | undefined;
11
+ error?: string | undefined;
12
+ };
13
+ presets: Array<{
14
+ name: string;
15
+ } & PresetConfig>;
16
+ policy: {
17
+ yoloEnabled: boolean;
18
+ approvalRequiredForExecute: boolean;
19
+ };
20
+ liveDiscovery: {
21
+ supported: false;
22
+ reason: string;
23
+ };
24
+ }
25
+ /**
26
+ * Return only configuration-backed capabilities. Hermes CLI has no stable discovery contract here, so
27
+ * this deliberately never claims that a configured skill or toolset is live on the current runtime.
28
+ */
29
+ export declare function getBridgeCapabilities(config: BridgeConfig, transport?: "stdio" | "http"): BridgeCapabilities;
@@ -0,0 +1,24 @@
1
+ import { checkHermesStatus } from "./status.js";
2
+ import { version } from "./version.js";
3
+ /**
4
+ * Return only configuration-backed capabilities. Hermes CLI has no stable discovery contract here, so
5
+ * this deliberately never claims that a configured skill or toolset is live on the current runtime.
6
+ */
7
+ export function getBridgeCapabilities(config, transport = "stdio") {
8
+ const status = checkHermesStatus(config);
9
+ return {
10
+ bridge: { version, transport },
11
+ runtime: {
12
+ available: status.available,
13
+ command: config.runtime.command,
14
+ ...(status.available ? { version: status.version } : { error: status.error }),
15
+ },
16
+ presets: Object.entries(config.presets).map(([name, preset]) => ({ name, ...structuredClone(preset) })),
17
+ policy: { yoloEnabled: config.policy.yolo, approvalRequiredForExecute: config.policy.requireApprovalFor.length > 0 },
18
+ liveDiscovery: {
19
+ supported: false,
20
+ reason: "Hermes CLI capability discovery is not configured; presets are declarative rather than a live inventory.",
21
+ },
22
+ };
23
+ }
24
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAWvC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,YAA8B,OAAO;IAC/F,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;QAC9B,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAC9E;QACD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QACpH,aAAa,EAAE;YACb,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,0GAA0G;SACnH;KACF,CAAC;AACJ,CAAC"}
package/dist/cli.js CHANGED
@@ -1,17 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { chmodSync, existsSync, mkdirSync, readFileSync, realpathSync, rmdirSync, statSync, unlinkSync, writeFileSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { dirname, resolve } from "node:path";
4
+ import { dirname, join, resolve } from "node:path";
5
5
  import { Argument, Command, Option } from "commander";
6
6
  import { defaultProjectConfig, loadConfig } from "./config.js";
7
7
  import { buildEffectiveRun } from "./run.js";
8
8
  import { runHermesCli } from "./adapters/hermes-cli.js";
9
9
  import { checkHermesStatus } from "./status.js";
10
10
  import { startMcpServer } from "./mcp-server.js";
11
+ import { startBridgeHttpServer } from "./http-server.js";
11
12
  import { version } from "./version.js";
12
13
  import { installHint, installSkills, previewSkills, uninstallHint, uninstallSkills } from "./install/install-service.js";
14
+ import { bridgeMcpLauncher } from "./install/launcher.js";
13
15
  import { mcpSnippets, removeMcpJson, writeMcpJson } from "./install/mcp-config.js";
14
- import { coreChecks, formatDoctor, probeCheck, toReport } from "./doctor.js";
16
+ import { installMcp, uninstallMcp } from "./install/mcp-service.js";
17
+ import { coreChecks, formatDoctor, mcpHandshakeCheck, probeCheck, toReport } from "./doctor.js";
15
18
  const program = new Command();
16
19
  program
17
20
  .name("hermes-action")
@@ -116,19 +119,39 @@ program
116
119
  });
117
120
  program
118
121
  .command("mcp")
119
- .description("Run an MCP server exposing hermes_run, hermes_plan, hermes_presets, and hermes_status")
122
+ .description("Run the local stdio MCP server")
120
123
  .option("--config <path>", "config file path")
121
124
  .action(async (options) => {
122
125
  await startMcpServer(options.config);
123
126
  });
127
+ program
128
+ .command("serve")
129
+ .description("Run the opt-in Streamable HTTP MCP server")
130
+ .option("--config <path>", "config file path")
131
+ .option("--listen <address>", "listen address", "127.0.0.1")
132
+ .option("--port <number>", "listen port", parsePort, 8765)
133
+ .option("--allow-tailnet", "allow direct listening on a Tailscale 100.64.0.0/10 address", false)
134
+ .option("--token-env <name>", "environment variable containing a bearer token")
135
+ .action(async (options) => {
136
+ const config = loadConfig(process.cwd(), options.config);
137
+ const handle = await startBridgeHttpServer({
138
+ config,
139
+ listen: options.listen,
140
+ port: options.port,
141
+ allowTailnet: options.allowTailnet,
142
+ tokenEnv: options.tokenEnv,
143
+ });
144
+ console.log(`Hermes Action Bridge HTTP MCP listening on http://${handle.host}:${handle.port}/mcp`);
145
+ await waitForShutdown(handle);
146
+ });
124
147
  program
125
148
  .command("install")
126
- .description("Install the hermes-action-bridge skill (or print/write MCP config) for a coding agent")
149
+ .description("Install the Hermes skill and MCP server for a coding agent")
127
150
  .addArgument(new Argument("<target>", "which agent").choices(["claude-code", "codex", "all", "mcp"]))
128
151
  .option("--project", "install a project-local skill instead of the global one", false)
129
152
  .option("--project-hint", "also add a hint block to CLAUDE.md / AGENTS.md", false)
130
- .option("--mcp", "also print the MCP config snippets", false)
131
- .option("--write", "for the mcp target, write/merge the project .mcp.json (Claude Code)", false)
153
+ .option("--mcp", "with --project, also print MCP config snippets", false)
154
+ .option("--write", "for the mcp target, write/merge the project .mcp.json instead of global registration", false)
132
155
  .option("--force", "replace an existing managed skill", false)
133
156
  .option("--dry-run", "print planned operations, write nothing", false)
134
157
  .option("--print", "print the generated skill content, write nothing", false)
@@ -139,7 +162,7 @@ program
139
162
  if (options.write)
140
163
  reportChange(writeMcpJson(mcpJsonPath(ctx), options.dryRun), options.dryRun);
141
164
  else
142
- printMcpSnippets();
165
+ reportMcpResults(installMcp("all", { launcher: bridgeLauncher(), dryRun: options.dryRun }));
143
166
  return;
144
167
  }
145
168
  const skillTarget = target;
@@ -154,20 +177,24 @@ program
154
177
  return;
155
178
  }
156
179
  const opts = serviceOptions(options, scope);
157
- const results = installSkills(skillTarget, ctx, opts);
158
- if (options.projectHint)
159
- results.push(...installHint(skillTarget, ctx, opts));
160
- reportResults(results, options.dryRun);
161
- if (options.mcp)
162
- printMcpSnippets();
180
+ if (options.project) {
181
+ const results = installSkills(skillTarget, ctx, opts);
182
+ if (options.projectHint)
183
+ results.push(...installHint(skillTarget, ctx, opts));
184
+ reportResults(results, options.dryRun);
185
+ if (options.mcp)
186
+ printMcpSnippets();
187
+ return;
188
+ }
189
+ installGlobalAgentIntegration(skillTarget, ctx, opts, options.projectHint);
163
190
  });
164
191
  program
165
192
  .command("uninstall")
166
- .description("Remove the hermes-action-bridge skill (or MCP config) for a coding agent")
193
+ .description("Remove the managed Hermes skill and MCP registration for a coding agent")
167
194
  .addArgument(new Argument("<target>", "which agent").choices(["claude-code", "codex", "all", "mcp"]))
168
195
  .option("--project", "remove a project-local skill instead of the global one", false)
169
196
  .option("--project-hint", "also remove the CLAUDE.md / AGENTS.md hint block", false)
170
- .option("--write", "for the mcp target, remove hermes-action from the project .mcp.json", false)
197
+ .option("--write", "for the mcp target, remove hermes-action from the project .mcp.json instead of global registration", false)
171
198
  .option("--force", "remove even a locally modified skill", false)
172
199
  .option("--dry-run", "print planned removals, write nothing", false)
173
200
  .option("--yes", "non-interactive", false)
@@ -177,7 +204,7 @@ program
177
204
  if (options.write)
178
205
  reportChange(removeMcpJson(mcpJsonPath(ctx), options.dryRun), options.dryRun);
179
206
  else
180
- console.log("Use --write to remove hermes-action from the project .mcp.json.");
207
+ reportMcpResults(uninstallMcp("all", { launcher: bridgeLauncher(), dryRun: options.dryRun }));
181
208
  return;
182
209
  }
183
210
  const skillTarget = target;
@@ -187,6 +214,8 @@ program
187
214
  if (options.projectHint)
188
215
  results.push(...uninstallHint(skillTarget, ctx, opts));
189
216
  reportResults(results, options.dryRun);
217
+ if (!options.project)
218
+ reportMcpResults(uninstallMcp(skillTarget, { launcher: bridgeLauncher(), dryRun: options.dryRun }));
190
219
  });
191
220
  program
192
221
  .command("doctor")
@@ -204,7 +233,9 @@ program
204
233
  catch (error) {
205
234
  configError = error instanceof Error ? error.message : String(error);
206
235
  }
207
- const checks = coreChecks(config, ctx, configError);
236
+ const checks = coreChecks(config, ctx, configError, { launcher: bridgeLauncher() });
237
+ if (config)
238
+ checks.push(await mcpHandshakeCheck(config));
208
239
  if (options.probe && config) {
209
240
  try {
210
241
  checks.push(await probeCheck(config));
@@ -227,12 +258,25 @@ function parsePositiveInt(value) {
227
258
  throw new Error(`Expected a positive integer, got: ${value}`);
228
259
  return parsed;
229
260
  }
261
+ function parsePort(value) {
262
+ const parsed = Number.parseInt(value, 10);
263
+ if (!Number.isInteger(parsed) || parsed <= 0 || parsed > 65_535)
264
+ throw new Error(`Expected a port from 1 to 65535, got: ${value}`);
265
+ return parsed;
266
+ }
230
267
  function pathContext() {
231
268
  return { homeDir: homedir(), cwd: process.cwd() };
232
269
  }
233
270
  function mcpJsonPath(ctx) {
234
271
  return resolve(ctx.cwd, ".mcp.json");
235
272
  }
273
+ /** Resolve the installed launcher target once so MCP clients do not depend on an interactive shell PATH. */
274
+ function bridgeLauncher() {
275
+ const script = process.argv[1];
276
+ if (!script)
277
+ throw new Error("Could not resolve the hermes-action executable path.");
278
+ return bridgeMcpLauncher(realpathSync(resolve(script)));
279
+ }
236
280
  function serviceOptions(options, scope) {
237
281
  return { scope, force: options.force, dryRun: options.dryRun };
238
282
  }
@@ -268,4 +312,147 @@ function reportResults(results, dryRun) {
268
312
  }
269
313
  process.exitCode = results.every((result) => result.ok) ? 0 : 1;
270
314
  }
315
+ function reportMcpResults(results) {
316
+ for (const result of results) {
317
+ const { change } = result;
318
+ if (change.action === "refused") {
319
+ console.error(`${result.agent} MCP: refused (${change.reason ?? "unknown reason"})`);
320
+ }
321
+ else {
322
+ console.log(`${result.agent} MCP: ${change.action}${result.dryRun ? " (dry-run)" : ""}`);
323
+ }
324
+ }
325
+ if (!results.every((result) => result.ok))
326
+ process.exitCode = 1;
327
+ }
328
+ /**
329
+ * Refuse the whole global install before writing when either a skill or MCP
330
+ * registration conflicts. Native agent CLIs remain the source of truth for
331
+ * MCP configuration, while the preflight prevents a predictable half-install.
332
+ */
333
+ function installGlobalAgentIntegration(target, ctx, options, includeProjectHint) {
334
+ const launcher = bridgeLauncher();
335
+ const preflightOptions = { ...options, dryRun: true };
336
+ const skillPlan = installSkills(target, ctx, preflightOptions);
337
+ const hintPlan = includeProjectHint ? installHint(target, ctx, preflightOptions) : [];
338
+ const filePlan = [...skillPlan, ...hintPlan];
339
+ const mcpPlan = installMcp(target, { launcher, dryRun: true });
340
+ if (!filePlan.every((result) => result.ok) || !mcpPlan.every((result) => result.ok)) {
341
+ reportResults(filePlan, true);
342
+ reportMcpResults(mcpPlan);
343
+ return;
344
+ }
345
+ if (options.dryRun) {
346
+ reportResults(filePlan, true);
347
+ reportMcpResults(mcpPlan);
348
+ return;
349
+ }
350
+ const installSnapshot = captureInstallSnapshot(skillPlan, hintPlan);
351
+ const mcpResults = installMcp(target, { launcher, dryRun: false });
352
+ if (!mcpResults.every((result) => result.ok)) {
353
+ reportMcpResults(mcpResults);
354
+ return;
355
+ }
356
+ const skillResults = installSkills(target, ctx, options);
357
+ const hintResults = includeProjectHint ? installHint(target, ctx, options) : [];
358
+ const fileResults = [...skillResults, ...hintResults];
359
+ if (!fileResults.every((result) => result.ok)) {
360
+ reportResults(fileResults, false);
361
+ restoreInstallSnapshot(installSnapshot);
362
+ rollbackCreatedMcp(mcpResults, launcher);
363
+ process.exitCode = 1;
364
+ return;
365
+ }
366
+ reportResults(fileResults, false);
367
+ reportMcpResults(mcpResults);
368
+ }
369
+ function captureInstallSnapshot(skillPlan, hintPlan) {
370
+ const files = new Map();
371
+ const skillDirs = new Set();
372
+ for (const result of skillPlan) {
373
+ if (!result.changes.some(isWriteAction))
374
+ continue;
375
+ for (const change of result.changes) {
376
+ const dir = dirname(change.path);
377
+ skillDirs.add(dir);
378
+ captureFile(files, change.path);
379
+ captureFile(files, join(dir, ".hermes-action-managed.json"));
380
+ }
381
+ }
382
+ for (const result of hintPlan) {
383
+ for (const change of result.changes.filter(isWriteAction))
384
+ captureFile(files, change.path);
385
+ }
386
+ return { files, skillDirs };
387
+ }
388
+ function captureFile(snapshots, path) {
389
+ if (snapshots.has(path))
390
+ return;
391
+ if (!existsSync(path)) {
392
+ snapshots.set(path, { path, existed: false });
393
+ return;
394
+ }
395
+ snapshots.set(path, {
396
+ path,
397
+ existed: true,
398
+ content: readFileSync(path),
399
+ mode: statSync(path).mode & 0o777,
400
+ });
401
+ }
402
+ function restoreInstallSnapshot(snapshot) {
403
+ console.error("Restoring skill and instruction files changed by this failed install.");
404
+ for (const [path, file] of snapshot.files) {
405
+ try {
406
+ restoreFile(file);
407
+ }
408
+ catch (error) {
409
+ console.error(`Rollback could not restore ${path}: ${error instanceof Error ? error.message : String(error)}`);
410
+ }
411
+ }
412
+ for (const dir of snapshot.skillDirs) {
413
+ try {
414
+ rmdirSync(dir);
415
+ }
416
+ catch {
417
+ // Removing an empty directory is cosmetic; never remove a non-empty or concurrently changed directory.
418
+ }
419
+ }
420
+ }
421
+ function restoreFile(snapshot) {
422
+ if (!snapshot.existed) {
423
+ if (existsSync(snapshot.path))
424
+ unlinkSync(snapshot.path);
425
+ return;
426
+ }
427
+ if (!snapshot.content || snapshot.mode === undefined)
428
+ throw new Error(`Incomplete rollback snapshot: ${snapshot.path}`);
429
+ mkdirSync(dirname(snapshot.path), { recursive: true });
430
+ writeFileSync(snapshot.path, snapshot.content);
431
+ chmodSync(snapshot.path, snapshot.mode);
432
+ }
433
+ function isWriteAction(change) {
434
+ return change.action === "created" || change.action === "updated";
435
+ }
436
+ function rollbackCreatedMcp(results, launcher) {
437
+ const created = results.filter((result) => result.change.action === "created");
438
+ if (created.length === 0)
439
+ return;
440
+ console.error("Rolling back MCP registrations created by this failed install.");
441
+ for (const result of created) {
442
+ reportMcpResults(uninstallMcp(result.agent, { launcher, dryRun: false }));
443
+ }
444
+ }
445
+ function waitForShutdown(handle) {
446
+ return new Promise((resolve, reject) => {
447
+ let closing = false;
448
+ const shutdown = () => {
449
+ if (closing)
450
+ return;
451
+ closing = true;
452
+ void handle.close().then(resolve, reject);
453
+ };
454
+ process.once("SIGINT", shutdown);
455
+ process.once("SIGTERM", shutdown);
456
+ });
457
+ }
271
458
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/doctor.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type McpCommandRunner, type McpLauncher } from "./install/mcp-service.js";
1
2
  import type { BridgeConfig } from "./types.js";
2
3
  import type { PathContext } from "./install/types.js";
3
4
  export type CheckStatus = "pass" | "warn" | "fail";
@@ -10,9 +11,15 @@ export interface DoctorReport {
10
11
  ok: boolean;
11
12
  checks: DoctorCheck[];
12
13
  }
14
+ export interface DoctorOptions {
15
+ launcher?: McpLauncher | undefined;
16
+ commandRunner?: McpCommandRunner | undefined;
17
+ }
13
18
  /** Synchronous environment checks. The optional `--probe` check is added separately by the caller. */
14
- export declare function coreChecks(config: BridgeConfig | null, ctx: PathContext, configError?: string): DoctorCheck[];
19
+ export declare function coreChecks(config: BridgeConfig | null, ctx: PathContext, configError?: string, options?: DoctorOptions): DoctorCheck[];
15
20
  export declare function toReport(checks: DoctorCheck[]): DoctorReport;
16
21
  /** Optional live check (spends provider tokens): ask Hermes to echo a sentinel through the full pipeline. */
17
22
  export declare function probeCheck(config: BridgeConfig): Promise<DoctorCheck>;
23
+ /** Token-free MCP initialize/list-tools handshake against the current server implementation. */
24
+ export declare function mcpHandshakeCheck(config: BridgeConfig): Promise<DoctorCheck>;
18
25
  export declare function formatDoctor(report: DoctorReport): string;
package/dist/doctor.js CHANGED
@@ -1,19 +1,29 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
3
+ import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
2
4
  import { defaultConfig } from "./config.js";
3
5
  import { checkHermesStatus, versionProbeTimeoutMs } from "./status.js";
4
6
  import { buildEffectiveRun, defaultTimeoutSeconds } from "./run.js";
5
7
  import { runHermesCli } from "./adapters/hermes-cli.js";
6
8
  import { skillStates } from "./install/install-service.js";
9
+ import { inspectMcp } from "./install/mcp-service.js";
10
+ import { createBridgeMcpServer } from "./mcp-server.js";
7
11
  const minNodeMajor = 20;
8
12
  const agentCommand = { "claude-code": "claude", codex: "codex" };
9
13
  /** Synchronous environment checks. The optional `--probe` check is added separately by the caller. */
10
- export function coreChecks(config, ctx, configError) {
14
+ export function coreChecks(config, ctx, configError, options = {}) {
11
15
  const checks = [nodeCheck(), configCheck(config, configError), hermesCheck(config ?? defaultConfig), limitsCheck(config ?? defaultConfig)];
16
+ const skills = new Map(skillStates(ctx, "global").map(({ agent, state }) => [agent, state]));
12
17
  for (const agent of Object.keys(agentCommand)) {
13
- checks.push(agentAvailabilityCheck(agent));
14
- }
15
- for (const { agent, state } of skillStates(ctx, "global")) {
16
- checks.push(skillCheck(agent, state));
18
+ const availability = agentAvailabilityCheck(agent, options.commandRunner);
19
+ const skillState = skills.get(agent) ?? "absent";
20
+ const registration = options.launcher
21
+ ? inspectMcp(agent, options.launcher, options.commandRunner)
22
+ : undefined;
23
+ checks.push(availability.check);
24
+ checks.push(skillCheck(agent, skillState, availability.available, registration));
25
+ if (registration)
26
+ checks.push(mcpCheck(registration, skillState));
17
27
  }
18
28
  return checks;
19
29
  }
@@ -34,6 +44,30 @@ export async function probeCheck(config) {
34
44
  const ok = result.ok && `${result.stdout}${result.stderr}`.includes("BRIDGE_OK");
35
45
  return { id: "probe", status: ok ? "pass" : "warn", detail: ok ? "Hermes responded" : `exit ${result.exitCode}` };
36
46
  }
47
+ /** Token-free MCP initialize/list-tools handshake against the current server implementation. */
48
+ export async function mcpHandshakeCheck(config) {
49
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
50
+ const server = createBridgeMcpServer(config);
51
+ const client = new Client({ name: "hermes-action-doctor", version: "1.0.0" });
52
+ try {
53
+ await server.connect(serverTransport);
54
+ await client.connect(clientTransport);
55
+ const tools = await client.listTools();
56
+ const names = new Set(tools.tools.map((tool) => tool.name));
57
+ const required = ["hermes_run", "hermes_plan", "hermes_capabilities", "hermes_status"];
58
+ const missing = required.filter((name) => !names.has(name));
59
+ return missing.length === 0
60
+ ? { id: "mcp:handshake", status: "pass", detail: `${tools.tools.length} tools available` }
61
+ : { id: "mcp:handshake", status: "fail", detail: `missing tools: ${missing.join(", ")}` };
62
+ }
63
+ catch (error) {
64
+ return { id: "mcp:handshake", status: "fail", detail: error instanceof Error ? error.message : String(error) };
65
+ }
66
+ finally {
67
+ await client.close().catch(() => undefined);
68
+ await server.close().catch(() => undefined);
69
+ }
70
+ }
37
71
  export function formatDoctor(report) {
38
72
  const label = { pass: "ok", warn: "warn", fail: "FAIL" };
39
73
  const lines = report.checks.map((check) => `[${label[check.status]}] ${check.id}${check.detail ? `: ${check.detail}` : ""}`);
@@ -62,14 +96,23 @@ function limitsCheck(config) {
62
96
  : `${defaultTimeoutSeconds("plan")}s plan / ${defaultTimeoutSeconds("execute")}s execute`;
63
97
  return { id: "limits", status: "pass", detail: `context ≤ ${config.runtime.maxContextBytes} bytes, timeout ${timeout}` };
64
98
  }
65
- function agentAvailabilityCheck(agent) {
99
+ function agentAvailabilityCheck(agent, runner) {
66
100
  const command = agentCommand[agent];
67
- const result = spawnSync(command, ["--version"], { encoding: "utf8", timeout: versionProbeTimeoutMs });
101
+ const result = runner
102
+ ? runner(command, ["--version"])
103
+ : (() => {
104
+ const process = spawnSync(command, ["--version"], { encoding: "utf8", timeout: versionProbeTimeoutMs });
105
+ const error = process.error
106
+ ? { code: process.error.code, message: process.error.message }
107
+ : undefined;
108
+ return { status: process.status, stdout: process.stdout ?? "", stderr: process.stderr ?? "", ...(error ? { error } : {}) };
109
+ })();
68
110
  if (result.error)
69
- return { id: agent, status: "warn", detail: `${command} not found on PATH` };
70
- if (result.status !== 0)
71
- return { id: agent, status: "warn", detail: `${command} --version exited with ${result.status ?? `signal ${result.signal}`}` };
72
- return { id: agent, status: "pass", detail: result.stdout.trim() || result.stderr.trim() };
111
+ return { check: { id: agent, status: "warn", detail: `${command} not found on PATH` }, available: false };
112
+ if (result.status !== 0) {
113
+ return { check: { id: agent, status: "warn", detail: `${command} --version exited with ${result.status ?? "unknown status"}` }, available: false };
114
+ }
115
+ return { check: { id: agent, status: "pass", detail: result.stdout.trim() || result.stderr.trim() }, available: true };
73
116
  }
74
117
  const skillStateDetail = {
75
118
  current: "up to date",
@@ -78,7 +121,27 @@ const skillStateDetail = {
78
121
  "user-modified": "modified locally",
79
122
  foreign: "a non-managed file is present",
80
123
  };
81
- function skillCheck(agent, state) {
82
- return { id: `skill:${agent}`, status: state === "current" ? "pass" : "warn", detail: skillStateDetail[state] };
124
+ function skillCheck(agent, state, agentAvailable, registration) {
125
+ const unusedTarget = state === "absent" && !agentAvailable && (!registration || registration.state === "unavailable");
126
+ return {
127
+ id: `skill:${agent}`,
128
+ status: state === "current" ? "pass" : unusedTarget ? "warn" : "fail",
129
+ detail: skillStateDetail[state],
130
+ };
131
+ }
132
+ function mcpCheck(registration, skillState) {
133
+ const unusedTarget = registration.state === "unavailable" && skillState === "absent";
134
+ const detail = {
135
+ absent: "not registered (run: hermes-action install all)",
136
+ current: "registered with the current bridge launcher",
137
+ conflict: registration.detail ?? "a different hermes-action registration is present",
138
+ unavailable: registration.detail ?? "agent CLI is unavailable",
139
+ error: registration.detail ?? "registration could not be inspected",
140
+ };
141
+ return {
142
+ id: `mcp:${registration.agent}`,
143
+ status: registration.state === "current" ? "pass" : unusedTarget ? "warn" : "fail",
144
+ detail: detail[registration.state],
145
+ };
83
146
  }
84
147
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAiE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAiBxD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAA+B,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAO7F,sGAAsG;AACtG,MAAM,UAAU,UAAU,CAAC,MAA2B,EAAE,GAAgB,EAAE,WAAoB,EAAE,UAAyB,EAAE;IACzH,MAAM,MAAM,GAAkB,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,IAAI,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;IAC1J,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7F,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAiB,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;YACnC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;YAC5D,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACjF,IAAI,YAAY;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,6GAA6G;AAC7G,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAoB;IACnD,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,mDAAmD;QAC3D,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjF,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACpH,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAoB;IAC1D,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,kBAAkB,EAAE;YAC1F,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACjH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,KAAK,GAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7H,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9G,CAAC;AAED,SAAS,WAAW,CAAC,MAA2B,EAAE,WAAoB;IACpE,IAAI,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACtE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,IAAI,8BAA8B,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACtF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,uGAAuG;AACvG,SAAS,WAAW,CAAC,MAAoB;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc;QAC3C,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,gBAAgB;QAClD,CAAC,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC;IAC5F,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,MAAM,CAAC,OAAO,CAAC,eAAe,mBAAmB,OAAO,EAAE,EAAE,CAAC;AAC3H,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAiB,EAAE,MAAyB;IAC1E,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACxG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;gBACzB,CAAC,CAAC,EAAE,IAAI,EAAG,OAAO,CAAC,KAA+B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;gBACzF,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7H,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,oBAAoB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5H,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,0BAA0B,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACrJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACzH,CAAC;AAED,MAAM,gBAAgB,GAAiC;IACrD,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,oCAAoC;IAC3C,eAAe,EAAE,kBAAkB;IACnC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,SAAS,UAAU,CAAC,KAAiB,EAAE,KAAmB,EAAE,cAAuB,EAAE,YAA8B;IACjH,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IACtH,OAAO;QACL,EAAE,EAAE,SAAS,KAAK,EAAE;QACpB,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACrE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,YAA6B,EAAE,UAAwB;IACvE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,KAAK,aAAa,IAAI,UAAU,KAAK,QAAQ,CAAC;IACrF,MAAM,MAAM,GAA6C;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,6CAA6C;QACtD,QAAQ,EAAE,YAAY,CAAC,MAAM,IAAI,mDAAmD;QACpF,WAAW,EAAE,YAAY,CAAC,MAAM,IAAI,0BAA0B;QAC9D,KAAK,EAAE,YAAY,CAAC,MAAM,IAAI,qCAAqC;KACpE,CAAC;IACF,OAAO;QACL,EAAE,EAAE,OAAO,YAAY,CAAC,KAAK,EAAE;QAC/B,MAAM,EAAE,YAAY,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAClF,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface ExecutionGate {
2
+ run<T>(operation: () => Promise<T>): Promise<T>;
3
+ }
4
+ /** Reject excess direct MCP work immediately; asynchronous jobs use their own bounded queue. */
5
+ export declare function createExecutionGate(maxConcurrent?: number): ExecutionGate;