@calltelemetry/ct-lab-mcp 0.8.46 → 0.8.47
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/dist/src/tools/canonical-guard.d.ts +1 -1
- package/dist/src/tools/canonical-guard.d.ts.map +1 -1
- package/dist/src/tools/canonical-guard.js +8 -0
- package/dist/src/tools/canonical-guard.js.map +1 -1
- package/dist/src/tools/fleet-metrics.d.ts +26 -0
- package/dist/src/tools/fleet-metrics.d.ts.map +1 -0
- package/dist/src/tools/fleet-metrics.js +181 -0
- package/dist/src/tools/fleet-metrics.js.map +1 -0
- package/dist/src/tools/host-migrate-vm.d.ts +91 -0
- package/dist/src/tools/host-migrate-vm.d.ts.map +1 -0
- package/dist/src/tools/host-migrate-vm.js +138 -0
- package/dist/src/tools/host-migrate-vm.js.map +1 -0
- package/dist/src/tools/index.d.ts +3 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +22 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/proxmox-host-policy.d.ts +14 -0
- package/dist/src/tools/proxmox-host-policy.d.ts.map +1 -0
- package/dist/src/tools/proxmox-host-policy.js +30 -0
- package/dist/src/tools/proxmox-host-policy.js.map +1 -0
- package/dist/src/tools/sandbox-tools.d.ts +215 -0
- package/dist/src/tools/sandbox-tools.d.ts.map +1 -0
- package/dist/src/tools/sandbox-tools.js +212 -0
- package/dist/src/tools/sandbox-tools.js.map +1 -0
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ export declare function canonicalMode(context: ToolContext): boolean;
|
|
|
8
8
|
* the CLI is the authority for the exact asset/lease checks, but merely being
|
|
9
9
|
* configured does not prove that a target is reachable or authorized.
|
|
10
10
|
*/
|
|
11
|
-
export declare const CANONICAL_CREDENTIAL_OPERATIONS: readonly ["lab_dev:doctor", "lab_dev:plan", "lab_dev:prepare", "lab_dev:status", "lab_dev:start", "lab_dev:sync", "lab_dev:stop", "lab_dev:cleanup", "list_hosts", "list_inventory", "vm_repair", "vm_renew", "vm_transfer", "release_slot", "list_expired_vms", "cleanup_expired_vms", "provision_vm", "auto_provision_vm", "proxmox_import_qcow", "appliance_candidate_update", "purge_slots"];
|
|
11
|
+
export declare const CANONICAL_CREDENTIAL_OPERATIONS: readonly ["lab_dev:doctor", "lab_dev:plan", "lab_dev:prepare", "lab_dev:status", "lab_dev:start", "lab_dev:sync", "lab_dev:stop", "lab_dev:cleanup", "list_hosts", "list_inventory", "vm_repair", "vm_renew", "vm_transfer", "release_slot", "list_expired_vms", "cleanup_expired_vms", "provision_vm", "auto_provision_vm", "proxmox_import_qcow", "appliance_candidate_update", "purge_slots", "host_migrate_vm", "sandbox_clone", "sandbox_reset", "ferrum_fleet_metrics"];
|
|
12
12
|
export type CanonicalCredentialReadiness = {
|
|
13
13
|
owner: "canonical_cli" | "legacy_resolver";
|
|
14
14
|
required: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-guard.d.ts","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAkD,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,
|
|
1
|
+
{"version":3,"file":"canonical-guard.d.ts","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAkD,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,+cA6BlC,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,4BAA4B,CAAC;IACtE,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,GAAG,2BAA2B,CAAC;IACjF,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAoC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE;IACJ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,EACD,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1E,MAAM,EAAE,CAgCV;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAOR;AAQD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAoDT;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMzF;AAUD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAuCzB"}
|
|
@@ -33,6 +33,10 @@ export const CANONICAL_CREDENTIAL_OPERATIONS = [
|
|
|
33
33
|
"proxmox_import_qcow",
|
|
34
34
|
"appliance_candidate_update",
|
|
35
35
|
"purge_slots",
|
|
36
|
+
"host_migrate_vm",
|
|
37
|
+
"sandbox_clone",
|
|
38
|
+
"sandbox_reset",
|
|
39
|
+
"ferrum_fleet_metrics",
|
|
36
40
|
];
|
|
37
41
|
/**
|
|
38
42
|
* Describe credential ownership without probing or pretending that the
|
|
@@ -178,6 +182,10 @@ export function canonicalBridgeOwnsCredentials(context, operation, args) {
|
|
|
178
182
|
// route it through the legacy fleet-wide credential bundle.
|
|
179
183
|
|| operation === "appliance_candidate_update"
|
|
180
184
|
|| operation === "purge_slots"
|
|
185
|
+
|| operation === "host_migrate_vm"
|
|
186
|
+
|| operation === "sandbox_clone"
|
|
187
|
+
|| operation === "sandbox_reset"
|
|
188
|
+
|| operation === "ferrum_fleet_metrics"
|
|
181
189
|
// Claim updates have no legacy handler or fallback. Their CLI validates
|
|
182
190
|
// the exact current owner/lease and owns provider credential resolution.
|
|
183
191
|
|| operation === "vm_renew"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-guard.js","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,OAAO,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,aAAa;IACb,cAAc;IACd,0EAA0E;IAC1E,wEAAwE;IACxE,+DAA+D;IAC/D,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,4BAA4B;IAC5B,aAAa;
|
|
1
|
+
{"version":3,"file":"canonical-guard.js","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: ferrum_fleet_metrics
|
|
3
|
+
*
|
|
4
|
+
* Query fleet-wide hypervisor metrics, dynamic 8GB slot occupancy, and Prometheus
|
|
5
|
+
* capacity alerts across Proxmox standalone nodes (proxmox-lab, proxmox-minis-lab).
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { CallToolResult } from "../types/mcp.js";
|
|
9
|
+
import { ToolContext } from "./list-hosts.js";
|
|
10
|
+
export declare const FerrumFleetMetricsInputShape: {
|
|
11
|
+
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini", "all"]>>>;
|
|
12
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["summary", "json"]>>>;
|
|
13
|
+
};
|
|
14
|
+
export declare const FerrumFleetMetricsInputSchema: z.ZodObject<{
|
|
15
|
+
host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini", "all"]>>>;
|
|
16
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["summary", "json"]>>>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all";
|
|
19
|
+
format: "json" | "summary";
|
|
20
|
+
}, {
|
|
21
|
+
host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | undefined;
|
|
22
|
+
format?: "json" | "summary" | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export type FerrumFleetMetricsInput = z.infer<typeof FerrumFleetMetricsInputSchema>;
|
|
25
|
+
export declare function handleFerrumFleetMetrics(rawArgs: unknown, context: ToolContext): Promise<CallToolResult>;
|
|
26
|
+
//# sourceMappingURL=fleet-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-metrics.d.ts","sourceRoot":"","sources":["../../../src/tools/fleet-metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQ9C,eAAO,MAAM,4BAA4B;;;CAUxC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;EAAyC,CAAC;AACpF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AA4JpF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAmDzB"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: ferrum_fleet_metrics
|
|
3
|
+
*
|
|
4
|
+
* Query fleet-wide hypervisor metrics, dynamic 8GB slot occupancy, and Prometheus
|
|
5
|
+
* capacity alerts across Proxmox standalone nodes (proxmox-lab, proxmox-minis-lab).
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { ProxmoxErrorCode, createToolErrorResult, createToolSuccessResult, } from "../types/mcp.js";
|
|
9
|
+
import { canonicalMode } from "./canonical-guard.js";
|
|
10
|
+
import { normalizeProxmoxHost, ProxmoxFleetHostInputSchema, proxmoxSlotPolicy, } from "./proxmox-host-policy.js";
|
|
11
|
+
export const FerrumFleetMetricsInputShape = {
|
|
12
|
+
host: ProxmoxFleetHostInputSchema
|
|
13
|
+
.optional()
|
|
14
|
+
.default("all")
|
|
15
|
+
.describe("Specific host asset ID or 'all' for full fleet aggregate telemetry."),
|
|
16
|
+
format: z
|
|
17
|
+
.enum(["summary", "json"])
|
|
18
|
+
.optional()
|
|
19
|
+
.default("summary")
|
|
20
|
+
.describe("Output format: 'summary' (formatted Markdown report with alert status) or 'json' (raw structured telemetry)."),
|
|
21
|
+
};
|
|
22
|
+
export const FerrumFleetMetricsInputSchema = z.object(FerrumFleetMetricsInputShape);
|
|
23
|
+
function parseCapacityPayload(hostAssetId, stdout) {
|
|
24
|
+
const policy = proxmoxSlotPolicy(hostAssetId);
|
|
25
|
+
const alerts = [];
|
|
26
|
+
try {
|
|
27
|
+
const raw = JSON.parse(stdout);
|
|
28
|
+
// The canonical CLI returns stdout either directly or nested in an outer envelope
|
|
29
|
+
const inner = typeof raw.stdout === "string" ? JSON.parse(raw.stdout) : raw;
|
|
30
|
+
const live = inner.live || {};
|
|
31
|
+
const node = live.node || {};
|
|
32
|
+
const cpuinfo = node.cpuinfo || {};
|
|
33
|
+
const memory = node.memory || {};
|
|
34
|
+
const storageList = live.storage || [];
|
|
35
|
+
const totalMem = Number(memory.total || 0);
|
|
36
|
+
const usedMem = Number(memory.used || 0);
|
|
37
|
+
const freeMem = Number(memory.free || memory.available || 0);
|
|
38
|
+
const memPct = totalMem > 0 ? (usedMem / totalMem) * 100 : 0;
|
|
39
|
+
const lvm = storageList.find((s) => s.storage === policy.storage) || storageList[0] || {
|
|
40
|
+
storage: policy.storage,
|
|
41
|
+
used: 0,
|
|
42
|
+
total: 0,
|
|
43
|
+
avail: 0,
|
|
44
|
+
used_fraction: 0,
|
|
45
|
+
};
|
|
46
|
+
const totalStorage = Number(lvm.total || 0);
|
|
47
|
+
const usedStorage = Number(lvm.used || 0);
|
|
48
|
+
const availStorage = Number(lvm.avail || 0);
|
|
49
|
+
const storagePct = totalStorage > 0 ? (usedStorage / totalStorage) * 100 : Number(lvm.used_fraction || 0) * 100;
|
|
50
|
+
if (memPct >= 85)
|
|
51
|
+
alerts.push(`Memory usage critical: ${memPct.toFixed(1)}% >= 85%`);
|
|
52
|
+
if (storagePct >= 85)
|
|
53
|
+
alerts.push(`Storage pool ${lvm.storage} critical: ${storagePct.toFixed(1)}% >= 85%`);
|
|
54
|
+
return {
|
|
55
|
+
hostAssetId,
|
|
56
|
+
online: true,
|
|
57
|
+
cpuModel: cpuinfo.model || "Unknown CPU",
|
|
58
|
+
cores: Number(cpuinfo.cores || cpuinfo.cpus || 0),
|
|
59
|
+
cpuUsagePct: Number(node.cpu || 0) * 100,
|
|
60
|
+
totalMemoryBytes: totalMem,
|
|
61
|
+
usedMemoryBytes: usedMem,
|
|
62
|
+
freeMemoryBytes: freeMem,
|
|
63
|
+
memoryUsagePct: memPct,
|
|
64
|
+
storagePool: lvm.storage,
|
|
65
|
+
totalStorageBytes: totalStorage,
|
|
66
|
+
usedStorageBytes: usedStorage,
|
|
67
|
+
availStorageBytes: availStorage,
|
|
68
|
+
storageUsagePct: storagePct,
|
|
69
|
+
slotFloor: policy.floor,
|
|
70
|
+
slotHardMax: policy.hardMax,
|
|
71
|
+
alerts,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return {
|
|
76
|
+
hostAssetId,
|
|
77
|
+
online: false,
|
|
78
|
+
cpuModel: "Unavailable",
|
|
79
|
+
cores: 0,
|
|
80
|
+
cpuUsagePct: 0,
|
|
81
|
+
totalMemoryBytes: 0,
|
|
82
|
+
usedMemoryBytes: 0,
|
|
83
|
+
freeMemoryBytes: 0,
|
|
84
|
+
memoryUsagePct: 0,
|
|
85
|
+
storagePool: policy.storage,
|
|
86
|
+
totalStorageBytes: 0,
|
|
87
|
+
usedStorageBytes: 0,
|
|
88
|
+
availStorageBytes: 0,
|
|
89
|
+
storageUsagePct: 0,
|
|
90
|
+
slotFloor: policy.floor,
|
|
91
|
+
slotHardMax: policy.hardMax,
|
|
92
|
+
alerts: ["Failed to parse host capacity telemetry"],
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function unavailableHostMetrics(hostAssetId, alert) {
|
|
97
|
+
const policy = proxmoxSlotPolicy(hostAssetId);
|
|
98
|
+
return {
|
|
99
|
+
hostAssetId,
|
|
100
|
+
online: false,
|
|
101
|
+
cpuModel: "Unknown",
|
|
102
|
+
cores: 0,
|
|
103
|
+
cpuUsagePct: 0,
|
|
104
|
+
totalMemoryBytes: 0,
|
|
105
|
+
usedMemoryBytes: 0,
|
|
106
|
+
freeMemoryBytes: 0,
|
|
107
|
+
memoryUsagePct: 0,
|
|
108
|
+
storagePool: policy.storage,
|
|
109
|
+
totalStorageBytes: 0,
|
|
110
|
+
usedStorageBytes: 0,
|
|
111
|
+
availStorageBytes: 0,
|
|
112
|
+
storageUsagePct: 0,
|
|
113
|
+
slotFloor: policy.floor,
|
|
114
|
+
slotHardMax: policy.hardMax,
|
|
115
|
+
alerts: [alert],
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function formatBytes(bytes) {
|
|
119
|
+
if (bytes === 0)
|
|
120
|
+
return "0 GB";
|
|
121
|
+
const gb = bytes / (1024 * 1024 * 1024);
|
|
122
|
+
return `${gb.toFixed(1)} GB`;
|
|
123
|
+
}
|
|
124
|
+
function formatSummary(metrics) {
|
|
125
|
+
const lines = [
|
|
126
|
+
"# Ferrum Proxmox Fleet Metrics & Telemetry",
|
|
127
|
+
"",
|
|
128
|
+
"| Host Asset ID | Status | Cores | CPU % | Memory (Used / Total) | RAM % | Storage (Used / Total) | Pool % | 8GB Slots (Floor/Max) | Alerts |",
|
|
129
|
+
"| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |",
|
|
130
|
+
];
|
|
131
|
+
for (const m of metrics) {
|
|
132
|
+
const status = m.online ? "🟢 Online" : "🔴 Offline";
|
|
133
|
+
const alertText = m.alerts.length > 0 ? `⚠️ ${m.alerts.join("; ")}` : "✅ Healthy";
|
|
134
|
+
lines.push(`| **${m.hostAssetId}** | ${status} | ${m.cores} | ${m.cpuUsagePct.toFixed(1)}% | ${formatBytes(m.usedMemoryBytes)} / ${formatBytes(m.totalMemoryBytes)} | ${m.memoryUsagePct.toFixed(1)}% | ${formatBytes(m.usedStorageBytes)} / ${formatBytes(m.totalStorageBytes)} | ${m.storageUsagePct.toFixed(1)}% | ${m.slotFloor} / ${m.slotHardMax} | ${alertText} |`);
|
|
135
|
+
}
|
|
136
|
+
lines.push("");
|
|
137
|
+
lines.push("### Prometheus Alert Policies");
|
|
138
|
+
lines.push("- **FerrumHostMemoryHigh**: Evaluates `(1 - free/total) >= 0.85` for 5m. Threshold: 85%.");
|
|
139
|
+
lines.push("- **FerrumHostStorageHigh**: Evaluates storage pool utilization `>= 0.85`. Threshold: 85%.");
|
|
140
|
+
lines.push("- **FerrumFleetDown**: Triggers if either standalone Proxmox node goes unreachable.");
|
|
141
|
+
return lines.join("\n");
|
|
142
|
+
}
|
|
143
|
+
export async function handleFerrumFleetMetrics(rawArgs, context) {
|
|
144
|
+
const parsed = FerrumFleetMetricsInputSchema.safeParse(rawArgs);
|
|
145
|
+
if (!parsed.success) {
|
|
146
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, parsed.error.errors.map((e) => `${e.path.join(".")}: ${e.message}`).join("; "));
|
|
147
|
+
}
|
|
148
|
+
if (!canonicalMode(context)) {
|
|
149
|
+
return createToolErrorResult("CANONICAL_OPERATION_REQUIRES_BRIDGE", "ferrum fleet metrics requires canonical lab mode");
|
|
150
|
+
}
|
|
151
|
+
const { host, format } = parsed.data;
|
|
152
|
+
const targetHosts = [];
|
|
153
|
+
if (host === "all") {
|
|
154
|
+
targetHosts.push("proxmox-lab", "proxmox-minis-lab");
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
targetHosts.push(normalizeProxmoxHost(host));
|
|
158
|
+
}
|
|
159
|
+
const results = [];
|
|
160
|
+
for (const h of targetHosts) {
|
|
161
|
+
try {
|
|
162
|
+
const res = await context.canonicalBridge.run(["host", "capacity", "--asset-id", h]);
|
|
163
|
+
if (res.exitCode === 0) {
|
|
164
|
+
results.push(parseCapacityPayload(h, res.stdout));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
results.push(unavailableHostMetrics(h, `Host unreachable or capacity query failed: ${res.stderr || "non-zero exit"}`));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
results.push(unavailableHostMetrics(h, err instanceof Error ? err.message : String(err)));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (format === "json") {
|
|
175
|
+
return createToolSuccessResult(JSON.stringify({ schema: "calltelemetry-ferrum-fleet-metrics/v1", metrics: results }, null, 2), {
|
|
176
|
+
metrics: results,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return createToolSuccessResult(formatSummary(results), { metrics: results });
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=fleet-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-metrics.js","sourceRoot":"","sources":["../../../src/tools/fleet-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Proxmox cross-node cold VM migration MCP facade.
|
|
3
|
+
* Wraps canonical `lab-inventory host migrate-vm` with dry-run planning,
|
|
4
|
+
* cold-state assertions, dynamic slot quota pre-checks, and ADR 0506 journal state machine.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { CallToolResult } from "../types/mcp.js";
|
|
8
|
+
import { ToolContext } from "./list-hosts.js";
|
|
9
|
+
export declare const HostMigrateVmInputShape: {
|
|
10
|
+
assetId: z.ZodString;
|
|
11
|
+
targetHost: z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>;
|
|
12
|
+
operationId: z.ZodString;
|
|
13
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
14
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
15
|
+
confirmTargetHost: z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>;
|
|
16
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
17
|
+
targetStorage: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
18
|
+
targetBridge: z.ZodOptional<z.ZodString>;
|
|
19
|
+
targetVmid: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
21
|
+
lockTimeoutSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
22
|
+
};
|
|
23
|
+
export declare const HostMigrateVmInputSchema: z.ZodEffects<z.ZodObject<{
|
|
24
|
+
assetId: z.ZodString;
|
|
25
|
+
targetHost: z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>;
|
|
26
|
+
operationId: z.ZodString;
|
|
27
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
28
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
29
|
+
confirmTargetHost: z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>;
|
|
30
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
31
|
+
targetStorage: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
32
|
+
targetBridge: z.ZodOptional<z.ZodString>;
|
|
33
|
+
targetVmid: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
35
|
+
lockTimeoutSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
assetId: string;
|
|
38
|
+
operationId: string;
|
|
39
|
+
apply: boolean;
|
|
40
|
+
targetHost: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
41
|
+
lockTimeoutSeconds: number;
|
|
42
|
+
targetStorage: string;
|
|
43
|
+
receiptFile?: string | undefined;
|
|
44
|
+
confirmAssetId?: string | undefined;
|
|
45
|
+
planDigest?: string | undefined;
|
|
46
|
+
confirmTargetHost?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
47
|
+
targetBridge?: string | undefined;
|
|
48
|
+
targetVmid?: number | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
assetId: string;
|
|
51
|
+
operationId: string;
|
|
52
|
+
targetHost: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
53
|
+
apply?: boolean | undefined;
|
|
54
|
+
receiptFile?: string | undefined;
|
|
55
|
+
confirmAssetId?: string | undefined;
|
|
56
|
+
lockTimeoutSeconds?: number | undefined;
|
|
57
|
+
planDigest?: string | undefined;
|
|
58
|
+
confirmTargetHost?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
59
|
+
targetStorage?: string | undefined;
|
|
60
|
+
targetBridge?: string | undefined;
|
|
61
|
+
targetVmid?: number | undefined;
|
|
62
|
+
}>, {
|
|
63
|
+
assetId: string;
|
|
64
|
+
operationId: string;
|
|
65
|
+
apply: boolean;
|
|
66
|
+
targetHost: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
67
|
+
lockTimeoutSeconds: number;
|
|
68
|
+
targetStorage: string;
|
|
69
|
+
receiptFile?: string | undefined;
|
|
70
|
+
confirmAssetId?: string | undefined;
|
|
71
|
+
planDigest?: string | undefined;
|
|
72
|
+
confirmTargetHost?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
73
|
+
targetBridge?: string | undefined;
|
|
74
|
+
targetVmid?: number | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
assetId: string;
|
|
77
|
+
operationId: string;
|
|
78
|
+
targetHost: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
79
|
+
apply?: boolean | undefined;
|
|
80
|
+
receiptFile?: string | undefined;
|
|
81
|
+
confirmAssetId?: string | undefined;
|
|
82
|
+
lockTimeoutSeconds?: number | undefined;
|
|
83
|
+
planDigest?: string | undefined;
|
|
84
|
+
confirmTargetHost?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
85
|
+
targetStorage?: string | undefined;
|
|
86
|
+
targetBridge?: string | undefined;
|
|
87
|
+
targetVmid?: number | undefined;
|
|
88
|
+
}>;
|
|
89
|
+
export type HostMigrateVmInput = z.infer<typeof HostMigrateVmInputSchema>;
|
|
90
|
+
export declare function handleHostMigrateVm(rawArgs: unknown, context: ToolContext): Promise<CallToolResult>;
|
|
91
|
+
//# sourceMappingURL=host-migrate-vm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-migrate-vm.d.ts","sourceRoot":"","sources":["../../../src/tools/host-migrate-vm.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;AAM9C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;CA0DnC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BjC,CAAC;AAEL,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAuDzB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Proxmox cross-node cold VM migration MCP facade.
|
|
3
|
+
* Wraps canonical `lab-inventory host migrate-vm` with dry-run planning,
|
|
4
|
+
* cold-state assertions, dynamic slot quota pre-checks, and ADR 0506 journal state machine.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
|
|
8
|
+
import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
|
|
9
|
+
import { normalizeProxmoxHost, ProxmoxHostInputSchema, } from "./proxmox-host-policy.js";
|
|
10
|
+
export const HostMigrateVmInputShape = {
|
|
11
|
+
assetId: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe("Canonical VM asset ID to migrate (e.g. 'ct-appliance-uat-105')."),
|
|
15
|
+
targetHost: ProxmoxHostInputSchema
|
|
16
|
+
.describe("Canonical target Proxmox host asset ID (e.g. 'proxmox-minis-lab')."),
|
|
17
|
+
operationId: z
|
|
18
|
+
.string()
|
|
19
|
+
.regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$/)
|
|
20
|
+
.describe("Unique idempotency ID for this migration transaction (8-128 characters)."),
|
|
21
|
+
apply: z
|
|
22
|
+
.boolean()
|
|
23
|
+
.optional()
|
|
24
|
+
.default(false)
|
|
25
|
+
.describe("Omit for a dry-run plan. True executes guarded cold migration using native Proxmox qm remote-migrate."),
|
|
26
|
+
confirmAssetId: z
|
|
27
|
+
.string()
|
|
28
|
+
.min(1)
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Required with apply=true and must exactly match assetId."),
|
|
31
|
+
confirmTargetHost: ProxmoxHostInputSchema
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Required with apply=true and must exactly match targetHost."),
|
|
34
|
+
planDigest: z
|
|
35
|
+
.string()
|
|
36
|
+
.regex(/^[a-f0-9]{64}$/i)
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Required with apply=true and must match the latest dry-run plan digest."),
|
|
39
|
+
targetStorage: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1)
|
|
42
|
+
.optional()
|
|
43
|
+
.default("local-lvm")
|
|
44
|
+
.describe("Target storage pool on destination host (default: 'local-lvm')."),
|
|
45
|
+
targetBridge: z
|
|
46
|
+
.string()
|
|
47
|
+
.min(1)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Target network bridge on destination host (e.g. 'vmbr0' or 'vmbr1')."),
|
|
50
|
+
targetVmid: z
|
|
51
|
+
.number()
|
|
52
|
+
.int()
|
|
53
|
+
.positive()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Target VMID on destination host (default: source VMID or next available dynamic VMID)."),
|
|
56
|
+
receiptFile: z
|
|
57
|
+
.string()
|
|
58
|
+
.min(1)
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Optional path for a copy of the plan or durable migration receipt."),
|
|
61
|
+
lockTimeoutSeconds: z
|
|
62
|
+
.number()
|
|
63
|
+
.min(0)
|
|
64
|
+
.max(300)
|
|
65
|
+
.optional()
|
|
66
|
+
.default(30)
|
|
67
|
+
.describe("Coordinator lock timeout in seconds (default: 30)."),
|
|
68
|
+
};
|
|
69
|
+
export const HostMigrateVmInputSchema = z
|
|
70
|
+
.object(HostMigrateVmInputShape)
|
|
71
|
+
.superRefine((value, context) => {
|
|
72
|
+
if (!value.apply)
|
|
73
|
+
return;
|
|
74
|
+
if (value.confirmAssetId !== value.assetId) {
|
|
75
|
+
context.addIssue({
|
|
76
|
+
code: z.ZodIssueCode.custom,
|
|
77
|
+
path: ["confirmAssetId"],
|
|
78
|
+
message: "must exactly match assetId when apply=true",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (!value.confirmTargetHost
|
|
82
|
+
|| normalizeProxmoxHost(value.confirmTargetHost) !== normalizeProxmoxHost(value.targetHost)) {
|
|
83
|
+
context.addIssue({
|
|
84
|
+
code: z.ZodIssueCode.custom,
|
|
85
|
+
path: ["confirmTargetHost"],
|
|
86
|
+
message: "must exactly match targetHost when apply=true",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (!value.planDigest) {
|
|
90
|
+
context.addIssue({
|
|
91
|
+
code: z.ZodIssueCode.custom,
|
|
92
|
+
path: ["planDigest"],
|
|
93
|
+
message: "is required when apply=true",
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
const MIGRATION_TRANSACTION_TIMEOUT_MS = 10 * 60 * 1000;
|
|
98
|
+
export async function handleHostMigrateVm(rawArgs, context) {
|
|
99
|
+
const parsed = HostMigrateVmInputSchema.safeParse(rawArgs);
|
|
100
|
+
if (!parsed.success) {
|
|
101
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, parsed.error.errors
|
|
102
|
+
.map((error) => `${error.path.join(".")}: ${error.message}`)
|
|
103
|
+
.join("; "));
|
|
104
|
+
}
|
|
105
|
+
if (!canonicalMode(context)) {
|
|
106
|
+
return createToolErrorResult("CANONICAL_OPERATION_REQUIRES_BRIDGE", "host migrate VM requires canonical lab mode; the Node slot manager does not perform cross-node migration");
|
|
107
|
+
}
|
|
108
|
+
const value = parsed.data;
|
|
109
|
+
const normalizedTargetHost = normalizeProxmoxHost(value.targetHost);
|
|
110
|
+
const normalizedConfirmTargetHost = value.confirmTargetHost
|
|
111
|
+
? normalizeProxmoxHost(value.confirmTargetHost)
|
|
112
|
+
: undefined;
|
|
113
|
+
const args = [
|
|
114
|
+
"host",
|
|
115
|
+
"migrate-vm",
|
|
116
|
+
"--asset-id",
|
|
117
|
+
value.assetId,
|
|
118
|
+
"--target-host",
|
|
119
|
+
normalizedTargetHost,
|
|
120
|
+
"--operation-id",
|
|
121
|
+
value.operationId,
|
|
122
|
+
];
|
|
123
|
+
if (value.targetStorage)
|
|
124
|
+
args.push("--target-storage", value.targetStorage);
|
|
125
|
+
if (value.targetBridge)
|
|
126
|
+
args.push("--target-bridge", value.targetBridge);
|
|
127
|
+
if (value.targetVmid !== undefined)
|
|
128
|
+
args.push("--target-vmid", String(value.targetVmid));
|
|
129
|
+
if (value.lockTimeoutSeconds !== undefined)
|
|
130
|
+
args.push("--lock-timeout-seconds", String(value.lockTimeoutSeconds));
|
|
131
|
+
if (value.receiptFile)
|
|
132
|
+
args.push("--receipt-file", value.receiptFile);
|
|
133
|
+
if (value.apply) {
|
|
134
|
+
args.push("--apply", "--confirm-asset-id", value.confirmAssetId, "--confirm-target-host", normalizedConfirmTargetHost, "--plan-digest", value.planDigest);
|
|
135
|
+
}
|
|
136
|
+
return runCanonicalOperation(context.canonicalBridge, "host_migrate_vm", args, MIGRATION_TRANSACTION_TIMEOUT_MS);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=host-migrate-vm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-migrate-vm.js","sourceRoot":"","sources":["../../../src/tools/host-migrate-vm.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,5 +50,8 @@ export * from "./sha-channel.js";
|
|
|
50
50
|
export * from "./host-maintenance-shutdown.js";
|
|
51
51
|
export * from "./appliance-candidate-update.js";
|
|
52
52
|
export * from "./appliance-candidate-retire.js";
|
|
53
|
+
export * from "./host-migrate-vm.js";
|
|
54
|
+
export * from "./sandbox-tools.js";
|
|
55
|
+
export * from "./fleet-metrics.js";
|
|
53
56
|
export declare function registerAllTools(mcpServer: McpServer, context: ToolContext): void;
|
|
54
57
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAIL,WAAW,EACZ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAIL,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAoQzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAYnC,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAmwBjF"}
|
package/dist/src/tools/index.js
CHANGED
|
@@ -51,6 +51,9 @@ import { HostMaintenanceShutdownInputShape, handleHostMaintenanceShutdown, } fro
|
|
|
51
51
|
import { CubeListInputShape, handleCubeList, CubeStatusInputShape, handleCubeStatus, CubeExecInputShape, handleCubeExec, CubeConfigInputShape, handleCubeConfig, CubeDialpeerShowInputShape, handleCubeDialpeerShow, CubeDialpeerApplyInputShape, handleCubeDialpeerApply, CubeXccEnableInputShape, handleCubeXccEnable, CubeXccStatusInputShape, handleCubeXccStatus, CubeIosSnapshotInputShape, handleCubeIosSnapshot, } from "./cube-canonical.js";
|
|
52
52
|
import { ApplyManifestInputShape, handleApplyManifest, GetManifestInputShape, handleGetManifest, DeleteManifestInputShape, handleDeleteManifest, RenewManifestInputShape, handleRenewManifest, ListManifestsInputShape, handleListManifests, } from "./manifest-tools.js";
|
|
53
53
|
import { ApplyLicenseInputShape, handleApplyLicense, } from "./license-tools.js";
|
|
54
|
+
import { HostMigrateVmInputShape, handleHostMigrateVm, } from "./host-migrate-vm.js";
|
|
55
|
+
import { SandboxCloneInputShape, handleSandboxClone, SandboxResetInputShape, handleSandboxReset, } from "./sandbox-tools.js";
|
|
56
|
+
import { FerrumFleetMetricsInputShape, handleFerrumFleetMetrics, } from "./fleet-metrics.js";
|
|
54
57
|
import { canonicalBridgeOwnsCredentials, canonicalMode, canonicalOperationBlocked, } from "./canonical-guard.js";
|
|
55
58
|
import { createToolErrorResult } from "../types/mcp.js";
|
|
56
59
|
import { buildProvenance, stampProvenance } from "../provenance.js";
|
|
@@ -90,6 +93,9 @@ export * from "./sha-channel.js";
|
|
|
90
93
|
export * from "./host-maintenance-shutdown.js";
|
|
91
94
|
export * from "./appliance-candidate-update.js";
|
|
92
95
|
export * from "./appliance-candidate-retire.js";
|
|
96
|
+
export * from "./host-migrate-vm.js";
|
|
97
|
+
export * from "./sandbox-tools.js";
|
|
98
|
+
export * from "./fleet-metrics.js";
|
|
93
99
|
export function registerAllTools(mcpServer, context) {
|
|
94
100
|
// This registry uses only Zod 3 object shapes and the four-argument tool
|
|
95
101
|
// form. Keep schema-to-handler inference without expanding the SDK's
|
|
@@ -396,5 +402,21 @@ export function registerAllTools(mcpServer, context) {
|
|
|
396
402
|
server.tool("renew_license", "Renews an existing Call Telemetry license on a target appliance VM by minting and applying a fresh signed token with specified duration.", ApplyLicenseInputShape, async (args) => {
|
|
397
403
|
return handleApplyLicense(args, context);
|
|
398
404
|
});
|
|
405
|
+
// 39. host_migrate_vm
|
|
406
|
+
server.tool("host_migrate_vm", "Plan or execute guarded cold VM migration between standalone Proxmox hosts using native qm remote-migrate. Cold migration only: source VM must be stopped due to CPU heterogeneity.", HostMigrateVmInputShape, async (args) => {
|
|
407
|
+
return handleHostMigrateVm(args, context);
|
|
408
|
+
});
|
|
409
|
+
// 40. sandbox_clone
|
|
410
|
+
server.tool("sandbox_clone", "Spawn an ephemeral agent sandbox VM from gold master template in sub-15s (linked clone). Supports AlmaLinux 9.7 (authoritative CallTelemetry master) and Ubuntu 24.04.", SandboxCloneInputShape, async (args) => {
|
|
411
|
+
return handleSandboxClone(args, context);
|
|
412
|
+
});
|
|
413
|
+
// 41. sandbox_reset
|
|
414
|
+
server.tool("sandbox_reset", "Rollback an ephemeral agent sandbox VM to its baseline clean-state snapshot in sub-15s.", SandboxResetInputShape, async (args) => {
|
|
415
|
+
return handleSandboxReset(args, context);
|
|
416
|
+
});
|
|
417
|
+
// 42. ferrum_fleet_metrics
|
|
418
|
+
server.tool("ferrum_fleet_metrics", "Query fleet-wide hypervisor telemetry, dynamic 8GB slot occupancy, and Prometheus capacity alert readiness across Proxmox standalone nodes.", FerrumFleetMetricsInputShape, async (args) => {
|
|
419
|
+
return handleFerrumFleetMetrics(args, context);
|
|
420
|
+
});
|
|
399
421
|
}
|
|
400
422
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const PROXMOX_HOST_INPUTS: readonly ["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"];
|
|
3
|
+
export declare const ProxmoxHostInputSchema: z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>;
|
|
4
|
+
export declare const ProxmoxFleetHostInputSchema: z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini", "all"]>;
|
|
5
|
+
export type CanonicalProxmoxHost = "proxmox-lab" | "proxmox-minis-lab";
|
|
6
|
+
export type ProxmoxSlotPolicy = Readonly<{
|
|
7
|
+
floor: number;
|
|
8
|
+
hardMax: number;
|
|
9
|
+
storage: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const PROXMOX_SLOT_POLICIES: Readonly<Record<CanonicalProxmoxHost, ProxmoxSlotPolicy>>;
|
|
12
|
+
export declare function normalizeProxmoxHost(host: (typeof PROXMOX_HOST_INPUTS)[number]): CanonicalProxmoxHost;
|
|
13
|
+
export declare function proxmoxSlotPolicy(host: CanonicalProxmoxHost): ProxmoxSlotPolicy;
|
|
14
|
+
//# sourceMappingURL=proxmox-host-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxmox-host-policy.d.ts","sourceRoot":"","sources":["../../../src/tools/proxmox-host-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,+DAItB,CAAC;AAEX,eAAO,MAAM,sBAAsB,iEAA8B,CAAC;AAClE,eAAO,MAAM,2BAA2B,wEAG7B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAC1C,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAY/C,CAAC;AAEH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,GACzC,oBAAoB,CAEtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const PROXMOX_HOST_INPUTS = [
|
|
3
|
+
"proxmox-lab",
|
|
4
|
+
"proxmox-minis-lab",
|
|
5
|
+
"proxmox-mini",
|
|
6
|
+
];
|
|
7
|
+
export const ProxmoxHostInputSchema = z.enum(PROXMOX_HOST_INPUTS);
|
|
8
|
+
export const ProxmoxFleetHostInputSchema = z.enum([
|
|
9
|
+
...PROXMOX_HOST_INPUTS,
|
|
10
|
+
"all",
|
|
11
|
+
]);
|
|
12
|
+
export const PROXMOX_SLOT_POLICIES = Object.freeze({
|
|
13
|
+
"proxmox-lab": Object.freeze({
|
|
14
|
+
floor: 2,
|
|
15
|
+
hardMax: 4,
|
|
16
|
+
storage: "local-lvm",
|
|
17
|
+
}),
|
|
18
|
+
"proxmox-minis-lab": Object.freeze({
|
|
19
|
+
floor: 4,
|
|
20
|
+
hardMax: 8,
|
|
21
|
+
storage: "local-lvm",
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
export function normalizeProxmoxHost(host) {
|
|
25
|
+
return host === "proxmox-mini" ? "proxmox-minis-lab" : host;
|
|
26
|
+
}
|
|
27
|
+
export function proxmoxSlotPolicy(host) {
|
|
28
|
+
return PROXMOX_SLOT_POLICIES[host];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=proxmox-host-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxmox-host-policy.js","sourceRoot":"","sources":["../../../src/tools/proxmox-host-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,mBAAmB;IACnB,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC;IAChD,GAAG,mBAAmB;IACtB,KAAK;CACG,CAAC,CAAC;AAUZ,MAAM,CAAC,MAAM,qBAAqB,GAE9B,MAAM,CAAC,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;QAC3B,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,WAAW;KACrB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAClC,IAA0C;IAE1C,OAAO,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA0B;IAC1D,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Rapid Ephemeral Sandbox MCP Tools (sandbox_clone, sandbox_reset).
|
|
3
|
+
* Wraps canonical `lab-inventory sandbox clone` and `sandbox reset` for sub-15s
|
|
4
|
+
* linked clone provisioning and instant snapshot rollback on Proxmox VE.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { CallToolResult } from "../types/mcp.js";
|
|
8
|
+
import { ToolContext } from "./list-hosts.js";
|
|
9
|
+
export declare const SandboxCloneInputShape: {
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
linearIssue: z.ZodString;
|
|
12
|
+
operationId: z.ZodString;
|
|
13
|
+
templateAssetId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
14
|
+
hostAssetId: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>>;
|
|
15
|
+
cores: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
16
|
+
memoryMb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
17
|
+
diskGb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
18
|
+
storage: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
19
|
+
baselineSnapshot: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
20
|
+
ttlHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
21
|
+
sshKey: z.ZodOptional<z.ZodString>;
|
|
22
|
+
sshKeyFile: z.ZodOptional<z.ZodString>;
|
|
23
|
+
waitAgent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
24
|
+
vmid: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
27
|
+
confirmName: z.ZodOptional<z.ZodString>;
|
|
28
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
29
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
30
|
+
};
|
|
31
|
+
export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
|
|
32
|
+
name: z.ZodString;
|
|
33
|
+
linearIssue: z.ZodString;
|
|
34
|
+
operationId: z.ZodString;
|
|
35
|
+
templateAssetId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
36
|
+
hostAssetId: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>>;
|
|
37
|
+
cores: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
38
|
+
memoryMb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
39
|
+
diskGb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
40
|
+
storage: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
41
|
+
baselineSnapshot: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
42
|
+
ttlHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
43
|
+
sshKey: z.ZodOptional<z.ZodString>;
|
|
44
|
+
sshKeyFile: z.ZodOptional<z.ZodString>;
|
|
45
|
+
waitAgent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
46
|
+
vmid: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
48
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
49
|
+
confirmName: z.ZodOptional<z.ZodString>;
|
|
50
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
51
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
storage: string;
|
|
54
|
+
name: string;
|
|
55
|
+
cores: number;
|
|
56
|
+
memoryMb: number;
|
|
57
|
+
linearIssue: string;
|
|
58
|
+
hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
59
|
+
operationId: string;
|
|
60
|
+
diskGb: number;
|
|
61
|
+
templateAssetId: string;
|
|
62
|
+
apply: boolean;
|
|
63
|
+
ttlHours: number;
|
|
64
|
+
baselineSnapshot: string;
|
|
65
|
+
waitAgent: boolean;
|
|
66
|
+
vmid?: number | undefined;
|
|
67
|
+
receiptFile?: string | undefined;
|
|
68
|
+
confirmAssetId?: string | undefined;
|
|
69
|
+
planDigest?: string | undefined;
|
|
70
|
+
sshKey?: string | undefined;
|
|
71
|
+
sshKeyFile?: string | undefined;
|
|
72
|
+
confirmName?: string | undefined;
|
|
73
|
+
}, {
|
|
74
|
+
name: string;
|
|
75
|
+
linearIssue: string;
|
|
76
|
+
operationId: string;
|
|
77
|
+
storage?: string | undefined;
|
|
78
|
+
cores?: number | undefined;
|
|
79
|
+
memoryMb?: number | undefined;
|
|
80
|
+
vmid?: number | undefined;
|
|
81
|
+
hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
82
|
+
diskGb?: number | undefined;
|
|
83
|
+
templateAssetId?: string | undefined;
|
|
84
|
+
apply?: boolean | undefined;
|
|
85
|
+
receiptFile?: string | undefined;
|
|
86
|
+
ttlHours?: number | undefined;
|
|
87
|
+
confirmAssetId?: string | undefined;
|
|
88
|
+
planDigest?: string | undefined;
|
|
89
|
+
baselineSnapshot?: string | undefined;
|
|
90
|
+
sshKey?: string | undefined;
|
|
91
|
+
sshKeyFile?: string | undefined;
|
|
92
|
+
waitAgent?: boolean | undefined;
|
|
93
|
+
confirmName?: string | undefined;
|
|
94
|
+
}>, {
|
|
95
|
+
storage: string;
|
|
96
|
+
name: string;
|
|
97
|
+
cores: number;
|
|
98
|
+
memoryMb: number;
|
|
99
|
+
linearIssue: string;
|
|
100
|
+
hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
101
|
+
operationId: string;
|
|
102
|
+
diskGb: number;
|
|
103
|
+
templateAssetId: string;
|
|
104
|
+
apply: boolean;
|
|
105
|
+
ttlHours: number;
|
|
106
|
+
baselineSnapshot: string;
|
|
107
|
+
waitAgent: boolean;
|
|
108
|
+
vmid?: number | undefined;
|
|
109
|
+
receiptFile?: string | undefined;
|
|
110
|
+
confirmAssetId?: string | undefined;
|
|
111
|
+
planDigest?: string | undefined;
|
|
112
|
+
sshKey?: string | undefined;
|
|
113
|
+
sshKeyFile?: string | undefined;
|
|
114
|
+
confirmName?: string | undefined;
|
|
115
|
+
}, {
|
|
116
|
+
name: string;
|
|
117
|
+
linearIssue: string;
|
|
118
|
+
operationId: string;
|
|
119
|
+
storage?: string | undefined;
|
|
120
|
+
cores?: number | undefined;
|
|
121
|
+
memoryMb?: number | undefined;
|
|
122
|
+
vmid?: number | undefined;
|
|
123
|
+
hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
124
|
+
diskGb?: number | undefined;
|
|
125
|
+
templateAssetId?: string | undefined;
|
|
126
|
+
apply?: boolean | undefined;
|
|
127
|
+
receiptFile?: string | undefined;
|
|
128
|
+
ttlHours?: number | undefined;
|
|
129
|
+
confirmAssetId?: string | undefined;
|
|
130
|
+
planDigest?: string | undefined;
|
|
131
|
+
baselineSnapshot?: string | undefined;
|
|
132
|
+
sshKey?: string | undefined;
|
|
133
|
+
sshKeyFile?: string | undefined;
|
|
134
|
+
waitAgent?: boolean | undefined;
|
|
135
|
+
confirmName?: string | undefined;
|
|
136
|
+
}>;
|
|
137
|
+
export type SandboxCloneInput = z.infer<typeof SandboxCloneInputSchema>;
|
|
138
|
+
export declare const SandboxResetInputShape: {
|
|
139
|
+
assetId: z.ZodString;
|
|
140
|
+
linearIssue: z.ZodString;
|
|
141
|
+
operationId: z.ZodString;
|
|
142
|
+
snapshotName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
143
|
+
hostAssetId: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>>;
|
|
144
|
+
waitAgent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
145
|
+
vmid: z.ZodOptional<z.ZodNumber>;
|
|
146
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
147
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
148
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
149
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
150
|
+
};
|
|
151
|
+
export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
|
|
152
|
+
assetId: z.ZodString;
|
|
153
|
+
linearIssue: z.ZodString;
|
|
154
|
+
operationId: z.ZodString;
|
|
155
|
+
snapshotName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
156
|
+
hostAssetId: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-minis-lab", "proxmox-mini"]>>>;
|
|
157
|
+
waitAgent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
158
|
+
vmid: z.ZodOptional<z.ZodNumber>;
|
|
159
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
160
|
+
confirmAssetId: z.ZodOptional<z.ZodString>;
|
|
161
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
162
|
+
receiptFile: z.ZodOptional<z.ZodString>;
|
|
163
|
+
}, "strip", z.ZodTypeAny, {
|
|
164
|
+
linearIssue: string;
|
|
165
|
+
assetId: string;
|
|
166
|
+
hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
167
|
+
operationId: string;
|
|
168
|
+
apply: boolean;
|
|
169
|
+
snapshotName: string;
|
|
170
|
+
waitAgent: boolean;
|
|
171
|
+
vmid?: number | undefined;
|
|
172
|
+
receiptFile?: string | undefined;
|
|
173
|
+
confirmAssetId?: string | undefined;
|
|
174
|
+
planDigest?: string | undefined;
|
|
175
|
+
}, {
|
|
176
|
+
linearIssue: string;
|
|
177
|
+
assetId: string;
|
|
178
|
+
operationId: string;
|
|
179
|
+
vmid?: number | undefined;
|
|
180
|
+
hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
181
|
+
apply?: boolean | undefined;
|
|
182
|
+
receiptFile?: string | undefined;
|
|
183
|
+
confirmAssetId?: string | undefined;
|
|
184
|
+
snapshotName?: string | undefined;
|
|
185
|
+
planDigest?: string | undefined;
|
|
186
|
+
waitAgent?: boolean | undefined;
|
|
187
|
+
}>, {
|
|
188
|
+
linearIssue: string;
|
|
189
|
+
assetId: string;
|
|
190
|
+
hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab";
|
|
191
|
+
operationId: string;
|
|
192
|
+
apply: boolean;
|
|
193
|
+
snapshotName: string;
|
|
194
|
+
waitAgent: boolean;
|
|
195
|
+
vmid?: number | undefined;
|
|
196
|
+
receiptFile?: string | undefined;
|
|
197
|
+
confirmAssetId?: string | undefined;
|
|
198
|
+
planDigest?: string | undefined;
|
|
199
|
+
}, {
|
|
200
|
+
linearIssue: string;
|
|
201
|
+
assetId: string;
|
|
202
|
+
operationId: string;
|
|
203
|
+
vmid?: number | undefined;
|
|
204
|
+
hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | undefined;
|
|
205
|
+
apply?: boolean | undefined;
|
|
206
|
+
receiptFile?: string | undefined;
|
|
207
|
+
confirmAssetId?: string | undefined;
|
|
208
|
+
snapshotName?: string | undefined;
|
|
209
|
+
planDigest?: string | undefined;
|
|
210
|
+
waitAgent?: boolean | undefined;
|
|
211
|
+
}>;
|
|
212
|
+
export type SandboxResetInput = z.infer<typeof SandboxResetInputSchema>;
|
|
213
|
+
export declare function handleSandboxClone(rawArgs: unknown, context: ToolContext): Promise<CallToolResult>;
|
|
214
|
+
export declare function handleSandboxReset(rawArgs: unknown, context: ToolContext): Promise<CallToolResult>;
|
|
215
|
+
//# sourceMappingURL=sandbox-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/sandbox-tools.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;AAM9C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;CAwClC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;CA6BlC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBhC,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA+DzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA8CzB"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Rapid Ephemeral Sandbox MCP Tools (sandbox_clone, sandbox_reset).
|
|
3
|
+
* Wraps canonical `lab-inventory sandbox clone` and `sandbox reset` for sub-15s
|
|
4
|
+
* linked clone provisioning and instant snapshot rollback on Proxmox VE.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
|
|
8
|
+
import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
|
|
9
|
+
import { normalizeProxmoxHost, ProxmoxHostInputSchema, } from "./proxmox-host-policy.js";
|
|
10
|
+
export const SandboxCloneInputShape = {
|
|
11
|
+
name: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe("Sandbox VM name (e.g. 'sandbox-agent-feat-api-101')."),
|
|
15
|
+
linearIssue: z
|
|
16
|
+
.string()
|
|
17
|
+
.regex(/^[A-Za-z][A-Za-z0-9]*-[1-9][0-9]*$/)
|
|
18
|
+
.describe("Linear campaign issue key tracking this sandbox (e.g. 'UAT-1636')."),
|
|
19
|
+
operationId: z
|
|
20
|
+
.string()
|
|
21
|
+
.regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$/)
|
|
22
|
+
.describe("Unique idempotency ID for this sandbox transaction (8-128 characters)."),
|
|
23
|
+
templateAssetId: z
|
|
24
|
+
.string()
|
|
25
|
+
.min(1)
|
|
26
|
+
.optional()
|
|
27
|
+
.default("almalinux-97-sandbox-template")
|
|
28
|
+
.describe("Gold master template asset ID. Defaults to 'almalinux-97-sandbox-template' (authoritative CallTelemetry master). Also supports 'ubuntu-2404-sandbox-template'."),
|
|
29
|
+
hostAssetId: ProxmoxHostInputSchema
|
|
30
|
+
.optional()
|
|
31
|
+
.default("proxmox-minis-lab")
|
|
32
|
+
.describe("Target Proxmox host asset ID (default: 'proxmox-minis-lab')."),
|
|
33
|
+
cores: z.number().int().positive().optional().default(2).describe("vCPU core count (default: 2)."),
|
|
34
|
+
memoryMb: z.number().int().positive().optional().default(4096).describe("RAM in megabytes (default: 4096)."),
|
|
35
|
+
diskGb: z.number().int().positive().optional().default(20).describe("Root disk size in gigabytes (default: 20)."),
|
|
36
|
+
storage: z.string().min(1).optional().default("local-lvm").describe("Target storage pool (default: 'local-lvm')."),
|
|
37
|
+
baselineSnapshot: z.string().min(1).optional().default("clean-state").describe("Baseline snapshot name (default: 'clean-state')."),
|
|
38
|
+
ttlHours: z.number().int().positive().optional().default(4).describe("Slot lease TTL in hours (default: 4)."),
|
|
39
|
+
sshKey: z.string().optional().describe("SSH public key string (ssh-ed25519 or ssh-rsa) to inject via cloud-init."),
|
|
40
|
+
sshKeyFile: z.string().optional().describe("Path to SSH public key file for injection."),
|
|
41
|
+
waitAgent: z.boolean().optional().default(false).describe("Wait for QEMU guest agent health verification before completing."),
|
|
42
|
+
vmid: z.number().int().positive().optional().describe("Optional explicit static VMID in 300-899 range."),
|
|
43
|
+
apply: z.boolean().optional().default(false).describe("Omit for a dry-run plan. True executes rapid linked clone creation."),
|
|
44
|
+
confirmAssetId: z.string().min(1).optional().describe("Required with apply=true and must match name."),
|
|
45
|
+
confirmName: z.string().min(1).optional().describe("Required with apply=true and must match name."),
|
|
46
|
+
planDigest: z.string().regex(/^[a-f0-9]{64}$/i).optional().describe("Required with apply=true and must match dry-run plan digest."),
|
|
47
|
+
receiptFile: z.string().min(1).optional().describe("Optional path for a copy of the plan or durable transaction receipt."),
|
|
48
|
+
};
|
|
49
|
+
export const SandboxCloneInputSchema = z
|
|
50
|
+
.object(SandboxCloneInputShape)
|
|
51
|
+
.superRefine((value, context) => {
|
|
52
|
+
if (!value.apply)
|
|
53
|
+
return;
|
|
54
|
+
const confirm = value.confirmAssetId ?? value.confirmName;
|
|
55
|
+
if (!confirm || confirm !== value.name) {
|
|
56
|
+
context.addIssue({
|
|
57
|
+
code: z.ZodIssueCode.custom,
|
|
58
|
+
path: ["confirmAssetId"],
|
|
59
|
+
message: "must exactly match name when apply=true",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (!value.planDigest) {
|
|
63
|
+
context.addIssue({
|
|
64
|
+
code: z.ZodIssueCode.custom,
|
|
65
|
+
path: ["planDigest"],
|
|
66
|
+
message: "is required when apply=true",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
export const SandboxResetInputShape = {
|
|
71
|
+
assetId: z
|
|
72
|
+
.string()
|
|
73
|
+
.min(1)
|
|
74
|
+
.describe("Sandbox VM name or canonical asset ID to reset."),
|
|
75
|
+
linearIssue: z
|
|
76
|
+
.string()
|
|
77
|
+
.regex(/^[A-Za-z][A-Za-z0-9]*-[1-9][0-9]*$/)
|
|
78
|
+
.describe("Linear campaign issue key tracking this sandbox."),
|
|
79
|
+
operationId: z
|
|
80
|
+
.string()
|
|
81
|
+
.regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$/)
|
|
82
|
+
.describe("Unique idempotency ID for this reset transaction (8-128 characters)."),
|
|
83
|
+
snapshotName: z
|
|
84
|
+
.string()
|
|
85
|
+
.min(1)
|
|
86
|
+
.optional()
|
|
87
|
+
.default("clean-state")
|
|
88
|
+
.describe("Snapshot name to roll back to (default: 'clean-state')."),
|
|
89
|
+
hostAssetId: ProxmoxHostInputSchema
|
|
90
|
+
.optional()
|
|
91
|
+
.default("proxmox-minis-lab")
|
|
92
|
+
.describe("Target Proxmox host asset ID (default: 'proxmox-minis-lab')."),
|
|
93
|
+
waitAgent: z.boolean().optional().default(false).describe("Wait for QEMU guest agent health verification after rollback."),
|
|
94
|
+
vmid: z.number().int().positive().optional().describe("Optional target VMID."),
|
|
95
|
+
apply: z.boolean().optional().default(false).describe("Omit for a dry-run plan. True executes instant snapshot rollback."),
|
|
96
|
+
confirmAssetId: z.string().min(1).optional().describe("Required with apply=true and must match assetId."),
|
|
97
|
+
planDigest: z.string().regex(/^[a-f0-9]{64}$/i).optional().describe("Required with apply=true and must match dry-run plan digest."),
|
|
98
|
+
receiptFile: z.string().min(1).optional().describe("Optional path for a copy of the plan or durable transaction receipt."),
|
|
99
|
+
};
|
|
100
|
+
export const SandboxResetInputSchema = z
|
|
101
|
+
.object(SandboxResetInputShape)
|
|
102
|
+
.superRefine((value, context) => {
|
|
103
|
+
if (!value.apply)
|
|
104
|
+
return;
|
|
105
|
+
if (value.confirmAssetId !== value.assetId) {
|
|
106
|
+
context.addIssue({
|
|
107
|
+
code: z.ZodIssueCode.custom,
|
|
108
|
+
path: ["confirmAssetId"],
|
|
109
|
+
message: "must exactly match assetId when apply=true",
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
if (!value.planDigest) {
|
|
113
|
+
context.addIssue({
|
|
114
|
+
code: z.ZodIssueCode.custom,
|
|
115
|
+
path: ["planDigest"],
|
|
116
|
+
message: "is required when apply=true",
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const SANDBOX_TIMEOUT_MS = 60_000; // Sub-15s target with 60s bounded ceiling
|
|
121
|
+
export async function handleSandboxClone(rawArgs, context) {
|
|
122
|
+
const parsed = SandboxCloneInputSchema.safeParse(rawArgs);
|
|
123
|
+
if (!parsed.success) {
|
|
124
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, parsed.error.errors
|
|
125
|
+
.map((error) => `${error.path.join(".")}: ${error.message}`)
|
|
126
|
+
.join("; "));
|
|
127
|
+
}
|
|
128
|
+
if (!canonicalMode(context)) {
|
|
129
|
+
return createToolErrorResult("CANONICAL_OPERATION_REQUIRES_BRIDGE", "sandbox clone requires canonical lab mode; the Node slot manager does not perform ephemeral sandbox cloning");
|
|
130
|
+
}
|
|
131
|
+
const value = parsed.data;
|
|
132
|
+
const normalizedHost = normalizeProxmoxHost(value.hostAssetId);
|
|
133
|
+
const args = [
|
|
134
|
+
"sandbox",
|
|
135
|
+
"clone",
|
|
136
|
+
"--name",
|
|
137
|
+
value.name,
|
|
138
|
+
"--linear-issue",
|
|
139
|
+
value.linearIssue,
|
|
140
|
+
"--operation-id",
|
|
141
|
+
value.operationId,
|
|
142
|
+
"--template-asset-id",
|
|
143
|
+
value.templateAssetId,
|
|
144
|
+
"--host-asset-id",
|
|
145
|
+
normalizedHost,
|
|
146
|
+
"--cores",
|
|
147
|
+
String(value.cores),
|
|
148
|
+
"--memory-mb",
|
|
149
|
+
String(value.memoryMb),
|
|
150
|
+
"--disk-gb",
|
|
151
|
+
String(value.diskGb),
|
|
152
|
+
"--storage",
|
|
153
|
+
value.storage,
|
|
154
|
+
"--baseline-snapshot",
|
|
155
|
+
value.baselineSnapshot,
|
|
156
|
+
"--ttl-hours",
|
|
157
|
+
String(value.ttlHours),
|
|
158
|
+
];
|
|
159
|
+
if (value.sshKey)
|
|
160
|
+
args.push("--ssh-key", value.sshKey);
|
|
161
|
+
if (value.sshKeyFile)
|
|
162
|
+
args.push("--ssh-key-file", value.sshKeyFile);
|
|
163
|
+
if (value.waitAgent)
|
|
164
|
+
args.push("--wait-agent");
|
|
165
|
+
if (value.vmid !== undefined)
|
|
166
|
+
args.push("--vmid", String(value.vmid));
|
|
167
|
+
if (value.receiptFile)
|
|
168
|
+
args.push("--receipt-file", value.receiptFile);
|
|
169
|
+
if (value.apply) {
|
|
170
|
+
const confirm = value.confirmAssetId ?? value.confirmName;
|
|
171
|
+
args.push("--apply", "--confirm-asset-id", confirm, "--confirm-name", confirm, "--plan-digest", value.planDigest);
|
|
172
|
+
}
|
|
173
|
+
return runCanonicalOperation(context.canonicalBridge, "sandbox_clone", args, SANDBOX_TIMEOUT_MS);
|
|
174
|
+
}
|
|
175
|
+
export async function handleSandboxReset(rawArgs, context) {
|
|
176
|
+
const parsed = SandboxResetInputSchema.safeParse(rawArgs);
|
|
177
|
+
if (!parsed.success) {
|
|
178
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, parsed.error.errors
|
|
179
|
+
.map((error) => `${error.path.join(".")}: ${error.message}`)
|
|
180
|
+
.join("; "));
|
|
181
|
+
}
|
|
182
|
+
if (!canonicalMode(context)) {
|
|
183
|
+
return createToolErrorResult("CANONICAL_OPERATION_REQUIRES_BRIDGE", "sandbox reset requires canonical lab mode; the Node slot manager does not perform snapshot rollbacks");
|
|
184
|
+
}
|
|
185
|
+
const value = parsed.data;
|
|
186
|
+
const normalizedHost = normalizeProxmoxHost(value.hostAssetId);
|
|
187
|
+
const args = [
|
|
188
|
+
"sandbox",
|
|
189
|
+
"reset",
|
|
190
|
+
"--asset-id",
|
|
191
|
+
value.assetId,
|
|
192
|
+
"--linear-issue",
|
|
193
|
+
value.linearIssue,
|
|
194
|
+
"--operation-id",
|
|
195
|
+
value.operationId,
|
|
196
|
+
"--snapshot-name",
|
|
197
|
+
value.snapshotName,
|
|
198
|
+
"--host-asset-id",
|
|
199
|
+
normalizedHost,
|
|
200
|
+
];
|
|
201
|
+
if (value.waitAgent)
|
|
202
|
+
args.push("--wait-agent");
|
|
203
|
+
if (value.vmid !== undefined)
|
|
204
|
+
args.push("--vmid", String(value.vmid));
|
|
205
|
+
if (value.receiptFile)
|
|
206
|
+
args.push("--receipt-file", value.receiptFile);
|
|
207
|
+
if (value.apply) {
|
|
208
|
+
args.push("--apply", "--confirm-asset-id", value.confirmAssetId, "--plan-digest", value.planDigest);
|
|
209
|
+
}
|
|
210
|
+
return runCanonicalOperation(context.canonicalBridge, "sandbox_reset", args, SANDBOX_TIMEOUT_MS);
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=sandbox-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-tools.js","sourceRoot":"","sources":["../../../src/tools/sandbox-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@calltelemetry/ct-lab-mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.47",
|
|
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",
|