@calltelemetry/ct-lab-mcp 0.8.14 → 0.8.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -182,6 +182,20 @@ operation inputs, and the CLI's dry-run / apply receipt workflow. Legacy
182
182
  guest, storage, snapshot, CUBE lease, and appliance mutations that do not yet
183
183
  have an identity-bound bridge still return `CANONICAL_OPERATION_REQUIRES_BRIDGE`.
184
184
 
185
+ Canonical host reads dispatch one identity-bound CLI discovery per requested
186
+ host. Multi-host reads keep successful host payloads and return
187
+ `partial: true` with structured `discovery_unavailable` warnings for failed
188
+ peers; an exact-host read, or a read where every requested host fails, remains
189
+ fail-closed. `list_inventory` consumes the canonical
190
+ `calltelemetry-lab-vm-inventory/v1` partial-discovery contract and may project
191
+ its rows by exact host or hypervisor without creating another inventory. Exact
192
+ host reads invoke `vm inventory --host-asset-id`, hypervisor reads invoke
193
+ `vm inventory --hypervisor`, and only all-scope reads invoke
194
+ `vm inventory --all`.
195
+ Warnings are preserved, with the current singleton ESXi warning bound to its
196
+ canonical host identity. Status, template, text, and tag projection remains
197
+ unsupported until those fields have an authoritative canonical CLI contract.
198
+
185
199
  `lab_mission` is the bounded façade for `lab-inventory mission run`. It accepts
186
200
  an immutable manifest path and canonical SHA-256, plans by default, and requires
187
201
  the exact asset confirmation plus a clean registered executor checkout for
@@ -27,9 +27,9 @@ export declare const HostMaintenanceShutdownInputSchema: z.ZodEffects<z.ZodObjec
27
27
  lockTimeoutSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
