@calltelemetry/ct-lab-mcp 0.8.96 → 0.8.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +28 -33
  2. package/dist/bin/ct-lab-mcp.js +3 -6
  3. package/dist/src/canonical/bridge.d.ts +5 -0
  4. package/dist/src/canonical/bridge.d.ts.map +1 -1
  5. package/dist/src/canonical/bridge.js +17 -14
  6. package/dist/src/canonical/bridge.js.map +1 -1
  7. package/dist/src/credentials/resolver.d.ts +2 -3
  8. package/dist/src/credentials/resolver.d.ts.map +1 -1
  9. package/dist/src/credentials/resolver.js +7 -121
  10. package/dist/src/credentials/resolver.js.map +1 -1
  11. package/dist/src/generated-version.d.ts +1 -1
  12. package/dist/src/generated-version.js +1 -1
  13. package/dist/src/hypervisors/esxi/retired.d.ts +7 -7
  14. package/dist/src/hypervisors/esxi/retired.d.ts.map +1 -1
  15. package/dist/src/hypervisors/esxi/retired.js +8 -8
  16. package/dist/src/hypervisors/esxi/retired.js.map +1 -1
  17. package/dist/src/hypervisors/index.d.ts +0 -2
  18. package/dist/src/hypervisors/index.d.ts.map +1 -1
  19. package/dist/src/hypervisors/index.js +0 -2
  20. package/dist/src/hypervisors/index.js.map +1 -1
  21. package/dist/src/hypervisors/manager.d.ts.map +1 -1
  22. package/dist/src/hypervisors/manager.js +14 -31
  23. package/dist/src/hypervisors/manager.js.map +1 -1
  24. package/dist/src/server.d.ts.map +1 -1
  25. package/dist/src/server.js +3 -7
  26. package/dist/src/server.js.map +1 -1
  27. package/dist/src/slot/manager.d.ts +2 -1
  28. package/dist/src/slot/manager.d.ts.map +1 -1
  29. package/dist/src/slot/manager.js +6 -19
  30. package/dist/src/slot/manager.js.map +1 -1
  31. package/dist/src/tools/claimed-import-qcow.d.ts +2 -2
  32. package/dist/src/tools/credential-status.d.ts +2 -2
  33. package/dist/src/tools/credential-status.d.ts.map +1 -1
  34. package/dist/src/tools/credential-status.js +3 -3
  35. package/dist/src/tools/credential-status.js.map +1 -1
  36. package/dist/src/tools/cube-provision.d.ts +2 -2
  37. package/dist/src/tools/find-slot.d.ts +2 -2
  38. package/dist/src/tools/import-qcow.d.ts +6 -6
  39. package/dist/src/tools/list-hosts.d.ts +1 -1
  40. package/dist/src/tools/list-hosts.d.ts.map +1 -1
  41. package/dist/src/tools/list-hosts.js +2 -10
  42. package/dist/src/tools/list-hosts.js.map +1 -1
  43. package/dist/src/tools/list-inventory.js +2 -2
  44. package/dist/src/tools/list-inventory.js.map +1 -1
  45. package/dist/src/tools/provision-tools.d.ts +8 -8
  46. package/dist/src/tools/quick-provision.d.ts +2 -2
  47. package/dist/src/tools/storage-tools.d.ts.map +1 -1
  48. package/dist/src/tools/storage-tools.js +2 -3
  49. package/dist/src/tools/storage-tools.js.map +1 -1
  50. package/dist/src/transports/sse.d.ts.map +1 -1
  51. package/dist/src/transports/sse.js +1 -1
  52. package/dist/src/transports/sse.js.map +1 -1
  53. package/dist/src/worker.d.ts +0 -2
  54. package/dist/src/worker.d.ts.map +1 -1
  55. package/dist/src/worker.js +0 -1
  56. package/dist/src/worker.js.map +1 -1
  57. package/package.json +2 -4
  58. package/dist/src/hypervisors/esxi/client.d.ts +0 -105
  59. package/dist/src/hypervisors/esxi/client.d.ts.map +0 -1
  60. package/dist/src/hypervisors/esxi/client.js +0 -607
  61. package/dist/src/hypervisors/esxi/client.js.map +0 -1
  62. package/dist/src/hypervisors/esxi/mock.d.ts +0 -46
  63. package/dist/src/hypervisors/esxi/mock.d.ts.map +0 -1
  64. package/dist/src/hypervisors/esxi/mock.js +0 -208
  65. package/dist/src/hypervisors/esxi/mock.js.map +0 -1
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # @calltelemetry/ct-lab-mcp
2
2
 
3
- > **Model Context Protocol (MCP) Server for Unified Call Telemetry Lab, Fleet, and Appliance Management across Proxmox VE and VMware ESXi**
3
+ > **Model Context Protocol (MCP) Server for Unified Call Telemetry Lab, Fleet, and Appliance Management across Proxmox VE (ESXi is retired)**
4
4
 
