@calltelemetry/ct-lab-mcp 0.8.104 → 0.8.106
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/README.md +13 -3
- package/assets/stig/SHA256SUMS +1 -0
- package/assets/stig/image/verify-image.sh +28 -0
- package/dist/src/generated-version.d.ts +1 -1
- package/dist/src/generated-version.js +1 -1
- package/dist/src/stig/dist.d.ts +121 -0
- package/dist/src/stig/dist.d.ts.map +1 -0
- package/dist/src/stig/dist.js +234 -0
- package/dist/src/stig/dist.js.map +1 -0
- package/dist/src/stig/distribution.d.ts +80 -0
- package/dist/src/stig/distribution.d.ts.map +1 -0
- package/dist/src/stig/distribution.js +335 -0
- package/dist/src/stig/distribution.js.map +1 -0
- package/dist/src/stig/live.d.ts +56 -4
- package/dist/src/stig/live.d.ts.map +1 -1
- package/dist/src/stig/live.js +188 -5
- package/dist/src/stig/live.js.map +1 -1
- package/dist/src/stig/model.d.ts +2 -1
- package/dist/src/stig/model.d.ts.map +1 -1
- package/dist/src/stig/model.js +7 -2
- package/dist/src/stig/model.js.map +1 -1
- package/dist/src/stig/nodes.d.ts +52 -12
- package/dist/src/stig/nodes.d.ts.map +1 -1
- package/dist/src/stig/nodes.js +90 -11
- package/dist/src/stig/nodes.js.map +1 -1
- package/dist/src/stig/ports.d.ts +64 -2
- package/dist/src/stig/ports.d.ts.map +1 -1
- package/dist/src/stig/pve.d.ts +21 -0
- package/dist/src/stig/pve.d.ts.map +1 -0
- package/dist/src/stig/pve.js +26 -0
- package/dist/src/stig/pve.js.map +1 -0
- package/dist/src/stig/runner.d.ts +30 -9
- package/dist/src/stig/runner.d.ts.map +1 -1
- package/dist/src/stig/runner.js +98 -78
- package/dist/src/stig/runner.js.map +1 -1
- package/dist/src/tools/claimed-import-qcow.d.ts.map +1 -1
- package/dist/src/tools/claimed-import-qcow.js +9 -1
- package/dist/src/tools/claimed-import-qcow.js.map +1 -1
- package/dist/src/tools/import-qcow.d.ts +14 -3
- package/dist/src/tools/import-qcow.d.ts.map +1 -1
- package/dist/src/tools/import-qcow.js +45 -15
- package/dist/src/tools/import-qcow.js.map +1 -1
- package/dist/src/tools/slot-tools.d.ts +4 -4
- package/dist/src/tools/stig-tools.d.ts +26 -8
- package/dist/src/tools/stig-tools.d.ts.map +1 -1
- package/dist/src/tools/stig-tools.js +66 -21
- package/dist/src/tools/stig-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,9 +16,12 @@
|
|
|
16
16
|
import { z } from "zod";
|
|
17
17
|
import { CallToolResult } from "../types/mcp.js";
|
|
18
18
|
import { ToolContext } from "./list-hosts.js";
|
|
19
|
+
/** Environment variable carrying the operator-minted signed fetch URL (candidate and published). */
|
|
20
|
+
export declare const IMPORT_QCOW_DOWNLOAD_URL_ENV = "CT_IMPORT_QCOW_DOWNLOAD_URL";
|
|
19
21
|
/**
|
|
20
22
|
* Published appliance image, the same shape the canonical CLI accepts:
|
|
21
|
-
* https
|
|
23
|
+
* https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2
|
|
24
|
+
* The version is the same pinned four-part pattern the candidate path uses.
|
|
22
25
|
*/
|
|
23
26
|
export declare const IMPORT_QCOW_PUBLISHED_URL_PATTERN: RegExp;
|
|
24
27
|
/**
|
|
@@ -42,7 +45,7 @@ export declare const IMPORT_QCOW_SHA256_PATTERN: RegExp;
|
|
|
42
45
|
export declare const IMPORT_QCOW_OS_VERSION_PATTERN: RegExp;
|
|
43
46
|
/**
|
|
44
47
|
* The release version the image carries, from its identity URL: the candidate
|
|
45
|
-
* path version, or the version in
|
|
48
|
+
* path version, or the version in the published ct-<version>[-rc<N>].qcow2 filename.
|
|
46
49
|
*/
|
|
47
50
|
export declare function importQcowVersionFromUrl(imageUrl: string): string;
|
|
48
51
|
/** DNS-safe lowercase prefix; the canonical CLI appends the VMID. */
|
|
@@ -286,7 +289,15 @@ export declare const ImportQcowInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
286
289
|
}>;
|
|
287
290
|
export type ImportQcowInput = z.infer<typeof ImportQcowInputSchema>;
|
|
288
291
|
export type ImportQcowRawInput = z.input<typeof ImportQcowInputSchema>;
|
|
292
|
+
/**
|
|
293
|
+
* A published image is only fetchable through an operator-minted Worker-signed URL (ADR 0880): the
|
|
294
|
+
* download host answers 403 to every unsigned GET, so there is deliberately no unsigned fallback. The
|
|
295
|
+
* canonical CLI validates the URL strictly; this gateway-side check only refuses a published request
|
|
296
|
+
* before any claim, lease, or provider call when the environment carries nothing. The message never
|
|
297
|
+
* includes any URL.
|
|
298
|
+
*/
|
|
299
|
+
export declare function publishedImportDownloadUrlError(imageUrl: string, env?: NodeJS.ProcessEnv): string | undefined;
|
|
289
300
|
export declare function buildImportQcowArgs(value: ImportQcowInput, env?: NodeJS.ProcessEnv): string[];
|
|
290
301
|
export declare function handleProxmoxImportQcow(rawArgs: ImportQcowRawInput | undefined, context: ToolContext): Promise<CallToolResult>;
|
|
291
|
-
export declare const IMPORT_QCOW_TOOL_DESCRIPTION = "Plan or apply an appliance QCOW2 import as a disposable Proxmox lab guest through canonical lab-inventory vm provision --source published-qcow (leased, journaled, credential-recoverable). The guest boots awaiting credential enrollment: continue with vm_repair, then finalize, then uat_access. osVersion (the AlmaLinux 9 minor inside the image, e.g. 9.8) is required. imageUrl is exactly one of two identity URL shapes (no query string, no presigned URL): a published image on
|
|
302
|
+
export declare const IMPORT_QCOW_TOOL_DESCRIPTION = "Plan or apply an appliance QCOW2 import as a disposable Proxmox lab guest through canonical lab-inventory vm provision --source published-qcow (leased, journaled, credential-recoverable). The guest boots awaiting credential enrollment: continue with vm_repair, then finalize, then uat_access. osVersion (the AlmaLinux 9 minor inside the image, e.g. 9.8) is required. imageUrl is exactly one of two identity URL shapes (no query string, no presigned URL): a published image on the download Worker host (a release candidate promoted to the public bucket keeps its -rc<N> suffix), https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2, or a private CI candidate for an unpublished RC (stored in a separate private bucket, never the public release bucket), https://<32-hex-account-id>.r2.cloudflarestorage.com/ct-ci-candidates/candidates/<version>/<run_id>/ct-<version>.qcow2; during the R2 migration window the legacy Spaces candidate host https://calltelemetry-ci-candidates-nyc3.nyc3.digitaloceanspaces.com/candidates/<version>/<run_id>/ct-<version>.qcow2 is also accepted. Candidates are private and digest-bound; the public publish gate is unchanged. The lab operator supplies any download credential to the canonical CLI through the gateway's own environment (CT_IMPORT_QCOW_DOWNLOAD_URL; a published image is refused without it because the download host answers 403 to unsigned requests), never through this tool. Dry-run is default; apply requires the reviewed asset, vm prefix, VMID, and image SHA-256 confirmations. VMID 182 is reserved. The canonical CLI owns digest verification, import, evidence capture, and teardown. The guest disk is thin-only: storage must be lvmthin (default local-lvm); thick or undeterminable storage is refused with THICK_STORAGE_REFUSED before any change.";
|
|
292
303
|
//# sourceMappingURL=import-qcow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-qcow.d.ts","sourceRoot":"","sources":["../../../src/tools/import-qcow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"import-qcow.d.ts","sourceRoot":"","sources":["../../../src/tools/import-qcow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiB9C,oGAAoG;AACpG,eAAO,MAAM,4BAA4B,gCAAgC,CAAC;AA4B1E;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAE7C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,QAG7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAEzC,CAAC;AAEF,eAAO,MAAM,6BAA6B,QAKgC,CAAC;AAE3E,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAE3D,mCAAmC;AACnC,eAAO,MAAM,8BAA8B,QAAgB,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,QAA2C,CAAC;AAEtF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFvB,CAAC;AAKX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0C,CAAC;AAEnF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CAwD1G;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAuEzB;AAED,eAAO,MAAM,4BAA4B,2wDACiuD,CAAC"}
|
|
@@ -19,13 +19,20 @@ import { reservedIdentityError } from "./sha-channel.js";
|
|
|
19
19
|
import { canonicalOperationAvailable, runCanonicalOperation } from "./canonical-guard.js";
|
|
20
20
|
import { guardCanonicalThinStorage } from "./thin-storage-policy.js";
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
22
|
+
* Published release images are served from the root of the R2-backed download Worker host
|
|
23
|
+
* (ADR 0873/0874, REL-1785): `https://download.calltelemetry.com/ct-<version>.qcow2` (the Worker maps
|
|
24
|
+
* it to R2 key `ovas/ct-<version>.qcow2`). The retired DigitalOcean Spaces release host and the retired
|
|
25
|
+
* GCS host are not accepted. Identity URLs are https only, with no userinfo, port, query string, or
|
|
26
|
+
* fragment, so they can never carry a signature. The Worker answers 403 to every unsigned GET, so a
|
|
27
|
+
* published import needs an operator-minted Worker-signed fetch URL, supplied to the canonical CLI only
|
|
28
|
+
* through `CT_IMPORT_QCOW_DOWNLOAD_URL` in the gateway process environment (ADR 0880), never through
|
|
29
|
+
* this tool.
|
|
27
30
|
*/
|
|
28
|
-
const IMPORT_QCOW_HOST_SOURCE = "calltelemetry
|
|
31
|
+
const IMPORT_QCOW_HOST_SOURCE = "download\\.calltelemetry\\.com";
|
|
32
|
+
/** Environment variable carrying the operator-minted signed fetch URL (candidate and published). */
|
|
33
|
+
export const IMPORT_QCOW_DOWNLOAD_URL_ENV = "CT_IMPORT_QCOW_DOWNLOAD_URL";
|
|
34
|
+
/** Release version carried by an image: four numeric parts with an optional -rc<N> suffix. */
|
|
35
|
+
const IMPORT_QCOW_VERSION_SOURCE = "[0-9]+(?:\\.[0-9]+){3}(?:-rc[0-9]+)?";
|
|
29
36
|
/**
|
|
30
37
|
* Private CI candidates live in their OWN bucket: the release bucket's policy makes every object
|
|
31
38
|
* public-read, so no prefix there can be private. Candidate and published hosts never cross.
|
|
@@ -48,9 +55,10 @@ const IMPORT_QCOW_R2_CANDIDATE_PREFIX_SOURCE = `${IMPORT_QCOW_R2_ACCOUNT_SOURCE}
|
|
|
48
55
|
const IMPORT_QCOW_LEGACY_CANDIDATE_PREFIX_SOURCE = "calltelemetry-ci-candidates-nyc3\\.nyc3\\.digitaloceanspaces\\.com/";
|
|
49
56
|
/**
|
|
50
57
|
* Published appliance image, the same shape the canonical CLI accepts:
|
|
51
|
-
* https
|
|
58
|
+
* https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2
|
|
59
|
+
* The version is the same pinned four-part pattern the candidate path uses.
|
|
52
60
|
*/
|
|
53
|
-
export const IMPORT_QCOW_PUBLISHED_URL_PATTERN = new RegExp(`^https://${IMPORT_QCOW_HOST_SOURCE}/
|
|
61
|
+
export const IMPORT_QCOW_PUBLISHED_URL_PATTERN = new RegExp(`^https://${IMPORT_QCOW_HOST_SOURCE}/ct-${IMPORT_QCOW_VERSION_SOURCE}\\.qcow2$`);
|
|
54
62
|
/**
|
|
55
63
|
* Private CI candidate for an unpublished RC that has not passed the public
|
|
56
64
|
* publish gate (ADR 0727):
|
|
@@ -67,7 +75,7 @@ export const IMPORT_QCOW_CANDIDATE_URL_PATTERN = new RegExp(`^https://(?:${IMPOR
|
|
|
67
75
|
* reviewed request rather than an allowlist edit.
|
|
68
76
|
*/
|
|
69
77
|
export const IMPORT_QCOW_IMAGE_URL_PATTERN = new RegExp(`(?:${IMPORT_QCOW_PUBLISHED_URL_PATTERN.source})|(?:${IMPORT_QCOW_CANDIDATE_URL_PATTERN.source})`);
|
|
70
|
-
export const IMPORT_QCOW_IMAGE_URL_MESSAGE = "must be https://calltelemetry
|
|
78
|
+
export const IMPORT_QCOW_IMAGE_URL_MESSAGE = "must be https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2 " +
|
|
71
79
|
"(published) or https://<32-hex-account-id>.r2.cloudflarestorage.com/ct-ci-candidates/candidates/<version>/<run_id>/ct-<version>.qcow2 " +
|
|
72
80
|
"(private CI candidate on R2; during the migration window the legacy https://calltelemetry-ci-candidates-nyc3.nyc3.digitaloceanspaces.com/candidates/<version>/<run_id>/ct-<version>.qcow2 is also accepted; " +
|
|
73
81
|
"<version> has four numeric parts with optional -rc<N> and must match in both positions; " +
|
|
@@ -77,15 +85,15 @@ export const IMPORT_QCOW_SHA256_PATTERN = /^[a-f0-9]{64}$/;
|
|
|
77
85
|
export const IMPORT_QCOW_OS_VERSION_PATTERN = /^9\.[0-9]+$/;
|
|
78
86
|
/**
|
|
79
87
|
* The release version the image carries, from its identity URL: the candidate
|
|
80
|
-
* path version, or the version in
|
|
88
|
+
* path version, or the version in the published ct-<version>[-rc<N>].qcow2 filename.
|
|
81
89
|
*/
|
|
82
90
|
export function importQcowVersionFromUrl(imageUrl) {
|
|
83
91
|
const candidate = IMPORT_QCOW_CANDIDATE_URL_PATTERN.exec(imageUrl);
|
|
84
92
|
if (candidate?.groups?.version)
|
|
85
93
|
return candidate.groups.version;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
94
|
+
if (IMPORT_QCOW_PUBLISHED_URL_PATTERN.test(imageUrl)) {
|
|
95
|
+
return imageUrl.slice(imageUrl.lastIndexOf("/ct-") + "/ct-".length, -".qcow2".length);
|
|
96
|
+
}
|
|
89
97
|
throw new Error("image URL does not carry a release version");
|
|
90
98
|
}
|
|
91
99
|
/** DNS-safe lowercase prefix; the canonical CLI appends the VMID. */
|
|
@@ -110,7 +118,7 @@ export const ImportQcowInputShape = {
|
|
|
110
118
|
.string()
|
|
111
119
|
.trim()
|
|
112
120
|
.regex(IMPORT_QCOW_IMAGE_URL_PATTERN, IMPORT_QCOW_IMAGE_URL_MESSAGE)
|
|
113
|
-
.describe("Identity URL of the appliance QCOW2 object: either a published image (/
|
|
121
|
+
.describe("Identity URL of the appliance QCOW2 object: either a published image (https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2) or a private CI candidate on Cloudflare R2 (https://<32-hex-account-id>.r2.cloudflarestorage.com/ct-ci-candidates/candidates/<version>/<run_id>/ct-<version>.qcow2; the legacy DigitalOcean Spaces candidate host is also accepted during the migration window). No query string or presigned URL; the operator supplies any download credential to the canonical CLI through the gateway's own environment (a published image requires an operator-minted signed URL there). Only the host-and-path shape is allowlisted; the digest is bound per request."),
|
|
114
122
|
imageSha256: z
|
|
115
123
|
.string()
|
|
116
124
|
.trim()
|
|
@@ -205,6 +213,22 @@ export const ImportQcowInputSchema = ImportQcowInputObjectSchema.superRefine((va
|
|
|
205
213
|
});
|
|
206
214
|
}
|
|
207
215
|
});
|
|
216
|
+
/**
|
|
217
|
+
* A published image is only fetchable through an operator-minted Worker-signed URL (ADR 0880): the
|
|
218
|
+
* download host answers 403 to every unsigned GET, so there is deliberately no unsigned fallback. The
|
|
219
|
+
* canonical CLI validates the URL strictly; this gateway-side check only refuses a published request
|
|
220
|
+
* before any claim, lease, or provider call when the environment carries nothing. The message never
|
|
221
|
+
* includes any URL.
|
|
222
|
+
*/
|
|
223
|
+
export function publishedImportDownloadUrlError(imageUrl, env = process.env) {
|
|
224
|
+
if (!IMPORT_QCOW_PUBLISHED_URL_PATTERN.test(imageUrl))
|
|
225
|
+
return undefined;
|
|
226
|
+
if (env[IMPORT_QCOW_DOWNLOAD_URL_ENV]?.trim())
|
|
227
|
+
return undefined;
|
|
228
|
+
return (`a published image import requires ${IMPORT_QCOW_DOWNLOAD_URL_ENV} in the gateway environment: ` +
|
|
229
|
+
"the download host rejects unsigned requests, so an operator must mint a short-lived signed fetch URL " +
|
|
230
|
+
"and set it on the lab gateway process (it is never a tool input); no unsigned fallback exists and nothing was changed");
|
|
231
|
+
}
|
|
208
232
|
export function buildImportQcowArgs(value, env = process.env) {
|
|
209
233
|
const workspaceRoot = value.workspaceRoot ?? env.CT_WORKSPACE_ROOT;
|
|
210
234
|
if (!workspaceRoot) {
|
|
@@ -281,6 +305,12 @@ export async function handleProxmoxImportQcow(rawArgs, context) {
|
|
|
281
305
|
if (!canonicalOperationAvailable(context, "proxmox_import_qcow")) {
|
|
282
306
|
return createToolErrorResult("CANONICAL_OPERATION_REQUIRES_BRIDGE", "proxmox_import_qcow requires the canonical lab bridge (CT_LAB_CANONICAL_CLI); image qualification, digest verification, and guest evidence must be evaluated by lab-inventory vm provision --source published-qcow", { operation: "proxmox_import_qcow" });
|
|
283
307
|
}
|
|
308
|
+
const missingDownloadUrl = publishedImportDownloadUrlError(args.imageUrl);
|
|
309
|
+
if (missingDownloadUrl) {
|
|
310
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, missingDownloadUrl, {
|
|
311
|
+
operation: "proxmox_import_qcow",
|
|
312
|
+
});
|
|
313
|
+
}
|
|
284
314
|
let command;
|
|
285
315
|
try {
|
|
286
316
|
command = buildImportQcowArgs(args);
|
|
@@ -304,5 +334,5 @@ export async function handleProxmoxImportQcow(rawArgs, context) {
|
|
|
304
334
|
// success.
|
|
305
335
|
args.apply ? 3_600_000 : 120_000);
|
|
306
336
|
}
|
|
307
|
-
export const IMPORT_QCOW_TOOL_DESCRIPTION = "Plan or apply an appliance QCOW2 import as a disposable Proxmox lab guest through canonical lab-inventory vm provision --source published-qcow (leased, journaled, credential-recoverable). The guest boots awaiting credential enrollment: continue with vm_repair, then finalize, then uat_access. osVersion (the AlmaLinux 9 minor inside the image, e.g. 9.8) is required. imageUrl is exactly one of two identity URL shapes (no query string, no presigned URL): a published image on
|
|
337
|
+
export const IMPORT_QCOW_TOOL_DESCRIPTION = "Plan or apply an appliance QCOW2 import as a disposable Proxmox lab guest through canonical lab-inventory vm provision --source published-qcow (leased, journaled, credential-recoverable). The guest boots awaiting credential enrollment: continue with vm_repair, then finalize, then uat_access. osVersion (the AlmaLinux 9 minor inside the image, e.g. 9.8) is required. imageUrl is exactly one of two identity URL shapes (no query string, no presigned URL): a published image on the download Worker host (a release candidate promoted to the public bucket keeps its -rc<N> suffix), https://download.calltelemetry.com/ct-<version>[-rc<N>].qcow2, or a private CI candidate for an unpublished RC (stored in a separate private bucket, never the public release bucket), https://<32-hex-account-id>.r2.cloudflarestorage.com/ct-ci-candidates/candidates/<version>/<run_id>/ct-<version>.qcow2; during the R2 migration window the legacy Spaces candidate host https://calltelemetry-ci-candidates-nyc3.nyc3.digitaloceanspaces.com/candidates/<version>/<run_id>/ct-<version>.qcow2 is also accepted. Candidates are private and digest-bound; the public publish gate is unchanged. The lab operator supplies any download credential to the canonical CLI through the gateway's own environment (CT_IMPORT_QCOW_DOWNLOAD_URL; a published image is refused without it because the download host answers 403 to unsigned requests), never through this tool. Dry-run is default; apply requires the reviewed asset, vm prefix, VMID, and image SHA-256 confirmations. VMID 182 is reserved. The canonical CLI owns digest verification, import, evidence capture, and teardown. The guest disk is thin-only: storage must be lvmthin (default local-lvm); thick or undeterminable storage is refused with THICK_STORAGE_REFUSED before any change.";
|
|
308
338
|
//# sourceMappingURL=import-qcow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-qcow.js","sourceRoot":"","sources":["../../../src/tools/import-qcow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"import-qcow.js","sourceRoot":"","sources":["../../../src/tools/import-qcow.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,8 +106,8 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
106
106
|
operationId?: string | undefined;
|
|
107
107
|
confirmAssetId?: string | undefined;
|
|
108
108
|
allowEsxiSlots?: boolean | undefined;
|
|
109
|
-
receiptFile?: string | undefined;
|
|
110
109
|
claimNode?: "proxmox" | "esxi" | "minis" | "ibm64" | undefined;
|
|
110
|
+
receiptFile?: string | undefined;
|
|
111
111
|
claimVmid?: number | undefined;
|
|
112
112
|
claimVmName?: string | undefined;
|
|
113
113
|
placementSeed?: string | undefined;
|
|
@@ -138,8 +138,8 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
138
138
|
apply?: boolean | undefined;
|
|
139
139
|
confirmAssetId?: string | undefined;
|
|
140
140
|
allowEsxiSlots?: boolean | undefined;
|
|
141
|
-
receiptFile?: string | undefined;
|
|
142
141
|
claimNode?: "proxmox" | "esxi" | "minis" | "ibm64" | undefined;
|
|
142
|
+
receiptFile?: string | undefined;
|
|
143
143
|
claimVmid?: number | undefined;
|
|
144
144
|
claimVmName?: string | undefined;
|
|
145
145
|
replaceClosedClaim?: boolean | undefined;
|
|
@@ -174,8 +174,8 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
174
174
|
operationId?: string | undefined;
|
|
175
175
|
confirmAssetId?: string | undefined;
|
|
176
176
|
allowEsxiSlots?: boolean | undefined;
|
|
177
|
-
receiptFile?: string | undefined;
|
|
178
177
|
claimNode?: "proxmox" | "esxi" | "minis" | "ibm64" | undefined;
|
|
178
|
+
receiptFile?: string | undefined;
|
|
179
179
|
claimVmid?: number | undefined;
|
|
180
180
|
claimVmName?: string | undefined;
|
|
181
181
|
placementSeed?: string | undefined;
|
|
@@ -206,8 +206,8 @@ export declare const ClaimSlotInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
206
206
|
apply?: boolean | undefined;
|
|
207
207
|
confirmAssetId?: string | undefined;
|
|
208
208
|
allowEsxiSlots?: boolean | undefined;
|
|
209
|
-
receiptFile?: string | undefined;
|
|
210
209
|
claimNode?: "proxmox" | "esxi" | "minis" | "ibm64" | undefined;
|
|
210
|
+
receiptFile?: string | undefined;
|
|
211
211
|
claimVmid?: number | undefined;
|
|
212
212
|
claimVmName?: string | undefined;
|
|
213
213
|
replaceClosedClaim?: boolean | undefined;
|
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { CallToolResult } from "../types/mcp.js";
|
|
3
3
|
import type { ToolContext } from "./list-hosts.js";
|
|
4
4
|
import { StigRunner } from "../stig/runner.js";
|
|
5
|
-
import {
|
|
5
|
+
import { StigDistribution } from "../stig/distribution.js";
|
|
6
6
|
export declare const BuildStigTemplateInputShape: {
|
|
7
7
|
ssgDatastreamPath: z.ZodString;
|
|
8
8
|
disaBenchmarkPath: z.ZodString;
|
|
@@ -13,10 +13,10 @@ export declare const BuildStigTemplateInputShape: {
|
|
|
13
13
|
planDigest: z.ZodOptional<z.ZodString>;
|
|
14
14
|
};
|
|
15
15
|
export declare const CreateStigClaimInputShape: {
|
|
16
|
-
|
|
16
|
+
cloneName: z.ZodString;
|
|
17
17
|
recreate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
18
18
|
untagged: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
19
|
-
|
|
19
|
+
node: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodEnum<[string, ...string[]]>, "proxmox" | "minis" | "prox-ibm64", string>>>;
|
|
20
20
|
templateRef: z.ZodOptional<z.ZodString>;
|
|
21
21
|
ttlHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
22
22
|
dns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -27,27 +27,45 @@ export declare const CreateStigClaimInputShape: {
|
|
|
27
27
|
};
|
|
28
28
|
export declare const ValidateStigClaimInputShape: {
|
|
29
29
|
cloneName: z.ZodString;
|
|
30
|
-
node: z.
|
|
30
|
+
node: z.ZodOptional<z.ZodEffects<z.ZodEnum<[string, ...string[]]>, "proxmox" | "minis" | "prox-ibm64", string>>;
|
|
31
31
|
requireDisa: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
32
32
|
};
|
|
33
33
|
export declare const GetStigReceiptInputShape: {
|
|
34
34
|
claim: z.ZodString;
|
|
35
|
+
node: z.ZodOptional<z.ZodEffects<z.ZodEnum<[string, ...string[]]>, "proxmox" | "minis" | "prox-ibm64", string>>;
|
|
35
36
|
};
|
|
36
37
|
export declare const ReleaseStigTemplateInputShape: {
|
|
37
|
-
node: z.ZodDefault<z.ZodOptional<z.ZodEnum<[StigNode, ...StigNode[]]>>>;
|
|
38
38
|
claim: z.ZodString;
|
|
39
|
+
node: z.ZodOptional<z.ZodEffects<z.ZodEnum<[string, ...string[]]>, "proxmox" | "minis" | "prox-ibm64", string>>;
|
|
39
40
|
confirmDestroy: z.ZodBoolean;
|
|
40
41
|
};
|
|
42
|
+
export declare const PublishStigTemplateInputShape: {
|
|
43
|
+
template: z.ZodString;
|
|
44
|
+
force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
45
|
+
receiptPath: z.ZodOptional<z.ZodString>;
|
|
46
|
+
manifestPath: z.ZodOptional<z.ZodString>;
|
|
47
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
48
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
49
|
+
};
|
|
50
|
+
export declare const SyncStigTemplateInputShape: {
|
|
51
|
+
template: z.ZodString;
|
|
52
|
+
node: z.ZodEffects<z.ZodEnum<[string, ...string[]]>, "proxmox" | "minis" | "prox-ibm64", string>;
|
|
53
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
54
|
+
planDigest: z.ZodOptional<z.ZodString>;
|
|
55
|
+
};
|
|
41
56
|
export interface StigToolDeps {
|
|
42
|
-
makeRunner: (node?:
|
|
57
|
+
makeRunner: (node?: string) => StigRunner;
|
|
58
|
+
makeDistribution?: () => StigDistribution;
|
|
43
59
|
}
|
|
44
60
|
export declare function handleBuildStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
45
61
|
export declare function handleCreateStigClaim(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
46
62
|
export declare function handleValidateStigClaim(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
47
63
|
export declare function handleGetStigReceipt(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
48
64
|
export declare function handleReleaseStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
49
|
-
export declare
|
|
50
|
-
|
|
65
|
+
export declare function handlePublishStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
66
|
+
export declare function handleSyncStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
|
|
67
|
+
export declare const STIG_TOOL_NAMES: readonly ["build_stig_template", "create_stig_claim", "validate_stig_claim", "get_stig_receipt", "release_stig_template", "publish_stig_template", "sync_stig_template"];
|
|
68
|
+
/** Registers the seven tools on a server whose `.tool()` is already the guarded wrapper. */
|
|
51
69
|
export declare function registerStigTools(server: {
|
|
52
70
|
tool: (...a: any[]) => unknown;
|
|
53
71
|
}, _context: ToolContext, deps?: StigToolDeps): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stig-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stig-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAa3D,eAAO,MAAM,2BAA2B;;;;;;;;CAQvC,CAAC;AACF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;CAWrC,CAAC;AACF,eAAO,MAAM,2BAA2B;;;;CAIvC,CAAC;AACF,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AACF,eAAO,MAAM,6BAA6B;;;;CAIzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;CAOzC,CAAC;AACF,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC;AAEF,MAAM,WAAW,YAAY;IAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,gBAAgB,CAAA;CAAE;AAYtH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CASxH;AACD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAItH;AACD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAIxH;AACD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAIrH;AACD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAI1H;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAI1H;AACD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAIvH;AAED,eAAO,MAAM,eAAe,0KAA2K,CAAC;AAExM,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAA;CAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAShJ"}
|
|
@@ -6,21 +6,28 @@
|
|
|
6
6
|
* validate_stig_claim oscap scan on a clone, fail=0 gate, receipt summary on the claim
|
|
7
7
|
* get_stig_receipt the annotated receipt summary and what status.stig will carry
|
|
8
8
|
* release_stig_template explicit template destroy, then claim deletion
|
|
9
|
+
* publish_stig_template plan | apply signed, compressed qcow2 of a sealed template on the shared image store
|
|
10
|
+
* sync_stig_template plan | apply verify the published image on a node and create the claimed template there
|
|
9
11
|
*
|
|
10
|
-
*
|
|
12
|
+
* Node-addressing tools take `node` (minis | proxmox | prox-ibm64; create and sync act on it, the rest check it
|
|
13
|
+
* against the claim). The shell recipe in ct-meta (rhel8-stig-template) remains the documented default until live
|
|
14
|
+
* parity passes.
|
|
11
15
|
*/
|
|
12
16
|
import { createHash } from "node:crypto";
|
|
13
17
|
import { readFileSync } from "node:fs";
|
|
14
18
|
import { z } from "zod";
|
|
15
19
|
import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
|
|
16
20
|
import { StigRunner } from "../stig/runner.js";
|
|
21
|
+
import { StigDistribution } from "../stig/distribution.js";
|
|
22
|
+
import { STIG_NODE_INPUT_NAMES, canonicalNodeName } from "../stig/nodes.js";
|
|
17
23
|
import { liveDeps } from "../stig/live.js";
|
|
18
|
-
import { STIG_NODE_NAMES } from "../stig/nodes.js";
|
|
19
24
|
import { redact } from "../stig/model.js";
|
|
20
|
-
const nodeField = z.enum(STIG_NODE_NAMES).optional().default("minis").describe("Lab node: minis (proxmox-minis-lab), ibm64 (proxmox-ibm64) or proxmox (proxmox-lab). Templates are per node (claims tpl-<template>-<node>).");
|
|
21
25
|
const hex64 = z.string().regex(/^[a-f0-9]{64}$/i);
|
|
22
26
|
const dnsList = z.array(z.string().ip({ version: "v4" })).min(1).max(4);
|
|
23
27
|
const ntpList = z.array(z.string().min(1).max(253)).max(4);
|
|
28
|
+
/** minis | proxmox | prox-ibm64; the legacy claim-node spelling `ibm64` is accepted and means prox-ibm64. */
|
|
29
|
+
const nodeName = z.enum(STIG_NODE_INPUT_NAMES).transform((n) => canonicalNodeName(n));
|
|
30
|
+
const templateName = z.string().regex(/^rhel810-stig-\d{8}-\d{4}$/);
|
|
24
31
|
const cloneName = z.string().regex(/^[a-z0-9]([a-z0-9-]{0,40}[a-z0-9])?$/, "lowercase DNS label");
|
|
25
32
|
export const BuildStigTemplateInputShape = {
|
|
26
33
|
ssgDatastreamPath: z.string().min(1).describe("Path to the pinned scap-security-guide 0.1.82 ssg-rhel8-ds.xml on this host; its sha256 must equal the pin."),
|
|
@@ -32,11 +39,11 @@ export const BuildStigTemplateInputShape = {
|
|
|
32
39
|
planDigest: hex64.optional().describe("planDigest from the plan; required with apply=true."),
|
|
33
40
|
};
|
|
34
41
|
export const CreateStigClaimInputShape = {
|
|
35
|
-
node: nodeField,
|
|
36
|
-
recreate: z.boolean().optional().default(false).describe("Release the existing clone-<cloneName> STIG clone claim (the operator destroys its guest) and create its replacement. Only a STIG clone claim qualifies."),
|
|
37
|
-
untagged: z.boolean().optional().default(false).describe("Clone without a VLAN tag. Required on proxmox, whose bridge is not VLAN-aware."),
|
|
38
42
|
cloneName: cloneName.describe("Clone VM name; the claim is clone-<cloneName>, the escrow key LAB_RHEL8_RECOVERY_<CLONENAME>."),
|
|
39
|
-
|
|
43
|
+
recreate: z.boolean().optional().default(false).describe("Release the existing clone-<cloneName> STIG clone claim (the operator destroys its guest) and create its replacement. Only a STIG clone claim qualifies."),
|
|
44
|
+
untagged: z.boolean().optional().default(false).describe("Clone without a VLAN tag (VLAN 126 is the default on every node)."),
|
|
45
|
+
node: nodeName.optional().default("minis").describe("Proxmox node that hosts the clone: minis (build node), proxmox or prox-ibm64. The claim, the pool guard, the one-re-encrypting-clone guard and the template choice are all that node's."),
|
|
46
|
+
templateRef: z.string().regex(/^rhel810-stig-\d{8}-\d{4}$/).optional().describe("Template to clone (default: the newest synced to the node)."),
|
|
40
47
|
ttlHours: z.number().int().min(1).max(8760).optional().default(48),
|
|
41
48
|
dns: dnsList.optional(), ntp: ntpList.optional(),
|
|
42
49
|
poolMaxPercent: z.number().int().min(10).max(70).optional().describe("Refuse to start above this thin-pool use. Default and hard cap 70; it can only be tightened."),
|
|
@@ -45,22 +52,39 @@ export const CreateStigClaimInputShape = {
|
|
|
45
52
|
};
|
|
46
53
|
export const ValidateStigClaimInputShape = {
|
|
47
54
|
cloneName,
|
|
48
|
-
node:
|
|
55
|
+
node: nodeName.optional().describe("Optional: must match the node the clone's claim lives on (default: taken from the claim)."),
|
|
49
56
|
requireDisa: z.boolean().optional().default(false).describe("Fail when the clone's template predates the DISA V2R8 dual-scan recipe (no benchmark baked in). Both scans must be fail=0 when present."),
|
|
50
57
|
};
|
|
51
|
-
export const GetStigReceiptInputShape = {
|
|
58
|
+
export const GetStigReceiptInputShape = {
|
|
59
|
+
claim: z.string().min(1).describe("ApplianceClaim name, e.g. clone-<cloneName>, tpl-<template> or tpl-<template>-<node>."),
|
|
60
|
+
node: nodeName.optional().describe("Optional: must match the node the claim lives on (default: taken from the claim)."),
|
|
61
|
+
};
|
|
52
62
|
export const ReleaseStigTemplateInputShape = {
|
|
53
|
-
node: nodeField,
|
|
54
63
|
claim: z.string().min(1),
|
|
64
|
+
node: nodeName.optional().describe("Optional: must match the node the claim lives on (default: taken from the claim)."),
|
|
55
65
|
confirmDestroy: z.boolean().describe("Must be true: templates are never reaped by the operator, so release destroys the template first, then deletes the claim."),
|
|
56
66
|
};
|
|
57
|
-
const
|
|
67
|
+
export const PublishStigTemplateInputShape = {
|
|
68
|
+
template: templateName.describe("Sealed template to publish (a template on the build node, node minis)."),
|
|
69
|
+
force: z.boolean().optional().default(false).describe("Re-export and re-publish even if the image already verifies."),
|
|
70
|
+
receiptPath: z.string().min(1).optional().describe("Optional local receipt JSON whose sha256 is recorded as receipt_sha256 (default: the template claim's receipt summary)."),
|
|
71
|
+
manifestPath: z.string().min(1).optional().describe("Optional local evidence MANIFEST.sha256 whose sha256 is recorded as evidence_manifest_sha256."),
|
|
72
|
+
apply: z.boolean().optional().default(false).describe("Omit for a plan. True exports, signs and publishes, and needs planDigest."),
|
|
73
|
+
planDigest: hex64.optional().describe("planDigest from the plan; required with apply=true."),
|
|
74
|
+
};
|
|
75
|
+
export const SyncStigTemplateInputShape = {
|
|
76
|
+
template: templateName.describe("Published template to materialize on the node."),
|
|
77
|
+
node: nodeName.describe("Node that receives the template (required): minis, proxmox or prox-ibm64."),
|
|
78
|
+
apply: z.boolean().optional().default(false).describe("Omit for a plan. True claims the template on the node, verifies it there and imports it; needs planDigest."),
|
|
79
|
+
planDigest: hex64.optional().describe("planDigest from the plan; required with apply=true."),
|
|
80
|
+
};
|
|
81
|
+
const defaultDeps = () => ({ makeRunner: (node) => new StigRunner(liveDeps({ node }), node ?? "minis"), makeDistribution: () => new StigDistribution(liveDeps()) });
|
|
58
82
|
function ok(payload) {
|
|
59
83
|
return { content: [{ type: "text", text: redact(JSON.stringify({ success: true, ...payload }, null, 2)) }] };
|
|
60
84
|
}
|
|
61
85
|
function fail(operation, err) {
|
|
62
86
|
const message = redact(String(err?.message ?? err));
|
|
63
|
-
const validation = /plan digest|must|cap|exceeds|refus|not a template|already exists|not found|re-encrypting|unreadable|datastream|packer|confirm|pinned|missing/i.test(message);
|
|
87
|
+
const validation = /plan digest|must|cap|exceeds|refus|not a template|already exists|not found|re-encrypting|unreadable|datastream|packer|confirm|pinned|missing|thin storage|not in the published|lives on|node map|mismatch|signature|still running/i.test(message);
|
|
64
88
|
return createToolErrorResult(validation ? ProxmoxErrorCode.VALIDATION_ERROR : ProxmoxErrorCode.UPSTREAM_API_ERROR, `${operation}: ${message}`, { operation });
|
|
65
89
|
}
|
|
66
90
|
export async function handleBuildStigTemplate(args, deps = defaultDeps()) {
|
|
@@ -82,8 +106,7 @@ export async function handleCreateStigClaim(args, deps = defaultDeps()) {
|
|
|
82
106
|
if (!p.success)
|
|
83
107
|
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
84
108
|
try {
|
|
85
|
-
|
|
86
|
-
return ok(await deps.makeRunner(node).createClone(rest));
|
|
109
|
+
return ok(await deps.makeRunner(p.data.node).createClone(p.data));
|
|
87
110
|
}
|
|
88
111
|
catch (e) {
|
|
89
112
|
return fail("create_stig_claim", e);
|
|
@@ -94,8 +117,7 @@ export async function handleValidateStigClaim(args, deps = defaultDeps()) {
|
|
|
94
117
|
if (!p.success)
|
|
95
118
|
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
96
119
|
try {
|
|
97
|
-
|
|
98
|
-
return ok(await deps.makeRunner(node).validate(rest));
|
|
120
|
+
return ok(await deps.makeRunner(p.data.node).validate(p.data));
|
|
99
121
|
}
|
|
100
122
|
catch (e) {
|
|
101
123
|
return fail("validate_stig_claim", e);
|
|
@@ -106,7 +128,7 @@ export async function handleGetStigReceipt(args, deps = defaultDeps()) {
|
|
|
106
128
|
if (!p.success)
|
|
107
129
|
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
108
130
|
try {
|
|
109
|
-
return ok(await deps.makeRunner().getReceipt(p.data));
|
|
131
|
+
return ok(await deps.makeRunner(p.data.node).getReceipt(p.data));
|
|
110
132
|
}
|
|
111
133
|
catch (e) {
|
|
112
134
|
return fail("get_stig_receipt", e);
|
|
@@ -117,21 +139,44 @@ export async function handleReleaseStigTemplate(args, deps = defaultDeps()) {
|
|
|
117
139
|
if (!p.success)
|
|
118
140
|
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
119
141
|
try {
|
|
120
|
-
|
|
121
|
-
return ok(await deps.makeRunner(node).releaseTemplate(rest));
|
|
142
|
+
return ok(await deps.makeRunner(p.data.node).releaseTemplate(p.data));
|
|
122
143
|
}
|
|
123
144
|
catch (e) {
|
|
124
145
|
return fail("release_stig_template", e);
|
|
125
146
|
}
|
|
126
147
|
}
|
|
127
|
-
export
|
|
128
|
-
|
|
148
|
+
export async function handlePublishStigTemplate(args, deps = defaultDeps()) {
|
|
149
|
+
const p = z.object(PublishStigTemplateInputShape).strict().safeParse(args);
|
|
150
|
+
if (!p.success)
|
|
151
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
152
|
+
try {
|
|
153
|
+
return ok(await (deps.makeDistribution ?? defaultDeps().makeDistribution)().publish(p.data));
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
return fail("publish_stig_template", e);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export async function handleSyncStigTemplate(args, deps = defaultDeps()) {
|
|
160
|
+
const p = z.object(SyncStigTemplateInputShape).strict().safeParse(args);
|
|
161
|
+
if (!p.success)
|
|
162
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
163
|
+
try {
|
|
164
|
+
return ok(await (deps.makeDistribution ?? defaultDeps().makeDistribution)().sync(p.data));
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
return fail("sync_stig_template", e);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
export const STIG_TOOL_NAMES = ["build_stig_template", "create_stig_claim", "validate_stig_claim", "get_stig_receipt", "release_stig_template", "publish_stig_template", "sync_stig_template"];
|
|
171
|
+
/** Registers the seven tools on a server whose `.tool()` is already the guarded wrapper. */
|
|
129
172
|
export function registerStigTools(server, _context, deps = defaultDeps()) {
|
|
130
173
|
server.tool("build_stig_template", "Plan or apply a RHEL 8.10 DISA STIG Proxmox template build on proxmox-minis-lab. Claim first (6h bare claim, Ready before Packer), pinned SSG 0.1.82 / DISA V2R8 benchmark / Packer 1.16.0, both scans must be fail=0, template verified, then the claim renews to the TTL cap. Apply needs the plan's planDigest.", BuildStigTemplateInputShape, async (a) => handleBuildStigTemplate(a, deps));
|
|
131
174
|
server.tool("create_stig_claim", "Plan or apply a claim-backed clone of the newest STIG template: thin-pool guard (<=70%), one re-encrypting clone at a time, fresh tpmstate0, first-boot LUKS re-key bound to the clone's TPM2, recovery passphrase escrowed to Doppler by name, verify, fstrim. Apply needs the plan's planDigest.", CreateStigClaimInputShape, async (a) => handleCreateStigClaim(a, deps));
|
|
132
175
|
server.tool("validate_stig_claim", "Run the pinned, tailored oscap STIG scan on a STIG clone, gate on fail=0, record the LUKS volume-key digest, and annotate the claim with the secret-free receipt summary.", ValidateStigClaimInputShape, async (a) => handleValidateStigClaim(a, deps));
|
|
133
176
|
server.tool("get_stig_receipt", "Read a STIG claim's descriptor and receipt summary (counts, fail=0 gate, versions, artifact sha256, key digest) and what status.stig will carry when the operator projection is enabled.", GetStigReceiptInputShape, async (a) => handleGetStigReceipt(a, deps));
|
|
134
177
|
server.tool("release_stig_template", "Release a STIG template: verify it is the claimed template, destroy it explicitly (the operator never reaps templates), then delete its claim. Requires confirmDestroy=true.", ReleaseStigTemplateInputShape, async (a) => handleReleaseStigTemplate(a, deps));
|
|
178
|
+
server.tool("publish_stig_template", "Plan or apply publishing a sealed RHEL 8.10 STIG template (on the build node) as a compressed qcow2 on the shared image store ct-stig-images: export from the read-only base LV, template.json (hardware, scan counts, digests), sha256, detached SHA-512 signatures with the pinned evidence key (Doppler into an ephemeral GNUPGHOME), index.json (latest, keep 3; prune never touches latest or an image a node is importing). Idempotent: a no-op when the image already verifies. Apply needs the plan's planDigest.", PublishStigTemplateInputShape, async (a) => handlePublishStigTemplate(a, deps));
|
|
179
|
+
server.tool("sync_stig_template", "Plan or apply materializing a published STIG template on one node (minis, proxmox, prox-ibm64): claim first (tpl-<template>[-<node>]), verify on the node (pinned key fingerprint, index.json, template.json and qcow2 sha256 + signatures; refuses and releases the claim on any mismatch), qm create with import-from onto thin storage (lvmthin only, pool <= 70%), efidisk, cloud-init, qm template, claim renewed to the TTL cap, sync receipt. Idempotent. Apply needs the plan's planDigest.", SyncStigTemplateInputShape, async (a) => handleSyncStigTemplate(a, deps));
|
|
135
180
|
return true;
|
|
136
181
|
}
|
|
137
182
|
//# sourceMappingURL=stig-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stig-tools.js","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stig-tools.js","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAClD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,6GAA6G;AAC7G,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAE,CAAC,CAAC;AACvF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sCAAsC,EAAE,qBAAqB,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6GAA6G,CAAC;IAC5J,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uGAAuG,CAAC;IACtJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACnI,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAChG,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IACnI,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC7F,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,+FAA+F,CAAC;IAC9H,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0JAA0J,CAAC;IACpN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC7H,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,yLAAyL,CAAC;IAC9O,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAC9I,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;IACpK,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC7F,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;IAC/H,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yIAAyI,CAAC;CACvM,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uFAAuF,CAAC;IAC1H,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;CACxH,CAAC;AACF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;IACvH,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,2HAA2H,CAAC;CAClK,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IACzG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACrH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yHAAyH,CAAC;IAC7K,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;IACpJ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IAClI,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC7F,CAAC;AACF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACjF,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IACpG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4GAA4G,CAAC;IACnK,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC7F,CAAC;AAGF,MAAM,WAAW,GAAG,GAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAElL,SAAS,EAAE,CAAC,OAAgB;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAI,OAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3H,CAAC;AACD,SAAS,IAAI,CAAC,SAAiB,EAAE,GAAQ;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,oOAAoO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtQ,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,SAAS,KAAK,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAChK,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC7F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpS,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AACxD,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC3F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AAC/H,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC7F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AAC9H,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC1F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AAC7H,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC/F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AACvI,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC/F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,WAAW,EAAE,CAAC,gBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AAC/J,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAa,EAAE,OAAqB,WAAW,EAAE;IAC5F,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3J,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,WAAW,EAAE,CAAC,gBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AACzJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,oBAAoB,CAAU,CAAC;AAExM,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,MAA0C,EAAE,QAAqB,EAAE,OAAqB,WAAW,EAAE;IACrI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,oTAAoT,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9a,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,oSAAoS,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACxZ,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,2KAA2K,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrS,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,0LAA0L,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3S,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,8KAA8K,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9S,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,2fAA2f,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3nB,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,qeAAqe,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5lB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@calltelemetry/ct-lab-mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.106",
|
|
4
4
|
"description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE (ESXi is retired).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|