@calltelemetry/ct-lab-mcp 0.8.78 → 0.8.80

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 (49) hide show
  1. package/README.md +12 -0
  2. package/dist/src/tools/appliance-candidate-retire.d.ts +9 -9
  3. package/dist/src/tools/appliance-claim-tools.d.ts +5 -2
  4. package/dist/src/tools/appliance-claim-tools.d.ts.map +1 -1
  5. package/dist/src/tools/appliance-claim-tools.js +14 -12
  6. package/dist/src/tools/appliance-claim-tools.js.map +1 -1
  7. package/dist/src/tools/canonical-guard.d.ts +1 -1
  8. package/dist/src/tools/canonical-guard.d.ts.map +1 -1
  9. package/dist/src/tools/canonical-guard.js +7 -0
  10. package/dist/src/tools/canonical-guard.js.map +1 -1
  11. package/dist/src/tools/claim-first.d.ts.map +1 -1
  12. package/dist/src/tools/claim-first.js +8 -8
  13. package/dist/src/tools/claim-first.js.map +1 -1
  14. package/dist/src/tools/claim-lifecycle.d.ts +4 -4
  15. package/dist/src/tools/claimed-import-qcow.d.ts +7 -7
  16. package/dist/src/tools/claimed-import-qcow.d.ts.map +1 -1
  17. package/dist/src/tools/claimed-import-qcow.js +12 -6
  18. package/dist/src/tools/claimed-import-qcow.js.map +1 -1
  19. package/dist/src/tools/claimed-snapshot.d.ts +35 -0
  20. package/dist/src/tools/claimed-snapshot.d.ts.map +1 -0
  21. package/dist/src/tools/claimed-snapshot.js +101 -0
  22. package/dist/src/tools/claimed-snapshot.js.map +1 -0
  23. package/dist/src/tools/host-migrate-vm.d.ts +4 -4
  24. package/dist/src/tools/import-qcow.d.ts +9 -9
  25. package/dist/src/tools/index.js +4 -4
  26. package/dist/src/tools/index.js.map +1 -1
  27. package/dist/src/tools/lab-dev.d.ts +2 -2
  28. package/dist/src/tools/legacy-guest-guard.d.ts +1 -0
  29. package/dist/src/tools/legacy-guest-guard.d.ts.map +1 -1
  30. package/dist/src/tools/legacy-guest-guard.js +9 -0
  31. package/dist/src/tools/legacy-guest-guard.js.map +1 -1
  32. package/dist/src/tools/mission.d.ts +6 -6
  33. package/dist/src/tools/provision-tools.d.ts +12 -12
  34. package/dist/src/tools/proxmox-host-policy.d.ts +15 -0
  35. package/dist/src/tools/proxmox-host-policy.d.ts.map +1 -1
  36. package/dist/src/tools/proxmox-host-policy.js +41 -0
  37. package/dist/src/tools/proxmox-host-policy.js.map +1 -1
  38. package/dist/src/tools/purge-slots.d.ts +1 -1
  39. package/dist/src/tools/quick-provision.d.ts +1 -1
  40. package/dist/src/tools/sandbox-tools.d.ts +16 -16
  41. package/dist/src/tools/slot-tools.d.ts +12 -12
  42. package/dist/src/tools/storage-tools.d.ts +122 -2
  43. package/dist/src/tools/storage-tools.d.ts.map +1 -1
  44. package/dist/src/tools/storage-tools.js +11 -2
  45. package/dist/src/tools/storage-tools.js.map +1 -1
  46. package/dist/src/tools/uat-access.d.ts +2 -2
  47. package/dist/src/tools/vm-action.d.ts +14 -14
  48. package/dist/src/tools/vm-cleanup.d.ts +1 -1
  49. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { isClaimedSnapshotCall } from "./claimed-snapshot.js";
1
2
  /** Legacy SDK effects have no canonical physical custody; flags cannot grant it. */
2
3
  export const LEGACY_GUEST_AUTHORITY_ERROR = "CANONICAL_PHYSICAL_SLOT_AUTHORITY_REQUIRED";
