@calltelemetry/ct-lab-mcp 0.8.98 → 0.8.100

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 (68) hide show
  1. package/assets/stig/SHA256SUMS +18 -0
  2. package/assets/stig/files/ct-luks-firstboot.service +13 -0
  3. package/assets/stig/files/ct-luks-firstboot.sh +35 -0
  4. package/assets/stig/guest/keyhash.sh +4 -0
  5. package/assets/stig/guest/read-recovery.sh +2 -0
  6. package/assets/stig/guest/scan-disa.sh +17 -0
  7. package/assets/stig/guest/scan.sh +22 -0
  8. package/assets/stig/guest/shred-recovery.sh +2 -0
  9. package/assets/stig/guest/test-recovery.sh +3 -0
  10. package/assets/stig/guest/trim.sh +3 -0
  11. package/assets/stig/guest/verify-root.sh +9 -0
  12. package/assets/stig/guest/verify-user.sh +9 -0
  13. package/assets/stig/ks.cfg.pkrtpl +95 -0
  14. package/assets/stig/scripts/assess.sh +39 -0
  15. package/assets/stig/scripts/errata.sh +19 -0
  16. package/assets/stig/scripts/remediate.sh +127 -0
  17. package/assets/stig/scripts/seal.sh +46 -0
  18. package/assets/stig/tailoring.xml +16 -0
  19. package/assets/stig/template.pkr.hcl +252 -0
  20. package/dist/src/generated-version.d.ts +1 -1
  21. package/dist/src/generated-version.d.ts.map +1 -1
  22. package/dist/src/generated-version.js +1 -1
  23. package/dist/src/generated-version.js.map +1 -1
  24. package/dist/src/provenance.d.ts.map +1 -1
  25. package/dist/src/provenance.js +18 -1
  26. package/dist/src/provenance.js.map +1 -1
  27. package/dist/src/stig/live.d.ts +116 -0
  28. package/dist/src/stig/live.d.ts.map +1 -0
  29. package/dist/src/stig/live.js +339 -0
  30. package/dist/src/stig/live.js.map +1 -0
  31. package/dist/src/stig/model.d.ts +160 -0
  32. package/dist/src/stig/model.d.ts.map +1 -0
  33. package/dist/src/stig/model.js +384 -0
  34. package/dist/src/stig/model.js.map +1 -0
  35. package/dist/src/stig/ports.d.ts +149 -0
  36. package/dist/src/stig/ports.d.ts.map +1 -0
  37. package/dist/src/stig/ports.js +7 -0
  38. package/dist/src/stig/ports.js.map +1 -0
  39. package/dist/src/stig/receipt.d.ts +35 -0
  40. package/dist/src/stig/receipt.d.ts.map +1 -0
  41. package/dist/src/stig/receipt.js +112 -0
  42. package/dist/src/stig/receipt.js.map +1 -0
  43. package/dist/src/stig/runner.d.ts +109 -0
  44. package/dist/src/stig/runner.d.ts.map +1 -0
  45. package/dist/src/stig/runner.js +471 -0
  46. package/dist/src/stig/runner.js.map +1 -0
  47. package/dist/src/tools/appliance-claim-spec-schema.v1.json +1 -1
  48. package/dist/src/tools/appliance-claim-tools.d.ts +10 -4
  49. package/dist/src/tools/appliance-claim-tools.d.ts.map +1 -1
  50. package/dist/src/tools/appliance-claim-tools.js +10 -2
  51. package/dist/src/tools/appliance-claim-tools.js.map +1 -1
  52. package/dist/src/tools/claim-creation-projection.d.ts +1 -1
  53. package/dist/src/tools/claim-creation-projection.js +1 -1
  54. package/dist/src/tools/claim-custody.d.ts +7 -7
  55. package/dist/src/tools/claimed-import-qcow.d.ts +2 -2
  56. package/dist/src/tools/host-maintenance-shutdown.d.ts +4 -4
  57. package/dist/src/tools/host-migrate-vm.d.ts +4 -4
  58. package/dist/src/tools/index.d.ts.map +1 -1
  59. package/dist/src/tools/index.js +3 -0
  60. package/dist/src/tools/index.js.map +1 -1
  61. package/dist/src/tools/purge-slots.d.ts +1 -1
  62. package/dist/src/tools/sandbox-tools.d.ts +8 -8
  63. package/dist/src/tools/stig-tools.d.ts +47 -0
  64. package/dist/src/tools/stig-tools.d.ts.map +1 -0
  65. package/dist/src/tools/stig-tools.js +125 -0
  66. package/dist/src/tools/stig-tools.js.map +1 -0
  67. package/dist/src/tools/vm-action.d.ts +2 -2
  68. package/package.json +2 -1