5
5
  [![NPM Version](https://img.shields.io/npm/v/@calltelemetry/ct-lab-mcp.svg)](https://www.npmjs.com/package/@calltelemetry/ct-lab-mcp)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7+-blue.svg)](https://www.typescriptlang.org/)
8
8
  [![Node Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg)](https://nodejs.org/)
9
9
 
10
- `@calltelemetry/ct-lab-mcp` is the single public MCP façade for Call Telemetry lab operations. It exposes high-level multi-hypervisor management (Proxmox VE & VMware ESXi), disposable VM workflows, and secure appliance diagnostics while delegating canonical asset identity, lease ownership, and release-line policy to the private `lab-inventory` CLI supplied by `ct-meta`.
10
+ `@calltelemetry/ct-lab-mcp` is the single public MCP façade for Call Telemetry lab operations. It exposes high-level hypervisor management (Proxmox VE only; ESXi was retired 2026-10-15), disposable VM workflows, and secure appliance diagnostics while delegating canonical asset identity, lease ownership, and release-line policy to the private `lab-inventory` CLI supplied by `ct-meta`.
11
11
 
12
12
  ---
13
13
 
@@ -29,7 +29,7 @@ AI Clients (Claude Desktop / Cursor / Web / AI Agents)
29
29
  ├── release_slot (DEPRECATED alias -> delete_appliance_claim)
30
30
  ├── find_slot / list_slots (DEPRECATED aliases -> list_hosts / list_appliance_claims)
31
31
  ├── purge_slots (RETIRED: explicit SLOT_VERB_RETIRED error; use list_expired_vms / cleanup_expired_vms)
32
- ├── provision_vm (Disposable VM provisioning on Proxmox/ESXi)
32
+ ├── provision_vm (Disposable VM provisioning on Proxmox)
33
33
  ├── proxmox_quick_provision (Size-driven Proxmox fleet plan/apply; host=auto ranks by free RAM then disk)
34
34
  ├── pin_pool_slots (RETIRED: explicit SLOT_VERB_RETIRED error; pass webImage to proxmox_quick_provision)
35
35
  ├── vm_action (Power lifecycle with non-bypassable safety guardrails)
@@ -50,15 +50,15 @@ AI Clients (Claude Desktop / Cursor / Web / AI Agents)
50
50
  ┌───────────────┼───────────────┬───────────────────┐
51
51
  ▼ ▼ ▼ ▼
52
52
  [MultiHypervisor] [Slot Engine] [Safety Guardrails] [Appliance SSH]
53
- ├── Proxmox VE ├── ProxmoxLab ├── Proxmox fixtures ├── ssh2 port 2222
54
- │ (2x8GB) │ (2x8GB max) │ (100-104, 9000s) ├── cli.sh / db vacuum
55
- └── VMware ESXi ├── ProxmoxMini └── ESXi fixtures ├── migrate / logs
56
- (8x8GB) │ (4x8GB max) (CUCM, CUBE, └── Redaction Engine
57
- └── ESXi (8x8GB) Runners, K8s)
53
+ └── Proxmox VE ├── ProxmoxLab ├── Proxmox fixtures ├── ssh2 port 2222
54
+ (lab, mini, │ (2x8GB max) │ (100-104, 9000s) ├── cli.sh / db vacuum
55
+ ibm64) ├── ProxmoxMini └── CUCM, CUBE, ├── migrate / logs
56
+ │ (4x8GB max) Runners, K8s └── Redaction Engine
57
+ └── ProxmoxIbm64
58
58
  │
59
59
  ▼
60
60
  [Lab Credential Resolver]
61
- ├── Tier 1: Process Environment (LAB_PROXMOX_*, GOVC_*, LAB_VM_*)
61
+ ├── Tier 1: Process Environment (LAB_PROXMOX_*, LAB_VM_*)
62
62
  ├── Tier 2: Doppler REST API v3 (DOPPLER_TOKEN)
63
63
  └── Tier 3: In-Memory Mock Fallback / Offline Dev
64
64
  ```
@@ -73,13 +73,13 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
73
73
 
74
74
  ## Key Features
75
75
 
76
- - **Multi-Hypervisor Fleet Management**: Polymorphic abstraction unifying Proxmox VE clusters (`proxmox-lab`, `proxmox-mini`) and VMware ESXi hosts (`esxi-intel-192-168-123-176`).
76
+ - **Multi-Hypervisor Fleet Management**: Polymorphic abstraction over the Proxmox VE hosts (`proxmox-lab`, `proxmox-mini`, `proxmox-ibm64`). **ESXi is retired (operator decision 2026-10-15)**: no ESXi host is catalogued, registered, probed or polled; `GOVC_*`, `ALLOW_ESXI_SLOTS` and `ESXI_SCAN` are ignored; the `esxi-intel-192-168-123-176` id and `esxi` provider/hypervisor selectors are refused (canonical bridge, `list_hosts`, `list_inventory`) without contacting anything; the image ships no `govc`.
77
77
  - **Disposable VM Provisioning**: Give `proxmox_quick_provision` one resource size (`memoryMb`, `vcpus`, `diskGb`). Live capacity filters the homogeneous Proxmox pool, then the eligible host with the most free RAM (then the most free disk headroom, then host id) is selected; a plan with `hostAssetId: auto` resolves it from `host capacity` and pins it in the reviewed plan (`placement` in the result). If capacity cannot be read the canonical CLI keeps resolving `auto`. Apply repeats the reviewed explicit host, VMID, and operation ID.
78
78
  - **Thin-only guest disks (REL-1588, "never thick disks")**: Every disk `provision_vm`, `auto_provision_vm`, `proxmox_quick_provision`, `proxmox_import_qcow`, `claimed_import_qcow`, `host_migrate_vm` and `sandbox_clone` creates, clones, migrates or imports on Proxmox must be on thin storage: `lvmthin` (the `local-lvm` pool on both lab hosts), or a `zfspool` proven `sparse`. Anything else (`lvm`, `dir`, `nfs`, `iscsi`, unknown) is refused with the stable error code `THICK_STORAGE_REFUSED` before any claim, journal, clone, import or other Proxmox change. The storage type is read through the same `host capacity` path as `list_storage`; if it cannot be determined the request fails closed. An omitted `storage` is checked against the default pool (`local-lvm`). `importStorage` (the `dir` pool that only stages a downloaded image) is not a guest-disk target and is not restricted. This server never builds Proxmox disk options itself, so `discard=on` is owned by the canonical transports and templates.
79
79
  - **Resource-based Lease Admission**: There are no fixed per-host or global VM-count quotas. Fresh host health, physical free RAM, VM-image storage, and the requested guest size determine placement. Outstanding unprovisioned claims reserve their size under the claim mutex; backed running VMs are already reflected in physical usage. Unknown, offline, or insufficient resources fail closed.
80
80
  - Slots are retired (slot retirement ADR (REL-1746)); lab capacity is pure cluster capacity. `find_slot`, `claim_slot`, `release_slot` and `list_slots` remain only as deprecated aliases: they return their real result plus `deprecated: true` and the replacement (`list_hosts`, `create_appliance_claim`, `delete_appliance_claim`, `list_appliance_claims`). `purge_slots` and `pin_pool_slots` have no capacity equivalent and return an explicit `SLOT_VERB_RETIRED` error (not an internal failure) naming the replacement. `maxSlots`, `slot_limit` and `availableSlots` stay as deprecated numeric estimates and never gate admission.
81
- - Host selection for provisioning ranks eligible Proxmox hosts by live free RAM, then free disk headroom (no random spread and no "Mini first" tier); ESXi remains a last-place opt-in fallback. A test-only `placementSeed` keeps its reproducible selection. `ferrum_fleet_metrics` reports free RAM/CPU/disk as the authoritative capacity and keeps `slotFloor`/`slotHardMax` as deprecated numbers.
82
- - ESXi leasing remains explicitly opt-in; platform authorization and protected assets remain separate from resource availability.
81
+ - Host selection for provisioning ranks eligible Proxmox hosts by live free RAM, then free disk headroom (no random spread and no "Mini first" tier). A test-only `placementSeed` keeps its reproducible selection. `ferrum_fleet_metrics` reports free RAM/CPU/disk as the authoritative capacity and keeps `slotFloor`/`slotHardMax` as deprecated numbers.
82
+ - Platform authorization and protected assets remain separate from resource availability.
83
83
  - **Non-Bypassable Safety Guardrails**: Hard protection preventing destructive actions (`destroy`, `stop`, `reboot`) against core infrastructure:
84
84
  - Cisco Unified Communications Manager (CUCM 14 / 15 publishers and subscribers)
85
85
  - Cisco CUBE Voice Gateways / Cat8000v
@@ -88,11 +88,11 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
88
88
  - VM Templates (VMIDs `9000`–`9999` or template flags)
89
89
  - SPA-1103 on minis VMID `182`, including cleanup of expired or untracked rows
90
90
  - **Physical Maintenance Shutdown**: `host_maintenance_shutdown` accepts one
91
- exact canonical Proxmox or ESXi host. It plans by default; apply requires the
91
+ exact canonical Proxmox host. It plans by default; apply requires the
92
92
  reviewed plan digest and exact host confirmation, preflights credentials,
93
93
  gracefully drains catalog-matched unclaimed guests, shuts CUCM subscribers
94
94
  before publishers, and refuses active claims, partial discovery, identity
95
- drift, clustered Proxmox, or an ESXi maintenance-mode failure. Force host
95
+ drift, or clustered Proxmox. Force host
96
96
  power-off is not implemented.
97
97
  - **Remote Appliance CLI Control**: Mediated execution of `cli.sh` commands over SSH (port 2222) for status inspection, health diagnostics, Ecto migrations, table vacuums, and container logs.
98
98
  - **Leased Remote Development**: `lab_dev` is a canonical-only façade for the `ct-local-dev-v1` profile. It supports strict `doctor`, `plan`, `prepare`, `start`, `status`, `sync`, `stop`, and `cleanup` actions bound to one asset, lease, Linear issue, operation ID, and reviewed receipt chain. It accepts no guest commands, remote paths, or mock fallback.
@@ -108,7 +108,7 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
108
108
  - **Dynamic Secret Redaction**: Real-time masking prevents passwords, Doppler API tokens, and private keys from leaking into MCP responses or stderr logs.
109
109
  - **Dual Transports**: Clean standard I/O transport (`stdio`) and Express HTTP/SSE transport (`sse`) with `/health`, `/sse`, and `/messages` endpoints.
110
110
  - **3-Tier Credential Resolution**:
111
- 1. *Tier 1*: Direct Environment Variables (`LAB_PROXMOX_*`, `LAB_VM_CREDENTIALS_*`; ESXi `GOVC_*` is optional and retired)
111
+ 1. *Tier 1*: Direct Environment Variables (`LAB_PROXMOX_*`, `LAB_VM_CREDENTIALS_*`; ESXi `GOVC_*` is ignored)
112
112
  2. *Tier 2*: Doppler Secrets REST API v3 (`DOPPLER_TOKEN`)
113
113
  3. *Tier 3*: In-Memory Mock Hypervisor & Appliance Fallback (for offline test suites)
114
114
 
@@ -218,8 +218,8 @@ its rows by exact host or hypervisor without creating another inventory. Exact
218
218
  host reads invoke `vm inventory --host-asset-id`, hypervisor reads invoke
219
219
  `vm inventory --hypervisor`, and only all-scope reads invoke
220
220
  `vm inventory --all`.
221
- Warnings are preserved, with the current singleton ESXi warning bound to its
222
- canonical host identity. Status, template, text, and tag projection remains
221
+ Warnings are preserved. An unqualified read is scoped to Proxmox
222
+ (`--hypervisor proxmox`); ESXi is retired and is never queried. Status, template, text, and tag projection remains
223
223
  unsupported until those fields have an authoritative canonical CLI contract.
224
224
 
225
225
  `list_storage` delegates to `lab-inventory host capacity --asset-id` once per
@@ -230,8 +230,6 @@ warnings; an exact-host failure or all-host failure remains fail-closed. The
230
230
  canonical CLI does not currently prove individual ISO, VM-disk, or backup
231
231
  volume contents, so `includeContent: true` returns
232
232
  `CANONICAL_DETAIL_UNSUPPORTED` without consulting legacy Node credentials.
233
- ESXi datastore `enabled`, `shared`, and content-capability fields are returned
234
- as `null` because the current canonical capacity contract does not expose them.
235
233
 
236
234
  `lab_mission` is the bounded façade for `lab-inventory mission run`. It accepts
237
235
  an immutable manifest path and canonical SHA-256, plans by default, and requires
@@ -504,22 +502,22 @@ at `http://<guest-ip>:80/api/xcc/<cube_id>`.
504
502
  The server registers 7 comprehensive tools conforming to the MCP JSON Schema specification:
505
503
 
506
504
  ### 1. `list_hosts`
507
- Query live free RAM/CPU/disk capacity, health, and deprecated resource-derived 8GB unit estimates across Proxmox VE (`proxmox-lab`, `proxmox-mini`) and VMware ESXi (`esxi-intel-192-168-123-176`).
505
+ Query live free RAM/CPU/disk capacity, health, and deprecated resource-derived 8GB unit estimates across Proxmox VE (`proxmox-lab`, `proxmox-mini`, `proxmox-ibm64`). ESXi is retired and is refused.
508
506
 
509
507
  ```json
510
508
  {
511
- "host": "all", // "proxmox-lab" | "proxmox-mini" | "esxi-intel-192-168-123-176" | "all"
512
- "hypervisorType": "all", // "proxmox" | "esxi" | "all"
509
+ "host": "all", // "proxmox-lab" | "proxmox-mini" | "proxmox-ibm64" | "all"
510
+ "hypervisorType": "all", // "proxmox" | "all"
513
511
  "refresh": false // boolean: force live hypervisor API poll
514
512
  }
515
513
  ```
516
514
 
517
515
  ### 2. `list_inventory`
518
- Query unified fleet inventory across Proxmox VE and VMware ESXi VMs with power status, IP addresses, VLAN, protected flags, release version, and Linear lease tags.
516
+ Query unified fleet inventory across Proxmox VE VMs with power status, IP addresses, VLAN, protected flags, release version, and Linear lease tags.
519
517
 
520
518
  ```json
521
519
  {
522
- "hypervisor": "all", // "proxmox" | "esxi" | "all"
520
+ "hypervisor": "all", // "proxmox" | "all"
523
521
  "host": "proxmox-mini", // optional host filter
524
522
  "status": "all", // "all" | "running" | "stopped" | "claimed" | "disposable"
525
523
  "includeTemplates": false, // boolean (default: false)
@@ -535,8 +533,8 @@ Claim capacity on a specified host or the capacity-ranked eligible Proxmox host
535
533
  {
536
534
  "tag": "CTUAT-693", // required string: issue tag or session identifier
537
535
  "linearIssue": "CTUAT-693", // Linear issue key
538
- "host": "auto", // "proxmox-lab" | "proxmox-mini" | "esxi-intel-192-168-123-176" | "auto"
539
- "hypervisorType": "any", // "proxmox" | "esxi" | "any"
536
+ "host": "auto", // "proxmox-lab" | "proxmox-mini" | "proxmox-ibm64" | "auto"
537
+ "hypervisorType": "any", // "proxmox" | "any"
540
538
  "durationMinutes": 60, // integer (1 - 1440 minutes / 24 hours, default: 60)
541
539
  "purpose": "UAT Testing" // optional description
542
540
  }
@@ -568,7 +566,7 @@ an exact `confirmAssetId` to execute the guarded release-and-destroy operation.
568
566
  ```
569
567
 
570
568
  ### 5. `provision_vm`
571
- Provision a new disposable Call Telemetry appliance VM on Proxmox VE or VMware ESXi from a base template with IP/VLAN networking and auto-attached 8GB slot lease.
569
+ Provision a new disposable Call Telemetry appliance VM on Proxmox VE from a base template with IP/VLAN networking and auto-attached 8GB slot lease.
572
570
 
573
571
  ```json
574
572
  {
@@ -606,7 +604,7 @@ set, `target.vmid`, and `operation_id`. Copy those exact identities into apply;
606
604
  do not leave `hostAssetId` as `auto` for a mutating call.
607
605
 
608
606
  ### 6. `vm_action`
609
- Execute power lifecycle operations across Proxmox and ESXi with non-bypassable guardrails protecting core infrastructure.
607
+ Execute power lifecycle operations across Proxmox with non-bypassable guardrails protecting core infrastructure.
610
608
 
611
609
  ```json
612
610
  {
@@ -646,10 +644,7 @@ After reviewing an eligible plan, apply the same immutable request:
646
644
  ```
647
645
 
648
646
  Proxmox apply verifies a standalone, fully drained node before requesting the
649
- supported node shutdown. ESXi apply verifies a fully drained host, enters
650
- maintenance mode without evacuation, then requests shutdown with `force=false`.
651
- Both require physical power-on for recovery; ESXi remains in maintenance mode
652
- until an operator verifies the host and exits it. Start CUCM publishers first,
647
+ supported node shutdown. It requires physical power-on for recovery. Start CUCM publishers first,
653
648
  verify replication, then start subscribers.
654
649
 
655
650
  ### 7. `appliance_exec`
@@ -674,7 +669,7 @@ Execute mediated Call Telemetry appliance CLI operations over secure SSH on Port
674
669
  ## Client Configuration
675
670
 
676
671
  Credentials are inherited from the process environment. Do not put a Doppler
677
- token, Proxmox credential, ESXi password, or appliance password in checked-in
672
+ token, Proxmox credential, or appliance password in checked-in
678
673
  MCP JSON. A GitHub token authorizes repository fetches only; it is not a
679
674
  Doppler token and cannot authenticate a hypervisor.
680
675
 
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Command-line runner supporting Stdio and HTTP/SSE transports,
6
6
  * Doppler credential resolution cascade, multi-hypervisor management
7
- * across Proxmox VE and VMware ESXi, remote appliance CLI control,
7
+ * across Proxmox VE, remote appliance CLI control,
8
8
  * and graceful lifecycle management.
9
9
  */
10
10
  import process from "node:process";
@@ -79,7 +79,7 @@ export function buildFleetCommand() {
79
79
  .requiredOption("--vcpus <n>", "Minimum vCPU count")
80
80
  .requiredOption("--disk-gb <gb>", "Minimum guest disk in GiB")
81
81
  .option("--host-asset-id <id>", "Restrict to a specific host asset ID")
82
- .option("--hypervisor <type>", "Restrict to proxmox or esxi")
82
+ .option("--hypervisor <type>", "Restrict to proxmox (ESXi is retired)")
83
83
  .option("--format <fmt>", "Output format: json or table", "json")
84
84
  .action(async (opts) => {
85
85
  const bridge = new CanonicalLabBridge({ required: true });
@@ -143,11 +143,9 @@ export async function runPurgeDaemonCli(argv = process.argv) {
143
143
  const hypervisorManager = new MultiHypervisorManager({
144
144
  credentials: credentialsResult,
145
145
  proxmoxConfigs: credentialsResult?.proxmoxHosts,
146
- esxiConfigs: credentialsResult?.esxiHosts,
147
146
  });
148
147
  const slotManager = new SlotManager({
149
148
  hypervisorManager,
150
- includeEsxi: true,
151
149
  });
152
150
  slotManager.setHypervisorManager(hypervisorManager);
153
151
  const controller = new PurgeController({
@@ -321,7 +319,7 @@ export function buildCli(exitOverride = false) {
321
319
  const program = new Command();
322
320
  program
323
321
  .name("ct-lab-mcp")
324
- .description("Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE and VMware ESXi.")
322
+ .description("Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE.")
325
323
  .version(VERSION, "-v, --version", "Output the current version")
326
324
  .helpOption("-h, --help", "Display help for command")
327
325
  .option("-t, --transport <type>", "Transport mode: 'stdio' or 'sse'", process.env.CT_LAB_MCP_TRANSPORT || process.env.PROXMOX_MCP_TRANSPORT || "stdio")
@@ -480,7 +478,6 @@ export async function runCli(argv = process.argv, runOptions = {}) {
480
478
  credentials: credentialsResult,
481
479
  credentialError,
482
480
  proxmoxConfigs: hostConfigs,
483
- esxiConfigs: credentialsResult?.esxiHosts,
484
481
  forceMock: effectiveForceMock,
485
482
  canonicalBridge,
486
483
  plane: effectiveTransport === "sse" ? "local-sse" : "local-stdio",
@@ -11,6 +11,11 @@ export interface CanonicalLabBridgeOptions {
11
11
  credentials?: Pick<CredentialResolutionResult, "proxmoxHosts" | "esxiHosts">;
12
12
  runner?: (args: string[], options: CanonicalRunOptions) => Promise<CanonicalRunnerResult>;
13
13
  }
14
+ /**
15
+ * ESXi is retired (operator decision 2026-10-15). A canonical command that names the esxi
16
+ * provider or the legacy ESXi host is refused before any process or runner is started.
17
+ */
18
+ export declare function namesRetiredEsxi(args: string[]): boolean;
14
19
  export declare class CanonicalBridgeError extends Error {
15
20
  readonly code = "CANONICAL_INVENTORY_UNAVAILABLE";
16
21
  constructor(message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAEV,0BAA0B,EAG3B,MAAM,yBAAyB,CAAC;AAUjC,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3F;AAmJD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,qCAAqC;gBAEtC,OAAO,EAAE,MAAM;CAI5B;AAyFD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAiE;IAC9F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAsC;gBAElD,OAAO,GAAE,yBAA8B;IAcnD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,qEAAqE;IACrE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,gBAAgB;IAUlB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoJhF,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2HvE"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAEV,0BAA0B,EAG3B,MAAM,yBAAyB,CAAC;AAUjC,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC;IAC7E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3F;AA4CD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAKxD;AA+FD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,qCAAqC;gBAEtC,OAAO,EAAE,MAAM;CAI5B;AAyFD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAiE;IAC9F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAsC;gBAElD,OAAO,GAAE,yBAA8B;IAcnD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,qEAAqE;IACrE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,gBAAgB;IAUlB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAuJhF,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2HvE"}
@@ -26,8 +26,17 @@ function delay(ms) {
26
26
  return new Promise((resolve) => setTimeout(resolve, ms));
27
27
  }
28
28
  const CANONICAL_PROXMOX_HOST_IDS = new Set(["proxmox-lab", "proxmox-mini", "proxmox-minis-lab"]);
29
- // ESXi is retired (REL-1722); its identity is only resolved for an explicit legacy ESXi selection.
30
- const CANONICAL_ESXI_HOST_IDS = new Set([LEGACY_ESXI_HOST_ID]);
29
+ /**
30
+ * ESXi is retired (operator decision 2026-10-15). A canonical command that names the esxi
31
+ * provider or the legacy ESXi host is refused before any process or runner is started.
32
+ */
33
+ export function namesRetiredEsxi(args) {
34
+ if (args[0] === "esxi")
35
+ return true;
36
+ const selector = commandValue(args, "--host-asset-id");
37
+ return selector.present && typeof selector.value === "string"
38
+ && (selector.value === LEGACY_ESXI_HOST_ID || selector.value.toLowerCase().startsWith("esxi"));
39
+ }
31
40
  function canonicalHostAlias(hostId) {
32
41
  return hostId === "proxmox-mini" ? "proxmox-minis-lab" : hostId;
33
42
  }
@@ -58,26 +67,17 @@ function canonicalCommandScope(args) {
58
67
  if (hostSelector.duplicate || !hostSelector.value)
59
68
  return scope;
60
69
  const selectedHost = hostSelector.value;
61
- const selectedProvider = CANONICAL_PROXMOX_HOST_IDS.has(selectedHost)
62
- ? "proxmox"
63
- : CANONICAL_ESXI_HOST_IDS.has(selectedHost)
64
- ? "esxi"
65
- : undefined;
70
+ const selectedProvider = CANONICAL_PROXMOX_HOST_IDS.has(selectedHost) ? "proxmox" : undefined;
66
71
  if (!selectedProvider)
67
72
  return scope;
68
73
  // Provider-specific commands must agree with the explicit host. Generic
69
74
  // commands (vm/fleet/etc.) may target either canonical provider.
70
- if ((args[0] === "proxmox" || args[0] === "esxi") && args[0] !== selectedProvider) {
75
+ if (args[0] === "proxmox" && args[0] !== selectedProvider) {
71
76
  return scope;
72
77
  }
73
78
  scope.add(canonicalHostAlias(selectedHost));
74
79
  return scope;
75
80
  }
76
- // ESXi has one canonical host in this bridge. It is safe to select only
77
- // for its explicit provider command; every ambiguous/all-provider command
78
- // remains direct-environment-only rather than widening credential scope.
79
- if (args[0] === "esxi")
80
- scope.add(LEGACY_ESXI_HOST_ID);
81
81
  return scope;
82
82
  }
83
83
  function ownedProcessGroupExists(child) {
@@ -251,7 +251,7 @@ export class CanonicalLabBridge {
251
251
  if (scope.size === 0)
252
252
  return {};
253
253
  const selectedId = scope.values().next().value;
254
- const host = this.credentials.proxmoxHosts.find((candidate) => canonicalHostAlias(candidate.id) === selectedId) || this.credentials.esxiHosts.find((candidate) => candidate.id === selectedId);
254
+ const host = this.credentials.proxmoxHosts.find((candidate) => canonicalHostAlias(candidate.id) === selectedId);
255
255
  return host ? canonicalEnvironmentForHost(host) : {};
256
256
  }
257
257
  childEnvironment(args) {
@@ -268,6 +268,9 @@ export class CanonicalLabBridge {
268
268
  if (!this.isConfigured) {
269
269
  throw new CanonicalBridgeError("canonical lab CLI is not configured");
270
270
  }
271
+ if (namesRetiredEsxi(args)) {
272
+ throw new CanonicalBridgeError("ESXi is retired (the lab is Proxmox only); the canonical command was not run");
273
+ }
271
274
  const command = [
272
275
  ...(this.inventoryFile ? ["--file", this.inventoryFile] : []),
273
276
  ...args,
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/canonical/bridge.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,6 @@ export declare class CredentialResolver {
20
20
  private readonly defaultLabProtectedVmids;
21
21
  private readonly defaultMiniProtectedVmids;
22
22
  private readonly defaultIbm64ProtectedVmids;
23
- private readonly defaultEsxiProtectedVms;
24
23
  /**
25
24
  * Returns true only when mock mode was EXPLICITLY requested by the caller,
26
25
  * either to force it immediately or to permit it as a fallback when real
@@ -46,7 +45,8 @@ export declare class CredentialResolver {
46
45
  */
47
46
  private extractProxmoxHostConfig;
48
47
  /**
49
- * Extract ESXi host configuration supporting GOVC_* and LAB_ESXI_* conventions.
48
+ * ESXi is retired (operator decision 2026-10-15): the lab is Proxmox only. GOVC_*, LAB_ESXI_*
49
+ * and ESXI_* values are ignored, so a stale credential can never register or probe an ESXi host.
50
50
  */
51
51
  private extractEsxiHostConfig;
52
52
  /**
@@ -55,7 +55,6 @@ export declare class CredentialResolver {
55
55
  private extractVmCredentials;
56
56
  private createMockResult;
57
57
  private createMockProxmoxHost;
58
- private createMockEsxiHost;
59
58
  private createMockVmCredentials;
60
59
  private registerAllSecrets;
61
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/credentials/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,iBAAiB,EAEjB,cAAc,EAEd,iBAAiB,EACjB,0BAA0B,EAE1B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAcpB,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAChD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAMvF;AAkCD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,iBAAiB,GAAG,cAAc,EACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,sBAAsB,CA+CxB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6B;IACtE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAClE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAmB;IAC9D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAQtC;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,eAAe;IASvB;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2MnF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgHhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0F7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+F5B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,kBAAkB;CAwB3B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/credentials/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,iBAAiB,EAEjB,cAAc,EAEd,iBAAiB,EACjB,0BAA0B,EAE1B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAcpB,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAChD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAMvF;AAkCD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,iBAAiB,GAAG,cAAc,EACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,sBAAsB,CAiCxB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA6B;IACtE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAClE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAmB;IAE9D;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,eAAe;IASvB;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2MnF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgHhC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+F5B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,kBAAkB;CAwB3B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -92,38 +92,13 @@ export function canonicalEnvironmentForHost(host, env = process.env) {
92
92
  }
93
93
  return projected;
94
94
  }
95
- const values = {
96
- GOVC_URL: host.url,
97
- GOVC_USERNAME: host.username,
98
- GOVC_PASSWORD: host.password,
99
- GOVC_INSECURE: host.allowInsecureTls ? "true" : "false",
100
- // The canonical ESXi reader must not re-enter broad Doppler resolution
101
- // when this exact host's values were already selected in-process.
102
- CT_LAB_ESXI_DOPPLER_INJECTED: "1",
103
- };
104
- const projected = {};
105
- for (const [key, value] of Object.entries(values)) {
106
- if (typeof value !== "string" || value.length === 0)
107
- continue;
108
- const selected = directValue(env, key, value);
109
- if (selected !== undefined)
110
- projected[key] = selected;
111
- }
112
- return projected;
95
+ // ESXi is retired (2026-10-15): no GOVC_* alias is ever projected into a child process.
96
+ return {};
113
97
  }
114
98
  export class CredentialResolver {
115
99
  defaultLabProtectedVmids = [100, 101, 102, 104, 502];
116
100
  defaultMiniProtectedVmids = [182, 503];
117
101
  defaultIbm64ProtectedVmids = [501];
118
- defaultEsxiProtectedVms = [
119
- "cucm-15",
120
- "cucm-pub",
121
- "cucm-sub",
122
- "cube-cat8000v",
123
- "runner-doks",
124
- "k8s-master",
125
- "esxi-template-base"
126
- ];
127
102
  /**
128
103
  * Returns true only when mock mode was EXPLICITLY requested by the caller,
129
104
  * either to force it immediately or to permit it as a fallback when real
@@ -404,84 +379,11 @@ export class CredentialResolver {
404
379
  };
405
380
  }
406
381
  /**
407
- * Extract ESXi host configuration supporting GOVC_* and LAB_ESXI_* conventions.
382
+ * ESXi is retired (operator decision 2026-10-15): the lab is Proxmox only. GOVC_*, LAB_ESXI_*
383
+ * and ESXI_* values are ignored, so a stale credential can never register or probe an ESXi host.
408
384
  */
409
- extractEsxiHostConfig(record) {
410
- // Check GOVC_URL, LAB_ESXI_URL, ESXI_URL, or host/ip
411
- let rawUrl = record.GOVC_URL ||
412
- record.LAB_ESXI_URL ||
413
- record.ESXI_URL ||
414
- record.LAB_ESXI_HOST ||
415
- record.ESXI_HOST;
416
- let username = record.GOVC_USERNAME ||
417
- record.LAB_ESXI_USERNAME ||
418
- record.ESXI_USERNAME ||
419
- record.GOVC_USER ||
420
- record.LAB_ESXI_USER;
421
- let password = record.GOVC_PASSWORD ||
422
- record.LAB_ESXI_PASSWORD ||
423
- record.ESXI_PASSWORD ||
424
- record.GOVC_PASS ||
425
- record.LAB_ESXI_PASS;
426
- // Support URL embedding credentials: https://user:pass@host/sdk
427
- if (rawUrl && (!username || !password)) {
428
- try {
429
- const parsedUrl = new URL(rawUrl.startsWith("http") ? rawUrl : `https://${rawUrl}`);
430
- if (parsedUrl.username && !username) {
431
- username = decodeURIComponent(parsedUrl.username);
432
- }
433
- if (parsedUrl.password && !password) {
434
- password = decodeURIComponent(parsedUrl.password);
435
- }
436
- if (parsedUrl.hostname) {
437
- rawUrl = `${parsedUrl.protocol}//${parsedUrl.host}`;
438
- }
439
- }
440
- catch {
441
- // Continue with rawUrl string
442
- }
443
- }
444
- if (!rawUrl || !username || !password) {
445
- return null;
446
- }
447
- let cleanUrl = rawUrl.trim();
448
- if (!cleanUrl.startsWith("http://") && !cleanUrl.startsWith("https://")) {
449
- cleanUrl = `https://${cleanUrl}`;
450
- }
451
- const insecureVal = record.GOVC_INSECURE ?? record.LAB_ESXI_INSECURE ?? record.ESXI_INSECURE;
452
- const allowInsecureTls = insecureVal !== "false" && insecureVal !== "0";
453
- const datastore = record.GOVC_DATASTORE || record.LAB_ESXI_DATASTORE || "datastore1";
454
- const resourcePool = record.GOVC_RESOURCE_POOL || record.LAB_ESXI_RESOURCE_POOL;
455
- const datacenter = record.GOVC_DATACENTER || record.LAB_ESXI_DATACENTER;
456
- const network = record.GOVC_NETWORK || record.LAB_ESXI_NETWORK || "VM Network";
457
- const customProtected = record.LAB_ESXI_PROTECTED_VMS || record.GOVC_PROTECTED_VMS;
458
- let protectedVmNames = this.defaultEsxiProtectedVms;
459
- if (customProtected) {
460
- try {
461
- const parsed = JSON.parse(customProtected);
462
- if (Array.isArray(parsed)) {
463
- protectedVmNames = Array.from(new Set([...this.defaultEsxiProtectedVms, ...parsed.map(String)]));
464
- }
465
- }
466
- catch {
467
- const parsed = customProtected.split(",").map((s) => s.trim()).filter(Boolean);
468
- protectedVmNames = Array.from(new Set([...this.defaultEsxiProtectedVms, ...parsed]));
469
- }
470
- }
471
- return {
472
- id: "esxi-intel-192-168-123-176",
473
- name: "VMware ESXi Lab Host (192.168.123.176)",
474
- url: cleanUrl,
475
- username: username.trim(),
476
- password: password.trim(),
477
- allowInsecureTls,
478
- datastore,
479
- resourcePool,
480
- datacenter,
481
- network,
482
- protectedVmNames,
483
- isMock: false
484
- };
385
+ extractEsxiHostConfig(_record) {
386
+ return null;
485
387
  }
486
388
  /**
487
389
  * Extract Appliance / VM credentials (LAB_VM_CREDENTIALS_* or LAB_VM_CREDENTIALS JSON/slug).
@@ -572,7 +474,7 @@ export class CredentialResolver {
572
474
  this.createMockProxmoxHost("proxmox-lab", this.defaultLabProtectedVmids),
573
475
  this.createMockProxmoxHost("proxmox-mini", this.defaultMiniProtectedVmids)
574
476
  ];
575
- const esxiHosts = [this.createMockEsxiHost()];
477
+ const esxiHosts = [];
576
478
  const vmCredentials = this.createMockVmCredentials();
577
479
  return {
578
480
  tier: "mock_fallback",
@@ -600,22 +502,6 @@ export class CredentialResolver {
600
502
  isMock: true
601
503
  };
602
504
  }
603
- createMockEsxiHost() {
604
- return {
605
- id: "esxi-intel-192-168-123-176",
606
- name: "VMware ESXi Lab Host (Mock)",
607
- url: "https://192.168.123.176",
608
- username: "root",
609
- password: "mock-esxi-password-000",
610
- allowInsecureTls: true,
611
- datastore: "datastore1",
612
- resourcePool: "Resources",
613
- datacenter: "ha-datacenter",
614
- network: "VM Network",
615
- protectedVmNames: this.defaultEsxiProtectedVms,
616
- isMock: true
617
- };
618
- }
619
505
  createMockVmCredentials() {
620
506
  return {
621
507
  username: "admin",