@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.
@@ -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,kYAyBlC,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,CAgDT;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"}
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;CACL,CAAC;AAYX;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE,MAAM,mBAAmB,GAAG,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,KAAK;YACf,UAAU;YACV,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,gBAAgB;YAClC,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,aAAa;YACrB,gBAAgB,EAAE,aAAa;YAC/B,mBAAmB;YACnB,MAAM,EAAE,iCAAiC;SAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,4BAA4B;QACpC,gBAAgB,EAAE,2BAA2B;QAC7C,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAiBC,EACD,IAA2E;IAE3E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;QAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC9C,qEAAqE;QACrE,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,IAAY,EACZ,MAAc,EACd,OAAiB;IAEjB,OAAO,aAAa,IAAI,6CAA6C,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;UACnG,kGAAkG;UAClG,iEAAiE;UACjE,yEAAyE;UACzE,8FAA8F;UAC9F,iDAAiD,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,MAAM,GAAI,IAA6B,CAAC,MAAM,CAAC;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAoB,EACpB,SAAiB,EACjB,IAAc;IAEd,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,qEAAqE;IACrE,0DAA0D;IAC1D,IAAI,SAAS,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjE,uEAAuE;IACvE,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAE9E,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ;eACzF,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC;IAC5F,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,IACE,SAAS,KAAK,kBAAkB;WAC7B,SAAS,KAAK,qBAAqB;WACnC,SAAS,KAAK,cAAc;WAC5B,SAAS,KAAK,mBAAmB;QACpC,sEAAsE;QACtE,mEAAmE;QACnE,sDAAsD;WACnD,SAAS,KAAK,qBAAqB;QACtC,qEAAqE;QACrE,sEAAsE;QACtE,0EAA0E;QAC1E,4DAA4D;WACzD,SAAS,KAAK,4BAA4B;WAC1C,SAAS,KAAK,aAAa;QAC9B,wEAAwE;QACxE,yEAAyE;WACtE,SAAS,KAAK,UAAU;WACxB,SAAS,KAAK,aAAa;QAC9B,oEAAoE;QACpE,wEAAwE;WACrE,SAAS,KAAK,cAAc,EAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,IAAY;IACvE,OAAO,qBAAqB,CAC1B,qCAAqC,EACrC,GAAG,SAAS,uCAAuC,IAAI,EAAE,EACzD,EAAE,SAAS,EAAE,kBAAkB,EAAE,2DAA2D,EAAE,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsC,EACtC,SAAiB,EACjB,IAAc,EACd,SAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,qBAAqB,CAAC,iCAAiC,EAAE,uCAAuC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjD,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,MAAM,OAAO,GAAG;YACd,OAAO;YACP,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,qBAAqB,CAC1B,4BAA4B,EAC5B,MAAM,CAAC,MAAM;mBACR,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;mBAC/D,MAAM,CAAC,MAAM;mBACb,GAAG,SAAS,8BAA8B,EAC/C,OAAO,CACR,CAAC;QACJ,CAAC;QACD,OAAO,uBAAuB,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,iCAAiC,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAC1B,iCAAiC,EACjC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,EAAE,SAAS,EAAE,CACd,CAAC;IACJ,CAAC;AACH,CAAC"}
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;IACb,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,sBAAsB;CACd,CAAC;AAYX;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE,MAAM,mBAAmB,GAAG,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,KAAK;YACf,UAAU;YACV,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,gBAAgB;YAClC,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,aAAa;YACrB,gBAAgB,EAAE,aAAa;YAC/B,mBAAmB;YACnB,MAAM,EAAE,iCAAiC;SAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,4BAA4B;QACpC,gBAAgB,EAAE,2BAA2B;QAC7C,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAiBC,EACD,IAA2E;IAE3E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;QAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC9C,qEAAqE;QACrE,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,IAAY,EACZ,MAAc,EACd,OAAiB;IAEjB,OAAO,aAAa,IAAI,6CAA6C,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;UACnG,kGAAkG;UAClG,iEAAiE;UACjE,yEAAyE;UACzE,8FAA8F;UAC9F,iDAAiD,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,MAAM,GAAI,IAA6B,CAAC,MAAM,CAAC;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAoB,EACpB,SAAiB,EACjB,IAAc;IAEd,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,qEAAqE;IACrE,0DAA0D;IAC1D,IAAI,SAAS,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjE,uEAAuE;IACvE,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAE9E,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ;eACzF,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC;IAC5F,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,IACE,SAAS,KAAK,kBAAkB;WAC7B,SAAS,KAAK,qBAAqB;WACnC,SAAS,KAAK,cAAc;WAC5B,SAAS,KAAK,mBAAmB;QACpC,sEAAsE;QACtE,mEAAmE;QACnE,sDAAsD;WACnD,SAAS,KAAK,qBAAqB;QACtC,qEAAqE;QACrE,sEAAsE;QACtE,0EAA0E;QAC1E,4DAA4D;WACzD,SAAS,KAAK,4BAA4B;WAC1C,SAAS,KAAK,aAAa;WAC3B,SAAS,KAAK,iBAAiB;WAC/B,SAAS,KAAK,eAAe;WAC7B,SAAS,KAAK,eAAe;WAC7B,SAAS,KAAK,sBAAsB;QACvC,wEAAwE;QACxE,yEAAyE;WACtE,SAAS,KAAK,UAAU;WACxB,SAAS,KAAK,aAAa;QAC9B,oEAAoE;QACpE,wEAAwE;WACrE,SAAS,KAAK,cAAc,EAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,IAAY;IACvE,OAAO,qBAAqB,CAC1B,qCAAqC,EACrC,GAAG,SAAS,uCAAuC,IAAI,EAAE,EACzD,EAAE,SAAS,EAAE,kBAAkB,EAAE,2DAA2D,EAAE,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsC,EACtC,SAAiB,EACjB,IAAc,EACd,SAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,qBAAqB,CAAC,iCAAiC,EAAE,uCAAuC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjD,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,MAAM,OAAO,GAAG;YACd,OAAO;YACP,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,qBAAqB,CAC1B,4BAA4B,EAC5B,MAAM,CAAC,MAAM;mBACR,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;mBAC/D,MAAM,CAAC,MAAM;mBACb,GAAG,SAAS,8BAA8B,EAC/C,OAAO,CACR,CAAC;QACJ,CAAC;QACD,OAAO,uBAAuB,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,iCAAiC,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAC1B,iCAAiC,EACjC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,EAAE,SAAS,EAAE,CACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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;AAsPzB,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;AAYhD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CA2tBjF"}
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"}
@@ -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.46",
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",