@@ -65,8 +65,8 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
65
65
  vmid?: number | undefined;
66
66
  diskGb?: number | undefined;
67
67
  confirmAssetId?: string | undefined;
68
- receiptFile?: string | undefined;
69
68
  planDigest?: string | undefined;
69
+ receiptFile?: string | undefined;
70
70
  sshKey?: string | undefined;
71
71
  sshKeyFile?: string | undefined;
72
72
  confirmName?: string | undefined;
@@ -84,8 +84,8 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
84
84
  apply?: boolean | undefined;
85
85
  confirmAssetId?: string | undefined;
86
86
  templateAssetId?: string | undefined;
87
- receiptFile?: string | undefined;
88
87
  planDigest?: string | undefined;
88
+ receiptFile?: string | undefined;
89
89
  baselineSnapshot?: string | undefined;
90
90
  sshKey?: string | undefined;
91
91
  sshKeyFile?: string | undefined;
@@ -107,8 +107,8 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
107
107
  vmid?: number | undefined;
108
108
  diskGb?: number | undefined;
109
109
  confirmAssetId?: string | undefined;
110
- receiptFile?: string | undefined;
111
110
  planDigest?: string | undefined;
111
+ receiptFile?: string | undefined;
112
112
  sshKey?: string | undefined;
113
113
  sshKeyFile?: string | undefined;
114
114
  confirmName?: string | undefined;
