@calltelemetry/ct-lab-mcp 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/ct-lab-mcp.d.ts +1 -1
- package/dist/bin/ct-lab-mcp.d.ts.map +1 -1
- package/dist/bin/ct-lab-mcp.js +10 -1
- package/dist/bin/ct-lab-mcp.js.map +1 -1
- package/dist/bin/proxmox-mcp.d.ts +1 -1
- package/dist/bin/proxmox-mcp.d.ts.map +1 -1
- package/dist/bin/proxmox-mcp.js +10 -1
- package/dist/bin/proxmox-mcp.js.map +1 -1
- package/dist/src/appliance/commands.d.ts +4 -0
- package/dist/src/appliance/commands.d.ts.map +1 -1
- package/dist/src/appliance/commands.js +32 -0
- package/dist/src/appliance/commands.js.map +1 -1
- package/dist/src/appliance/mock.d.ts.map +1 -1
- package/dist/src/appliance/mock.js +42 -0
- package/dist/src/appliance/mock.js.map +1 -1
- package/dist/src/appliance/types.d.ts +8 -1
- package/dist/src/appliance/types.d.ts.map +1 -1
- package/dist/src/appliance/types.js.map +1 -1
- package/dist/src/server.d.ts +3 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +14 -4
- package/dist/src/server.js.map +1 -1
- package/dist/src/slot/gc.d.ts +11 -2
- package/dist/src/slot/gc.d.ts.map +1 -1
- package/dist/src/slot/gc.js +20 -2
- package/dist/src/slot/gc.js.map +1 -1
- package/dist/src/slot/manager.d.ts +34 -3
- package/dist/src/slot/manager.d.ts.map +1 -1
- package/dist/src/slot/manager.js +572 -3
- package/dist/src/slot/manager.js.map +1 -1
- package/dist/src/slot/types.d.ts +96 -1
- package/dist/src/slot/types.d.ts.map +1 -1
- package/dist/src/slot/types.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +3 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +3 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/registry.d.ts +43 -0
- package/dist/src/telemetry/registry.d.ts.map +1 -0
- package/dist/src/telemetry/registry.js +146 -0
- package/dist/src/telemetry/registry.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +37 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +6 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/tools/appliance-exec.js +1 -1
- package/dist/src/tools/appliance-exec.js.map +1 -1
- package/dist/src/tools/index.d.ts +3 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +19 -8
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/list-hosts.d.ts +2 -2
- package/dist/src/tools/list-inventory.d.ts +3 -3
- package/dist/src/tools/provision-tools.d.ts +122 -21
- package/dist/src/tools/provision-tools.d.ts.map +1 -1
- package/dist/src/tools/provision-tools.js +384 -1
- package/dist/src/tools/provision-tools.js.map +1 -1
- package/dist/src/tools/purge-slots.d.ts +52 -0
- package/dist/src/tools/purge-slots.d.ts.map +1 -0
- package/dist/src/tools/purge-slots.js +107 -0
- package/dist/src/tools/purge-slots.js.map +1 -0
- package/dist/src/tools/slot-tools.d.ts +92 -30
- package/dist/src/tools/slot-tools.d.ts.map +1 -1
- package/dist/src/tools/slot-tools.js +67 -5
- package/dist/src/tools/slot-tools.js.map +1 -1
- package/dist/src/tools/vm-action.d.ts +22 -22
- package/dist/src/transports/sse.d.ts.map +1 -1
- package/dist/src/transports/sse.js +13 -1
- package/dist/src/transports/sse.js.map +1 -1
- package/dist/src/utils/formatters.d.ts +38 -4
- package/dist/src/utils/formatters.d.ts.map +1 -1
- package/dist/src/utils/formatters.js +179 -23
- package/dist/src/utils/formatters.js.map +1 -1
- package/package.json +1 -1
package/dist/src/slot/gc.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Background Lease Garbage Collector
|
|
3
|
-
* Periodically scans active slot leases
|
|
3
|
+
* Periodically scans active slot leases, transitions expired leases back to AVAILABLE status,
|
|
4
|
+
* and safely destroys attached disposable VMs via MultiHypervisorManager.
|
|
4
5
|
*/
|
|
5
6
|
export class LeaseGCWorker {
|
|
6
7
|
slotManager;
|
|
@@ -10,12 +11,18 @@ export class LeaseGCWorker {
|
|
|
10
11
|
onExpired;
|
|
11
12
|
onError;
|
|
12
13
|
runImmediatelyOnStart;
|
|
14
|
+
destroyVms;
|
|
15
|
+
hypervisorManager;
|
|
16
|
+
guardrailEngine;
|
|
13
17
|
constructor(slotManager, options = {}) {
|
|
14
18
|
this.slotManager = slotManager;
|
|
15
19
|
this.intervalMs = options.intervalMs ?? 30000;
|
|
16
20
|
this.onExpired = options.onExpired;
|
|
17
21
|
this.onError = options.onError;
|
|
18
22
|
this.runImmediatelyOnStart = options.runImmediatelyOnStart ?? false;
|
|
23
|
+
this.destroyVms = options.destroyVms ?? true;
|
|
24
|
+
this.hypervisorManager = options.hypervisorManager;
|
|
25
|
+
this.guardrailEngine = options.guardrailEngine;
|
|
19
26
|
}
|
|
20
27
|
/**
|
|
21
28
|
* Starts the periodic garbage collection timer.
|
|
@@ -46,10 +53,21 @@ export class LeaseGCWorker {
|
|
|
46
53
|
this.running = false;
|
|
47
54
|
}
|
|
48
55
|
/**
|
|
49
|
-
* Performs an immediate sweep of expired slot leases.
|
|
56
|
+
* Performs an immediate sweep of expired slot leases and attached VMs.
|
|
50
57
|
*/
|
|
51
58
|
async sweep() {
|
|
52
59
|
try {
|
|
60
|
+
if (this.slotManager.purgeSlots) {
|
|
61
|
+
const purgeRes = await this.slotManager.purgeSlots({
|
|
62
|
+
destroyVms: this.destroyVms,
|
|
63
|
+
dryRun: false
|
|
64
|
+
});
|
|
65
|
+
const reclaimed = purgeRes.purgedSlotsCount;
|
|
66
|
+
if (reclaimed > 0 && this.onExpired) {
|
|
67
|
+
this.onExpired(reclaimed);
|
|
68
|
+
}
|
|
69
|
+
return reclaimed;
|
|
70
|
+
}
|
|
53
71
|
const reclaimed = await this.slotManager.reclaimExpired();
|
|
54
72
|
if (reclaimed > 0 && this.onExpired) {
|
|
55
73
|
this.onExpired(reclaimed);
|
package/dist/src/slot/gc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/slot/gc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/slot/gc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,OAAO,aAAa;IAChB,WAAW,CAAc;IACzB,UAAU,CAAS;IACnB,KAAK,GAA0B,IAAI,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,CAAkC;IAC3C,OAAO,CAA0B;IACjC,qBAAqB,CAAU;IAC/B,UAAU,CAAU;IACpB,iBAAiB,CAA0B;IAC3C,eAAe,CAAyB;IAEhD,YAAY,WAAwB,EAAE,UAAgC,EAAE;QACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,KAAK,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpB,uDAAuD;QACvD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;oBACjD,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC;gBAC5C,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YAC1D,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Global Slot Allocation & Capacity Partitioning Engine
|
|
3
3
|
* Manages 8GB appliance slots across Proxmox VE and VMware ESXi hosts with hard partition limits,
|
|
4
|
-
* atomic concurrency locking (AsyncMutex), TTL lease management,
|
|
4
|
+
* atomic concurrency locking (AsyncMutex), TTL lease management, candidate slot ranking,
|
|
5
|
+
* structured metadata labeling/indexing, and automated expired slot purge & reclamation.
|
|
5
6
|
*/
|
|
6
|
-
import { HostId, SlotDefinition, HostCapacityStatus, GlobalCapacitySummary, SlotCapacityReport, SlotClaimRequest, SlotClaimResult, ReleaseSlotOptions, ReleaseSlotParams, ReleaseSlotResult, LeaseExtensionResult, ListSlotsOptions, ISlotManager } from "./types.js";
|
|
7
|
+
import { HostId, SlotDefinition, HostCapacityStatus, GlobalCapacitySummary, SlotCapacityReport, SlotClaimRequest, SlotClaimResult, ReleaseSlotOptions, ReleaseSlotParams, ReleaseSlotResult, LeaseExtensionResult, ListSlotsOptions, PurgeSlotsOptions, PurgeSlotsResult, UpdateSlotMetadataOptions, UpdateSlotMetadataResult, ISlotManager } from "./types.js";
|
|
7
8
|
import { MultiHostProxmoxManager } from "../proxmox/index.js";
|
|
9
|
+
import { MultiHypervisorManager } from "../hypervisors/manager.js";
|
|
10
|
+
import { SafetyGuardrailEngine } from "../guardrails/safety.js";
|
|
11
|
+
import { TelemetryRegistry } from "../telemetry/index.js";
|
|
8
12
|
export * from "./types.js";
|
|
9
13
|
export interface SlotManagerHostConfig {
|
|
10
14
|
hostId: HostId;
|
|
@@ -22,6 +26,9 @@ export interface SlotManagerOptions {
|
|
|
22
26
|
hosts?: SlotManagerHostConfig[];
|
|
23
27
|
defaultDurationMinutes?: number;
|
|
24
28
|
proxmoxManager?: MultiHostProxmoxManager;
|
|
29
|
+
hypervisorManager?: MultiHypervisorManager;
|
|
30
|
+
guardrailEngine?: SafetyGuardrailEngine;
|
|
31
|
+
telemetryRegistry?: TelemetryRegistry;
|
|
25
32
|
includeEsxi?: boolean;
|
|
26
33
|
}
|
|
27
34
|
export declare const DEFAULT_ESXI_HOST_CONFIG: SlotManagerHostConfig;
|
|
@@ -31,7 +38,18 @@ export declare class SlotManager implements ISlotManager {
|
|
|
31
38
|
private mutex;
|
|
32
39
|
private defaultDurationMinutes;
|
|
33
40
|
private proxmoxManager?;
|
|
41
|
+
private hypervisorManager?;
|
|
42
|
+
private guardrailEngine;
|
|
43
|
+
private telemetry;
|
|
34
44
|
constructor(options?: SlotManagerOptions);
|
|
45
|
+
/**
|
|
46
|
+
* Set or update hypervisor manager reference.
|
|
47
|
+
*/
|
|
48
|
+
setHypervisorManager(hypervisorManager: MultiHypervisorManager): void;
|
|
49
|
+
/**
|
|
50
|
+
* Set or update safety guardrail engine reference.
|
|
51
|
+
*/
|
|
52
|
+
setGuardrailEngine(guardrailEngine: SafetyGuardrailEngine): void;
|
|
35
53
|
/**
|
|
36
54
|
* Register a host and initialize its slot definitions.
|
|
37
55
|
*/
|
|
@@ -40,6 +58,10 @@ export declare class SlotManager implements ISlotManager {
|
|
|
40
58
|
* Normalizes host ID strings (e.g. mapping aliases like proxmox-minis-lab -> proxmox-mini).
|
|
41
59
|
*/
|
|
42
60
|
private normalizeHostId;
|
|
61
|
+
/**
|
|
62
|
+
* Normalizes tag inputs into array of strings.
|
|
63
|
+
*/
|
|
64
|
+
private normalizeTagsArray;
|
|
43
65
|
/**
|
|
44
66
|
* Internal lazy expiration sweep (must be called inside mutex or synchronous method).
|
|
45
67
|
*/
|
|
@@ -57,7 +79,11 @@ export declare class SlotManager implements ISlotManager {
|
|
|
57
79
|
*/
|
|
58
80
|
extendLease(claimId: string, additionalMinutes: number, sessionId?: string): Promise<LeaseExtensionResult>;
|
|
59
81
|
/**
|
|
60
|
-
*
|
|
82
|
+
* Update metadata, label, workload type, or tags on an active slot lease.
|
|
83
|
+
*/
|
|
84
|
+
updateSlotMetadata(options: UpdateSlotMetadataOptions): Promise<UpdateSlotMetadataResult>;
|
|
85
|
+
/**
|
|
86
|
+
* List slots with comprehensive multi-field filtering and computed remaining TTL.
|
|
61
87
|
*/
|
|
62
88
|
listSlots(options?: ListSlotsOptions): Promise<SlotDefinition[]>;
|
|
63
89
|
/**
|
|
@@ -72,6 +98,11 @@ export declare class SlotManager implements ISlotManager {
|
|
|
72
98
|
* Reclaim all expired slots and return count.
|
|
73
99
|
*/
|
|
74
100
|
reclaimExpired(): Promise<number>;
|
|
101
|
+
/**
|
|
102
|
+
* Purge expired, threshold-exceeded, or orphaned slots and reclaim hypervisor VM capacity.
|
|
103
|
+
* Gated by SafetyGuardrailEngine non-bypassable protections.
|
|
104
|
+
*/
|
|
105
|
+
purgeSlots(options?: PurgeSlotsOptions): Promise<PurgeSlotsResult>;
|
|
75
106
|
/**
|
|
76
107
|
* Attach a created VMID or VM name to a claimed slot.
|
|
77
108
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/slot/manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/slot/manager.ts"],"names":[],"mappings":"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"}
|