3
4
  const guestHandlers = new Set([
@@ -11,6 +12,11 @@ const bridgedEffects = new Set([
11
12
  "cleanup_expired_vms", "prune_untracked_vms",
12
13
  ]);
13
14
  export function legacyGuestHandlerBlocked(name, args, canonical) {
15
+ // The claim-scoped snapshot bridge (UAT-1767) is the one typed canonical route
16
+ // for these two names. It is selected only by an explicit assetId and the
17
+ // handler itself fails closed when the canonical bridge is not required.
18
+ if (isClaimedSnapshotToolCall(name, args))
19
+ return false;
14
20
  if (guestHandlers.has(name))
15
21
  return true; // No qualified typed bridge for these legacy handlers.
16
22
  if (canonical)
@@ -23,4 +29,7 @@ export function legacyGuestHandlerBlocked(name, args, canonical) {
23
29
  return args?.autoClaim === true || args?.purgeIfFull === true;
24
30
  return false;
25
31
  }
32
+ export function isClaimedSnapshotToolCall(name, args) {
33
+ return (name === "create_snapshot" || name === "rollback_snapshot") && isClaimedSnapshotCall(args);
34
+ }
26
35
  //# sourceMappingURL=legacy-guest-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-guest-guard.js","sourceRoot":"","sources":["../../../src/tools/legacy-guest-guard.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,4CAA4C,CAAC;AACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,gBAAgB,EAAE,yBAAyB,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB;IAC1F,mBAAmB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,mBAAmB;IAC7F,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB;IAC/F,eAAe,EAAE,yBAAyB,EAAE,gBAAgB;CAC7D,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB;IACtG,qBAAqB,EAAE,qBAAqB;CAC7C,CAAC,CAAC;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAS,EAAE,SAAkB;IACnF,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,uDAAuD;IACjG,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,yDAAyD;IACtF,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3D,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"legacy-guest-guard.js","sourceRoot":"","sources":["../../../src/tools/legacy-guest-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,oFAAoF;AACpF,MAAM,CAAC,MAAM,4BAA4B,GAAG,4CAA4C,CAAC;AACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,gBAAgB,EAAE,yBAAyB,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB;IAC1F,mBAAmB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,mBAAmB;IAC7F,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB;IAC/F,eAAe,EAAE,yBAAyB,EAAE,gBAAgB;CAC7D,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB;IACtG,qBAAqB,EAAE,qBAAqB;CAC7C,CAAC,CAAC;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAS,EAAE,SAAkB;IACnF,+EAA+E;IAC/E,0EAA0E;IAC1E,yEAAyE;IACzE,IAAI,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,uDAAuD;IACjG,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,yDAAyD;IACtF,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3D,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAa;IACnE,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,mBAAmB,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrG,CAAC"}
@@ -28,8 +28,8 @@ export declare const LabMissionInputSchema: z.ZodEffects<z.ZodObject<{
28
28
  manifestFile: string;
29
29
  confirmManifestSha256: string;
30
30
  operationTimeoutSeconds: number;
31
- receiptFile?: string | undefined;
32
31
  confirmAssetId?: string | undefined;
32
+ receiptFile?: string | undefined;
33
33
  executorCheckout?: string | undefined;
34
34
  lockLeaseSeconds?: number | undefined;
35
35
  coordinatorTimeoutSeconds?: number | undefined;
@@ -37,8 +37,8 @@ export declare const LabMissionInputSchema: z.ZodEffects<z.ZodObject<{
37
37
  manifestFile: string;
38
38
  confirmManifestSha256: string;
39
39
  apply?: boolean | undefined;
40
- receiptFile?: string | undefined;
41
40
  confirmAssetId?: string | undefined;
41
+ receiptFile?: string | undefined;
42
42
  executorCheckout?: string | undefined;
43
43
  lockLeaseSeconds?: number | undefined;
44
44
  coordinatorTimeoutSeconds?: number | undefined;
@@ -48,8 +48,8 @@ export declare const LabMissionInputSchema: z.ZodEffects<z.ZodObject<{
48
48
  manifestFile: string;
49
49
  confirmManifestSha256: string;
50
50
  operationTimeoutSeconds: number;
51
- receiptFile?: string | undefined;
52
51
  confirmAssetId?: string | undefined;
52
+ receiptFile?: string | undefined;
53
53
  executorCheckout?: string | undefined;
54
54
  lockLeaseSeconds?: number | undefined;
55
55
  coordinatorTimeoutSeconds?: number | undefined;
@@ -57,8 +57,8 @@ export declare const LabMissionInputSchema: z.ZodEffects<z.ZodObject<{
57
57
  manifestFile: string;
58
58
  confirmManifestSha256: string;
59
59
  apply?: boolean | undefined;
60
- receiptFile?: string | undefined;
61
60
  confirmAssetId?: string | undefined;
61
+ receiptFile?: string | undefined;
62
62
  executorCheckout?: string | undefined;
63
63
  lockLeaseSeconds?: number | undefined;
64
64
  coordinatorTimeoutSeconds?: number | undefined;
@@ -84,8 +84,8 @@ export declare const LabMissionAdvertisedInputSchema: z.ZodObject<{
84
84
  manifestFile: string;
85
85
  confirmManifestSha256: string;
86
86
  apply?: boolean | undefined;
87
- receiptFile?: string | undefined;
88
87
  confirmAssetId?: string | undefined;
88
+ receiptFile?: string | undefined;
89
89
  executorCheckout?: string | undefined;
90
90
  lockLeaseSeconds?: number | undefined;
91
91
  coordinatorTimeoutSeconds?: number | undefined;
@@ -94,8 +94,8 @@ export declare const LabMissionAdvertisedInputSchema: z.ZodObject<{
94
94
  manifestFile: string;
95
95
  confirmManifestSha256: string;
96
96
  apply?: boolean | undefined;
97
- receiptFile?: string | undefined;
98
97
  confirmAssetId?: string | undefined;
98
+ receiptFile?: string | undefined;
99
99
  executorCheckout?: string | undefined;
100
100
  lockLeaseSeconds?: number | undefined;
101
101
  coordinatorTimeoutSeconds?: number | undefined;
@@ -168,12 +168,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
168
168
  hostAssetId?: string | undefined;
169
169
  assetId?: string | undefined;
170
170
  operationId?: string | undefined;
171
+ confirmAssetId?: string | undefined;
171
172
  networkBridge?: string | undefined;
172
173
  templateAssetId?: string | undefined;
173
174
  workspaceRoot?: string | undefined;
174
175
  importStorage?: string | undefined;
175
176
  receiptFile?: string | undefined;
176
- confirmAssetId?: string | undefined;
177
177
  targetHost?: string | undefined;
178
178
  outputFile?: string | undefined;
179
179
  webImage?: string | undefined;
@@ -224,13 +224,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
224
224
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
225
225
  assetId?: string | undefined;
226
226
  operationId?: string | undefined;
227
+ apply?: boolean | undefined;
228
+ confirmAssetId?: string | undefined;
227
229
  networkBridge?: string | undefined;
228
230
  templateAssetId?: string | undefined;
229
231
  workspaceRoot?: string | undefined;
230
232
  importStorage?: string | undefined;
231
- apply?: boolean | undefined;
232
233
  receiptFile?: string | undefined;
233
- confirmAssetId?: string | undefined;
234
234
  targetHost?: string | undefined;
235
235
  outputFile?: string | undefined;
236
236
  webImage?: string | undefined;
@@ -294,12 +294,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
294
294
  hostAssetId?: string | undefined;
295
295
  assetId?: string | undefined;
296
296
  operationId?: string | undefined;
297
+ confirmAssetId?: string | undefined;
297
298
  networkBridge?: string | undefined;
298
299
  templateAssetId?: string | undefined;
299
300
  workspaceRoot?: string | undefined;
300
301
  importStorage?: string | undefined;
301
302
  receiptFile?: string | undefined;
302
- confirmAssetId?: string | undefined;
303
303
  targetHost?: string | undefined;
304
304
  outputFile?: string | undefined;
305
305
  webImage?: string | undefined;
@@ -350,13 +350,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
350
350
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
351
351
  assetId?: string | undefined;
352
352
  operationId?: string | undefined;
353
+ apply?: boolean | undefined;
354
+ confirmAssetId?: string | undefined;
353
355
  networkBridge?: string | undefined;
354
356
  templateAssetId?: string | undefined;
355
357
  workspaceRoot?: string | undefined;
356
358
  importStorage?: string | undefined;
357
- apply?: boolean | undefined;
358
359
  receiptFile?: string | undefined;
359
- confirmAssetId?: string | undefined;
360
360
  targetHost?: string | undefined;
361
361
  outputFile?: string | undefined;
362
362
  webImage?: string | undefined;
@@ -420,12 +420,12 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
420
420
  hostAssetId?: string | undefined;
421
421
  assetId?: string | undefined;
422
422
  operationId?: string | undefined;
423
+ confirmAssetId?: string | undefined;
423
424
  networkBridge?: string | undefined;
424
425
  templateAssetId?: string | undefined;
425
426
  workspaceRoot?: string | undefined;
426
427
  importStorage?: string | undefined;
427
428
  receiptFile?: string | undefined;
428
- confirmAssetId?: string | undefined;
429
429
  targetHost?: string | undefined;
430
430
  outputFile?: string | undefined;
431
431
  webImage?: string | undefined;
@@ -476,13 +476,13 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
476
476
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
477
477
  assetId?: string | undefined;
478
478
  operationId?: string | undefined;
479
+ apply?: boolean | undefined;
480
+ confirmAssetId?: string | undefined;
479
481
  networkBridge?: string | undefined;
480
482
  templateAssetId?: string | undefined;
481
483
  workspaceRoot?: string | undefined;
482
484
  importStorage?: string | undefined;
483
- apply?: boolean | undefined;
484
485
  receiptFile?: string | undefined;
485
- confirmAssetId?: string | undefined;
486
486
  targetHost?: string | undefined;
487
487
  outputFile?: string | undefined;
488
488
  webImage?: string | undefined;
@@ -685,13 +685,13 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
685
685
  hostAssetId?: string | undefined;
686
686
  assetId?: string | undefined;
687
687
  operationId?: string | undefined;
688
+ confirmAssetId?: string | undefined;
688
689
  networkBridge?: string | undefined;
689
690
  templateAssetId?: string | undefined;
690
691
  workspaceRoot?: string | undefined;
691
692
  importStorage?: string | undefined;
692
693
  allowEsxiSlots?: boolean | undefined;
693
694
  receiptFile?: string | undefined;
694
- confirmAssetId?: string | undefined;
695
695
  placementSeed?: string | undefined;
696
696
  targetHost?: string | undefined;
697
697
  outputFile?: string | undefined;
@@ -744,14 +744,14 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
744
744
  source?: "template" | "alma97-cloud" | "alma97-iso" | undefined;
745
745
  assetId?: string | undefined;
746
746
  operationId?: string | undefined;
747
+ apply?: boolean | undefined;
748
+ confirmAssetId?: string | undefined;
747
749
  networkBridge?: string | undefined;
748
750
  templateAssetId?: string | undefined;
749
751
  workspaceRoot?: string | undefined;
750
752
  importStorage?: string | undefined;
751
753
  allowEsxiSlots?: boolean | undefined;
752
- apply?: boolean | undefined;
753
754
  receiptFile?: string | undefined;
754
- confirmAssetId?: string | undefined;
755
755
  placementSeed?: string | undefined;
756
756
  targetHost?: string | undefined;
757
757
  purgeIfFull?: boolean | undefined;
@@ -9,6 +9,21 @@ export type ProxmoxSlotPolicy = Readonly<{
9
9
  storage: string;
10
10
  }>;
11
11
  export declare const PROXMOX_SLOT_POLICIES: Readonly<Record<CanonicalProxmoxHost, ProxmoxSlotPolicy>>;
12
+ /**
13
+ * Canonical mapping from Proxmox host asset ID to operator ApplianceClaim node alias.
14
+ * Every host in CanonicalProxmoxHost defines its operator node alias here so claim
15
+ * node validation automatically expands with the Proxmox fleet.
16
+ */
17
+ export declare const PROXMOX_HOST_CLAIM_NODES: Readonly<Record<CanonicalProxmoxHost, string>>;
18
+ /**
19
+ * Inverse mapping from operator claim node to canonical Proxmox host asset ID.
20
+ */
21
+ export declare const CLAIM_NODE_TO_PROXMOX_HOST: Readonly<Record<string, CanonicalProxmoxHost>>;
12
22
  export declare function normalizeProxmoxHost(host: (typeof PROXMOX_HOST_INPUTS)[number]): CanonicalProxmoxHost;
23
+ /**
24
+ * Resolves the operator claim node for any Proxmox host asset ID or node alias in the fleet.
25
+ * Automatically expands as new Proxmox hosts are added to the fleet.
26
+ */
27
+ export declare function proxmoxClaimNode(host: unknown): string | null;
13
28
  export declare function proxmoxSlotPolicy(host: CanonicalProxmoxHost): ProxmoxSlotPolicy;
14
29
  //# sourceMappingURL=proxmox-host-policy.d.ts.map
@@ -1 +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,gFAKtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,kFAA8B,CAAC;AAClE,eAAO,MAAM,2BAA2B,yFAG7B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAEzF,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,CAiB/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"}
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,gFAKtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,kFAA8B,CAAC;AAClE,eAAO,MAAM,2BAA2B,yFAG7B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAEzF,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,CAiB/C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC7C,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAKpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAKrC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,GACzC,oBAAoB,CAEtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAuB7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE/E"}
@@ -27,9 +27,50 @@ export const PROXMOX_SLOT_POLICIES = Object.freeze({
27
27
  storage: "local-lvm",
28
28
  }),
29
29
  });
30
+ /**
31
+ * Canonical mapping from Proxmox host asset ID to operator ApplianceClaim node alias.
32
+ * Every host in CanonicalProxmoxHost defines its operator node alias here so claim
33
+ * node validation automatically expands with the Proxmox fleet.
34
+ */
35
+ export const PROXMOX_HOST_CLAIM_NODES = Object.freeze({
36
+ "proxmox-lab": "proxmox",
37
+ "proxmox-minis-lab": "minis",
38
+ "proxmox-ibm64": "ibm64",
39
+ });
40
+ /**
41
+ * Inverse mapping from operator claim node to canonical Proxmox host asset ID.
42
+ */
43
+ export const CLAIM_NODE_TO_PROXMOX_HOST = Object.freeze(Object.fromEntries(Object.entries(PROXMOX_HOST_CLAIM_NODES).map(([host, node]) => [node, host])));
30
44
  export function normalizeProxmoxHost(host) {
31
45
  return host === "proxmox-mini" ? "proxmox-minis-lab" : host;
32
46
  }
47
+ /**
48
+ * Resolves the operator claim node for any Proxmox host asset ID or node alias in the fleet.
49
+ * Automatically expands as new Proxmox hosts are added to the fleet.
50
+ */
51
+ export function proxmoxClaimNode(host) {
52
+ if (typeof host !== "string")
53
+ return null;
54
+ const raw = host.trim().toLowerCase();
55
+ if (!raw)
56
+ return null;
57
+ // Direct match to a known operator node alias
58
+ if (raw in CLAIM_NODE_TO_PROXMOX_HOST) {
59
+ return raw;
60
+ }
61
+ // Canonical host resolution
62
+ const canonical = raw === "proxmox-mini" ? "proxmox-minis-lab" : raw;
63
+ if (canonical in PROXMOX_HOST_CLAIM_NODES) {
64
+ return PROXMOX_HOST_CLAIM_NODES[canonical];
65
+ }
66
+ // Convention-based derivation if host is in the known Proxmox fleet inputs
67
+ if (PROXMOX_HOST_INPUTS.includes(canonical)) {
68
+ const derived = canonical.replace(/^proxmox-/, "").replace(/-lab$/, "");
69
+ if (derived)
70
+ return derived;
71
+ }
72
+ return null;
73
+ }
33
74
  export function proxmoxSlotPolicy(host) {
34
75
  return PROXMOX_SLOT_POLICIES[host];
35
76
  }
@@ -1 +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,eAAe;IACf,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;IACF,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7B,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"}
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,eAAe;IACf,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;IACF,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,WAAW;KACrB,CAAC;CACH,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAEjC,MAAM,CAAC,MAAM,CAAC;IAChB,aAAa,EAAE,SAAS;IACxB,mBAAmB,EAAE,OAAO;IAC5B,eAAe,EAAE,OAAO;CACzB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAEnC,MAAM,CAAC,MAAM,CACf,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAA4B,CAAC,CAAC,CACrG,CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,IAA0C;IAE1C,OAAO,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,8CAA8C;IAC9C,IAAI,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;IACrE,IAAI,SAAS,IAAI,wBAAwB,EAAE,CAAC;QAC1C,OAAO,wBAAwB,CAAC,SAAiC,CAAC,CAAC;IACrE,CAAC;IAED,2EAA2E;IAC3E,IAAK,mBAAyC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA0B;IAC1D,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
@@ -63,8 +63,8 @@ export declare const PurgeSlotsInputSchema: z.ZodObject<{
63
63
  destroyVms?: boolean | undefined;
64
64
  includeOrphans?: boolean | undefined;
65
65
  operationId?: string | undefined;
66
- artifactReceipt?: string | undefined;
67
66
  apply?: boolean | undefined;
67
+ artifactReceipt?: string | undefined;
68
68
  confirmAssets?: string | undefined;
69
69
  receiptFile?: string | undefined;
70
70
  olderThanMinutes?: number | undefined;
@@ -126,9 +126,9 @@ export declare const ProxmoxQuickProvisionInputSchema: z.ZodObject<{
126
126
  ttlHours?: number | undefined;
127
127
  hostAssetId?: string | undefined;
128
128
  operationId?: string | undefined;
129
+ apply?: boolean | undefined;
129
130
  workspaceRoot?: string | undefined;
130
131
  importStorage?: string | undefined;
131
- apply?: boolean | undefined;
132
132
  placementSeed?: string | undefined;
133
133
  webImage?: string | undefined;
134
134
  baseVersion?: string | undefined;
@@ -58,14 +58,14 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
58
58
  ttlHours: number;
59
59
  hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64";
60
60
  operationId: string;
61
- templateAssetId: string;
62
61
  apply: boolean;
62
+ templateAssetId: string;
63
63
  baselineSnapshot: string;
64
64
  waitAgent: boolean;
65
65
  vmid?: number | undefined;
66
66
  diskGb?: number | undefined;
67
- receiptFile?: string | undefined;
68
67
  confirmAssetId?: string | undefined;
68
+ receiptFile?: string | undefined;
69
69
  planDigest?: string | undefined;
70
70
  sshKey?: string | undefined;
71
71
  sshKeyFile?: string | undefined;
@@ -81,10 +81,10 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
81
81
  diskGb?: number | undefined;
82
82
  ttlHours?: number | undefined;
83
83
  hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | undefined;
84
- templateAssetId?: string | undefined;
85
84
  apply?: boolean | undefined;
86
- receiptFile?: string | undefined;
87
85
  confirmAssetId?: string | undefined;
86
+ templateAssetId?: string | undefined;
87
+ receiptFile?: string | undefined;
88
88
  planDigest?: string | undefined;
89
89
  baselineSnapshot?: string | undefined;
90
90
  sshKey?: string | undefined;
@@ -100,14 +100,14 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
100
100
  ttlHours: number;
101
101
  hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64";
102
102
  operationId: string;
103
- templateAssetId: string;
104
103
  apply: boolean;
104
+ templateAssetId: string;
105
105
  baselineSnapshot: string;
106
106
  waitAgent: boolean;
107
107
  vmid?: number | undefined;
108
108
  diskGb?: number | undefined;
109
- receiptFile?: string | undefined;
110
109
  confirmAssetId?: string | undefined;
110
+ receiptFile?: string | undefined;
111
111
  planDigest?: string | undefined;
112
112
  sshKey?: string | undefined;
113
113
  sshKeyFile?: string | undefined;
@@ -123,10 +123,10 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
123
123
  diskGb?: number | undefined;
124
124
  ttlHours?: number | undefined;
125
125
  hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | undefined;
126
- templateAssetId?: string | undefined;
127
126
  apply?: boolean | undefined;
128
- receiptFile?: string | undefined;
129
127
  confirmAssetId?: string | undefined;
128
+ templateAssetId?: string | undefined;
129
+ receiptFile?: string | undefined;
130
130
  planDigest?: string | undefined;
131
131
  baselineSnapshot?: string | undefined;
132
132
  sshKey?: string | undefined;
@@ -165,12 +165,12 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
165
165
  hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64";
166
166
  assetId: string;
167
167
  operationId: string;
168
- apply: boolean;
169
168
  snapshotName: string;
169
+ apply: boolean;
170
170
  waitAgent: boolean;
171
171
  vmid?: number | undefined;
172
- receiptFile?: string | undefined;
173
172
  confirmAssetId?: string | undefined;
173
+ receiptFile?: string | undefined;
174
174
  planDigest?: string | undefined;
175
175
  }, {
176
176
  linearIssue: string;
@@ -178,10 +178,10 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
178
178
  operationId: string;
179
179
  vmid?: number | undefined;
180
180
  hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | undefined;
181
+ snapshotName?: string | undefined;
181
182
  apply?: boolean | undefined;
182
- receiptFile?: string | undefined;
183
183
  confirmAssetId?: string | undefined;
184
- snapshotName?: string | undefined;
184
+ receiptFile?: string | undefined;
185
185
  planDigest?: string | undefined;
186
186
  waitAgent?: boolean | undefined;
187
187
  }>, {
@@ -189,12 +189,12 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
189
189
  hostAssetId: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64";
190
190
  assetId: string;
191
191
  operationId: string;
192
- apply: boolean;
193
192
  snapshotName: string;
193
+ apply: boolean;
194
194
  waitAgent: boolean;
195
195
  vmid?: number | undefined;
196
- receiptFile?: string | undefined;
197
196
  confirmAssetId?: string | undefined;
197
+ receiptFile?: string | undefined;
198
198
  planDigest?: string | undefined;
199
199
  }, {
200
200
  linearIssue: string;
@@ -202,10 +202,10 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
202
202
  operationId: string;
203
203
  vmid?: number | undefined;
204
204
  hostAssetId?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "proxmox-ibm64" | undefined;
205
+ snapshotName?: string | undefined;
205
206
  apply?: boolean | undefined;
206
- receiptFile?: string | undefined;
207
207
  confirmAssetId?: string | undefined;
208
- snapshotName?: string | undefined;
208
+ receiptFile?: string | undefined;
209
209
  planDigest?: string | undefined;
210
210
  waitAgent?: boolean | undefined;
211
211
  }>;
@@ -104,9 +104,9 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
104
104
  ttlHours?: number | undefined;
105
105
  assetId?: string | undefined;
106
106
  operationId?: string | undefined;
107
+ confirmAssetId?: string | undefined;
107
108
  allowEsxiSlots?: boolean | undefined;
108
109
  receiptFile?: string | undefined;
109
- confirmAssetId?: string | undefined;
110
110
  claimNode?: "proxmox" | "esxi" | "minis" | undefined;
111
111
  claimVmid?: number | undefined;
112
112
  claimVmName?: string | undefined;
@@ -135,10 +135,10 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
135
135
  ttlHours?: number | undefined;
136
136
  assetId?: string | undefined;
137
137
  operationId?: string | undefined;
138
- allowEsxiSlots?: boolean | undefined;
139
138
  apply?: boolean | undefined;
140
- receiptFile?: string | undefined;
141
139
  confirmAssetId?: string | undefined;
140
+ allowEsxiSlots?: boolean | undefined;
141
+ receiptFile?: string | undefined;
142
142
  claimNode?: "proxmox" | "esxi" | "minis" | undefined;
143
143
  claimVmid?: number | undefined;
144
144
  claimVmName?: string | undefined;
@@ -172,9 +172,9 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
172
172
  ttlHours?: number | undefined;
173
173
  assetId?: string | undefined;
174
174
  operationId?: string | undefined;
175
+ confirmAssetId?: string | undefined;
175
176
  allowEsxiSlots?: boolean | undefined;
176
177
  receiptFile?: string | undefined;
177
- confirmAssetId?: string | undefined;
178
178
  claimNode?: "proxmox" | "esxi" | "minis" | undefined;
179
179
  claimVmid?: number | undefined;
180
180
  claimVmName?: string | undefined;
@@ -203,10 +203,10 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
203
203
  ttlHours?: number | undefined;
204
204
  assetId?: string | undefined;
205
205
  operationId?: string | undefined;
206
- allowEsxiSlots?: boolean | undefined;
207
206
  apply?: boolean | undefined;
208
- receiptFile?: string | undefined;
209
207
  confirmAssetId?: string | undefined;
208
+ allowEsxiSlots?: boolean | undefined;
209
+ receiptFile?: string | undefined;
210
210
  claimNode?: "proxmox" | "esxi" | "minis" | undefined;
211
211
  claimVmid?: number | undefined;
212
212
  claimVmName?: string | undefined;
@@ -270,9 +270,9 @@ export declare const ReleaseSlotInputSchema: z.ZodEffects<z.ZodObject<{
270
270
  leaseId?: string | undefined;
271
271
  assetId?: string | undefined;
272
272
  operationId?: string | undefined;
273
+ confirmAssetId?: string | undefined;
273
274
  artifactReceipt?: string | undefined;
274
275
  receiptFile?: string | undefined;
275
- confirmAssetId?: string | undefined;
276
276
  }, {
277
277
  slotId?: string | undefined;
278
278
  claimId?: string | undefined;
@@ -286,10 +286,10 @@ export declare const ReleaseSlotInputSchema: z.ZodEffects<z.ZodObject<{
286
286
  destroyVm?: boolean | undefined;
287
287
  assetId?: string | undefined;
288
288
  operationId?: string | undefined;
289
- artifactReceipt?: string | undefined;
290
289
  apply?: boolean | undefined;
291
- receiptFile?: string | undefined;
292
290
  confirmAssetId?: string | undefined;
291
+ artifactReceipt?: string | undefined;
292
+ receiptFile?: string | undefined;
293
293
  recoverMissingCoordinator?: boolean | undefined;
294
294
  }>, {
295
295
  format: "table" | "json";
@@ -306,9 +306,9 @@ export declare const ReleaseSlotInputSchema: z.ZodEffects<z.ZodObject<{
306
306
  leaseId?: string | undefined;
307
307
  assetId?: string | undefined;
308
308
  operationId?: string | undefined;
309
+ confirmAssetId?: string | undefined;
309
310
  artifactReceipt?: string | undefined;
310
311
  receiptFile?: string | undefined;
311
- confirmAssetId?: string | undefined;
312
312
  }, {
313
313
  slotId?: string | undefined;
314
314
  claimId?: string | undefined;
@@ -322,10 +322,10 @@ export declare const ReleaseSlotInputSchema: z.ZodEffects<z.ZodObject<{
322
322
  destroyVm?: boolean | undefined;
323
323
  assetId?: string | undefined;
324
324
  operationId?: string | undefined;
325
- artifactReceipt?: string | undefined;
326
325
  apply?: boolean | undefined;
327
- receiptFile?: string | undefined;
328
326
  confirmAssetId?: string | undefined;
327
+ artifactReceipt?: string | undefined;
328
+ receiptFile?: string | undefined;
329
329
  recoverMissingCoordinator?: boolean | undefined;
330
330
  }>;
331
331
  export type ReleaseSlotInput = z.infer<typeof ReleaseSlotInputSchema>;