28
28
  }, "strip", z.ZodTypeAny, {
29
29
  reason: string;
30
+ hostAssetId: string;
30
31
  operationId: string;
31
32
  apply: boolean;
32
- hostAssetId: string;
33
33
  lockTimeoutSeconds: number;
34
34
  guestShutdownTimeoutSeconds: number;
35
35
  maintenanceTimeoutSeconds: number;
@@ -38,8 +38,8 @@ export declare const HostMaintenanceShutdownInputSchema: z.ZodEffects<z.ZodObjec
38
38
  planDigest?: string | undefined;
39
39
  }, {
40
40
  reason: string;
41
- operationId: string;
42
41
  hostAssetId: string;
42
+ operationId: string;
43
43
  apply?: boolean | undefined;
44
44
  receiptFile?: string | undefined;
45
45
  confirmHostAssetId?: string | undefined;
@@ -49,9 +49,9 @@ export declare const HostMaintenanceShutdownInputSchema: z.ZodEffects<z.ZodObjec
49
49
  maintenanceTimeoutSeconds?: number | undefined;
50
50
  }>, {
51
51
  reason: string;
52
+ hostAssetId: string;
52
53
  operationId: string;
53
54
  apply: boolean;
54
- hostAssetId: string;
55
55
  lockTimeoutSeconds: number;
56
56
  guestShutdownTimeoutSeconds: number;
57
57
  maintenanceTimeoutSeconds: number;
@@ -60,8 +60,8 @@ export declare const HostMaintenanceShutdownInputSchema: z.ZodEffects<z.ZodObjec
60
60
  planDigest?: string | undefined;
61
61
  }, {
62
62
  reason: string;
63
- operationId: string;
64
63
  hostAssetId: string;
64
+ operationId: string;
65
65
  apply?: boolean | undefined;
66
66
  receiptFile?: string | undefined;
67
67
  confirmHostAssetId?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"list-hosts.d.ts","sourceRoot":"","sources":["../../../src/tools/list-hosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,yEAAyE;IACzE,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED,eAAO,MAAM,mBAAmB;;;;;CAqB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAAgC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,YAAK,EAC/B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA4EzB"}
1
+ {"version":3,"file":"list-hosts.d.ts","sourceRoot":"","sources":["../../../src/tools/list-hosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,yEAAyE;IACzE,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED,eAAO,MAAM,mBAAmB;;;;;CAqB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAAgC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA4MrE,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,YAAK,EAC/B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAsEzB"}
@@ -4,9 +4,9 @@
4
4
  * across Proxmox VE (proxmox-lab, proxmox-mini) and VMware ESXi (esxi-intel-192-168-123-176).
5
5
  */
6
6
  import { z } from "zod";
7
- import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
7
+ import { ProxmoxErrorCode, createToolErrorResult, createToolSuccessResult, } from "../types/mcp.js";
8
8
  import { formatHostSummary, formatUnifiedHostCapacities } from "../utils/formatters.js";
9
- import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
9
+ import { canonicalMode } from "./canonical-guard.js";
10
10
  export const ListHostsInputShape = {
11
11
  host: z
12
12
  .enum(["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "esxi-intel-192-168-123-176", "all"])
@@ -30,14 +30,153 @@ export const ListHostsInputShape = {
30
30
  .describe("Output format: 'table' for human-readable markdown table, 'json' for raw structured JSON."),
31
31
  };
32
32
  export const ListHostsInputSchema = z.object(ListHostsInputShape);
33
+ const CANONICAL_HOSTS = [
34
+ {
35
+ hostAssetId: "proxmox-lab",
36
+ hypervisor: "proxmox",
37
+ command: ["proxmox", "discover", "--host-asset-id", "proxmox-lab", "--full"],
38
+ },
39
+ {
40
+ hostAssetId: "proxmox-minis-lab",
41
+ hypervisor: "proxmox",
42
+ command: ["proxmox", "discover", "--host-asset-id", "proxmox-minis-lab", "--full"],
43
+ },
44
+ {
45
+ hostAssetId: "esxi-intel-192-168-123-176",
46
+ hypervisor: "esxi",
47
+ command: ["esxi", "discover"],
48
+ },
49
+ ];
50
+ function canonicalHostId(host) {
51
+ return host === "proxmox-mini" ? "proxmox-minis-lab" : host;
52
+ }
53
+ function selectedCanonicalHosts(args) {
54
+ const requestedHost = canonicalHostId(args.host);
55
+ return CANONICAL_HOSTS.filter((spec) => (requestedHost === "all" || spec.hostAssetId === requestedHost)
56
+ && (args.hypervisorType === "all" || spec.hypervisor === args.hypervisorType));
57
+ }
58
+ function parseCanonicalJson(value) {
59
+ try {
60
+ return JSON.parse(value);
61
+ }
62
+ catch {
63
+ return undefined;
64
+ }
65
+ }
66
+ function canonicalFailureMessage(stdout, stderr, hostAssetId) {
67
+ const processStderr = stderr.trim();
68
+ if (processStderr)
69
+ return processStderr;
70
+ const parsed = parseCanonicalJson(stdout);
71
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
72
+ const receipt = parsed;
73
+ const nestedStderr = typeof receipt.stderr === "string" ? receipt.stderr.trim() : "";
74
+ const nestedStdout = typeof receipt.stdout === "string" ? receipt.stdout.trim() : "";
75
+ if (nestedStderr || nestedStdout)
76
+ return nestedStderr || nestedStdout;
77
+ }
78
+ return stdout.trim() || `canonical discovery failed for ${hostAssetId}`;
79
+ }
80
+ function canonicalDiscoveryUnavailable(spec, result) {
81
+ if (result.timedOut)
82
+ return true;
83
+ const message = canonicalFailureMessage(result.stdout, result.stderr, spec.hostAssetId);
84
+ if (spec.hypervisor === "proxmox") {
85
+ return /\bProxmox ticket request transport failed\b/i.test(message)
86
+ || /\bProxmox API (?:GET|POST|PUT|PATCH|DELETE) \/\S+ transport failed\b/i.test(message);
87
+ }
88
+ return /\bESXi SOAP request failed:/i.test(message)
89
+ && /(?:connection (?:refused|reset|timed out)|timed out|no route to host|network is unreachable|temporary failure in name resolution|name or service not known|nodename nor servname provided|remote end closed connection)/i.test(message);
90
+ }
91
+ async function handleCanonicalListHosts(args, context) {
92
+ const bridge = context.canonicalBridge;
93
+ if (!bridge) {
94
+ return createToolErrorResult("CANONICAL_INVENTORY_UNAVAILABLE", "canonical lab bridge is not available", { operation: "list_hosts" });
95
+ }
96
+ const selected = selectedCanonicalHosts(args);
97
+ if (selected.length === 0) {
98
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "The requested host does not belong to the requested hypervisor type.", {
99
+ host: canonicalHostId(args.host),
100
+ hypervisorType: args.hypervisorType,
101
+ });
102
+ }
103
+ let outcomes;
104
+ try {
105
+ outcomes = await Promise.all(selected.map(async (spec) => ({
106
+ spec,
107
+ result: await bridge.run(spec.command),
108
+ })));
109
+ }
110
+ catch (error) {
111
+ return createToolErrorResult("CANONICAL_INVENTORY_UNAVAILABLE", error instanceof Error ? error.message : String(error), { operation: "list_hosts" });
112
+ }
113
+ const hosts = {};
114
+ const warnings = [];
115
+ const commands = [];
116
+ for (const { spec, result } of outcomes) {
117
+ commands.push(result.command);
118
+ if (result.exitCode !== 0) {
119
+ const message = canonicalFailureMessage(result.stdout, result.stderr, spec.hostAssetId);
120
+ if (!canonicalDiscoveryUnavailable(spec, result)) {
121
+ return createToolErrorResult("CANONICAL_OPERATION_FAILED", message, {
122
+ operation: "list_hosts",
123
+ hostAssetId: spec.hostAssetId,
124
+ hypervisor: spec.hypervisor,
125
+ command: result.command,
126
+ exitCode: result.exitCode,
127
+ ...(result.signalCode ? { signalCode: result.signalCode } : {}),
128
+ ...(result.timedOut ? { timedOut: true } : {}),
129
+ });
130
+ }
131
+ warnings.push({
132
+ hypervisor: spec.hypervisor,
133
+ host_asset_id: spec.hostAssetId,
134
+ code: "discovery_unavailable",
135
+ message,
136
+ });
137
+ continue;
138
+ }
139
+ const payload = parseCanonicalJson(result.stdout);
140
+ if (spec.hypervisor === "proxmox") {
141
+ const hostPayload = payload && typeof payload === "object" && !Array.isArray(payload)
142
+ ? payload[spec.hostAssetId]
143
+ : undefined;
144
+ if (!hostPayload
145
+ || typeof hostPayload !== "object"
146
+ || Array.isArray(hostPayload)
147
+ || hostPayload.host_asset_id !== spec.hostAssetId) {
148
+ return createToolErrorResult("CANONICAL_CONTRACT_INVALID", `canonical Proxmox discovery did not return exact host identity ${spec.hostAssetId}`, { operation: "list_hosts", hostAssetId: spec.hostAssetId, command: result.command });
149
+ }
150
+ hosts[spec.hostAssetId] = hostPayload;
151
+ continue;
152
+ }
153
+ if (!Array.isArray(payload) || !payload.every((row) => row && typeof row === "object" && !Array.isArray(row))) {
154
+ return createToolErrorResult("CANONICAL_CONTRACT_INVALID", `canonical ESXi discovery returned an invalid payload for ${spec.hostAssetId}`, { operation: "list_hosts", hostAssetId: spec.hostAssetId, command: result.command });
155
+ }
156
+ hosts[spec.hostAssetId] = payload;
157
+ }
158
+ warnings.sort((left, right) => left.host_asset_id.localeCompare(right.host_asset_id));
159
+ const requestedHosts = selected.map((spec) => spec.hostAssetId);
160
+ const partial = warnings.length > 0;
161
+ if (Object.keys(hosts).length === 0) {
162
+ return createToolErrorResult("CANONICAL_OPERATION_FAILED", `canonical discovery failed for every requested host: ${requestedHosts.join(", ")}`, { operation: "list_hosts", requestedHosts, partial, warnings, commands });
163
+ }
164
+ const payload = {
165
+ success: true,
166
+ operation: "list_hosts",
167
+ requestedHosts,
168
+ partial,
169
+ result: hosts,
170
+ warnings,
171
+ commands,
172
+ };
173
+ return createToolSuccessResult(JSON.stringify(payload, null, 2), payload);
174
+ }
33
175
  export async function handleListHosts(rawArgs = {}, context) {
34
176
  try {
35
177
  const args = ListHostsInputSchema.parse(rawArgs);
36
178
  if (canonicalMode(context)) {
37
- if (args.host !== "all" || args.hypervisorType !== "all" || args.refresh) {
38
- return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical list_hosts returns the complete inventory-bound host projection; filter the returned records without a second control plane.");
39
- }
40
- return runCanonicalOperation(context.canonicalBridge, "list_hosts", ["proxmox", "discover", "--all", "--full"]);
179
+ return handleCanonicalListHosts(args, context);
41
180
  }
42
181
  const hostFilter = args.host === "all" ? undefined : args.host;
43
182
  if (context.hypervisorManager) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-hosts.js","sourceRoot":"","sources":["../../../src/tools/list-hosts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-hosts.js","sourceRoot":"","sources":["../../../src/tools/list-hosts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-inventory.d.ts","sourceRoot":"","sources":["../../../src/tools/list-inventory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,eAAO,MAAM,uBAAuB;;;;;;;;;;CAyCnC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,YAAK,EACnC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA4FzB"}
1
+ {"version":3,"file":"list-inventory.d.ts","sourceRoot":"","sources":["../../../src/tools/list-inventory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,eAAO,MAAM,uBAAuB;;;;;;;;;;CAyCnC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AA+S7E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,YAAK,EACnC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAuEzB"}
@@ -4,9 +4,9 @@
4
4
  * protected flag, release version, and Linear-bound claim leases.
5
5
  */
6
6
  import { z } from "zod";
7
- import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
7
+ import { ProxmoxErrorCode, createToolErrorResult, createToolSuccessResult, } from "../types/mcp.js";
8
8
  import { formatUnifiedInventory } from "../utils/formatters.js";
9
- import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
9
+ import { canonicalMode } from "./canonical-guard.js";
10
10
  export const ListInventoryInputShape = {
11
11
  hypervisor: z
12
12
  .enum(["proxmox", "esxi", "all"])
@@ -50,28 +50,225 @@ export const ListInventoryInputShape = {
50
50
  .describe("Output format: 'table' for human-readable markdown table, 'json' for raw structured JSON."),
51
51
  };
52
52
  export const ListInventoryInputSchema = z.object(ListInventoryInputShape);
53
+ const CANONICAL_HOST_IDS = new Set([
54
+ "proxmox-lab",
55
+ "proxmox-minis-lab",
56
+ "esxi-intel-192-168-123-176",
57
+ ]);
58
+ const CANONICAL_ESXI_HOST_ID = "esxi-intel-192-168-123-176";
59
+ const CANONICAL_HOSTS_BY_HYPERVISOR = {
60
+ proxmox: ["proxmox-lab", "proxmox-minis-lab"],
61
+ esxi: ["esxi-intel-192-168-123-176"],
62
+ };
63
+ const CANONICAL_HYPERVISOR_BY_HOST = {
64
+ "proxmox-lab": "proxmox",
65
+ "proxmox-minis-lab": "proxmox",
66
+ "esxi-intel-192-168-123-176": "esxi",
67
+ };
68
+ const CanonicalInventoryIdentitySchema = z.object({
69
+ bios_uuid: z.string(),
70
+ instance_uuid: z.string(),
71
+ path: z.string(),
72
+ smbios_uuid: z.string(),
73
+ vmid: z.number().int().nonnegative().nullable(),
74
+ }).passthrough();
75
+ function canonicalHostId(host) {
76
+ return host === "proxmox-mini" ? "proxmox-minis-lab" : host;
77
+ }
78
+ function selectedHost(args) {
79
+ const host = canonicalHostId(args.host);
80
+ const hostName = canonicalHostId(args.hostName);
81
+ if (host && hostName && host !== hostName)
82
+ return undefined;
83
+ return host || hostName;
84
+ }
85
+ function selectedHypervisor(args) {
86
+ const hypervisor = args.hypervisor || "all";
87
+ const alias = args.hypervisorType || "all";
88
+ if (hypervisor !== "all" && alias !== "all" && hypervisor !== alias)
89
+ return undefined;
90
+ return hypervisor !== "all" ? hypervisor : alias;
91
+ }
92
+ function normalizeCanonicalWarning(value) {
93
+ if (!value || typeof value !== "object" || Array.isArray(value))
94
+ return undefined;
95
+ const warning = value;
96
+ if ((warning.hypervisor !== "proxmox" && warning.hypervisor !== "esxi")
97
+ || warning.code !== "discovery_unavailable"
98
+ || typeof warning.message !== "string"
99
+ || warning.message.trim().length === 0) {
100
+ return undefined;
101
+ }
102
+ const explicitHost = typeof warning.host_asset_id === "string" && warning.host_asset_id.length > 0
103
+ ? warning.host_asset_id
104
+ : undefined;
105
+ const hostAssetId = explicitHost
106
+ || (warning.hypervisor === "esxi" ? CANONICAL_ESXI_HOST_ID : undefined);
107
+ if (!hostAssetId || CANONICAL_HYPERVISOR_BY_HOST[hostAssetId] !== warning.hypervisor) {
108
+ return undefined;
109
+ }
110
+ return {
111
+ ...warning,
112
+ hypervisor: warning.hypervisor,
113
+ host_asset_id: hostAssetId,
114
+ code: warning.code,
115
+ message: warning.message,
116
+ };
117
+ }
118
+ function normalizeCanonicalRow(value) {
119
+ if (!value || typeof value !== "object" || Array.isArray(value))
120
+ return undefined;
121
+ const row = value;
122
+ if (typeof row.host_asset_id !== "string"
123
+ || (row.hypervisor !== "proxmox" && row.hypervisor !== "esxi")
124
+ || CANONICAL_HYPERVISOR_BY_HOST[row.host_asset_id] !== row.hypervisor) {
125
+ return undefined;
126
+ }
127
+ const identity = CanonicalInventoryIdentitySchema.safeParse(row.identity);
128
+ if (!identity.success)
129
+ return undefined;
130
+ if ((row.hypervisor === "proxmox" && identity.data.vmid === null)
131
+ || (row.hypervisor === "esxi" && identity.data.vmid !== null)) {
132
+ return undefined;
133
+ }
134
+ return row;
135
+ }
136
+ function parseCanonicalInventory(stdout) {
137
+ let value;
138
+ try {
139
+ value = JSON.parse(stdout);
140
+ }
141
+ catch {
142
+ return undefined;
143
+ }
144
+ if (!value || typeof value !== "object" || Array.isArray(value))
145
+ return undefined;
146
+ const payload = value;
147
+ const generatedAt = z.string().datetime({ offset: true }).safeParse(payload.generated_at);
148
+ const rawWarnings = Array.isArray(payload.warnings) ? payload.warnings : undefined;
149
+ const warnings = rawWarnings?.map(normalizeCanonicalWarning);
150
+ const warningsAreStructured = warnings !== undefined
151
+ && warnings.every((warning) => warning !== undefined);
152
+ const rawRows = Array.isArray(payload.rows) ? payload.rows : undefined;
153
+ const rows = rawRows?.map(normalizeCanonicalRow);
154
+ const rowsAreStructured = rows !== undefined
155
+ && rows.every((row) => row !== undefined);
156
+ if (payload.schema !== "calltelemetry-lab-vm-inventory/v1"
157
+ || !generatedAt.success
158
+ || typeof payload.partial !== "boolean"
159
+ || !warningsAreStructured
160
+ || payload.partial !== ((rawWarnings?.length ?? 0) > 0)
161
+ || !rowsAreStructured) {
162
+ return undefined;
163
+ }
164
+ return { ...payload, generated_at: generatedAt.data, warnings, rows };
165
+ }
166
+ function warningMatchesScope(warning, host, hypervisor) {
167
+ const warningHost = canonicalHostId(warning.host_asset_id);
168
+ const warningHypervisor = warning.hypervisor;
169
+ if (host) {
170
+ return warningHost === host;
171
+ }
172
+ return hypervisor === "all" || warningHypervisor === hypervisor;
173
+ }
174
+ function everyRequestedHostFailed(warnings, host, hypervisor) {
175
+ const failedHosts = new Set(warnings.map((warning) => canonicalHostId(warning.host_asset_id)));
176
+ if (host)
177
+ return failedHosts.has(host);
178
+ const requestedHosts = hypervisor === "all"
179
+ ? [...CANONICAL_HOST_IDS]
180
+ : CANONICAL_HOSTS_BY_HYPERVISOR[hypervisor];
181
+ return requestedHosts.every((requestedHost) => failedHosts.has(requestedHost));
182
+ }
183
+ async function handleCanonicalListInventory(args, context) {
184
+ const bridge = context.canonicalBridge;
185
+ if (!bridge) {
186
+ return createToolErrorResult("CANONICAL_INVENTORY_UNAVAILABLE", "canonical lab bridge is not available", { operation: "list_inventory" });
187
+ }
188
+ const host = selectedHost(args);
189
+ if (args.host && args.hostName && !host) {
190
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "host and hostName must resolve to the same canonical host identity");
191
+ }
192
+ if (host && !CANONICAL_HOST_IDS.has(host)) {
193
+ return createToolErrorResult(ProxmoxErrorCode.HOST_NOT_FOUND, `canonical host identity was not found: ${host}`, { host });
194
+ }
195
+ const hypervisor = selectedHypervisor(args);
196
+ if (!hypervisor) {
197
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "hypervisor and hypervisorType must select the same platform");
198
+ }
199
+ const hostHypervisor = host === "esxi-intel-192-168-123-176" ? "esxi" : host ? "proxmox" : undefined;
200
+ if (hostHypervisor && hypervisor !== "all" && hostHypervisor !== hypervisor) {
201
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "The requested host does not belong to the requested hypervisor type.", { host, hypervisor });
202
+ }
203
+ const hasUnsupportedFilter = args.status !== "all"
204
+ || args.includeTemplates
205
+ || Boolean(args.filter)
206
+ || Boolean(args.tags);
207
+ if (hasUnsupportedFilter) {
208
+ return createToolErrorResult("CANONICAL_FILTER_UNSUPPORTED", "canonical inventory mode supports exact host and hypervisor projection; status, template, text, and tag filters require canonical CLI fields that are not yet available");
209
+ }
210
+ let result;
211
+ try {
212
+ const command = ["vm", "inventory"];
213
+ if (host) {
214
+ command.push("--host-asset-id", host);
215
+ }
216
+ else if (hypervisor !== "all") {
217
+ command.push("--hypervisor", hypervisor);
218
+ }
219
+ else {
220
+ command.push("--all");
221
+ }
222
+ command.push("--format", "json");
223
+ result = await bridge.run(command);
224
+ }
225
+ catch (error) {
226
+ return createToolErrorResult("CANONICAL_INVENTORY_UNAVAILABLE", error instanceof Error ? error.message : String(error), { operation: "list_inventory" });
227
+ }
228
+ if (result.exitCode !== 0) {
229
+ return createToolErrorResult("CANONICAL_OPERATION_FAILED", result.stderr || result.stdout || "list_inventory failed in canonical lab CLI", {
230
+ operation: "list_inventory",
231
+ command: result.command,
232
+ exitCode: result.exitCode,
233
+ ...(result.signalCode ? { signalCode: result.signalCode } : {}),
234
+ ...(result.timedOut ? { timedOut: true } : {}),
235
+ });
236
+ }
237
+ const payload = parseCanonicalInventory(result.stdout);
238
+ if (!payload) {
239
+ return createToolErrorResult("CANONICAL_CONTRACT_INVALID", "canonical vm inventory did not return the required partial-discovery contract", { operation: "list_inventory", command: result.command });
240
+ }
241
+ const scopeWarnings = payload.warnings.filter((warning) => warningMatchesScope(warning, host, hypervisor));
242
+ if (everyRequestedHostFailed(scopeWarnings, host, hypervisor)) {
243
+ return createToolErrorResult("CANONICAL_OPERATION_FAILED", `canonical discovery could not satisfy the requested ${host ? `host ${host}` : `${hypervisor} scope`}`, {
244
+ operation: "list_inventory",
245
+ ...(host ? { requestedHost: host } : { requestedHypervisor: hypervisor }),
246
+ partial: payload.partial,
247
+ warnings: payload.warnings,
248
+ command: result.command,
249
+ });
250
+ }
251
+ const rows = payload.rows.filter((row) => {
252
+ const rowHost = canonicalHostId(typeof row.host_asset_id === "string" ? row.host_asset_id : undefined);
253
+ const rowHypervisor = typeof row.hypervisor === "string" ? row.hypervisor : undefined;
254
+ return (!host || rowHost === host)
255
+ && (hypervisor === "all" || rowHypervisor === hypervisor);
256
+ });
257
+ const projected = { ...payload, rows };
258
+ const response = {
259
+ success: true,
260
+ operation: "list_inventory",
261
+ command: result.command,
262
+ exitCode: result.exitCode,
263
+ result: projected,
264
+ };
265
+ return createToolSuccessResult(JSON.stringify(projected, null, 2), response);
266
+ }
53
267
  export async function handleListInventory(rawArgs = {}, context) {
54
268
  try {
55
269
  const args = ListInventoryInputSchema.parse(rawArgs);
56
270
  if (canonicalMode(context)) {
57
- const hasFilter = (args.hypervisor && args.hypervisor !== "all") ||
58
- (args.hypervisorType && args.hypervisorType !== "all") ||
59
- args.host ||
60
- args.hostName ||
61
- (args.status && args.status !== "all") ||
62
- args.includeTemplates ||
63
- args.filter ||
64
- args.tags;
65
- if (hasFilter) {
66
- return createToolErrorResult("CANONICAL_FILTER_UNSUPPORTED", "canonical inventory mode exposes the complete identity-bound inventory; apply filtering to the returned records");
67
- }
68
- return runCanonicalOperation(context.canonicalBridge, "list_inventory", [
69
- "vm",
70
- "inventory",
71
- "--all",
72
- "--format",
73
- "json",
74
- ]);
271
+ return handleCanonicalListInventory(args, context);
75
272
  }
76
273
  let parsedTags;
77
274
  if (args.tags) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-inventory.js","sourceRoot":"","sources":["../../../src/tools/list-inventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-inventory.js","sourceRoot":"","sources":["../../../src/tools/list-inventory.ts"],"names":[],"mappings":"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"}
@@ -153,12 +153,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
153
153
  requester?: string | undefined;
154
154
  purpose?: string | undefined;
155
155
  assetId?: string | undefined;
156
+ hostAssetId?: string | undefined;
156
157
  operationId?: string | undefined;
157
158
  receiptFile?: string | undefined;
158
159
  ttlHours?: number | undefined;
159
160
  confirmAssetId?: string | undefined;
160
161
  targetHost?: string | undefined;
161
- hostAssetId?: string | undefined;
162
162
  outputFile?: string | undefined;
163
163
  templateAssetId?: string | undefined;
164
164
  webImage?: string | undefined;
@@ -204,13 +204,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
204
204
  requester?: string | undefined;
205
205
  purpose?: string | undefined;
206
206
  assetId?: string | undefined;
207
+ hostAssetId?: string | undefined;
207
208
  operationId?: string | undefined;
208
209
  apply?: boolean | undefined;
209
210
  receiptFile?: string | undefined;
210
211
  ttlHours?: number | undefined;
211
212
  confirmAssetId?: string | undefined;
212
213
  targetHost?: string | undefined;
213
- hostAssetId?: string | undefined;
214
214
  outputFile?: string | undefined;
215
215
  templateAssetId?: string | undefined;
216
216
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
@@ -269,12 +269,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
269
269
  requester?: string | undefined;
270
270
  purpose?: string | undefined;
271
271
  assetId?: string | undefined;
272
+ hostAssetId?: string | undefined;
272
273
  operationId?: string | undefined;
273
274
  receiptFile?: string | undefined;
274
275
  ttlHours?: number | undefined;
275
276
  confirmAssetId?: string | undefined;
276
277
  targetHost?: string | undefined;
277
- hostAssetId?: string | undefined;
278
278
  outputFile?: string | undefined;
279
279
  templateAssetId?: string | undefined;
280
280
  webImage?: string | undefined;
@@ -320,13 +320,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
320
320
  requester?: string | undefined;
321
321
  purpose?: string | undefined;
322
322
  assetId?: string | undefined;
323
+ hostAssetId?: string | undefined;
323
324
  operationId?: string | undefined;
324
325
  apply?: boolean | undefined;
325
326
  receiptFile?: string | undefined;
326
327
  ttlHours?: number | undefined;
327
328
  confirmAssetId?: string | undefined;
328
329
  targetHost?: string | undefined;
329
- hostAssetId?: string | undefined;
330
330
  outputFile?: string | undefined;
331
331
  templateAssetId?: string | undefined;
332
332
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
@@ -385,12 +385,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
385
385
  requester?: string | undefined;
386
386
  purpose?: string | undefined;
387
387
  assetId?: string | undefined;
388
+ hostAssetId?: string | undefined;
388
389
  operationId?: string | undefined;
389
390
  receiptFile?: string | undefined;
390
391
  ttlHours?: number | undefined;
391
392
  confirmAssetId?: string | undefined;
392
393
  targetHost?: string | undefined;
393
- hostAssetId?: string | undefined;
394
394
  outputFile?: string | undefined;
395
395
  templateAssetId?: string | undefined;
396
396
  webImage?: string | undefined;
@@ -436,13 +436,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
436
436
  requester?: string | undefined;
437
437
  purpose?: string | undefined;
438
438
  assetId?: string | undefined;
439
+ hostAssetId?: string | undefined;
439
440
  operationId?: string | undefined;
440
441
  apply?: boolean | undefined;
441
442
  receiptFile?: string | undefined;
442
443
  ttlHours?: number | undefined;
443
444
  confirmAssetId?: string | undefined;
444
445
  targetHost?: string | undefined;
445
- hostAssetId?: string | undefined;
446
446
  outputFile?: string | undefined;
447
447
  templateAssetId?: string | undefined;
448
448
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
@@ -628,6 +628,7 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
628
628
  requester?: string | undefined;
629
629
  purpose?: string | undefined;
630
630
  assetId?: string | undefined;
631
+ hostAssetId?: string | undefined;
631
632
  operationId?: string | undefined;
632
633
  receiptFile?: string | undefined;
633
634
  ttlHours?: number | undefined;
@@ -635,7 +636,6 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
635
636
  placementSeed?: string | undefined;
636
637
  targetHost?: string | undefined;
637
638
  allowEsxiSlots?: boolean | undefined;
638
- hostAssetId?: string | undefined;
639
639
  outputFile?: string | undefined;
640
640
  templateAssetId?: string | undefined;
641
641
  webImage?: string | undefined;
@@ -681,6 +681,7 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
681
681
  requester?: string | undefined;
682
682
  purpose?: string | undefined;
683
683
  assetId?: string | undefined;
684
+ hostAssetId?: string | undefined;
684
685
  operationId?: string | undefined;
685
686
  apply?: boolean | undefined;
686
687
  receiptFile?: string | undefined;
@@ -690,7 +691,6 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
690
691
  targetHost?: string | undefined;
691
692
  purgeIfFull?: boolean | undefined;
692
693
  allowEsxiSlots?: boolean | undefined;
693
- hostAssetId?: string | undefined;
694
694
  outputFile?: string | undefined;
695
695
  templateAssetId?: string | undefined;
696
696
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
@@ -84,8 +84,8 @@ export declare const ProxmoxQuickProvisionInputSchema: z.ZodObject<{
84
84
  version: string;
85
85
  linearIssue: string;
86
86
  purpose: string;
87
- apply: boolean;
88
87
  hostAssetId: string;
88
+ apply: boolean;
89
89
  storage?: string | undefined;
90
90
  size?: {
91
91
  memoryMb: number;
@@ -121,11 +121,11 @@ export declare const ProxmoxQuickProvisionInputSchema: z.ZodObject<{
121
121
  vmid?: number | undefined;
122
122
  network?: string | undefined;
123
123
  purpose?: string | undefined;
124
+ hostAssetId?: string | undefined;
124
125
  operationId?: string | undefined;
125
126
  apply?: boolean | undefined;
126
127
  ttlHours?: number | undefined;
127
128
  placementSeed?: string | undefined;
128
- hostAssetId?: string | undefined;
129
129
  webImage?: string | undefined;
130
130
  baseVersion?: string | undefined;
131
131
  diskGb?: number | undefined;
@@ -138,11 +138,11 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
138
138
  reason?: string | undefined;
139
139
  timeoutSeconds?: number | undefined;
140
140
  assetId?: string | undefined;
141
+ hostAssetId?: string | undefined;
141
142
  artifactReceipt?: string | undefined;
142
143
  receiptFile?: string | undefined;
143
144
  confirmAssetId?: string | undefined;
144
145
  targetHost?: string | undefined;
145
- hostAssetId?: string | undefined;
146
146
  confirmVmid?: string | number | undefined;
147
147
  smbiosUuid?: string | undefined;
148
148
  confirmHostAssetId?: string | undefined;
@@ -169,13 +169,13 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
169
169
  reason?: string | undefined;
170
170
  timeoutSeconds?: number | undefined;
171
171
  assetId?: string | undefined;
172
+ hostAssetId?: string | undefined;
172
173
  artifactReceipt?: string | undefined;
173
174
  apply?: boolean | undefined;
174
175
  receiptFile?: string | undefined;
175
176
  force?: boolean | undefined;
176
177
  confirmAssetId?: string | undefined;
177
178
  targetHost?: string | undefined;
178
- hostAssetId?: string | undefined;
179
179
  confirmVmid?: string | number | undefined;
180
180
  smbiosUuid?: string | undefined;
181
181
  confirmHostAssetId?: string | undefined;
@@ -208,11 +208,11 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
208
208
  reason?: string | undefined;
209
209
  timeoutSeconds?: number | undefined;
210
210
  assetId?: string | undefined;
211
+ hostAssetId?: string | undefined;
211
212
  artifactReceipt?: string | undefined;
212
213
  receiptFile?: string | undefined;
213
214
  confirmAssetId?: string | undefined;
214
215
  targetHost?: string | undefined;
215
- hostAssetId?: string | undefined;
216
216
  confirmVmid?: string | number | undefined;
217
217
  smbiosUuid?: string | undefined;
218
218
  confirmHostAssetId?: string | undefined;
@@ -239,13 +239,13 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
239
239
  reason?: string | undefined;
240
240
  timeoutSeconds?: number | undefined;
241
241
  assetId?: string | undefined;
242
+ hostAssetId?: string | undefined;
242
243
  artifactReceipt?: string | undefined;
243
244
  apply?: boolean | undefined;
244
245
  receiptFile?: string | undefined;
245
246
  force?: boolean | undefined;
246
247
  confirmAssetId?: string | undefined;
247
248
  targetHost?: string | undefined;
248
- hostAssetId?: string | undefined;
249
249
  confirmVmid?: string | number | undefined;
250
250
  smbiosUuid?: string | undefined;
251
251
  confirmHostAssetId?: string | undefined;
@@ -22,12 +22,12 @@ export declare const ListExpiredVmsInputSchema: z.ZodObject<{
22
22
  format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "table"]>>>;
23
23
  }, "strip", z.ZodTypeAny, {
24
24
  format: "table" | "json";
25
- warnHours?: number | undefined;
26
25
  hostAssetId?: string | undefined;
26
+ warnHours?: number | undefined;
27
27
  }, {
28
28
  format?: "table" | "json" | undefined;
29
- warnHours?: number | undefined;
30
29
  hostAssetId?: string | undefined;
30
+ warnHours?: number | undefined;
31
31
  }>;
32
32
  export type ListExpiredVmsInput = z.infer<typeof ListExpiredVmsInputSchema>;
33
33
  export type ListExpiredVmsRawInput = z.input<typeof ListExpiredVmsInputSchema>;
@@ -60,20 +60,20 @@ export declare const CleanupExpiredVmsInputSchema: z.ZodObject<{
60
60
  apply: boolean;
61
61
  deleteTerminalIssues: boolean;
62
62
  reason?: string | undefined;
63
+ hostAssetId?: string | undefined;
63
64
  artifactReceipt?: string | undefined;
64
65
  confirmAssets?: string | undefined;
65
66
  warnHours?: number | undefined;
66
- hostAssetId?: string | undefined;
67
67
  outputFile?: string | undefined;
68
68
  }, {
69
69
  dryRun?: boolean | undefined;
70
70
  format?: "table" | "json" | undefined;
71
71
  reason?: string | undefined;
72
+ hostAssetId?: string | undefined;
72
73
  artifactReceipt?: string | undefined;
73
74
  apply?: boolean | undefined;
74
75
  confirmAssets?: string | undefined;
75
76
  warnHours?: number | undefined;
76
- hostAssetId?: string | undefined;
77
77
  deleteTerminalIssues?: boolean | undefined;
78
78
  outputFile?: string | undefined;
79
79
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/ct-lab-mcp",
3
- "version": "0.8.14",
3
+ "version": "0.8.15",
4
4
  "description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE and VMware ESXi.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",