@calltelemetry/ct-lab-mcp 0.8.22 → 0.8.23
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 +97 -0
- package/dist/src/canonical/bridge.d.ts +6 -0
- package/dist/src/canonical/bridge.d.ts.map +1 -1
- package/dist/src/canonical/bridge.js +90 -9
- package/dist/src/canonical/bridge.js.map +1 -1
- package/dist/src/credentials/resolver.d.ts +7 -1
- package/dist/src/credentials/resolver.d.ts.map +1 -1
- package/dist/src/credentials/resolver.js +83 -0
- package/dist/src/credentials/resolver.js.map +1 -1
- package/dist/src/credentials/types.d.ts +7 -0
- package/dist/src/credentials/types.d.ts.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +3 -1
- package/dist/src/server.js.map +1 -1
- package/dist/src/tools/canonical-guard.d.ts +28 -0
- package/dist/src/tools/canonical-guard.d.ts.map +1 -1
- package/dist/src/tools/canonical-guard.js +107 -0
- package/dist/src/tools/canonical-guard.js.map +1 -1
- package/dist/src/tools/credential-status.d.ts.map +1 -1
- package/dist/src/tools/credential-status.js +29 -3
- package/dist/src/tools/credential-status.js.map +1 -1
- package/dist/src/tools/index.d.ts +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +15 -8
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/lab-dev.d.ts +607 -0
- package/dist/src/tools/lab-dev.d.ts.map +1 -0
- package/dist/src/tools/lab-dev.js +404 -0
- package/dist/src/tools/lab-dev.js.map +1 -0
- package/dist/src/tools/provision-tools.d.ts +36 -0
- package/dist/src/tools/provision-tools.d.ts.map +1 -1
- package/dist/src/tools/provision-tools.js +37 -4
- package/dist/src/tools/provision-tools.js.map +1 -1
- package/dist/src/tools/vm-cleanup.d.ts +21 -0
- package/dist/src/tools/vm-cleanup.d.ts.map +1 -1
- package/dist/src/tools/vm-cleanup.js +233 -2
- package/dist/src/tools/vm-cleanup.js.map +1 -1
- package/dist/src/tools/vm-repair.d.ts +98 -0
- package/dist/src/tools/vm-repair.d.ts.map +1 -0
- package/dist/src/tools/vm-repair.js +60 -0
- package/dist/src/tools/vm-repair.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/** Strict canonical façade for the leased remote development lifecycle. */
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { ProxmoxErrorCode, createToolErrorResult, createToolSuccessResult, } from "../types/mcp.js";
|
|
4
|
+
import { resolve as resolvePath } from "node:path";
|
|
5
|
+
import { isDeepStrictEqual } from "node:util";
|
|
6
|
+
import { canonicalMode, canonicalOperationBlocked, runCanonicalOperation, } from "./canonical-guard.js";
|
|
7
|
+
const MAX_RECEIPT_PATH_LENGTH = 4096;
|
|
8
|
+
const CANONICAL_IDENTIFIER = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
|
|
9
|
+
const LINEAR_ISSUE = /^[A-Z][A-Z0-9]*-[1-9][0-9]*$/;
|
|
10
|
+
function identityField(name) {
|
|
11
|
+
return z
|
|
12
|
+
.string()
|
|
13
|
+
.trim()
|
|
14
|
+
.min(1)
|
|
15
|
+
.max(128, `${name} is too long`)
|
|
16
|
+
.refine((value) => !value.startsWith("-"), `${name} must not start with '-'`)
|
|
17
|
+
.refine((value) => !/\s/.test(value), `${name} must not contain whitespace`)
|
|
18
|
+
.refine((value) => !value.includes("\0"), `${name} must not contain a NUL byte`)
|
|
19
|
+
.refine((value) => CANONICAL_IDENTIFIER.test(value), `${name} must use a canonical identifier`);
|
|
20
|
+
}
|
|
21
|
+
const linearIssueField = identityField("linearIssue").refine((value) => LINEAR_ISSUE.test(value), "linearIssue must be a Linear issue key");
|
|
22
|
+
const workspaceReference = identityField("workspaceRef").refine((value) => !value.includes("/") && !value.includes("\\"), "workspaceRef must be an allowlisted reference, not a path");
|
|
23
|
+
const receiptPath = z
|
|
24
|
+
.string()
|
|
25
|
+
.trim()
|
|
26
|
+
.min(1)
|
|
27
|
+
.max(MAX_RECEIPT_PATH_LENGTH)
|
|
28
|
+
.refine((value) => !value.startsWith("-"), "receipt paths must not start with '-'")
|
|
29
|
+
.refine((value) => !/[\0\r\n]/.test(value), "receipt paths must not contain NUL or newline bytes")
|
|
30
|
+
.refine((value) => !/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(value), "receipt paths must be local paths guarded by the canonical authority");
|
|
31
|
+
const sourceDigest = z
|
|
32
|
+
.string()
|
|
33
|
+
.trim()
|
|
34
|
+
.regex(/^sha256:[a-f0-9]{64}$/, "sourceDigest must be sha256:<64 lowercase hex characters>");
|
|
35
|
+
const profile = z.literal("ct-local-dev-v1");
|
|
36
|
+
const requiredIdentityShape = {
|
|
37
|
+
assetId: identityField("assetId"),
|
|
38
|
+
leaseId: identityField("leaseId"),
|
|
39
|
+
linearIssue: linearIssueField,
|
|
40
|
+
};
|
|
41
|
+
const optionalIdentityShape = {
|
|
42
|
+
assetId: requiredIdentityShape.assetId.optional(),
|
|
43
|
+
leaseId: requiredIdentityShape.leaseId.optional(),
|
|
44
|
+
linearIssue: requiredIdentityShape.linearIssue.optional(),
|
|
45
|
+
};
|
|
46
|
+
const doctorSchema = z
|
|
47
|
+
.object({
|
|
48
|
+
action: z.literal("doctor"),
|
|
49
|
+
profile,
|
|
50
|
+
...optionalIdentityShape,
|
|
51
|
+
})
|
|
52
|
+
.strict();
|
|
53
|
+
const planSchema = z
|
|
54
|
+
.object({
|
|
55
|
+
action: z.literal("plan"),
|
|
56
|
+
...requiredIdentityShape,
|
|
57
|
+
profile,
|
|
58
|
+
workspaceRef: workspaceReference,
|
|
59
|
+
operationId: identityField("operationId"),
|
|
60
|
+
sourceDigest,
|
|
61
|
+
receiptFile: receiptPath,
|
|
62
|
+
})
|
|
63
|
+
.strict();
|
|
64
|
+
const statusSchema = z
|
|
65
|
+
.object({
|
|
66
|
+
action: z.literal("status"),
|
|
67
|
+
...requiredIdentityShape,
|
|
68
|
+
operationId: identityField("operationId").optional(),
|
|
69
|
+
})
|
|
70
|
+
.strict();
|
|
71
|
+
const appliedLifecycleShape = {
|
|
72
|
+
...requiredIdentityShape,
|
|
73
|
+
operationId: identityField("operationId"),
|
|
74
|
+
profile,
|
|
75
|
+
workspaceRef: workspaceReference,
|
|
76
|
+
sourceDigest,
|
|
77
|
+
planReceiptFile: receiptPath,
|
|
78
|
+
receiptFile: receiptPath,
|
|
79
|
+
apply: z.boolean().optional().default(false),
|
|
80
|
+
confirmAssetId: identityField("confirmAssetId").optional(),
|
|
81
|
+
};
|
|
82
|
+
const startSchema = z
|
|
83
|
+
.object({
|
|
84
|
+
action: z.literal("start"),
|
|
85
|
+
...appliedLifecycleShape,
|
|
86
|
+
})
|
|
87
|
+
.strict();
|
|
88
|
+
const syncSchema = z
|
|
89
|
+
.object({
|
|
90
|
+
action: z.literal("sync"),
|
|
91
|
+
...appliedLifecycleShape,
|
|
92
|
+
})
|
|
93
|
+
.strict();
|
|
94
|
+
const cleanupLifecycleShape = {
|
|
95
|
+
...requiredIdentityShape,
|
|
96
|
+
operationId: identityField("operationId"),
|
|
97
|
+
planReceiptFile: receiptPath,
|
|
98
|
+
receiptFile: receiptPath,
|
|
99
|
+
apply: z.boolean().optional().default(false),
|
|
100
|
+
confirmAssetId: identityField("confirmAssetId").optional(),
|
|
101
|
+
};
|
|
102
|
+
const stopSchema = z
|
|
103
|
+
.object({
|
|
104
|
+
action: z.literal("stop"),
|
|
105
|
+
...cleanupLifecycleShape,
|
|
106
|
+
})
|
|
107
|
+
.strict();
|
|
108
|
+
const cleanupSchema = z
|
|
109
|
+
.object({
|
|
110
|
+
action: z.literal("cleanup"),
|
|
111
|
+
...cleanupLifecycleShape,
|
|
112
|
+
})
|
|
113
|
+
.strict();
|
|
114
|
+
/**
|
|
115
|
+
* Runtime validation uses a strict discriminated union. Each action owns its
|
|
116
|
+
* allowed fields so a status request cannot accidentally become a lifecycle
|
|
117
|
+
* mutation by carrying fields from another action.
|
|
118
|
+
*/
|
|
119
|
+
export const LabDevInputObjectSchema = z.discriminatedUnion("action", [
|
|
120
|
+
doctorSchema,
|
|
121
|
+
planSchema,
|
|
122
|
+
startSchema,
|
|
123
|
+
statusSchema,
|
|
124
|
+
syncSchema,
|
|
125
|
+
stopSchema,
|
|
126
|
+
cleanupSchema,
|
|
127
|
+
]);
|
|
128
|
+
export const LabDevInputSchema = LabDevInputObjectSchema.superRefine((value, context) => {
|
|
129
|
+
if (value.action === "doctor") {
|
|
130
|
+
const providedIdentityFields = [value.assetId, value.leaseId, value.linearIssue].filter((field) => field !== undefined).length;
|
|
131
|
+
if (providedIdentityFields !== 0 && providedIdentityFields !== 3) {
|
|
132
|
+
context.addIssue({
|
|
133
|
+
code: z.ZodIssueCode.custom,
|
|
134
|
+
path: ["assetId"],
|
|
135
|
+
message: "assetId, leaseId, and linearIssue must be provided together",
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (value.action === "start" || value.action === "sync") {
|
|
141
|
+
if (receiptPathsMatch(value.planReceiptFile, value.receiptFile)) {
|
|
142
|
+
context.addIssue({
|
|
143
|
+
code: z.ZodIssueCode.custom,
|
|
144
|
+
path: ["receiptFile"],
|
|
145
|
+
message: "planReceiptFile and receiptFile must be different paths",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (value.action === "stop" || value.action === "cleanup") {
|
|
150
|
+
if (receiptPathsMatch(value.planReceiptFile, value.receiptFile)) {
|
|
151
|
+
context.addIssue({
|
|
152
|
+
code: z.ZodIssueCode.custom,
|
|
153
|
+
path: ["receiptFile"],
|
|
154
|
+
message: "planReceiptFile and receiptFile must be different paths",
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (value.action === "start"
|
|
159
|
+
|| value.action === "sync"
|
|
160
|
+
|| value.action === "stop"
|
|
161
|
+
|| value.action === "cleanup") {
|
|
162
|
+
if (value.apply && value.confirmAssetId !== value.assetId) {
|
|
163
|
+
context.addIssue({
|
|
164
|
+
code: z.ZodIssueCode.custom,
|
|
165
|
+
path: ["confirmAssetId"],
|
|
166
|
+
message: "must exactly match assetId when apply=true",
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
if (!value.apply && value.confirmAssetId !== undefined) {
|
|
170
|
+
context.addIssue({
|
|
171
|
+
code: z.ZodIssueCode.custom,
|
|
172
|
+
path: ["confirmAssetId"],
|
|
173
|
+
message: "is only allowed when apply=true",
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
/**
|
|
179
|
+
* MCP SDK tools/list serializes only object schemas, not top-level refined
|
|
180
|
+
* unions. Expose the known typed fields for discovery, then apply the strict
|
|
181
|
+
* action union above in the handler before constructing any canonical argv.
|
|
182
|
+
* Do not put defaults here: that would inject disallowed fields into actions.
|
|
183
|
+
*/
|
|
184
|
+
export const LabDevAdvertisedInputSchema = z.object({
|
|
185
|
+
action: z.enum(["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]),
|
|
186
|
+
assetId: requiredIdentityShape.assetId.optional().describe("Required except doctor; exact canonical asset identity."),
|
|
187
|
+
leaseId: requiredIdentityShape.leaseId.optional().describe("Required except doctor; active exact lease."),
|
|
188
|
+
linearIssue: linearIssueField.optional().describe("Required except doctor; provide all three identity fields together."),
|
|
189
|
+
profile: profile.optional().describe("Required for doctor, plan, start, sync; forbidden for status, stop, cleanup."),
|
|
190
|
+
workspaceRef: workspaceReference.optional().describe("Required for plan, start, sync; locally registered reference, never a path."),
|
|
191
|
+
operationId: identityField("operationId").optional().describe("Required except doctor; optional for status. Reuse exact operation for reconciliation."),
|
|
192
|
+
sourceDigest: sourceDigest.optional().describe("Required for plan, start, sync; immutable source snapshot digest."),
|
|
193
|
+
receiptFile: receiptPath.optional().describe("Required for plan and mutations; canonical private output receipt path."),
|
|
194
|
+
planReceiptFile: receiptPath.optional().describe("Required for start, sync, stop, cleanup; different from receiptFile."),
|
|
195
|
+
apply: z.boolean().optional().describe("Allowed only for start, sync, stop, cleanup; omitted means no apply."),
|
|
196
|
+
confirmAssetId: identityField("confirmAssetId").optional().describe("Only with apply=true; must exactly match assetId."),
|
|
197
|
+
}).strict();
|
|
198
|
+
function receiptPathsMatch(left, right) {
|
|
199
|
+
return resolvePath(left) === resolvePath(right);
|
|
200
|
+
}
|
|
201
|
+
function appendIdentity(command, value) {
|
|
202
|
+
command.push("--asset-id", value.assetId, "--lease-id", value.leaseId, "--linear-issue", value.linearIssue);
|
|
203
|
+
}
|
|
204
|
+
function appendApply(command, value) {
|
|
205
|
+
if (value.apply) {
|
|
206
|
+
command.push("--apply", "--confirm-asset-id", value.confirmAssetId);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/** Build only the fixed, typed canonical argv for a validated request. */
|
|
210
|
+
export function buildLabDevCommand(value) {
|
|
211
|
+
const command = ["dev", value.action];
|
|
212
|
+
switch (value.action) {
|
|
213
|
+
case "doctor":
|
|
214
|
+
command.push("--profile", value.profile);
|
|
215
|
+
if (value.assetId && value.leaseId && value.linearIssue) {
|
|
216
|
+
appendIdentity(command, value);
|
|
217
|
+
}
|
|
218
|
+
return command;
|
|
219
|
+
case "plan":
|
|
220
|
+
command.push("--profile", value.profile, "--workspace-ref", value.workspaceRef);
|
|
221
|
+
appendIdentity(command, value);
|
|
222
|
+
command.push("--operation-id", value.operationId, "--source-digest", value.sourceDigest, "--receipt-file", value.receiptFile);
|
|
223
|
+
return command;
|
|
224
|
+
case "status":
|
|
225
|
+
appendIdentity(command, value);
|
|
226
|
+
if (value.operationId)
|
|
227
|
+
command.push("--operation-id", value.operationId);
|
|
228
|
+
return command;
|
|
229
|
+
case "start":
|
|
230
|
+
case "sync":
|
|
231
|
+
appendIdentity(command, value);
|
|
232
|
+
command.push("--operation-id", value.operationId, "--profile", value.profile, "--workspace-ref", value.workspaceRef, "--source-digest", value.sourceDigest, "--plan-receipt-file", value.planReceiptFile, "--receipt-file", value.receiptFile);
|
|
233
|
+
appendApply(command, value);
|
|
234
|
+
return command;
|
|
235
|
+
case "stop":
|
|
236
|
+
case "cleanup":
|
|
237
|
+
appendIdentity(command, value);
|
|
238
|
+
command.push("--operation-id", value.operationId, "--plan-receipt-file", value.planReceiptFile, "--receipt-file", value.receiptFile);
|
|
239
|
+
appendApply(command, value);
|
|
240
|
+
return command;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const CanonicalDevResultSchema = z.object({
|
|
244
|
+
schema: z.literal("calltelemetry-lab-dev/v1"),
|
|
245
|
+
action: z.enum(["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]),
|
|
246
|
+
status: z.string().min(1),
|
|
247
|
+
ready: z.boolean(),
|
|
248
|
+
}).passthrough();
|
|
249
|
+
const ERROR_STATUSES = new Set([
|
|
250
|
+
"blocked", "failed", "unavailable", "rejected", "conflict", "rebuild_required",
|
|
251
|
+
"unknown", "unknown-after-timeout",
|
|
252
|
+
]);
|
|
253
|
+
const PENDING_STATUSES = new Set(["running", "pending", "starting", "syncing"]);
|
|
254
|
+
const NORMAL_STATUSES = {
|
|
255
|
+
doctor: new Set(["diagnosed"]),
|
|
256
|
+
plan: new Set(["planned"]),
|
|
257
|
+
start: new Set(["ready", ...PENDING_STATUSES]),
|
|
258
|
+
sync: new Set(["ready", ...PENDING_STATUSES]),
|
|
259
|
+
status: new Set(["planned", "not_started", "ready", "stopped", "cleaned", ...PENDING_STATUSES]),
|
|
260
|
+
stop: new Set(["stopped", ...PENDING_STATUSES]),
|
|
261
|
+
cleanup: new Set(["cleaned", ...PENDING_STATUSES]),
|
|
262
|
+
};
|
|
263
|
+
function objectValue(value) {
|
|
264
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
265
|
+
? value : undefined;
|
|
266
|
+
}
|
|
267
|
+
function receiptMatchesInput(input, result) {
|
|
268
|
+
const identity = objectValue(result.identity);
|
|
269
|
+
for (const [field, receiptField] of [
|
|
270
|
+
["assetId", "asset_id"], ["leaseId", "lease_id"], ["linearIssue", "linear_issue"],
|
|
271
|
+
]) {
|
|
272
|
+
if (input[field] !== undefined && identity?.[receiptField] !== input[field])
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
for (const [field, receiptField] of [
|
|
276
|
+
["operationId", "operation_id"], ["workspaceRef", "workspace_ref"],
|
|
277
|
+
["profile", "profile"], ["receiptFile", "receipt_file"],
|
|
278
|
+
]) {
|
|
279
|
+
if (field in input && result[receiptField] !== input[field])
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
if ("sourceDigest" in input) {
|
|
283
|
+
const source = objectValue(result[input.action === "plan" ? "source" : "requested_source"]);
|
|
284
|
+
if (source?.sourceDigest !== input.sourceDigest)
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
function readyReceiptIsBoundAndFresh(result) {
|
|
290
|
+
const request = objectValue(result.request);
|
|
291
|
+
const identity = objectValue(result.identity);
|
|
292
|
+
const requestIdentity = objectValue(request?.identity);
|
|
293
|
+
const source = objectValue(result.requested_source);
|
|
294
|
+
const requestSource = objectValue(request?.requested_source);
|
|
295
|
+
const observedAction = result.action === "status" ? result.observed_action : result.action;
|
|
296
|
+
const observedAt = typeof result.observed_at === "string" && /T.*(?:Z|[+-]\d{2}:\d{2})$/.test(result.observed_at)
|
|
297
|
+
? Date.parse(result.observed_at) : NaN;
|
|
298
|
+
const ageMs = Date.now() - observedAt;
|
|
299
|
+
if (!request || request.schema !== "calltelemetry-lab-dev/v1"
|
|
300
|
+
|| (observedAction !== "start" && observedAction !== "sync")
|
|
301
|
+
|| request.action !== observedAction
|
|
302
|
+
|| !Number.isFinite(ageMs) || ageMs < -5_000 || ageMs > 30_000
|
|
303
|
+
|| typeof result.operation_id !== "string" || !CANONICAL_IDENTIFIER.test(result.operation_id)
|
|
304
|
+
|| typeof result.workspace_ref !== "string" || !CANONICAL_IDENTIFIER.test(result.workspace_ref)
|
|
305
|
+
|| result.profile !== "ct-local-dev-v1"
|
|
306
|
+
|| !isDeepStrictEqual(requestIdentity, identity)
|
|
307
|
+
|| !["operation_id", "workspace_ref", "profile", "session_id", "plan_sha256"].every((key) => request[key] === result[key])
|
|
308
|
+
|| !isDeepStrictEqual(requestSource, source))
|
|
309
|
+
return false;
|
|
310
|
+
// The canonical controller validates planReceiptFile and computes this digest.
|
|
311
|
+
// The facade never opens a caller-selected path or duplicates that authority.
|
|
312
|
+
return typeof result.plan_sha256 === "string" && /^sha256:[a-f0-9]{64}$/.test(result.plan_sha256)
|
|
313
|
+
&& typeof result.session_id === "string" && /^sha256:[a-f0-9]{64}$/.test(result.session_id);
|
|
314
|
+
}
|
|
315
|
+
/** Preserve the canonical receipt while distinguishing dispatch from readiness. */
|
|
316
|
+
function classifyLabDevResult(input, canonical) {
|
|
317
|
+
const wrapper = objectValue(canonical.structuredContent);
|
|
318
|
+
const error = objectValue(wrapper?.error);
|
|
319
|
+
const details = objectValue(error?.details);
|
|
320
|
+
const envelope = canonical.isError ? details : wrapper;
|
|
321
|
+
const transportSuccess = canonical.isError !== true && envelope?.success === true;
|
|
322
|
+
const timedOut = envelope?.timedOut === true;
|
|
323
|
+
const parsed = CanonicalDevResultSchema.safeParse(envelope?.result);
|
|
324
|
+
const result = parsed.success ? parsed.data : undefined;
|
|
325
|
+
const status = timedOut ? "unknown-after-timeout" : result?.status ?? "unavailable";
|
|
326
|
+
const payload = {
|
|
327
|
+
...(envelope ?? {}),
|
|
328
|
+
// Do not echo malformed protocol text or partial output as receipt evidence.
|
|
329
|
+
result,
|
|
330
|
+
operation: "lab_dev",
|
|
331
|
+
action: input.action,
|
|
332
|
+
transportSuccess,
|
|
333
|
+
accepted: false,
|
|
334
|
+
actionSuccess: false,
|
|
335
|
+
success: false,
|
|
336
|
+
status,
|
|
337
|
+
ready: false,
|
|
338
|
+
runtimeReady: false,
|
|
339
|
+
// Mutation outcome cannot be inferred from a killed controller process.
|
|
340
|
+
...(timedOut ? { mutation_performed: null, nextAction: "status" } : {}),
|
|
341
|
+
};
|
|
342
|
+
if (!transportSuccess) {
|
|
343
|
+
return createToolErrorResult(typeof error?.code === "string" ? error.code : "CANONICAL_OPERATION_FAILED", timedOut ? "The controller timed out; inspect status before retrying the exact operation."
|
|
344
|
+
: "The canonical remote-development operation did not complete successfully.", payload);
|
|
345
|
+
}
|
|
346
|
+
if (!result || result.action !== input.action) {
|
|
347
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "The canonical remote-development response has no valid action receipt.", payload);
|
|
348
|
+
}
|
|
349
|
+
if (ERROR_STATUSES.has(status) || !NORMAL_STATUSES[input.action].has(status)) {
|
|
350
|
+
return createToolErrorResult("CANONICAL_DEV_NOT_READY", "The canonical remote-development action requires repair or reconciliation.", { ...payload, ...(status === "unknown-after-timeout" ? { nextAction: "status", mutation_performed: null } : {}) });
|
|
351
|
+
}
|
|
352
|
+
if (!receiptMatchesInput(input, result)) {
|
|
353
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "The canonical receipt does not match the requested identity, operation, workspace or source.", payload);
|
|
354
|
+
}
|
|
355
|
+
// A stopped or planned operation is not an application-readiness claim.
|
|
356
|
+
// Contradictory status/ready combinations must never become capture proof.
|
|
357
|
+
if ((status === "ready") !== result.ready) {
|
|
358
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "The canonical status contradicts its readiness evidence.", payload);
|
|
359
|
+
}
|
|
360
|
+
if (result.ready) {
|
|
361
|
+
const checks = objectValue(result.checks);
|
|
362
|
+
const requestedSource = objectValue(result.requested_source);
|
|
363
|
+
const requestedDigest = result.requested_source_digest;
|
|
364
|
+
if (!readyReceiptIsBoundAndFresh(result)
|
|
365
|
+
|| result.operation_state !== "succeeded" || result.runtime_state !== "running"
|
|
366
|
+
|| result.sync_state !== "synchronized"
|
|
367
|
+
|| !["private_transport", "api_health", "spa_health"].every((key) => checks?.[key] === true)
|
|
368
|
+
|| typeof requestedDigest !== "string" || !/^sha256:[a-f0-9]{64}$/.test(requestedDigest)
|
|
369
|
+
|| result.observed_source_digest !== requestedDigest
|
|
370
|
+
|| requestedSource?.sourceDigest !== requestedDigest
|
|
371
|
+
|| typeof requestedSource.dependencyDigest !== "string"
|
|
372
|
+
|| !/^sha256:[a-f0-9]{64}$/.test(requestedSource.dependencyDigest)
|
|
373
|
+
|| result.observed_dependency_digest !== requestedSource.dependencyDigest) {
|
|
374
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "Readiness is not supported by synchronized source and healthy runtime evidence.", payload);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
if ("apply" in input && !input.apply) {
|
|
378
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "A lifecycle action without apply cannot return execution success; use the explicit plan action.", payload);
|
|
379
|
+
}
|
|
380
|
+
const pending = PENDING_STATUSES.has(status);
|
|
381
|
+
const normalized = {
|
|
382
|
+
...payload,
|
|
383
|
+
accepted: true,
|
|
384
|
+
actionSuccess: !pending,
|
|
385
|
+
success: !pending,
|
|
386
|
+
ready: result.ready,
|
|
387
|
+
runtimeReady: result.ready,
|
|
388
|
+
};
|
|
389
|
+
return createToolSuccessResult(JSON.stringify(normalized), normalized);
|
|
390
|
+
}
|
|
391
|
+
export async function handleLabDev(rawArgs, context) {
|
|
392
|
+
const parsed = LabDevInputSchema.safeParse(rawArgs);
|
|
393
|
+
if (!parsed.success) {
|
|
394
|
+
return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, parsed.error.errors
|
|
395
|
+
.map((error) => `${error.path.join(".") || "input"}: ${error.message}`)
|
|
396
|
+
.join("; "), { operation: "lab_dev" });
|
|
397
|
+
}
|
|
398
|
+
if (!canonicalMode(context)) {
|
|
399
|
+
return canonicalOperationBlocked("lab_dev", "remote development is owned by the canonical lab lifecycle; no legacy or mock fallback is available");
|
|
400
|
+
}
|
|
401
|
+
const result = await runCanonicalOperation(context.canonicalBridge, "lab_dev", buildLabDevCommand(parsed.data));
|
|
402
|
+
return classifyLabDevResult(parsed.data, result);
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=lab-dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lab-dev.js","sourceRoot":"","sources":["../../../src/tools/lab-dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,9 @@ export declare const ProvisionVmInputShape: {
|
|
|
65
65
|
readyTimeoutSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
66
66
|
description: z.ZodOptional<z.ZodString>;
|
|
67
67
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json"]>>>;
|
|
68
|
+
provisionProfile: z.ZodOptional<z.ZodEnum<["appliance", "remote-dev-v1"]>>;
|
|
69
|
+
devArtifactDir: z.ZodOptional<z.ZodString>;
|
|
70
|
+
confirmBootstrapManifestSha256: z.ZodOptional<z.ZodString>;
|
|
68
71
|
};
|
|
69
72
|
export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
70
73
|
assetId: z.ZodOptional<z.ZodString>;
|
|
@@ -124,6 +127,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
124
127
|
readyTimeoutSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
125
128
|
description: z.ZodOptional<z.ZodString>;
|
|
126
129
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json"]>>>;
|
|
130
|
+
provisionProfile: z.ZodOptional<z.ZodEnum<["appliance", "remote-dev-v1"]>>;
|
|
131
|
+
devArtifactDir: z.ZodOptional<z.ZodString>;
|
|
132
|
+
confirmBootstrapManifestSha256: z.ZodOptional<z.ZodString>;
|
|
127
133
|
}, "strip", z.ZodTypeAny, {
|
|
128
134
|
hypervisorType: "proxmox" | "esxi" | "any";
|
|
129
135
|
format: "table" | "json";
|
|
@@ -182,6 +188,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
182
188
|
memoryBytes?: number | undefined;
|
|
183
189
|
macAddress?: string | undefined;
|
|
184
190
|
networkBridge?: string | undefined;
|
|
191
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
192
|
+
devArtifactDir?: string | undefined;
|
|
193
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
185
194
|
}, {
|
|
186
195
|
storage?: string | undefined;
|
|
187
196
|
name?: string | undefined;
|
|
@@ -240,6 +249,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
240
249
|
fullClone?: boolean | undefined;
|
|
241
250
|
waitForReady?: boolean | undefined;
|
|
242
251
|
readyTimeoutSeconds?: number | undefined;
|
|
252
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
253
|
+
devArtifactDir?: string | undefined;
|
|
254
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
243
255
|
}>, {
|
|
244
256
|
hypervisorType: "proxmox" | "esxi" | "any";
|
|
245
257
|
format: "table" | "json";
|
|
@@ -298,6 +310,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
298
310
|
memoryBytes?: number | undefined;
|
|
299
311
|
macAddress?: string | undefined;
|
|
300
312
|
networkBridge?: string | undefined;
|
|
313
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
314
|
+
devArtifactDir?: string | undefined;
|
|
315
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
301
316
|
}, {
|
|
302
317
|
storage?: string | undefined;
|
|
303
318
|
name?: string | undefined;
|
|
@@ -356,6 +371,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
356
371
|
fullClone?: boolean | undefined;
|
|
357
372
|
waitForReady?: boolean | undefined;
|
|
358
373
|
readyTimeoutSeconds?: number | undefined;
|
|
374
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
375
|
+
devArtifactDir?: string | undefined;
|
|
376
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
359
377
|
}>, {
|
|
360
378
|
hypervisorType: "proxmox" | "esxi" | "any";
|
|
361
379
|
format: "table" | "json";
|
|
@@ -414,6 +432,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
414
432
|
memoryBytes?: number | undefined;
|
|
415
433
|
macAddress?: string | undefined;
|
|
416
434
|
networkBridge?: string | undefined;
|
|
435
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
436
|
+
devArtifactDir?: string | undefined;
|
|
437
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
417
438
|
}, {
|
|
418
439
|
storage?: string | undefined;
|
|
419
440
|
name?: string | undefined;
|
|
@@ -472,6 +493,9 @@ export declare const ProvisionVmInputSchema: z.ZodEffects<z.ZodEffects<z.ZodObje
|
|
|
472
493
|
fullClone?: boolean | undefined;
|
|
473
494
|
waitForReady?: boolean | undefined;
|
|
474
495
|
readyTimeoutSeconds?: number | undefined;
|
|
496
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
497
|
+
devArtifactDir?: string | undefined;
|
|
498
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
475
499
|
}>;
|
|
476
500
|
export type ProvisionVmInput = z.infer<typeof ProvisionVmInputSchema>;
|
|
477
501
|
export type ProvisionVmRawInput = z.input<typeof ProvisionVmInputSchema>;
|
|
@@ -536,6 +560,9 @@ export declare const AutoProvisionVmInputShape: {
|
|
|
536
560
|
purgeIfFull: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
537
561
|
allowEsxiSlots: z.ZodOptional<z.ZodBoolean>;
|
|
538
562
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json"]>>>;
|
|
563
|
+
provisionProfile: z.ZodOptional<z.ZodEnum<["appliance", "remote-dev-v1"]>>;
|
|
564
|
+
devArtifactDir: z.ZodOptional<z.ZodString>;
|
|
565
|
+
confirmBootstrapManifestSha256: z.ZodOptional<z.ZodString>;
|
|
539
566
|
};
|
|
540
567
|
export declare const AutoProvisionVmInputSchema: z.ZodObject<{
|
|
541
568
|
assetId: z.ZodOptional<z.ZodString>;
|
|
@@ -597,6 +624,9 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
|
|
|
597
624
|
purgeIfFull: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
598
625
|
allowEsxiSlots: z.ZodOptional<z.ZodBoolean>;
|
|
599
626
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json"]>>>;
|
|
627
|
+
provisionProfile: z.ZodOptional<z.ZodEnum<["appliance", "remote-dev-v1"]>>;
|
|
628
|
+
devArtifactDir: z.ZodOptional<z.ZodString>;
|
|
629
|
+
confirmBootstrapManifestSha256: z.ZodOptional<z.ZodString>;
|
|
600
630
|
}, "strip", z.ZodTypeAny, {
|
|
601
631
|
hypervisorType: "proxmox" | "esxi" | "any";
|
|
602
632
|
ttlMinutes: number;
|
|
@@ -657,6 +687,9 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
|
|
|
657
687
|
newVmName?: string | undefined;
|
|
658
688
|
newVmId?: string | number | undefined;
|
|
659
689
|
networkBridge?: string | undefined;
|
|
690
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
691
|
+
devArtifactDir?: string | undefined;
|
|
692
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
660
693
|
}, {
|
|
661
694
|
storage?: string | undefined;
|
|
662
695
|
name?: string | undefined;
|
|
@@ -717,6 +750,9 @@ export declare const AutoProvisionVmInputSchema: z.ZodObject<{
|
|
|
717
750
|
fullClone?: boolean | undefined;
|
|
718
751
|
waitForReady?: boolean | undefined;
|
|
719
752
|
readyTimeoutSeconds?: number | undefined;
|
|
753
|
+
provisionProfile?: "appliance" | "remote-dev-v1" | undefined;
|
|
754
|
+
devArtifactDir?: string | undefined;
|
|
755
|
+
confirmBootstrapManifestSha256?: string | undefined;
|
|
720
756
|
}>;
|
|
721
757
|
export type AutoProvisionVmInput = z.infer<typeof AutoProvisionVmInputSchema>;
|
|
722
758
|
export type AutoProvisionVmRawInput = z.input<typeof AutoProvisionVmInputSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/provision-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAM1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"provision-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/provision-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAM1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA6C9C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiPjC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShC,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAuXzB;AAMD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKrC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEjF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA4ezB"}
|