@@ -126,8 +126,8 @@ export declare const SandboxCloneInputSchema: z.ZodEffects<z.ZodObject<{
126
126
  apply?: boolean | undefined;
127
127
  confirmAssetId?: string | undefined;
128
128
  templateAssetId?: string | undefined;
129
- receiptFile?: string | undefined;
130
129
  planDigest?: string | undefined;
130
+ receiptFile?: string | undefined;
131
131
  baselineSnapshot?: string | undefined;
132
132
  sshKey?: string | undefined;
133
133
  sshKeyFile?: string | undefined;
@@ -170,8 +170,8 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
170
170
  waitAgent: boolean;
171
171
  vmid?: number | undefined;
172
172
  confirmAssetId?: string | undefined;
173
- receiptFile?: string | undefined;
174
173
  planDigest?: string | undefined;
174
+ receiptFile?: string | undefined;
175
175
  }, {
176
176
  linearIssue: string;
177
177
  assetId: string;
@@ -181,8 +181,8 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
181
181
  snapshotName?: string | undefined;
182
182
  apply?: boolean | undefined;
183
183
  confirmAssetId?: string | undefined;
184
- receiptFile?: string | undefined;
185
184
  planDigest?: string | undefined;
185
+ receiptFile?: string | undefined;
186
186
  waitAgent?: boolean | undefined;
187
187
  }>, {
188
188
  linearIssue: string;
@@ -194,8 +194,8 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
194
194
  waitAgent: boolean;
195
195
  vmid?: number | undefined;
196
196
  confirmAssetId?: string | undefined;
197
- receiptFile?: string | undefined;
198
197
  planDigest?: string | undefined;
198
+ receiptFile?: string | undefined;
199
199
  }, {
200
200
  linearIssue: string;
201
201
  assetId: string;
@@ -205,8 +205,8 @@ export declare const SandboxResetInputSchema: z.ZodEffects<z.ZodObject<{
205
205
  snapshotName?: string | undefined;
206
206
  apply?: boolean | undefined;
207
207
  confirmAssetId?: string | undefined;
208
- receiptFile?: string | undefined;
209
208
  planDigest?: string | undefined;
209
+ receiptFile?: string | undefined;
210
210
  waitAgent?: boolean | undefined;
211
211
  }>;
212
212
  export type SandboxResetInput = z.infer<typeof SandboxResetInputSchema>;
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { CallToolResult } from "../types/mcp.js";
3
+ import type { ToolContext } from "./list-hosts.js";
4
+ import { StigRunner } from "../stig/runner.js";
5
+ export declare const BuildStigTemplateInputShape: {
6
+ ssgDatastreamPath: z.ZodString;
7
+ name: z.ZodOptional<z.ZodString>;
8
+ dns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ ntp: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
11
+ planDigest: z.ZodOptional<z.ZodString>;
12
+ };
13
+ export declare const CreateStigClaimInputShape: {
14
+ cloneName: z.ZodString;
15
+ templateRef: z.ZodOptional<z.ZodString>;
16
+ ttlHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
17
+ dns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
18
+ ntp: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
19
+ poolMaxPercent: z.ZodOptional<z.ZodNumber>;
20
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
21
+ planDigest: z.ZodOptional<z.ZodString>;
22
+ };
23
+ export declare const ValidateStigClaimInputShape: {
24
+ cloneName: z.ZodString;
25
+ requireDisa: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
26
+ };
27
+ export declare const GetStigReceiptInputShape: {
28
+ claim: z.ZodString;
29
+ };
30
+ export declare const ReleaseStigTemplateInputShape: {
31
+ claim: z.ZodString;
32
+ confirmDestroy: z.ZodBoolean;
33
+ };
34
+ export interface StigToolDeps {
35
+ makeRunner: () => StigRunner;
36
+ }
37
+ export declare function handleBuildStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
38
+ export declare function handleCreateStigClaim(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
39
+ export declare function handleValidateStigClaim(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
40
+ export declare function handleGetStigReceipt(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
41
+ export declare function handleReleaseStigTemplate(args: unknown, deps?: StigToolDeps): Promise<CallToolResult>;
42
+ export declare const STIG_TOOL_NAMES: readonly ["build_stig_template", "create_stig_claim", "validate_stig_claim", "get_stig_receipt", "release_stig_template"];
43
+ /** Registers the five tools on a server whose `.tool()` is already the guarded wrapper. */
44
+ export declare function registerStigTools(server: {
45
+ tool: (...a: any[]) => unknown;
46
+ }, _context: ToolContext, deps?: StigToolDeps): boolean;
47
+ //# sourceMappingURL=stig-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stig-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"AAaA,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;AAS/C,eAAO,MAAM,2BAA2B;;;;;;;CAOvC,CAAC;AACF,eAAO,MAAM,yBAAyB;;;;;;;;;CAQrC,CAAC;AACF,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AACF,eAAO,MAAM,wBAAwB;;CAA0G,CAAC;AAChJ,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,MAAM,WAAW,YAAY;IAAG,UAAU,EAAE,MAAM,UAAU,CAAA;CAAE;AAY9D,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,YAA4B,GAAG,OAAO,CAAC,cAAc,CAAC,CAQxH;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,eAAO,MAAM,eAAe,2HAA4H,CAAC;AAEzJ,2FAA2F;AAC3F,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,CAOhJ"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * RHEL 8.10 STIG tools (docs/designs/stig-tools.md). Always registered; the safety guards are not optional.
3
+ *
4
+ * build_stig_template plan | apply claim-first Packer build, scan gate, template verify, long-lived claim
5
+ * create_stig_claim plan | apply claim-first full clone, fresh TPM, first-boot re-key, escrow, verify, fstrim
6
+ * validate_stig_claim oscap scan on a clone, fail=0 gate, receipt summary on the claim
7
+ * get_stig_receipt the annotated receipt summary and what status.stig will carry
8
+ * release_stig_template explicit template destroy, then claim deletion
9
+ *
10
+ * The shell recipe in ct-meta (rhel8-stig-template) remains the documented default until live parity passes.
11
+ */
12
+ import { createHash } from "node:crypto";
13
+ import { readFileSync } from "node:fs";
14
+ import { z } from "zod";
15
+ import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
16
+ import { StigRunner } from "../stig/runner.js";
17
+ import { liveDeps } from "../stig/live.js";
18
+ import { redact } from "../stig/model.js";
19
+ const hex64 = z.string().regex(/^[a-f0-9]{64}$/i);
20
+ const dnsList = z.array(z.string().ip({ version: "v4" })).min(1).max(4);
21
+ const ntpList = z.array(z.string().min(1).max(253)).max(4);
22
+ const cloneName = z.string().regex(/^[a-z0-9]([a-z0-9-]{0,40}[a-z0-9])?$/, "lowercase DNS label");
23
+ export const BuildStigTemplateInputShape = {
24
+ 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."),
25
+ name: z.string().regex(/^rhel810-stig-\d{8}-\d{4}$/).optional().describe("Template name (default rhel810-stig-<YYYYMMDD>-<vmid>)."),
26
+ dns: dnsList.optional().describe("DNS servers baked into the template's organization settings."),
27
+ ntp: ntpList.optional().describe("NTP servers baked into the template."),
28
+ apply: z.boolean().optional().default(false).describe("Omit for a plan. True runs the build (60-90 minutes) and needs planDigest."),
29
+ planDigest: hex64.optional().describe("planDigest from the plan; required with apply=true."),
30
+ };
31
+ export const CreateStigClaimInputShape = {
32
+ cloneName: cloneName.describe("Clone VM name; the claim is clone-<cloneName>, the escrow key LAB_RHEL8_RECOVERY_<CLONENAME>."),
33
+ templateRef: z.string().regex(/^rhel810-stig-\d{8}-\d{4}$/).optional().describe("Template to clone (default: the newest)."),
34
+ ttlHours: z.number().int().min(1).max(8760).optional().default(48),
35
+ dns: dnsList.optional(), ntp: ntpList.optional(),
36
+ 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."),
37
+ apply: z.boolean().optional().default(false),
38
+ planDigest: hex64.optional().describe("planDigest from the plan; required with apply=true."),
39
+ };
40
+ export const ValidateStigClaimInputShape = {
41
+ cloneName,
42
+ 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."),
43
+ };
44
+ export const GetStigReceiptInputShape = { claim: z.string().min(1).describe("ApplianceClaim name, e.g. clone-<cloneName> or tpl-<template>.") };
45
+ export const ReleaseStigTemplateInputShape = {
46
+ claim: z.string().min(1),
47
+ confirmDestroy: z.boolean().describe("Must be true: templates are never reaped by the operator, so release destroys the template first, then deletes the claim."),
48
+ };
49
+ const defaultDeps = () => ({ makeRunner: () => new StigRunner(liveDeps()) });
50
+ function ok(payload) {
51
+ return { content: [{ type: "text", text: redact(JSON.stringify({ success: true, ...payload }, null, 2)) }] };
52
+ }
53
+ function fail(operation, err) {
54
+ const message = redact(String(err?.message ?? err));
55
+ 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);
56
+ return createToolErrorResult(validation ? ProxmoxErrorCode.VALIDATION_ERROR : ProxmoxErrorCode.UPSTREAM_API_ERROR, `${operation}: ${message}`, { operation });
57
+ }
58
+ export async function handleBuildStigTemplate(args, deps = defaultDeps()) {
59
+ const p = z.object(BuildStigTemplateInputShape).strict().safeParse(args);
60
+ if (!p.success)
61
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
62
+ try {
63
+ const sha = createHash("sha256").update(readFileSync(p.data.ssgDatastreamPath)).digest("hex");
64
+ const result = await deps.makeRunner().build({ name: p.data.name, ssgDatastream: p.data.ssgDatastreamPath, ssgDatastreamSha256: sha, apply: p.data.apply, planDigest: p.data.planDigest, dns: p.data.dns, ntp: p.data.ntp });
65
+ return ok(result);
66
+ }
67
+ catch (e) {
68
+ return fail("build_stig_template", e);
69
+ }
70
+ }
71
+ export async function handleCreateStigClaim(args, deps = defaultDeps()) {
72
+ const p = z.object(CreateStigClaimInputShape).strict().safeParse(args);
73
+ if (!p.success)
74
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
75
+ try {
76
+ return ok(await deps.makeRunner().createClone(p.data));
77
+ }
78
+ catch (e) {
79
+ return fail("create_stig_claim", e);
80
+ }
81
+ }
82
+ export async function handleValidateStigClaim(args, deps = defaultDeps()) {
83
+ const p = z.object(ValidateStigClaimInputShape).strict().safeParse(args);
84
+ if (!p.success)
85
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
86
+ try {
87
+ return ok(await deps.makeRunner().validate(p.data));
88
+ }
89
+ catch (e) {
90
+ return fail("validate_stig_claim", e);
91
+ }
92
+ }
93
+ export async function handleGetStigReceipt(args, deps = defaultDeps()) {
94
+ const p = z.object(GetStigReceiptInputShape).strict().safeParse(args);
95
+ if (!p.success)
96
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
97
+ try {
98
+ return ok(await deps.makeRunner().getReceipt(p.data));
99
+ }
100
+ catch (e) {
101
+ return fail("get_stig_receipt", e);
102
+ }
103
+ }
104
+ export async function handleReleaseStigTemplate(args, deps = defaultDeps()) {
105
+ const p = z.object(ReleaseStigTemplateInputShape).strict().safeParse(args);
106
+ if (!p.success)
107
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, p.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
108
+ try {
109
+ return ok(await deps.makeRunner().releaseTemplate(p.data));
110
+ }
111
+ catch (e) {
112
+ return fail("release_stig_template", e);
113
+ }
114
+ }
115
+ export const STIG_TOOL_NAMES = ["build_stig_template", "create_stig_claim", "validate_stig_claim", "get_stig_receipt", "release_stig_template"];
116
+ /** Registers the five tools on a server whose `.tool()` is already the guarded wrapper. */
117
+ export function registerStigTools(server, _context, deps = defaultDeps()) {
118
+ 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 / STIG V2R8 / Packer 1.16.0, scan 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));
119
+ 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));
120
+ 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));
121
+ 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));
122
+ 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));
123
+ return true;
124
+ }
125
+ //# sourceMappingURL=stig-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stig-tools.js","sourceRoot":"","sources":["../../../src/tools/stig-tools.ts"],"names":[],"mappings":"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"}
@@ -174,9 +174,9 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
174
174
  confirmAssetId?: string | undefined;
