@aristanetworks/eos-mcp-server 0.8.0-beta → 0.9.0-beta

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 (88) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +19 -42
  3. package/dist/cli.d.ts +1 -4
  4. package/dist/cli.js +4 -63
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/probe.js +2 -1
  7. package/dist/commands/probe.js.map +1 -1
  8. package/dist/config/diagnostics.d.ts +15 -5
  9. package/dist/config/diagnostics.js +8 -3
  10. package/dist/config/diagnostics.js.map +1 -1
  11. package/dist/config/loadConfig.js +2 -5
  12. package/dist/config/loadConfig.js.map +1 -1
  13. package/dist/config/schema.d.ts +123 -15
  14. package/dist/config/schema.js +14 -1
  15. package/dist/config/schema.js.map +1 -1
  16. package/dist/connection/eosDeviceReader.d.ts +6 -1
  17. package/dist/connection/eosDeviceReader.js +14 -3
  18. package/dist/connection/eosDeviceReader.js.map +1 -1
  19. package/dist/diagnostics/eapiRunner.js +7 -1
  20. package/dist/diagnostics/eapiRunner.js.map +1 -1
  21. package/dist/diagnostics/executor.d.ts +7 -4
  22. package/dist/diagnostics/executor.js +16 -14
  23. package/dist/diagnostics/executor.js.map +1 -1
  24. package/dist/diagnostics/types.d.ts +22 -6
  25. package/dist/eapi/client.js +5 -4
  26. package/dist/eapi/client.js.map +1 -1
  27. package/dist/eapi/types.d.ts +3 -0
  28. package/dist/eapi/types.js.map +1 -1
  29. package/dist/index.js +0 -10
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/createServer.js +21 -21
  32. package/dist/mcp/createServer.js.map +1 -1
  33. package/dist/mcp/tools/ping.d.ts +2 -9
  34. package/dist/mcp/tools/ping.js +13 -26
  35. package/dist/mcp/tools/ping.js.map +1 -1
  36. package/dist/operations/eapiSlots.d.ts +68 -0
  37. package/dist/operations/eapiSlots.js +237 -0
  38. package/dist/operations/eapiSlots.js.map +1 -0
  39. package/dist/operations/readExecution.js +1 -1
  40. package/dist/operations/readExecution.js.map +1 -1
  41. package/dist/serverInfo/buildServerInfo.js +4 -1
  42. package/dist/serverInfo/buildServerInfo.js.map +1 -1
  43. package/dist/serverInfo/types.d.ts +3 -0
  44. package/docs/CHECKPOINT.md +3 -6
  45. package/docs/CODE_WALKTHROUGH.md +6 -11
  46. package/docs/DEMO_SKILLS_YOUTUBE.md +346 -0
  47. package/docs/DESIGN.md +4 -4
  48. package/docs/DIAGNOSTICS.md +26 -74
  49. package/docs/IMPLEMENTATION_PLAN.md +2 -2
  50. package/docs/adr/0002-fail-closed-diagnostic-reservations.md +2 -0
  51. package/docs/adr/0003-durable-diagnostic-ledger.md +2 -0
  52. package/docs/adr/0004-offline-operator-attested-release.md +2 -0
  53. package/docs/adr/0005-multi-destination-ping.md +5 -1
  54. package/docs/adr/0006-in-memory-timed-diagnostic-capacity.md +23 -0
  55. package/docs/adr/0007-per-device-diagnostic-concurrency.md +16 -0
  56. package/docs/adr/0008-read-only-tool-annotations.md +16 -0
  57. package/docs/adr/0009-shared-per-device-eapi-slots.md +40 -0
  58. package/docs/research/eos-diagnostic-lifecycle.md +2 -0
  59. package/docs/research/eos-linter-integration.md +70 -0
  60. package/package.json +1 -1
  61. package/dist/commands/inspectDiagnostics.d.ts +0 -3
  62. package/dist/commands/inspectDiagnostics.js +0 -35
  63. package/dist/commands/inspectDiagnostics.js.map +0 -1
  64. package/dist/commands/releaseDiagnostics.d.ts +0 -9
  65. package/dist/commands/releaseDiagnostics.js +0 -87
  66. package/dist/commands/releaseDiagnostics.js.map +0 -1
  67. package/dist/diagnostics/concurrency.d.ts +0 -33
  68. package/dist/diagnostics/concurrency.js +0 -157
  69. package/dist/diagnostics/concurrency.js.map +0 -1
  70. package/dist/diagnostics/journal.d.ts +0 -14
  71. package/dist/diagnostics/journal.js +0 -317
  72. package/dist/diagnostics/journal.js.map +0 -1
  73. package/dist/diagnostics/journalTypes.d.ts +0 -8
  74. package/dist/diagnostics/journalTypes.js +0 -2
  75. package/dist/diagnostics/journalTypes.js.map +0 -1
  76. package/dist/diagnostics/releaseEvidence.d.ts +0 -502
  77. package/dist/diagnostics/releaseEvidence.js +0 -115
  78. package/dist/diagnostics/releaseEvidence.js.map +0 -1
  79. package/dist/diagnostics/reservationSchema.d.ts +0 -49
  80. package/dist/diagnostics/reservationSchema.js +0 -18
  81. package/dist/diagnostics/reservationSchema.js.map +0 -1
  82. package/dist/diagnostics/statePath.d.ts +0 -4
  83. package/dist/diagnostics/statePath.js +0 -25
  84. package/dist/diagnostics/statePath.js.map +0 -1
  85. package/dist/utils/privateFile.d.ts +0 -3
  86. package/dist/utils/privateFile.js +0 -7
  87. package/dist/utils/privateFile.js.map +0 -1
  88. package/docs/examples/diagnostic-release-evidence.template.json +0 -26
