@calltelemetry/ct-lab-mcp 0.8.23 → 0.8.24
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 +22 -7
- package/dist/src/tools/canonical-guard.d.ts +1 -1
- package/dist/src/tools/canonical-guard.d.ts.map +1 -1
- package/dist/src/tools/canonical-guard.js +2 -1
- package/dist/src/tools/canonical-guard.js.map +1 -1
- package/dist/src/tools/lab-dev.d.ts +107 -3
- package/dist/src/tools/lab-dev.d.ts.map +1 -1
- package/dist/src/tools/lab-dev.js +122 -18
- package/dist/src/tools/lab-dev.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
|
|
|
83
83
|
drift, clustered Proxmox, or an ESXi maintenance-mode failure. Force host
|
|
84
84
|
power-off is not implemented.
|
|
85
85
|
- **Remote Appliance CLI Control**: Mediated execution of `cli.sh` commands over SSH (port 2222) for status inspection, health diagnostics, Ecto migrations, table vacuums, and container logs.
|
|
86
|
-
- **Leased Remote Development**: `lab_dev` is a canonical-only façade for the `ct-local-dev-v1` profile. It supports strict `doctor`, `plan`, `start`, `status`, `sync`, `stop`, and `cleanup` actions bound to one asset, lease, Linear issue, operation ID, and reviewed receipt chain. It accepts no guest commands, remote paths, or mock fallback.
|
|
86
|
+
- **Leased Remote Development**: `lab_dev` is a canonical-only façade for the `ct-local-dev-v1` profile. It supports strict `doctor`, `plan`, `prepare`, `start`, `status`, `sync`, `stop`, and `cleanup` actions bound to one asset, lease, Linear issue, operation ID, and reviewed receipt chain. It accepts no guest commands, remote paths, or mock fallback.
|
|
87
87
|
- **Dynamic Secret Redaction**: Real-time masking prevents passwords, Doppler API tokens, and private keys from leaking into MCP responses or stderr logs.
|
|
88
88
|
- **Dual Transports**: Clean standard I/O transport (`stdio`) and Express HTTP/SSE transport (`sse`) with `/health`, `/sse`, and `/messages` endpoints.
|
|
89
89
|
- **3-Tier Credential Resolution**:
|
|
@@ -229,7 +229,7 @@ MissionRunner deadline and cleanup implementation in ct-meta.
|
|
|
229
229
|
`lab_dev` is the bounded façade for the canonical `dev` lifecycle. Its only
|
|
230
230
|
supported profile is `ct-local-dev-v1`; `doctor` is read-only and may omit the
|
|
231
231
|
identity triplet, while `plan` requires an exact asset, lease, Linear issue,
|
|
232
|
-
operation ID, workspace reference, source digest, and receipt path. `start` and
|
|
232
|
+
operation ID, workspace reference, source digest, and receipt path. `prepare`, `start` and
|
|
233
233
|
`sync` additionally require the profile, source digest, separate reviewed plan
|
|
234
234
|
and apply receipt paths, and exact asset confirmation for apply. `status` accepts
|
|
235
235
|
only the identity triplet plus an optional operation ID. `stop` and `cleanup`
|
|
@@ -254,9 +254,9 @@ unfinished provider: canonical bootstrap checks still apply. OS/container
|
|
|
254
254
|
bootstrap completion is not source synchronization, application readiness,
|
|
255
255
|
browser HMR, or product/video proof.
|
|
256
256
|
|
|
257
|
-
Implementation status for REL-822: the candidate MCP delegates all
|
|
257
|
+
Implementation status for REL-822: the candidate MCP delegates all eight
|
|
258
258
|
actions to the canonical controller. The lifecycle controller journals
|
|
259
|
-
start/sync/stop/cleanup and reconciles their observed state; it must report
|
|
259
|
+
prepare/start/sync/stop/cleanup and reconciles their observed state; it must report
|
|
260
260
|
the remote adapter as unavailable when no supported adapter is registered.
|
|
261
261
|
**The production remote adapter and live HMR proof remain incomplete.** Tool
|
|
262
262
|
discovery, passing synthetic protocol tests, or a recorded plan is not a
|
|
@@ -264,10 +264,10 @@ running preview, and this candidate has not been published as a new MCP version.
|
|
|
264
264
|
|
|
265
265
|
The response separates `transportSuccess` (the canonical command returned)
|
|
266
266
|
from `actionSuccess` and `ready`/`runtimeReady`. `diagnosed`, `planned`,
|
|
267
|
-
`not_started`, `stopped`, and `cleaned` can complete without application
|
|
267
|
+
`not_started`, `prepared`, `stopped`, and `cleaned` can complete without application
|
|
268
268
|
readiness. `running` is accepted but has `actionSuccess: false` and
|
|
269
269
|
`ready: false`; poll `status` for the same operation. A ready response requires
|
|
270
|
-
successful runtime execution, synchronized source and dependency digests, and
|
|
270
|
+
successful runtime execution, synchronized source, packaging and dependency digests, and
|
|
271
271
|
positive private-transport, API, and SPA health observations. Even those checks
|
|
272
272
|
do not prove actual browser HMR; `hmr_browser_proof` remains separate.
|
|
273
273
|
Readiness must also match the caller's exact asset, lease, issue, operation,
|
|
@@ -275,6 +275,21 @@ workspace, profile, and source; nested request identity/source must agree with
|
|
|
275
275
|
the receipt, and the observation must be no older than 30 seconds (with at
|
|
276
276
|
most five seconds of future clock skew). A status call without an operation ID
|
|
277
277
|
may report the current operation, but must still match the requested identity.
|
|
278
|
+
|
|
279
|
+
`prepare` is an explicit development-only cache step. It shares the strict
|
|
280
|
+
reviewed-plan/apply input and preserves operation identity after a timeout.
|
|
281
|
+
`prepared` requires a fresh bound preparation-receipt digest, exact synchronized
|
|
282
|
+
source/dependency/packaging, all three health checks false and no preview URL.
|
|
283
|
+
It never authorizes capture. Start must verify prepared dependencies without
|
|
284
|
+
hidden installs, builds or pulls. The first candidate consumes approved local
|
|
285
|
+
immutable images only; missing images/private build authentication remains a
|
|
286
|
+
separate explicit preparation failure, not an automatic acquisition fallback.
|
|
287
|
+
The canonical source receipt must carry a valid `runtimePackagingDigest` and
|
|
288
|
+
its fresh observation must match `observed_runtime_packaging_digest`. Missing,
|
|
289
|
+
malformed or stale packaging identity is not readiness, even when transferred
|
|
290
|
+
source bytes match. This digest binds audited omissions without exposing their
|
|
291
|
+
private paths. Older canonical controllers must be updated before they can
|
|
292
|
+
qualify a running preview; doctor and non-ready diagnostics remain available.
|
|
278
293
|
The canonical controller alone opens and validates `planReceiptFile`; the
|
|
279
294
|
facade checks the returned plan digest's format and directly available correlations,
|
|
280
295
|
never opens arbitrary receipt paths, and checks output receipt paths against
|
|
@@ -298,7 +313,7 @@ npx vitest run test/tools/lab-dev.test.ts test/tools/lab-dev-stdio.test.ts test/
|
|
|
298
313
|
```
|
|
299
314
|
|
|
300
315
|
The stdio tests use an explicitly synthetic canonical authority, discover the
|
|
301
|
-
actual built server's schema, and dynamically call all
|
|
316
|
+
actual built server's schema, and dynamically call all eight actions plus
|
|
302
317
|
failure, timeout, redaction, and strict-input cases. They do not provision a
|
|
303
318
|
VM, transfer source, or establish live product acceptance.
|
|
304
319
|
|
|
@@ -8,7 +8,7 @@ export declare function canonicalMode(context: ToolContext): boolean;
|
|
|
8
8
|
* the CLI is the authority for the exact asset/lease checks, but merely being
|
|
9
9
|
* configured does not prove that a target is reachable or authorized.
|
|
10
10
|
*/
|
|
11
|
-
export declare const CANONICAL_CREDENTIAL_OPERATIONS: readonly ["lab_dev:doctor", "lab_dev:plan", "lab_dev:status", "lab_dev:start", "lab_dev:sync", "lab_dev:stop", "lab_dev:cleanup", "list_hosts", "list_inventory", "vm_repair", "list_expired_vms", "cleanup_expired_vms", "provision_vm", "auto_provision_vm", "purge_slots"];
|
|
11
|
+
export declare const CANONICAL_CREDENTIAL_OPERATIONS: readonly ["lab_dev:doctor", "lab_dev:plan", "lab_dev:prepare", "lab_dev:status", "lab_dev:start", "lab_dev:sync", "lab_dev:stop", "lab_dev:cleanup", "list_hosts", "list_inventory", "vm_repair", "list_expired_vms", "cleanup_expired_vms", "provision_vm", "auto_provision_vm", "purge_slots"];
|
|
12
12
|
export type CanonicalCredentialReadiness = {
|
|
13
13
|
owner: "canonical_cli" | "legacy_resolver";
|
|
14
14
|
required: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-guard.d.ts","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAkD,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B
|
|
1
|
+
{"version":3,"file":"canonical-guard.d.ts","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAkD,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kSAoBlC,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,4BAA4B,CAAC;IACtE,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,GAAG,2BAA2B,CAAC;IACjF,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAoC9B;AAQD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAgCT;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMzF;AAUD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAuCzB"}
|
|
@@ -11,6 +11,7 @@ export function canonicalMode(context) {
|
|
|
11
11
|
export const CANONICAL_CREDENTIAL_OPERATIONS = [
|
|
12
12
|
"lab_dev:doctor",
|
|
13
13
|
"lab_dev:plan",
|
|
14
|
+
"lab_dev:prepare",
|
|
14
15
|
"lab_dev:status",
|
|
15
16
|
"lab_dev:start",
|
|
16
17
|
"lab_dev:sync",
|
|
@@ -94,7 +95,7 @@ export function canonicalBridgeOwnsCredentials(context, operation, args) {
|
|
|
94
95
|
return true;
|
|
95
96
|
if (operation === "lab_dev") {
|
|
96
97
|
const action = toolAction(args);
|
|
97
|
-
return action === "doctor" || action === "plan" || action === "status"
|
|
98
|
+
return action === "doctor" || action === "plan" || action === "prepare" || action === "status"
|
|
98
99
|
|| action === "start" || action === "sync" || action === "stop" || action === "cleanup";
|
|
99
100
|
}
|
|
100
101
|
// These are the only lifecycle handlers currently proven to delegate to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-guard.js","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,OAAO,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,0EAA0E;IAC1E,wEAAwE;IACxE,+DAA+D;IAC/D,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,aAAa;CACL,CAAC;AAYX;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE,MAAM,mBAAmB,GAAG,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,KAAK;YACf,UAAU;YACV,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,gBAAgB;YAClC,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,aAAa;YACrB,gBAAgB,EAAE,aAAa;YAC/B,mBAAmB;YACnB,MAAM,EAAE,iCAAiC;SAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,4BAA4B;QACpC,gBAAgB,EAAE,2BAA2B;QAC7C,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,MAAM,GAAI,IAA6B,CAAC,MAAM,CAAC;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAoB,EACpB,SAAiB,EACjB,IAAc;IAEd,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,qEAAqE;IACrE,0DAA0D;IAC1D,IAAI,SAAS,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,eAAe,EAAE,YAAY,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjE,uEAAuE;IACvE,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAE9E,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ;
|
|
1
|
+
{"version":3,"file":"canonical-guard.js","sourceRoot":"","sources":["../../../src/tools/canonical-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,45 @@ export declare const LabDevInputObjectSchema: z.ZodDiscriminatedUnion<"action",
|
|
|
55
55
|
profile: "ct-local-dev-v1";
|
|
56
56
|
workspaceRef: string;
|
|
57
57
|
sourceDigest: string;
|
|
58
|
+
}>, z.ZodObject<{
|
|
59
|
+
operationId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
60
|
+
profile: z.ZodLiteral<"ct-local-dev-v1">;
|
|
61
|
+
workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
|
|
62
|
+
sourceDigest: z.ZodString;
|
|
63
|
+
planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
|
|
64
|
+
receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
|
|
65
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
66
|
+
confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
|
|
67
|
+
assetId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
68
|
+
leaseId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
69
|
+
linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
|
|
70
|
+
action: z.ZodLiteral<"prepare">;
|
|
71
|
+
}, "strict", z.ZodTypeAny, {
|
|
72
|
+
action: "prepare";
|
|
73
|
+
linearIssue: string;
|
|
74
|
+
leaseId: string;
|
|
75
|
+
assetId: string;
|
|
76
|
+
operationId: string;
|
|
77
|
+
apply: boolean;
|
|
78
|
+
receiptFile: string;
|
|
79
|
+
profile: "ct-local-dev-v1";
|
|
80
|
+
workspaceRef: string;
|
|
81
|
+
sourceDigest: string;
|
|
82
|
+
planReceiptFile: string;
|
|
83
|
+
confirmAssetId?: string | undefined;
|
|
84
|
+
}, {
|
|
85
|
+
action: "prepare";
|
|
86
|
+
linearIssue: string;
|
|
87
|
+
leaseId: string;
|
|
88
|
+
assetId: string;
|
|
89
|
+
operationId: string;
|
|
90
|
+
receiptFile: string;
|
|
91
|
+
profile: "ct-local-dev-v1";
|
|
92
|
+
workspaceRef: string;
|
|
93
|
+
sourceDigest: string;
|
|
94
|
+
planReceiptFile: string;
|
|
95
|
+
apply?: boolean | undefined;
|
|
96
|
+
confirmAssetId?: string | undefined;
|
|
58
97
|
}>, z.ZodObject<{
|
|
59
98
|
operationId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
60
99
|
profile: z.ZodLiteral<"ct-local-dev-v1">;
|
|
@@ -260,6 +299,45 @@ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"ac
|
|
|
260
299
|
profile: "ct-local-dev-v1";
|
|
261
300
|
workspaceRef: string;
|
|
262
301
|
sourceDigest: string;
|
|
302
|
+
}>, z.ZodObject<{
|
|
303
|
+
operationId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
304
|
+
profile: z.ZodLiteral<"ct-local-dev-v1">;
|
|
305
|
+
workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
|
|
306
|
+
sourceDigest: z.ZodString;
|
|
307
|
+
planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
|
|
308
|
+
receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
|
|
309
|
+
apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
310
|
+
confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
|
|
311
|
+
assetId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
312
|
+
leaseId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
313
|
+
linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
|
|
314
|
+
action: z.ZodLiteral<"prepare">;
|
|
315
|
+
}, "strict", z.ZodTypeAny, {
|
|
316
|
+
action: "prepare";
|
|
317
|
+
linearIssue: string;
|
|
318
|
+
leaseId: string;
|
|
319
|
+
assetId: string;
|
|
320
|
+
operationId: string;
|
|
321
|
+
apply: boolean;
|
|
322
|
+
receiptFile: string;
|
|
323
|
+
profile: "ct-local-dev-v1";
|
|
324
|
+
workspaceRef: string;
|
|
325
|
+
sourceDigest: string;
|
|
326
|
+
planReceiptFile: string;
|
|
327
|
+
confirmAssetId?: string | undefined;
|
|
328
|
+
}, {
|
|
329
|
+
action: "prepare";
|
|
330
|
+
linearIssue: string;
|
|
331
|
+
leaseId: string;
|
|
332
|
+
assetId: string;
|
|
333
|
+
operationId: string;
|
|
334
|
+
receiptFile: string;
|
|
335
|
+
profile: "ct-local-dev-v1";
|
|
336
|
+
workspaceRef: string;
|
|
337
|
+
sourceDigest: string;
|
|
338
|
+
planReceiptFile: string;
|
|
339
|
+
apply?: boolean | undefined;
|
|
340
|
+
confirmAssetId?: string | undefined;
|
|
263
341
|
}>, z.ZodObject<{
|
|
264
342
|
operationId: z.ZodType<string, z.ZodTypeDef, string>;
|
|
265
343
|
profile: z.ZodLiteral<"ct-local-dev-v1">;
|
|
@@ -438,6 +516,19 @@ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"ac
|
|
|
438
516
|
leaseId: string;
|
|
439
517
|
assetId: string;
|
|
440
518
|
operationId?: string | undefined;
|
|
519
|
+
} | {
|
|
520
|
+
action: "prepare";
|
|
521
|
+
linearIssue: string;
|
|
522
|
+
leaseId: string;
|
|
523
|
+
assetId: string;
|
|
524
|
+
operationId: string;
|
|
525
|
+
apply: boolean;
|
|
526
|
+
receiptFile: string;
|
|
527
|
+
profile: "ct-local-dev-v1";
|
|
528
|
+
workspaceRef: string;
|
|
529
|
+
sourceDigest: string;
|
|
530
|
+
planReceiptFile: string;
|
|
531
|
+
confirmAssetId?: string | undefined;
|
|
441
532
|
} | {
|
|
442
533
|
action: "start";
|
|
443
534
|
linearIssue: string;
|
|
@@ -506,6 +597,19 @@ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"ac
|
|
|
506
597
|
leaseId: string;
|
|
507
598
|
assetId: string;
|
|
508
599
|
operationId?: string | undefined;
|
|
600
|
+
} | {
|
|
601
|
+
action: "prepare";
|
|
602
|
+
linearIssue: string;
|
|
603
|
+
leaseId: string;
|
|
604
|
+
assetId: string;
|
|
605
|
+
operationId: string;
|
|
606
|
+
receiptFile: string;
|
|
607
|
+
profile: "ct-local-dev-v1";
|
|
608
|
+
workspaceRef: string;
|
|
609
|
+
sourceDigest: string;
|
|
610
|
+
planReceiptFile: string;
|
|
611
|
+
apply?: boolean | undefined;
|
|
612
|
+
confirmAssetId?: string | undefined;
|
|
509
613
|
} | {
|
|
510
614
|
action: "start";
|
|
511
615
|
linearIssue: string;
|
|
@@ -560,7 +664,7 @@ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"ac
|
|
|
560
664
|
* Do not put defaults here: that would inject disallowed fields into actions.
|
|
561
665
|
*/
|
|
562
666
|
export declare const LabDevAdvertisedInputSchema: z.ZodObject<{
|
|
563
|
-
action: z.ZodEnum<["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]>;
|
|
667
|
+
action: z.ZodEnum<["doctor", "plan", "prepare", "start", "status", "sync", "stop", "cleanup"]>;
|
|
564
668
|
assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
|
|
565
669
|
leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
|
|
566
670
|
linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
|
|
@@ -573,7 +677,7 @@ export declare const LabDevAdvertisedInputSchema: z.ZodObject<{
|
|
|
573
677
|
apply: z.ZodOptional<z.ZodBoolean>;
|
|
574
678
|
confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
|
|
575
679
|
}, "strict", z.ZodTypeAny, {
|
|
576
|
-
action: "start" | "stop" | "status" | "doctor" | "plan" | "sync" | "cleanup";
|
|
680
|
+
action: "start" | "stop" | "status" | "doctor" | "plan" | "prepare" | "sync" | "cleanup";
|
|
577
681
|
linearIssue?: string | undefined;
|
|
578
682
|
leaseId?: string | undefined;
|
|
579
683
|
assetId?: string | undefined;
|
|
@@ -586,7 +690,7 @@ export declare const LabDevAdvertisedInputSchema: z.ZodObject<{
|
|
|
586
690
|
sourceDigest?: string | undefined;
|
|
587
691
|
planReceiptFile?: string | undefined;
|
|
588
692
|
}, {
|
|
589
|
-
action: "start" | "stop" | "status" | "doctor" | "plan" | "sync" | "cleanup";
|
|
693
|
+
action: "start" | "stop" | "status" | "doctor" | "plan" | "prepare" | "sync" | "cleanup";
|
|
590
694
|
linearIssue?: string | undefined;
|
|
591
695
|
leaseId?: string | undefined;
|
|
592
696
|
assetId?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab-dev.d.ts","sourceRoot":"","sources":["../../../src/tools/lab-dev.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"lab-dev.d.ts","sourceRoot":"","sources":["../../../src/tools/lab-dev.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiJnD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyD5B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAMZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAyB/D,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CA4D/D;AA4QD,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,GAAG,OAAO,EACjC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAyBzB"}
|
|
@@ -79,6 +79,9 @@ const appliedLifecycleShape = {
|
|
|
79
79
|
apply: z.boolean().optional().default(false),
|
|
80
80
|
confirmAssetId: identityField("confirmAssetId").optional(),
|
|
81
81
|
};
|
|
82
|
+
const prepareSchema = z
|
|
83
|
+
.object({ action: z.literal("prepare"), ...appliedLifecycleShape })
|
|
84
|
+
.strict();
|
|
82
85
|
const startSchema = z
|
|
83
86
|
.object({
|
|
84
87
|
action: z.literal("start"),
|
|
@@ -119,6 +122,7 @@ const cleanupSchema = z
|
|
|
119
122
|
export const LabDevInputObjectSchema = z.discriminatedUnion("action", [
|
|
120
123
|
doctorSchema,
|
|
121
124
|
planSchema,
|
|
125
|
+
prepareSchema,
|
|
122
126
|
startSchema,
|
|
123
127
|
statusSchema,
|
|
124
128
|
syncSchema,
|
|
@@ -137,7 +141,7 @@ export const LabDevInputSchema = LabDevInputObjectSchema.superRefine((value, con
|
|
|
137
141
|
}
|
|
138
142
|
return;
|
|
139
143
|
}
|
|
140
|
-
if (value.action === "start" || value.action === "sync") {
|
|
144
|
+
if (value.action === "prepare" || value.action === "start" || value.action === "sync") {
|
|
141
145
|
if (receiptPathsMatch(value.planReceiptFile, value.receiptFile)) {
|
|
142
146
|
context.addIssue({
|
|
143
147
|
code: z.ZodIssueCode.custom,
|
|
@@ -155,7 +159,8 @@ export const LabDevInputSchema = LabDevInputObjectSchema.superRefine((value, con
|
|
|
155
159
|
});
|
|
156
160
|
}
|
|
157
161
|
}
|
|
158
|
-
if (value.action === "
|
|
162
|
+
if (value.action === "prepare"
|
|
163
|
+
|| value.action === "start"
|
|
159
164
|
|| value.action === "sync"
|
|
160
165
|
|| value.action === "stop"
|
|
161
166
|
|| value.action === "cleanup") {
|
|
@@ -182,17 +187,17 @@ export const LabDevInputSchema = LabDevInputObjectSchema.superRefine((value, con
|
|
|
182
187
|
* Do not put defaults here: that would inject disallowed fields into actions.
|
|
183
188
|
*/
|
|
184
189
|
export const LabDevAdvertisedInputSchema = z.object({
|
|
185
|
-
action: z.enum(["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]),
|
|
190
|
+
action: z.enum(["doctor", "plan", "prepare", "start", "status", "sync", "stop", "cleanup"]),
|
|
186
191
|
assetId: requiredIdentityShape.assetId.optional().describe("Required except doctor; exact canonical asset identity."),
|
|
187
192
|
leaseId: requiredIdentityShape.leaseId.optional().describe("Required except doctor; active exact lease."),
|
|
188
193
|
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."),
|
|
194
|
+
profile: profile.optional().describe("Required for doctor, plan, prepare, start, sync; forbidden for status, stop, cleanup."),
|
|
195
|
+
workspaceRef: workspaceReference.optional().describe("Required for plan, prepare, start, sync; locally registered reference, never a path."),
|
|
191
196
|
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."),
|
|
197
|
+
sourceDigest: sourceDigest.optional().describe("Required for plan, prepare, start, sync; immutable source snapshot digest."),
|
|
193
198
|
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."),
|
|
199
|
+
planReceiptFile: receiptPath.optional().describe("Required for prepare, start, sync, stop, cleanup; different from receiptFile."),
|
|
200
|
+
apply: z.boolean().optional().describe("Allowed only for prepare, start, sync, stop, cleanup; omitted means no apply."),
|
|
196
201
|
confirmAssetId: identityField("confirmAssetId").optional().describe("Only with apply=true; must exactly match assetId."),
|
|
197
202
|
}).strict();
|
|
198
203
|
function receiptPathsMatch(left, right) {
|
|
@@ -226,6 +231,7 @@ export function buildLabDevCommand(value) {
|
|
|
226
231
|
if (value.operationId)
|
|
227
232
|
command.push("--operation-id", value.operationId);
|
|
228
233
|
return command;
|
|
234
|
+
case "prepare":
|
|
229
235
|
case "start":
|
|
230
236
|
case "sync":
|
|
231
237
|
appendIdentity(command, value);
|
|
@@ -242,7 +248,7 @@ export function buildLabDevCommand(value) {
|
|
|
242
248
|
}
|
|
243
249
|
const CanonicalDevResultSchema = z.object({
|
|
244
250
|
schema: z.literal("calltelemetry-lab-dev/v1"),
|
|
245
|
-
action: z.enum(["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]),
|
|
251
|
+
action: z.enum(["doctor", "plan", "prepare", "start", "status", "sync", "stop", "cleanup"]),
|
|
246
252
|
status: z.string().min(1),
|
|
247
253
|
ready: z.boolean(),
|
|
248
254
|
}).passthrough();
|
|
@@ -254,9 +260,10 @@ const PENDING_STATUSES = new Set(["running", "pending", "starting", "syncing"]);
|
|
|
254
260
|
const NORMAL_STATUSES = {
|
|
255
261
|
doctor: new Set(["diagnosed"]),
|
|
256
262
|
plan: new Set(["planned"]),
|
|
263
|
+
prepare: new Set(["prepared", ...PENDING_STATUSES]),
|
|
257
264
|
start: new Set(["ready", ...PENDING_STATUSES]),
|
|
258
265
|
sync: new Set(["ready", ...PENDING_STATUSES]),
|
|
259
|
-
status: new Set(["planned", "not_started", "ready", "stopped", "cleaned", ...PENDING_STATUSES]),
|
|
266
|
+
status: new Set(["planned", "not_started", "prepared", "ready", "stopped", "cleaned", ...PENDING_STATUSES]),
|
|
260
267
|
stop: new Set(["stopped", ...PENDING_STATUSES]),
|
|
261
268
|
cleanup: new Set(["cleaned", ...PENDING_STATUSES]),
|
|
262
269
|
};
|
|
@@ -264,29 +271,107 @@ function objectValue(value) {
|
|
|
264
271
|
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
265
272
|
? value : undefined;
|
|
266
273
|
}
|
|
274
|
+
function hasOwn(value, key) {
|
|
275
|
+
return value !== undefined && Object.prototype.hasOwnProperty.call(value, key);
|
|
276
|
+
}
|
|
267
277
|
function receiptMatchesInput(input, result) {
|
|
268
278
|
const identity = objectValue(result.identity);
|
|
279
|
+
const request = objectValue(result.request);
|
|
280
|
+
const requestIdentity = objectValue(request?.identity);
|
|
281
|
+
// Detached preparation acknowledgements are deliberately projected from a
|
|
282
|
+
// nested immutable request. Keep both copies bound whenever the result
|
|
283
|
+
// supplies them; accepting a contradictory request would make the worker
|
|
284
|
+
// acknowledgement useful as an identity-confusion primitive.
|
|
285
|
+
if (request) {
|
|
286
|
+
if (request.schema !== "calltelemetry-lab-dev/v1")
|
|
287
|
+
return false;
|
|
288
|
+
const observedAction = result.action === "status"
|
|
289
|
+
? (typeof result.observed_action === "string" ? result.observed_action : result.action)
|
|
290
|
+
: result.action;
|
|
291
|
+
if (typeof observedAction !== "string" || request.action !== observedAction)
|
|
292
|
+
return false;
|
|
293
|
+
if (!identity || !requestIdentity || !isDeepStrictEqual(identity, requestIdentity))
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
269
296
|
for (const [field, receiptField] of [
|
|
270
297
|
["assetId", "asset_id"], ["leaseId", "lease_id"], ["linearIssue", "linear_issue"],
|
|
271
298
|
]) {
|
|
272
|
-
if (input[field] !== undefined
|
|
299
|
+
if (input[field] !== undefined
|
|
300
|
+
&& (identity?.[receiptField] !== input[field]
|
|
301
|
+
|| (request && requestIdentity?.[receiptField] !== input[field])))
|
|
273
302
|
return false;
|
|
274
303
|
}
|
|
275
304
|
for (const [field, receiptField] of [
|
|
276
305
|
["operationId", "operation_id"], ["workspaceRef", "workspace_ref"],
|
|
277
306
|
["profile", "profile"], ["receiptFile", "receipt_file"],
|
|
278
307
|
]) {
|
|
279
|
-
|
|
308
|
+
const resultHas = hasOwn(result, receiptField);
|
|
309
|
+
const requestHas = hasOwn(request, receiptField);
|
|
310
|
+
if (resultHas && requestHas && !isDeepStrictEqual(result[receiptField], request[receiptField])) {
|
|
280
311
|
return false;
|
|
312
|
+
}
|
|
313
|
+
if (field in input && input[field] !== undefined) {
|
|
314
|
+
// The native queued acknowledgement does not duplicate workspace_ref or
|
|
315
|
+
// profile at the top level. Those two fields remain exact because the
|
|
316
|
+
// nested request is required and checked above. Other bindings retain
|
|
317
|
+
// their established top-level requirement.
|
|
318
|
+
const nestedOnlyAllowed = field === "workspaceRef" || field === "profile";
|
|
319
|
+
if ((request && field !== "receiptFile" && !requestHas)
|
|
320
|
+
|| (!resultHas && !(nestedOnlyAllowed && requestHas))
|
|
321
|
+
|| (resultHas && !isDeepStrictEqual(result[receiptField], input[field]))
|
|
322
|
+
|| (!resultHas && requestHas
|
|
323
|
+
&& !isDeepStrictEqual(request[receiptField], input[field]))) {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
281
327
|
}
|
|
282
328
|
if ("sourceDigest" in input) {
|
|
283
|
-
const
|
|
284
|
-
|
|
329
|
+
const sourceField = input.action === "plan" ? "source" : "requested_source";
|
|
330
|
+
const source = objectValue(result[sourceField]);
|
|
331
|
+
// Lifecycle requests call this input `requested_source`; the plan request
|
|
332
|
+
// predates that name and calls it `source`. Bind whichever canonical
|
|
333
|
+
// spelling is present, while rejecting a result that supplies both with
|
|
334
|
+
// contradictory values.
|
|
335
|
+
const requestedSource = objectValue(request?.requested_source);
|
|
336
|
+
const plannedSource = objectValue(request?.source);
|
|
337
|
+
if (requestedSource && plannedSource && !isDeepStrictEqual(requestedSource, plannedSource))
|
|
338
|
+
return false;
|
|
339
|
+
const requestSource = requestedSource ?? plannedSource;
|
|
340
|
+
if (!source || source.sourceDigest !== input.sourceDigest)
|
|
341
|
+
return false;
|
|
342
|
+
if (request && (!requestSource
|
|
343
|
+
// `plan` intentionally projects the source summary (source/dependency
|
|
344
|
+
// digests) while the immutable request retains the packaging digest.
|
|
345
|
+
// Bind every projected field without requiring the summary to duplicate
|
|
346
|
+
// request-only evidence; lifecycle acknowledgements must remain exact.
|
|
347
|
+
|| (input.action === "plan"
|
|
348
|
+
? !Object.entries(source).every(([key, value]) => isDeepStrictEqual(requestSource[key], value))
|
|
349
|
+
: !isDeepStrictEqual(source, requestSource))))
|
|
285
350
|
return false;
|
|
351
|
+
if (input.action !== "plan"
|
|
352
|
+
&& (typeof result.requested_source_digest !== "string"
|
|
353
|
+
|| !/^sha256:[a-f0-9]{64}$/.test(result.requested_source_digest)
|
|
354
|
+
|| result.requested_source_digest !== input.sourceDigest))
|
|
355
|
+
return false;
|
|
356
|
+
// A queued worker has not observed the guest source yet. Null is the
|
|
357
|
+
// honest value; any non-null observation must still be the exact requested
|
|
358
|
+
// source/dependency/packaging digest rather than merely a well-formed hash.
|
|
359
|
+
if (input.action === "prepare"
|
|
360
|
+
&& typeof result.status === "string" && PENDING_STATUSES.has(result.status)) {
|
|
361
|
+
for (const [observed, expected] of [
|
|
362
|
+
["observed_source_digest", "sourceDigest"],
|
|
363
|
+
["observed_dependency_digest", "dependencyDigest"],
|
|
364
|
+
["observed_runtime_packaging_digest", "runtimePackagingDigest"],
|
|
365
|
+
]) {
|
|
366
|
+
if (!hasOwn(result, observed)
|
|
367
|
+
|| (result[observed] !== null && result[observed] !== source[expected]))
|
|
368
|
+
return false;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
286
371
|
}
|
|
287
372
|
return true;
|
|
288
373
|
}
|
|
289
|
-
function readyReceiptIsBoundAndFresh(result) {
|
|
374
|
+
function readyReceiptIsBoundAndFresh(result, allowedActions = ["start", "sync"]) {
|
|
290
375
|
const request = objectValue(result.request);
|
|
291
376
|
const identity = objectValue(result.identity);
|
|
292
377
|
const requestIdentity = objectValue(request?.identity);
|
|
@@ -297,7 +382,7 @@ function readyReceiptIsBoundAndFresh(result) {
|
|
|
297
382
|
? Date.parse(result.observed_at) : NaN;
|
|
298
383
|
const ageMs = Date.now() - observedAt;
|
|
299
384
|
if (!request || request.schema !== "calltelemetry-lab-dev/v1"
|
|
300
|
-
||
|
|
385
|
+
|| typeof observedAction !== "string" || !allowedActions.includes(observedAction)
|
|
301
386
|
|| request.action !== observedAction
|
|
302
387
|
|| !Number.isFinite(ageMs) || ageMs < -5_000 || ageMs > 30_000
|
|
303
388
|
|| typeof result.operation_id !== "string" || !CANONICAL_IDENTIFIER.test(result.operation_id)
|
|
@@ -357,6 +442,22 @@ function classifyLabDevResult(input, canonical) {
|
|
|
357
442
|
if ((status === "ready") !== result.ready) {
|
|
358
443
|
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "The canonical status contradicts its readiness evidence.", payload);
|
|
359
444
|
}
|
|
445
|
+
if (status === "prepared") {
|
|
446
|
+
const source = objectValue(result.requested_source);
|
|
447
|
+
const checks = objectValue(result.checks);
|
|
448
|
+
if (!readyReceiptIsBoundAndFresh(result, ["prepare"])
|
|
449
|
+
|| result.operation_state !== "succeeded" || result.runtime_state !== "prepared"
|
|
450
|
+
|| result.sync_state !== "synchronized" || result.preview_url !== undefined
|
|
451
|
+
|| !["private_transport", "api_health", "spa_health"].every((key) => checks?.[key] === false)
|
|
452
|
+
|| typeof result.preparation_receipt_sha256 !== "string"
|
|
453
|
+
|| !/^sha256:[a-f0-9]{64}$/.test(result.preparation_receipt_sha256)
|
|
454
|
+
|| ![["observed_source_digest", "sourceDigest"], ["observed_dependency_digest", "dependencyDigest"],
|
|
455
|
+
["observed_runtime_packaging_digest", "runtimePackagingDigest"]].every(([observed, expected]) => typeof source?.[expected] === "string" && /^sha256:[a-f0-9]{64}$/.test(source[expected])
|
|
456
|
+
&& result[observed] === source[expected])
|
|
457
|
+
|| result.requested_source_digest !== source?.sourceDigest) {
|
|
458
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "Preparation requires a fresh bound cache receipt, synchronized source and no application-readiness claim.", payload);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
360
461
|
if (result.ready) {
|
|
361
462
|
const checks = objectValue(result.checks);
|
|
362
463
|
const requestedSource = objectValue(result.requested_source);
|
|
@@ -370,8 +471,11 @@ function classifyLabDevResult(input, canonical) {
|
|
|
370
471
|
|| requestedSource?.sourceDigest !== requestedDigest
|
|
371
472
|
|| typeof requestedSource.dependencyDigest !== "string"
|
|
372
473
|
|| !/^sha256:[a-f0-9]{64}$/.test(requestedSource.dependencyDigest)
|
|
373
|
-
|| result.observed_dependency_digest !== requestedSource.dependencyDigest
|
|
374
|
-
|
|
474
|
+
|| result.observed_dependency_digest !== requestedSource.dependencyDigest
|
|
475
|
+
|| typeof requestedSource.runtimePackagingDigest !== "string"
|
|
476
|
+
|| !/^sha256:[a-f0-9]{64}$/.test(requestedSource.runtimePackagingDigest)
|
|
477
|
+
|| result.observed_runtime_packaging_digest !== requestedSource.runtimePackagingDigest) {
|
|
478
|
+
return createToolErrorResult("CANONICAL_DEV_INVALID_RESULT", "Readiness is not supported by synchronized source, packaging and healthy runtime evidence.", payload);
|
|
375
479
|
}
|
|
376
480
|
}
|
|
377
481
|
if ("apply" in input && !input.apply) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab-dev.js","sourceRoot":"","sources":["../../../src/tools/lab-dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lab-dev.js","sourceRoot":"","sources":["../../../src/tools/lab-dev.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AACnE,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,CAAC;SACL,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,cAAc,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,0BAA0B,CAAC;SAC5E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,8BAA8B,CAAC;SAC3E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,8BAA8B,CAAC;SAC/E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,kCAAkC,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAC1D,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACnC,wCAAwC,CACzC,CAAC;AAEF,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,CAC7D,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EACxD,2DAA2D,CAC5D,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,uBAAuB,CAAC;KAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,uCAAuC,CAAC;KAClF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,qDAAqD,CAAC;KACjG,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,EACvD,sEAAsE,CACvE,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,KAAK,CAAC,uBAAuB,EAAE,2DAA2D,CAAC,CAAC;AAE/F,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE7C,MAAM,qBAAqB,GAAG;IAC5B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;IACjC,WAAW,EAAE,gBAAgB;CAC9B,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;IACjD,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,qBAAqB,CAAC,WAAW,CAAC,QAAQ,EAAE;CAC1D,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3B,OAAO;IACP,GAAG,qBAAqB;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,GAAG,qBAAqB;IACxB,OAAO;IACP,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC;IACzC,YAAY;IACZ,WAAW,EAAE,WAAW;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3B,GAAG,qBAAqB;IACxB,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,qBAAqB,GAAG;IAC5B,GAAG,qBAAqB;IACxB,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC;IACzC,OAAO;IACP,YAAY,EAAE,kBAAkB;IAChC,YAAY;IACZ,eAAe,EAAE,WAAW;IAC5B,WAAW,EAAE,WAAW;IACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,qBAAqB,EAAE,CAAC;KAClE,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,GAAG,qBAAqB;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,GAAG,qBAAqB;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,qBAAqB,GAAG;IAC5B,GAAG,qBAAqB;IACxB,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC;IACzC,eAAe,EAAE,WAAW;IAC5B,WAAW,EAAE,WAAW;IACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzB,GAAG,qBAAqB;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC5B,GAAG,qBAAqB;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACpE,YAAY;IACZ,UAAU;IACV,aAAa;IACb,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtF,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,sBAAsB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CACrF,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAC/B,CAAC,MAAM,CAAC;QACT,IAAI,sBAAsB,KAAK,CAAC,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,6DAA6D;aACvE,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACtF,IAAI,iBAAiB,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrB,OAAO,EAAE,yDAAyD;aACnE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1D,IAAI,iBAAiB,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrB,OAAO,EAAE,yDAAyD;aACnE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;WACvB,KAAK,CAAC,MAAM,KAAK,OAAO;WACxB,KAAK,CAAC,MAAM,KAAK,MAAM;WACvB,KAAK,CAAC,MAAM,KAAK,MAAM;WACvB,KAAK,CAAC,MAAM,KAAK,SAAS,EAC7B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1D,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;gBACxB,OAAO,EAAE,4CAA4C;aACtD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvD,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;gBACxB,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3F,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrH,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACzG,WAAW,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IACxH,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;IAC7H,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;IAC5I,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;IACvJ,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IAC5H,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACvH,eAAe,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;IACjI,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;IACvH,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACzH,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAWD,SAAS,cAAc,CAAC,OAAiB,EAAE,KAAuB;IAChE,OAAO,CAAC,IAAI,CACV,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,gBAAgB,EAChB,KAAK,CAAC,WAAW,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB,EAAE,KAAkD;IACxF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,cAAe,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxD,cAAc,CAAC,OAAO,EAAE,KAAyB,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAChF,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,gBAAgB,EAChB,KAAK,CAAC,WAAW,EACjB,iBAAiB,EACjB,KAAK,CAAC,YAAY,EAClB,gBAAgB,EAChB,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,gBAAgB,EAChB,KAAK,CAAC,WAAW,EACjB,WAAW,EACX,KAAK,CAAC,OAAO,EACb,iBAAiB,EACjB,KAAK,CAAC,YAAY,EAClB,iBAAiB,EACjB,KAAK,CAAC,YAAY,EAClB,qBAAqB,EACrB,KAAK,CAAC,eAAe,EACrB,gBAAgB,EAChB,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,gBAAgB,EAChB,KAAK,CAAC,WAAW,EACjB,qBAAqB,EACrB,KAAK,CAAC,eAAe,EACrB,gBAAgB,EAChB,KAAK,CAAC,WAAW,CAClB,CAAC;YACF,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB;IAC9E,SAAS,EAAE,uBAAuB;CACnC,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAChF,MAAM,eAAe,GAAuD;IAC1E,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACnD,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC9C,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC3G,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC;CACnD,CAAC;AAEF,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,MAAM,CAAC,KAA0C,EAAE,GAAW;IACrE,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkB,EAAE,MAA+B;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEvD,0EAA0E;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,6DAA6D;IAC7D,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,MAAM,KAAK,0BAA0B;YAAE,OAAO,KAAK,CAAC;QAChE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC/C,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACvF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAClB,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc;YAAE,OAAO,KAAK,CAAC;QAC1F,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC;YAAE,OAAO,KAAK,CAAC;IACnG,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI;QAClC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;KACzE,EAAE,CAAC;QACX,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS;eACzB,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;mBACxC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACtF,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI;QAClC,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QAClE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;KAC/C,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,UAAU,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,KAA0B,CAAC,KAAK,SAAS,EAAE,CAAC;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,uEAAuE;YACvE,2CAA2C;YAC3C,MAAM,iBAAiB,GAAG,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,SAAS,CAAC;YAC1E,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,aAAa,IAAI,CAAC,UAAU,CAAC;mBAClD,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC;mBAClD,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,KAA0B,CAAC,CAAC,CAAC;mBAC1F,CAAC,CAAC,SAAS,IAAI,UAAU;uBACvB,CAAC,iBAAiB,CAAC,OAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,KAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,0EAA0E;QAC1E,sEAAsE;QACtE,wEAAwE;QACxE,wBAAwB;QACxB,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,eAAe,IAAI,aAAa,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;QACzG,MAAM,aAAa,GAAG,eAAe,IAAI,aAAa,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,OAAO,IAAI,CAAC,CAAC,aAAa;YAC5B,sEAAsE;YACtE,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;eACpE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;gBACzB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/F,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;eACtB,CAAC,OAAO,MAAM,CAAC,uBAAuB,KAAK,QAAQ;mBACjD,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;mBAC7D,MAAM,CAAC,uBAAuB,KAAK,KAAK,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAE5E,sEAAsE;QACtE,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;eACzB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9E,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACjC,CAAC,wBAAwB,EAAE,cAAc,CAAC;gBAC1C,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;gBAClD,CAAC,mCAAmC,EAAE,wBAAwB,CAAC;aACvD,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;uBACxB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,MAA+B,EAAE,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;IACtG,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3F,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/G,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,0BAA0B;WACxD,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;WAC9E,OAAO,CAAC,MAAM,KAAK,cAAc;WACjC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,KAAK,GAAG,MAAM;WAC3D,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;WAC1F,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;WAC5F,MAAM,CAAC,OAAO,KAAK,iBAAiB;WACpC,CAAC,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC;WAC7C,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;WACvH,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,+EAA+E;IAC/E,8EAA8E;IAC9E,OAAO,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;WAC5F,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChG,CAAC;AAED,mFAAmF;AACnF,SAAS,oBAAoB,CAAC,KAAkB,EAAE,SAAyB;IACzE,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,aAAa,CAAC;IACpF,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACnB,6EAA6E;QAC7E,MAAM;QACN,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,gBAAgB;QAChB,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,KAAK;QACd,MAAM;QACN,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,KAAK;QACnB,wEAAwE;QACxE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,qBAAqB,CAC1B,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,EAC3E,QAAQ,CAAC,CAAC,CAAC,+EAA+E;YACxF,CAAC,CAAC,2EAA2E,EAC/E,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,qBAAqB,CAC1B,8BAA8B,EAAE,wEAAwE,EACxG,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,OAAO,qBAAqB,CAC1B,yBAAyB,EAAE,4EAA4E,EACvG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAClH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,qBAAqB,CAC1B,8BAA8B,EAAE,8FAA8F,EAAE,OAAO,CACxI,CAAC;IACJ,CAAC;IACD,wEAAwE;IACxE,2EAA2E;IAC3E,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,qBAAqB,CAC1B,8BAA8B,EAAE,0DAA0D,EAAE,OAAO,CACpG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;eAChD,MAAM,CAAC,eAAe,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU;eAC7E,MAAM,CAAC,UAAU,KAAK,cAAc,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;eACxE,CAAC,CAAC,mBAAmB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;eAC1F,OAAO,MAAM,CAAC,0BAA0B,KAAK,QAAQ;eACrD,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;eAChE,CAAC,CAAC,CAAC,wBAAwB,EAAE,cAAc,CAAC,EAAE,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;gBACjG,CAAC,mCAAmC,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAChG,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAW,CAAC;mBAC/F,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;eACxC,MAAM,CAAC,uBAAuB,KAAK,MAAM,EAAE,YAAY,EAAE,CAAC;YAC7D,OAAO,qBAAqB,CAAC,8BAA8B,EACzD,2GAA2G,EAAE,OAAO,CAAC,CAAC;QAC1H,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;QACvD,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC;eACnC,MAAM,CAAC,eAAe,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;eAC5E,MAAM,CAAC,UAAU,KAAK,cAAc;eACpC,CAAC,CAAC,mBAAmB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;eACzF,OAAO,eAAe,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC;eACrF,MAAM,CAAC,sBAAsB,KAAK,eAAe;eACjD,eAAe,EAAE,YAAY,KAAK,eAAe;eACjD,OAAO,eAAe,CAAC,gBAAgB,KAAK,QAAQ;eACpD,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;eAC/D,MAAM,CAAC,0BAA0B,KAAK,eAAe,CAAC,gBAAgB;eACtE,OAAO,eAAe,CAAC,sBAAsB,KAAK,QAAQ;eAC1D,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC;eACrE,MAAM,CAAC,iCAAiC,KAAK,eAAe,CAAC,sBAAsB,EAAE,CAAC;YACzF,OAAO,qBAAqB,CAC1B,8BAA8B,EAAE,4FAA4F,EAAE,OAAO,CACtI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,qBAAqB,CAC1B,8BAA8B,EAAE,iGAAiG,EAAE,OAAO,CAC3I,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,OAAO;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,KAAK;KAC3B,CAAC;IACF,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAiC,EACjC,OAAoB;IAEpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,MAAM,CAAC,KAAK,CAAC,MAAM;aAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACtE,IAAI,CAAC,IAAI,CAAC,EACb,EAAE,SAAS,EAAE,SAAS,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,yBAAyB,CAC9B,SAAS,EACT,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACxC,OAAO,CAAC,eAAe,EACvB,SAAS,EACT,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAChC,CAAC;IACF,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnD,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.24",
|
|
4
4
|
"description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE and VMware ESXi.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|