175
175
  confirmSmbiosUuid?: string | undefined;
176
176
  vmIdOrName?: string | number | undefined;
177
+ force?: boolean | undefined;
177
178
  artifactReceipt?: string | undefined;
178
179
  receiptFile?: string | undefined;
179
- force?: boolean | undefined;
180
180
  targetHost?: string | undefined;
181
181
  confirmVmid?: string | number | undefined;
182
182
  smbiosUuid?: string | undefined;
@@ -244,9 +244,9 @@ export declare const VmActionInputSchema: z.ZodEffects<z.ZodObject<{
244
244
  confirmAssetId?: string | undefined;
245
245
  confirmSmbiosUuid?: string | undefined;
246
246
  vmIdOrName?: string | number | undefined;
247
+ force?: boolean | undefined;
247
248
  artifactReceipt?: string | undefined;
248
249
  receiptFile?: string | undefined;
249
- force?: boolean | undefined;
250
250
  targetHost?: string | undefined;
251
251
  confirmVmid?: string | number | undefined;
252
252
  smbiosUuid?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/ct-lab-mcp",
3
- "version": "0.8.98",
3
+ "version": "0.8.100",
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",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "dist/src",
13
13
  "dist/bin/ct-lab-mcp.js",
14
+ "assets/stig",
14
15
  "README.md",
15
16
  "LICENSE"
16
17
  ],