@@ -50,33 +50,49 @@ export interface DiagnosticDefinition {
50
50
  probeCount(execution: PreparedDiagnostic): number;
51
51
  interpret(output: string, execution: PreparedDiagnostic): DiagnosticFinding;
52
52
  }
53
+ /** `reservation_id` doubles as the execution's JSON-RPC request ID. */
53
54
  export interface DiagnosticReservationInfo {
54
55
  reservation_id: string;
55
- rpc_request_id?: string;
56
56
  inventory_hostname: string;
57
57
  diagnostic: DiagnosticRequest["kind"];
58
58
  state: "active" | "uncertain";
59
59
  reserved_at: string;
60
60
  uncertain_since?: string;
61
+ releases_at?: string;
61
62
  reason_code?: string;
62
63
  }
63
- export interface DiagnosticCapacitySnapshot {
64
- scope: "server-instance" | "state-file";
65
- storage_error_code?: string;
66
- limit: number;
64
+ interface DiagnosticSlotCounts {
67
65
  available_count: number;
68
66
  active_count: number;
69
67
  uncertain_count: number;
70
68
  queued_count: number;
69
+ }
70
+ /** Slot usage of one inventory host; only hosts holding or awaiting a slot are listed.
71
+ * The four shared counts are diagnostic slots; `available_count` is the diagnostic headroom,
72
+ * capped by the host's shared eAPI headroom and server-wide availability.
73
+ */
74
+ export interface DiagnosticDeviceCapacity extends DiagnosticSlotCounts {
75
+ inventory_hostname: string;
76
+ read_active_count: number;
77
+ read_queued_count: number;
78
+ }
79
+ /** Top-level counts are server-wide diagnostics; `devices` breaks them down per host, with reads. */
80
+ export interface DiagnosticCapacitySnapshot extends DiagnosticSlotCounts {
81
+ limit: number;
82
+ device_limit: number;
83
+ /** eAPI slots one host may hold across reads and diagnostics. */
84
+ eapi_device_limit: number;
85
+ devices: DiagnosticDeviceCapacity[];
71
86
  reservations: DiagnosticReservationInfo[];
72
87
  }
73
88
  export interface DiagnosticExecutionContext {
74
89
  signal: AbortSignal;
75
90
  requestId: string;
76
91
  }
77
- /** Device execution seam: inventory identity, typed intent, and a pre-journaled attempt ID.
92
+ /** Device execution seam: inventory identity, typed intent, and the reserved attempt ID.
78
93
  * Errors stay uncertain unless classified as not_dispatched/completed by DiagnosticExecutionError.
79
94
  */
80
95
  export interface DiagnosticDeviceRunner {
81
96
  execute(host: InventoryHostModel, request: PreparedDiagnostic, context: DiagnosticExecutionContext): Promise<DiagnosticObservation>;
82
97
  }
98
+ export {};
@@ -28,10 +28,10 @@ export class EapiClient {
28
28
  }
29
29
  /** Execute once in text mode. Active diagnostics must never use JSON fallback retries. */
30
30
  async runTextCommands(connection, commands, options) {
31
- const payload = await this.runCommands(connection, commands, "text", options, options?.requestId);
31
+ const payload = await this.runCommands(connection, commands, "text", options);
32
32
  return buildCommandResults(payload, commands, "text", false);
33
33
  }
34
- async runCommands(connection, commands, format, options, requestId = randomUUID()) {
34
+ async runCommands(connection, commands, format, options) {
35
35
  if (commands.length === 0) {
36
36
  throw new AppError("eapi_commands_missing", "runCommands requires at least one command");
37
37
  }
@@ -43,9 +43,10 @@ export class EapiClient {
43
43
  params: {
44
44
  version: connection.eapiVersion,
45
45
  cmds: wireCommands,
46
- format
46
+ format,
47
+ ...(options?.requestTimeoutSeconds === undefined ? {} : { requestTimeout: options.requestTimeoutSeconds })
47
48
  },
48
- id: requestId
49
+ id: options?.requestId ?? randomUUID()
49
50
  };
50
51
  const requestSignal = buildRequestSignal(connection.timeoutMs, options?.signal);
51
52
  const requestJson = JSON.stringify(requestBody);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/eapi/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/eapi/client.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export interface EapiCommandOptions {
19
19
  }
20
20
  export interface RunTextCommandOptions extends EapiCommandOptions {
21
21
  requestId?: string;
22
+ /** EOS-side runCmds requestTimeout: the device interrupts the command list once it expires. */
23
+ requestTimeoutSeconds?: number;
22
24
  }
23
25
  export interface RunShowCommandOptions extends EapiCommandOptions {
24
26
  includeRawEntries?: boolean;
@@ -50,6 +52,7 @@ export interface EapiJsonRpcRequest {
50
52
  version: EapiVersion;
51
53
  cmds: string[];
52
54
  format: EapiOutputFormat;
55
+ requestTimeout?: number;
53
56
  };
54
57
  id: string;
55
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/eapi/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAwD7C,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnF,CAAC;AAOD,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,mBAA4B;IACrF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,yDAAyD,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,mBAAmB,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QACvF,MAAM,IAAI,QAAQ,CAChB,sBAAsB,EACtB,+CAA+C,mBAAmB,gCAAgC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAC1H,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/eapi/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA0D7C,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnF,CAAC;AAOD,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,mBAA4B;IACrF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,yDAAyD,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,mBAAmB,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QACvF,MAAM,IAAI,QAAQ,CAChB,sBAAsB,EACtB,+CAA+C,mBAAmB,gCAAgC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAC1H,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC"}
package/dist/index.js CHANGED
@@ -3,8 +3,6 @@ import { randomUUID } from "node:crypto";
3
3
  import { AppError, toErrorMessage } from "./core/errors.js";
4
4
  import { parseCliArgs, printHelp, printVersion } from "./cli.js";
5
5
  import { runProbe } from "./commands/probe.js";
6
- import { runInspectDiagnostics } from "./commands/inspectDiagnostics.js";
7
- import { runReleaseDiagnostics } from "./commands/releaseDiagnostics.js";
8
6
  import { runValidateInventory } from "./commands/validateInventory.js";
9
7
  import { printServerInfo } from "./commands/printServerInfo.js";
10
8
  import { loadServerConfig } from "./config/loadConfig.js";
@@ -42,14 +40,6 @@ async function main() {
42
40
  printServerInfo(runtimeContext, cli.json ?? false);
43
41
  return;
44
42
  }
45
- case "release-diagnostics": {
46
- process.exitCode = await runReleaseDiagnostics(config, cli);
47
- return;
48
- }
49
- case "inspect-diagnostics": {
50
- process.exitCode = await runInspectDiagnostics(config, cli.json ?? false);
51
- return;
52
- }
53
43
  case "probe": {
54
44
  if (!cli.target) {
55
45
  throw new AppError("cli_missing_target", "probe requires a target via --target");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { EapiDeviceReader } from "../connection/eosDeviceReader.js";
5
5
  import { APP_NAME, APP_VERSION } from "../core/version.js";
6
6
  import { toErrorMessage } from "../core/errors.js";
7
- import { defaultDiagnosticStateFile, diagnosticInventoryIdentity } from "../diagnostics/statePath.js";
8
7
  import { EapiClient } from "../eapi/client.js";
9
8
  import { EapiDiagnosticRunner } from "../diagnostics/eapiRunner.js";
10
9
  import { DiagnosticExecutor } from "../diagnostics/executor.js";
10
+ import { EapiSlots, eapiSlotLimits } from "../operations/eapiSlots.js";
11
11
  import { buildPingToolResult, pingInputSchema } from "./tools/ping.js";
12
12
  import { buildGetFactsToolResult, getFactsInputSchema } from "./tools/getFacts.js";
13
13
  import { buildGetRunningConfigToolResult, getRunningConfigInputSchema } from "./tools/getRunningConfig.js";
@@ -16,54 +16,68 @@ import { buildListInventoryToolResult, listInventoryInputSchema } from "./tools/
16
16
  import { buildProbeDevicesToolResult, probeDevicesInputSchema } from "./tools/probeDevices.js";
17
17
  import { buildRunShowToolResult, runShowInputSchema } from "./tools/runShow.js";
18
18
  import { buildShowLoggingToolResult, showLoggingInputSchema } from "./tools/showLogging.js";
19
+ // Every tool leaves device state unchanged, which lets clients run independent
20
+ // calls concurrently; server-side limits still bound diagnostics (ADR 0008).
21
+ // Most tools reach only inventory devices.
22
+ const closedWorldReadOnly = { readOnlyHint: true, openWorldHint: false };
23
+ // Ping destinations need not be in inventory.
24
+ const openWorldReadOnly = { readOnlyHint: true, openWorldHint: true };
19
25
  function buildToolDefinitions(deps) {
20
26
  return [
21
27
  {
22
28
  name: "eos_get_server_info",
23
29
  description: "Return a sanitized summary of current server capabilities, limits, runtime mode, and inventory summary.",
24
30
  inputSchema: getServerInfoInputSchema,
31
+ annotations: closedWorldReadOnly,
25
32
  handler: async () => buildGetServerInfoToolResult(deps.runtimeContext, deps.diagnostics.getCapacity())
26
33
  },
27
34
  {
28
35
  name: "eos_list_inventory",
29
36
  description: "Return a sanitized operational view of the loaded inventory. By default only EOS-eligible hosts are shown, while all groups remain visible with actionable status.",
30
37
  inputSchema: listInventoryInputSchema,
38
+ annotations: closedWorldReadOnly,
31
39
  handler: async (args) => buildListInventoryToolResult(deps.inventoryModel, args)
32
40
  },
33
41
  {
34
42
  name: "eos_probe_devices",
35
43
  description: "Probe EOS device readiness for a host or group target by validating connectivity, authentication, and harmless command execution.",
36
44
  inputSchema: probeDevicesInputSchema,
45
+ annotations: closedWorldReadOnly,
37
46
  handler: async (args) => buildProbeDevicesToolResult(deps.inventoryModel, deps.config, args, deps.deviceReader)
38
47
  },
39
48
  {
40
49
  name: "eos_ping",
41
50
  description: "Run bounded, non-configuring ping diagnostics from an inventory host or group to one or more destinations concurrently. Requires explicit diagnostic permission. Destinations are unicast IP literals. Returns one result per host and destination; execution success is separate from reachability, and no replies do not identify a cause.",
42
51
  inputSchema: pingInputSchema,
52
+ annotations: openWorldReadOnly,
43
53
  handler: async (args, extra) => buildPingToolResult(args, deps.diagnostics, extra.signal)
44
54
  },
45
55
  {
46
56
  name: "eos_run_show",
47
57
  description: "Run one or more EOS show commands against a host or group target. Supports auto/json/text output modes with strict show-only validation.",
48
58
  inputSchema: runShowInputSchema,
59
+ annotations: closedWorldReadOnly,
49
60
  handler: async (args) => buildRunShowToolResult(deps.inventoryModel, deps.config, args, deps.deviceReader)
50
61
  },
51
62
  {
52
63
  name: "eos_show_logging",
53
64
  description: "Retrieve bounded EOS logging output for a host or group target using a minimum severity threshold and message-count limit.",
54
65
  inputSchema: showLoggingInputSchema,
66
+ annotations: closedWorldReadOnly,
55
67
  handler: async (args) => buildShowLoggingToolResult(deps.inventoryModel, deps.config, args, deps.deviceReader)
56
68
  },
57
69
  {
58
70
  name: "eos_get_facts",
59
71
  description: "Collect a fixed core set of EOS device facts for a host or group target.",
60
72
  inputSchema: getFactsInputSchema,
73
+ annotations: closedWorldReadOnly,
61
74
  handler: async (args) => buildGetFactsToolResult(deps.inventoryModel, deps.config, args, deps.deviceReader)
62
75
  },
63
76
  {
64
77
  name: "eos_get_running_config",
65
78
  description: "Retrieve running configuration text for a host target, or for a group target when a raw EOS section selector is provided.",
66
79
  inputSchema: getRunningConfigInputSchema,
80
+ annotations: closedWorldReadOnly,
67
81
  handler: async (args) => buildGetRunningConfigToolResult(deps.inventoryModel, deps.config, args, deps.deviceReader)
68
82
  }
69
83
  ];
@@ -76,18 +90,9 @@ export async function startMcpServer(config, inventoryModel) {
76
90
  inventorySummary: inventoryModel.summary
77
91
  };
78
92
  const client = new EapiClient();
79
- const deviceReader = new EapiDeviceReader(config, client);
80
- const journal = inventoryModel.hosts.some((host) => host.diagnosticsAllowed)
81
- ? (await import("../diagnostics/journal.js")).openDiagnosticJournal(config.diagnostics.stateFile ?? defaultDiagnosticStateFile(inventoryModel.path), diagnosticInventoryIdentity(inventoryModel.path))
82
- : undefined;
83
- let diagnostics;
84
- try {
85
- diagnostics = new DiagnosticExecutor(inventoryModel, config, new EapiDiagnosticRunner(config, client), journal);
86
- }
87
- catch (error) {
88
- journal?.close();
89
- throw error;
90
- }
93
+ const slots = new EapiSlots(eapiSlotLimits(config), config.diagnostics.commandTimeoutMs);
94
+ const deviceReader = new EapiDeviceReader(config, client, slots);
95
+ const diagnostics = new DiagnosticExecutor(inventoryModel, config, new EapiDiagnosticRunner(config, client), slots);
91
96
  const server = new McpServer({
92
97
  name: APP_NAME,
93
98
  version: APP_VERSION
@@ -96,7 +101,8 @@ export async function startMcpServer(config, inventoryModel) {
96
101
  for (const tool of buildToolDefinitions({ runtimeContext, inventoryModel, config, deviceReader, diagnostics })) {
97
102
  registerTool(tool.name, {
98
103
  description: tool.description,
99
- inputSchema: tool.inputSchema
104
+ inputSchema: tool.inputSchema,
105
+ annotations: tool.annotations
100
106
  }, tool.handler);
101
107
  }
102
108
  const stop = () => {
@@ -110,13 +116,7 @@ export async function startMcpServer(config, inventoryModel) {
110
116
  process.off("SIGINT", stop);
111
117
  process.off("SIGTERM", stop);
112
118
  process.stdin.off("end", stop);
113
- try {
114
- diagnostics.close();
115
- }
116
- catch (error) {
117
- console.error(toErrorMessage(error));
118
- process.exitCode = 1;
119
- }
119
+ diagnostics.close();
120
120
  };
121
121
  server.server.onclose = cleanup;
122
122
  process.once("SIGINT", stop);
@@ -1 +1 @@
1
- {"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../src/mcp/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,gBAAgB,EAAwB,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvE,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAU5F,SAAS,oBAAoB,CAAC,IAA4B;IACxD,OAAO;QACL;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,yGAAyG;YACtH,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;SACvG;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,oKAAoK;YACjL,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,KAAK,EAAE,IAA8C,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;SAC3H;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,mIAAmI;YAChJ,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK,EAAE,IAA6C,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SACzJ;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,8UAA8U;YAC3V,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,KAAK,EAAE,IAAqC,EAAE,KAA8B,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;SACpJ;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,0IAA0I;YACvJ,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAwC,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SAC/I;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,4HAA4H;YACzI,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,KAAK,EAAE,IAA4C,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SACvJ;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,0EAA0E;YACvF,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,KAAK,EAAE,IAAyC,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SACjJ;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,2HAA2H;YACxI,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,KAAK,EAAE,IAAiD,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SACjK;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAA4B,EAAE,cAA8B;IAC/F,MAAM,cAAc,GAAyB;QAC3C,UAAU,EAAE,UAAU,EAAE;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;QACN,gBAAgB,EAAE,cAAc,CAAC,OAAO;KACzC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC1E,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CACjE,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,0BAA0B,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,cAAc,CAAC,IAAI,CAAC,CAClI;QACD,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAClH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAI3C,CAAC;IAEV,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/G,YAAY,CACV,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD,IAAI,CAAC,OAA8E,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC3C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC;YAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../src/mcp/createServer.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,15 @@ export declare const pingInputSchema: z.ZodObject<{
8
8
  source: z.ZodOptional<z.ZodString>;
9
9
  include_raw: z.ZodDefault<z.ZodBoolean>;
10
10
  }, "strict", z.ZodTypeAny, {
11
- target: string;
12
11
  destinations: string[];
12
+ target: string;
13
13
  include_raw: boolean;
14
14
  count?: number | undefined;
15
15
  vrf?: string | undefined;
16
16
  source?: string | undefined;
17
17
  }, {
18
- target: string;
19
18
  destinations: string[];
19
+ target: string;
20
20
  count?: number | undefined;
21
21
  vrf?: string | undefined;
22
22
  source?: string | undefined;
@@ -28,11 +28,4 @@ export declare function buildPingToolResult(args: z.infer<typeof pingInputSchema
28
28
  text: string;
29
29
  }[];
30
30
  structuredContent: Record<string, unknown>;
31
- } | {
32
- isError: boolean;
33
- content: {
34
- type: "text";
35
- text: string;
36
- }[];
37
- structuredContent: Record<string, unknown>;
38
31
  }>;
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { AppError } from "../../core/errors.js";
3
2
  import { buildJsonToolResult } from "../toolResult.js";
4
3
  export const pingInputSchema = z.object({
5
4
  target: z.string().min(1).describe("Inventory host or group executing the diagnostic"),
@@ -11,30 +10,18 @@ export const pingInputSchema = z.object({
11
10
  include_raw: z.boolean().default(false)
12
11
  }).strict("Unrecognized field. eos_ping accepts target, destinations, count, vrf, source, and include_raw; use destinations: [\"<ip>\"] for a single ping");
13
12
  export async function buildPingToolResult(args, executor, signal) {
14
- try {
15
- const payload = await executor.execute({
16
- target: args.target,
17
- request: {
18
- kind: "ping",
19
- destinations: args.destinations,
20
- ...(args.count === undefined ? {} : { count: args.count }),
21
- ...(args.vrf === undefined ? {} : { vrf: args.vrf }),
22
- ...(args.source === undefined ? {} : { source: args.source })
23
- },
24
- includeRaw: args.include_raw,
25
- ...(signal === undefined ? {} : { signal })
26
- });
27
- return buildJsonToolResult(payload);
28
- }
29
- catch (error) {
30
- if (error instanceof AppError && (error.code === "diagnostic_capacity_uncertain" || error.code.startsWith("diagnostic_state_"))) {
31
- // The SDK otherwise reduces thrown errors to text and drops AppError.code.
32
- return {
33
- ...buildJsonToolResult({ error_code: error.code, message: error.message }),
34
- isError: true
35
- };
36
- }
37
- throw error;
38
- }
13
+ const payload = await executor.execute({
14
+ target: args.target,
15
+ request: {
16
+ kind: "ping",
17
+ destinations: args.destinations,
18
+ ...(args.count === undefined ? {} : { count: args.count }),
19
+ ...(args.vrf === undefined ? {} : { vrf: args.vrf }),
20
+ ...(args.source === undefined ? {} : { source: args.source })
21
+ },
22
+ includeRaw: args.include_raw,
23
+ ...(signal === undefined ? {} : { signal })
24
+ });
25
+ return buildJsonToolResult(payload);
39
26
  }
40
27
  //# sourceMappingURL=ping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/mcp/tools/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACtF,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5C,QAAQ,CAAC,+KAA+K,CAAC;IAC5L,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;IAC5J,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC/G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAClH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAC,MAAM,CAAC,gJAAgJ,CAAC,CAAC;AAE5J,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAqC,EACrC,QAA4B,EAC5B,MAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAC9D;YACD,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,+BAA+B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAChI,2EAA2E;YAC3E,OAAO;gBACL,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/mcp/tools/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACtF,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5C,QAAQ,CAAC,+KAA+K,CAAC;IAC5L,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;IAC5J,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC/G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAClH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAC,MAAM,CAAC,gJAAgJ,CAAC,CAAC;AAE5J,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAqC,EACrC,QAA4B,EAC5B,MAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SAC9D;QACD,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { DiagnosticCapacitySnapshot, DiagnosticRequest } from "../diagnostics/types.js";
2
+ interface DiagnosticReservationIntent {
3
+ inventoryHostname: string;
4
+ diagnostic: DiagnosticRequest["kind"];
5
+ }
6
+ export interface DiagnosticReservation {
7
+ readonly requestId: string;
8
+ complete(): void;
9
+ markUncertain(reasonCode: string): void;
10
+ }
11
+ export interface EapiSlotLimits {
12
+ /** Slots one inventory host may hold across reads and diagnostics. */
13
+ deviceLimit: number;
14
+ /** Of those, the slots diagnostics may hold on one host, so the rest stay free for reads. */
15
+ diagnosticDeviceLimit: number;
16
+ /** Diagnostic slots shared by every device in the server process. Reads have no server-wide limit. */
17
+ diagnosticServerLimit: number;
18
+ }
19
+ /** One instance per server process, shared by every eAPI request (ADR 0009). A slot is granted only
20
+ * while its device has room and, for a diagnostic, its device's diagnostic share and the server-wide
21
+ * diagnostic ceiling have room; waiters are served oldest first, skipping those that cannot run yet
22
+ * (ADR 0007). A read frees its slot when its request settles. A diagnostic slot with unknown remote
23
+ * completion stays held for the execution budget, then frees itself; a late confirmed response frees
24
+ * it sooner (ADR 0006).
25
+ */
26
+ export declare class EapiSlots {
27
+ private readonly limits;
28
+ private readonly uncertainHoldMs;
29
+ /** Held diagnostic slots; an uncertain slot carries the timer that frees it. */
30
+ private readonly reservations;
31
+ private readonly readsHeldByDevice;
32
+ private readonly waiting;
33
+ private closed;
34
+ constructor(limits: EapiSlotLimits, uncertainHoldMs: number);
35
+ close(): void;
36
+ /** Top-level counts cover diagnostics; `devices` also shows each host's read slots. */
37
+ snapshot(): DiagnosticCapacitySnapshot;
38
+ /** Per-host counts for every host holding or awaiting a slot, sorted by hostname. */
39
+ private deviceBreakdown;
40
+ /** Waits for a read slot on the host; the returned function frees it. */
41
+ acquireRead(signal: AbortSignal | undefined, inventoryHostname: string): Promise<() => void>;
42
+ acquireDiagnostic(signal: AbortSignal | undefined, intent: DiagnosticReservationIntent): Promise<DiagnosticReservation>;
43
+ private enqueue;
44
+ private hasRoom;
45
+ /** Diagnostic slots a host could take now: the tightest of its diagnostic share, its shared device
46
+ * slots, and the server-wide diagnostic slots still free. Admission and the snapshot both use it.
47
+ */
48
+ private diagnosticHeadroom;
49
+ /** Counted from the held reservations, which never exceed the server-wide diagnostic limit. */
50
+ private diagnosticSlotsHeldBy;
51
+ private reserveRead;
52
+ /** Keeps only hosts that hold reads, so the snapshot lists no idle hosts. */
53
+ private adjustReadsHeld;
54
+ private reserveDiagnostic;
55
+ private freeDiagnostic;
56
+ /** Grant the oldest waiters that can run now; a waiter that cannot run yet keeps its place. */
57
+ private grantWaiting;
58
+ private markUncertain;
59
+ }
60
+ /** Limits from config: top-level `deviceConcurrency` per device, `diagnostics.*` for the diagnostic share. */
61
+ export declare function eapiSlotLimits(config: {
62
+ deviceConcurrency: number;
63
+ diagnostics: {
64
+ deviceConcurrency: number;
65
+ maxConcurrentDiagnostics: number;
66
+ };
67
+ }): EapiSlotLimits;
68
+ export {};