@calltelemetry/ct-lab-mcp 0.8.22 → 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.
Files changed (42) hide show
  1. package/README.md +112 -0
  2. package/dist/src/canonical/bridge.d.ts +6 -0
  3. package/dist/src/canonical/bridge.d.ts.map +1 -1
  4. package/dist/src/canonical/bridge.js +90 -9
  5. package/dist/src/canonical/bridge.js.map +1 -1
  6. package/dist/src/credentials/resolver.d.ts +7 -1
  7. package/dist/src/credentials/resolver.d.ts.map +1 -1
  8. package/dist/src/credentials/resolver.js +83 -0
  9. package/dist/src/credentials/resolver.js.map +1 -1
  10. package/dist/src/credentials/types.d.ts +7 -0
  11. package/dist/src/credentials/types.d.ts.map +1 -1
  12. package/dist/src/server.d.ts.map +1 -1
  13. package/dist/src/server.js +3 -1
  14. package/dist/src/server.js.map +1 -1
  15. package/dist/src/tools/canonical-guard.d.ts +28 -0
  16. package/dist/src/tools/canonical-guard.d.ts.map +1 -1
  17. package/dist/src/tools/canonical-guard.js +108 -0
  18. package/dist/src/tools/canonical-guard.js.map +1 -1
  19. package/dist/src/tools/credential-status.d.ts.map +1 -1
  20. package/dist/src/tools/credential-status.js +29 -3
  21. package/dist/src/tools/credential-status.js.map +1 -1
  22. package/dist/src/tools/index.d.ts +1 -0
  23. package/dist/src/tools/index.d.ts.map +1 -1
  24. package/dist/src/tools/index.js +15 -8
  25. package/dist/src/tools/index.js.map +1 -1
  26. package/dist/src/tools/lab-dev.d.ts +711 -0
  27. package/dist/src/tools/lab-dev.d.ts.map +1 -0
  28. package/dist/src/tools/lab-dev.js +508 -0
  29. package/dist/src/tools/lab-dev.js.map +1 -0
  30. package/dist/src/tools/provision-tools.d.ts +36 -0
  31. package/dist/src/tools/provision-tools.d.ts.map +1 -1
  32. package/dist/src/tools/provision-tools.js +37 -4
  33. package/dist/src/tools/provision-tools.js.map +1 -1
  34. package/dist/src/tools/vm-cleanup.d.ts +21 -0
  35. package/dist/src/tools/vm-cleanup.d.ts.map +1 -1
  36. package/dist/src/tools/vm-cleanup.js +233 -2
  37. package/dist/src/tools/vm-cleanup.js.map +1 -1
  38. package/dist/src/tools/vm-repair.d.ts +98 -0
  39. package/dist/src/tools/vm-repair.d.ts.map +1 -0
  40. package/dist/src/tools/vm-repair.js +60 -0
  41. package/dist/src/tools/vm-repair.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,711 @@
1
+ /** Strict canonical façade for the leased remote development lifecycle. */
2
+ import { z } from "zod";
3
+ import { CallToolResult } from "../types/mcp.js";
4
+ import type { ToolContext } from "./list-hosts.js";
5
+ /**
6
+ * Runtime validation uses a strict discriminated union. Each action owns its
7
+ * allowed fields so a status request cannot accidentally become a lifecycle
8
+ * mutation by carrying fields from another action.
9
+ */
10
+ export declare const LabDevInputObjectSchema: z.ZodDiscriminatedUnion<"action", [z.ZodObject<{
11
+ assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
12
+ leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
13
+ linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
14
+ action: z.ZodLiteral<"doctor">;
15
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
16
+ }, "strict", z.ZodTypeAny, {
17
+ action: "doctor";
18
+ profile: "ct-local-dev-v1";
19
+ linearIssue?: string | undefined;
20
+ leaseId?: string | undefined;
21
+ assetId?: string | undefined;
22
+ }, {
23
+ action: "doctor";
24
+ profile: "ct-local-dev-v1";
25
+ linearIssue?: string | undefined;
26
+ leaseId?: string | undefined;
27
+ assetId?: string | undefined;
28
+ }>, z.ZodObject<{
29
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
30
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
31
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
32
+ sourceDigest: z.ZodString;
33
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
34
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
35
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
36
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
37
+ action: z.ZodLiteral<"plan">;
38
+ }, "strict", z.ZodTypeAny, {
39
+ action: "plan";
40
+ linearIssue: string;
41
+ leaseId: string;
42
+ assetId: string;
43
+ operationId: string;
44
+ receiptFile: string;
45
+ profile: "ct-local-dev-v1";
46
+ workspaceRef: string;
47
+ sourceDigest: string;
48
+ }, {
49
+ action: "plan";
50
+ linearIssue: string;
51
+ leaseId: string;
52
+ assetId: string;
53
+ operationId: string;
54
+ receiptFile: string;
55
+ profile: "ct-local-dev-v1";
56
+ workspaceRef: string;
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;
97
+ }>, z.ZodObject<{
98
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
99
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
100
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
101
+ sourceDigest: z.ZodString;
102
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
103
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
104
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
105
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
106
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
107
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
108
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
109
+ action: z.ZodLiteral<"start">;
110
+ }, "strict", z.ZodTypeAny, {
111
+ action: "start";
112
+ linearIssue: string;
113
+ leaseId: string;
114
+ assetId: string;
115
+ operationId: string;
116
+ apply: boolean;
117
+ receiptFile: string;
118
+ profile: "ct-local-dev-v1";
119
+ workspaceRef: string;
120
+ sourceDigest: string;
121
+ planReceiptFile: string;
122
+ confirmAssetId?: string | undefined;
123
+ }, {
124
+ action: "start";
125
+ linearIssue: string;
126
+ leaseId: string;
127
+ assetId: string;
128
+ operationId: string;
129
+ receiptFile: string;
130
+ profile: "ct-local-dev-v1";
131
+ workspaceRef: string;
132
+ sourceDigest: string;
133
+ planReceiptFile: string;
134
+ apply?: boolean | undefined;
135
+ confirmAssetId?: string | undefined;
136
+ }>, z.ZodObject<{
137
+ operationId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
138
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
139
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
140
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
141
+ action: z.ZodLiteral<"status">;
142
+ }, "strict", z.ZodTypeAny, {
143
+ action: "status";
144
+ linearIssue: string;
145
+ leaseId: string;
146
+ assetId: string;
147
+ operationId?: string | undefined;
148
+ }, {
149
+ action: "status";
150
+ linearIssue: string;
151
+ leaseId: string;
152
+ assetId: string;
153
+ operationId?: string | undefined;
154
+ }>, z.ZodObject<{
155
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
156
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
157
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
158
+ sourceDigest: z.ZodString;
159
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
160
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
161
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
162
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
163
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
164
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
165
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
166
+ action: z.ZodLiteral<"sync">;
167
+ }, "strict", z.ZodTypeAny, {
168
+ action: "sync";
169
+ linearIssue: string;
170
+ leaseId: string;
171
+ assetId: string;
172
+ operationId: string;
173
+ apply: boolean;
174
+ receiptFile: string;
175
+ profile: "ct-local-dev-v1";
176
+ workspaceRef: string;
177
+ sourceDigest: string;
178
+ planReceiptFile: string;
179
+ confirmAssetId?: string | undefined;
180
+ }, {
181
+ action: "sync";
182
+ linearIssue: string;
183
+ leaseId: string;
184
+ assetId: string;
185
+ operationId: string;
186
+ receiptFile: string;
187
+ profile: "ct-local-dev-v1";
188
+ workspaceRef: string;
189
+ sourceDigest: string;
190
+ planReceiptFile: string;
191
+ apply?: boolean | undefined;
192
+ confirmAssetId?: string | undefined;
193
+ }>, z.ZodObject<{
194
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
195
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
196
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
197
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
198
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
199
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
200
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
201
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
202
+ action: z.ZodLiteral<"stop">;
203
+ }, "strict", z.ZodTypeAny, {
204
+ action: "stop";
205
+ linearIssue: string;
206
+ leaseId: string;
207
+ assetId: string;
208
+ operationId: string;
209
+ apply: boolean;
210
+ receiptFile: string;
211
+ planReceiptFile: string;
212
+ confirmAssetId?: string | undefined;
213
+ }, {
214
+ action: "stop";
215
+ linearIssue: string;
216
+ leaseId: string;
217
+ assetId: string;
218
+ operationId: string;
219
+ receiptFile: string;
220
+ planReceiptFile: string;
221
+ apply?: boolean | undefined;
222
+ confirmAssetId?: string | undefined;
223
+ }>, z.ZodObject<{
224
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
225
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
226
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
227
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
228
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
229
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
230
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
231
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
232
+ action: z.ZodLiteral<"cleanup">;
233
+ }, "strict", z.ZodTypeAny, {
234
+ action: "cleanup";
235
+ linearIssue: string;
236
+ leaseId: string;
237
+ assetId: string;
238
+ operationId: string;
239
+ apply: boolean;
240
+ receiptFile: string;
241
+ planReceiptFile: string;
242
+ confirmAssetId?: string | undefined;
243
+ }, {
244
+ action: "cleanup";
245
+ linearIssue: string;
246
+ leaseId: string;
247
+ assetId: string;
248
+ operationId: string;
249
+ receiptFile: string;
250
+ planReceiptFile: string;
251
+ apply?: boolean | undefined;
252
+ confirmAssetId?: string | undefined;
253
+ }>]>;
254
+ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"action", [z.ZodObject<{
255
+ assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
256
+ leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
257
+ linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
258
+ action: z.ZodLiteral<"doctor">;
259
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
260
+ }, "strict", z.ZodTypeAny, {
261
+ action: "doctor";
262
+ profile: "ct-local-dev-v1";
263
+ linearIssue?: string | undefined;
264
+ leaseId?: string | undefined;
265
+ assetId?: string | undefined;
266
+ }, {
267
+ action: "doctor";
268
+ profile: "ct-local-dev-v1";
269
+ linearIssue?: string | undefined;
270
+ leaseId?: string | undefined;
271
+ assetId?: string | undefined;
272
+ }>, z.ZodObject<{
273
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
274
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
275
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
276
+ sourceDigest: z.ZodString;
277
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
278
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
279
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
280
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
281
+ action: z.ZodLiteral<"plan">;
282
+ }, "strict", z.ZodTypeAny, {
283
+ action: "plan";
284
+ linearIssue: string;
285
+ leaseId: string;
286
+ assetId: string;
287
+ operationId: string;
288
+ receiptFile: string;
289
+ profile: "ct-local-dev-v1";
290
+ workspaceRef: string;
291
+ sourceDigest: string;
292
+ }, {
293
+ action: "plan";
294
+ linearIssue: string;
295
+ leaseId: string;
296
+ assetId: string;
297
+ operationId: string;
298
+ receiptFile: string;
299
+ profile: "ct-local-dev-v1";
300
+ workspaceRef: string;
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;
341
+ }>, z.ZodObject<{
342
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
343
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
344
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
345
+ sourceDigest: z.ZodString;
346
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
347
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
348
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
349
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
350
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
351
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
352
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
353
+ action: z.ZodLiteral<"start">;
354
+ }, "strict", z.ZodTypeAny, {
355
+ action: "start";
356
+ linearIssue: string;
357
+ leaseId: string;
358
+ assetId: string;
359
+ operationId: string;
360
+ apply: boolean;
361
+ receiptFile: string;
362
+ profile: "ct-local-dev-v1";
363
+ workspaceRef: string;
364
+ sourceDigest: string;
365
+ planReceiptFile: string;
366
+ confirmAssetId?: string | undefined;
367
+ }, {
368
+ action: "start";
369
+ linearIssue: string;
370
+ leaseId: string;
371
+ assetId: string;
372
+ operationId: string;
373
+ receiptFile: string;
374
+ profile: "ct-local-dev-v1";
375
+ workspaceRef: string;
376
+ sourceDigest: string;
377
+ planReceiptFile: string;
378
+ apply?: boolean | undefined;
379
+ confirmAssetId?: string | undefined;
380
+ }>, z.ZodObject<{
381
+ operationId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
382
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
383
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
384
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
385
+ action: z.ZodLiteral<"status">;
386
+ }, "strict", z.ZodTypeAny, {
387
+ action: "status";
388
+ linearIssue: string;
389
+ leaseId: string;
390
+ assetId: string;
391
+ operationId?: string | undefined;
392
+ }, {
393
+ action: "status";
394
+ linearIssue: string;
395
+ leaseId: string;
396
+ assetId: string;
397
+ operationId?: string | undefined;
398
+ }>, z.ZodObject<{
399
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
400
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
401
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
402
+ sourceDigest: z.ZodString;
403
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
404
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
405
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
406
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
407
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
408
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
409
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
410
+ action: z.ZodLiteral<"sync">;
411
+ }, "strict", z.ZodTypeAny, {
412
+ action: "sync";
413
+ linearIssue: string;
414
+ leaseId: string;
415
+ assetId: string;
416
+ operationId: string;
417
+ apply: boolean;
418
+ receiptFile: string;
419
+ profile: "ct-local-dev-v1";
420
+ workspaceRef: string;
421
+ sourceDigest: string;
422
+ planReceiptFile: string;
423
+ confirmAssetId?: string | undefined;
424
+ }, {
425
+ action: "sync";
426
+ linearIssue: string;
427
+ leaseId: string;
428
+ assetId: string;
429
+ operationId: string;
430
+ receiptFile: string;
431
+ profile: "ct-local-dev-v1";
432
+ workspaceRef: string;
433
+ sourceDigest: string;
434
+ planReceiptFile: string;
435
+ apply?: boolean | undefined;
436
+ confirmAssetId?: string | undefined;
437
+ }>, z.ZodObject<{
438
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
439
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
440
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
441
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
442
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
443
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
444
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
445
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
446
+ action: z.ZodLiteral<"stop">;
447
+ }, "strict", z.ZodTypeAny, {
448
+ action: "stop";
449
+ linearIssue: string;
450
+ leaseId: string;
451
+ assetId: string;
452
+ operationId: string;
453
+ apply: boolean;
454
+ receiptFile: string;
455
+ planReceiptFile: string;
456
+ confirmAssetId?: string | undefined;
457
+ }, {
458
+ action: "stop";
459
+ linearIssue: string;
460
+ leaseId: string;
461
+ assetId: string;
462
+ operationId: string;
463
+ receiptFile: string;
464
+ planReceiptFile: string;
465
+ apply?: boolean | undefined;
466
+ confirmAssetId?: string | undefined;
467
+ }>, z.ZodObject<{
468
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
469
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
470
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
471
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
472
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
473
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
474
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
475
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
476
+ action: z.ZodLiteral<"cleanup">;
477
+ }, "strict", z.ZodTypeAny, {
478
+ action: "cleanup";
479
+ linearIssue: string;
480
+ leaseId: string;
481
+ assetId: string;
482
+ operationId: string;
483
+ apply: boolean;
484
+ receiptFile: string;
485
+ planReceiptFile: string;
486
+ confirmAssetId?: string | undefined;
487
+ }, {
488
+ action: "cleanup";
489
+ linearIssue: string;
490
+ leaseId: string;
491
+ assetId: string;
492
+ operationId: string;
493
+ receiptFile: string;
494
+ planReceiptFile: string;
495
+ apply?: boolean | undefined;
496
+ confirmAssetId?: string | undefined;
497
+ }>]>, {
498
+ action: "doctor";
499
+ profile: "ct-local-dev-v1";
500
+ linearIssue?: string | undefined;
501
+ leaseId?: string | undefined;
502
+ assetId?: string | undefined;
503
+ } | {
504
+ action: "plan";
505
+ linearIssue: string;
506
+ leaseId: string;
507
+ assetId: string;
508
+ operationId: string;
509
+ receiptFile: string;
510
+ profile: "ct-local-dev-v1";
511
+ workspaceRef: string;
512
+ sourceDigest: string;
513
+ } | {
514
+ action: "status";
515
+ linearIssue: string;
516
+ leaseId: string;
517
+ assetId: string;
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;
532
+ } | {
533
+ action: "start";
534
+ linearIssue: string;
535
+ leaseId: string;
536
+ assetId: string;
537
+ operationId: string;
538
+ apply: boolean;
539
+ receiptFile: string;
540
+ profile: "ct-local-dev-v1";
541
+ workspaceRef: string;
542
+ sourceDigest: string;
543
+ planReceiptFile: string;
544
+ confirmAssetId?: string | undefined;
545
+ } | {
546
+ action: "sync";
547
+ linearIssue: string;
548
+ leaseId: string;
549
+ assetId: string;
550
+ operationId: string;
551
+ apply: boolean;
552
+ receiptFile: string;
553
+ profile: "ct-local-dev-v1";
554
+ workspaceRef: string;
555
+ sourceDigest: string;
556
+ planReceiptFile: string;
557
+ confirmAssetId?: string | undefined;
558
+ } | {
559
+ action: "stop";
560
+ linearIssue: string;
561
+ leaseId: string;
562
+ assetId: string;
563
+ operationId: string;
564
+ apply: boolean;
565
+ receiptFile: string;
566
+ planReceiptFile: string;
567
+ confirmAssetId?: string | undefined;
568
+ } | {
569
+ action: "cleanup";
570
+ linearIssue: string;
571
+ leaseId: string;
572
+ assetId: string;
573
+ operationId: string;
574
+ apply: boolean;
575
+ receiptFile: string;
576
+ planReceiptFile: string;
577
+ confirmAssetId?: string | undefined;
578
+ }, {
579
+ action: "doctor";
580
+ profile: "ct-local-dev-v1";
581
+ linearIssue?: string | undefined;
582
+ leaseId?: string | undefined;
583
+ assetId?: string | undefined;
584
+ } | {
585
+ action: "plan";
586
+ linearIssue: string;
587
+ leaseId: string;
588
+ assetId: string;
589
+ operationId: string;
590
+ receiptFile: string;
591
+ profile: "ct-local-dev-v1";
592
+ workspaceRef: string;
593
+ sourceDigest: string;
594
+ } | {
595
+ action: "status";
596
+ linearIssue: string;
597
+ leaseId: string;
598
+ assetId: string;
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;
613
+ } | {
614
+ action: "start";
615
+ linearIssue: string;
616
+ leaseId: string;
617
+ assetId: string;
618
+ operationId: string;
619
+ receiptFile: string;
620
+ profile: "ct-local-dev-v1";
621
+ workspaceRef: string;
622
+ sourceDigest: string;
623
+ planReceiptFile: string;
624
+ apply?: boolean | undefined;
625
+ confirmAssetId?: string | undefined;
626
+ } | {
627
+ action: "sync";
628
+ linearIssue: string;
629
+ leaseId: string;
630
+ assetId: string;
631
+ operationId: string;
632
+ receiptFile: string;
633
+ profile: "ct-local-dev-v1";
634
+ workspaceRef: string;
635
+ sourceDigest: string;
636
+ planReceiptFile: string;
637
+ apply?: boolean | undefined;
638
+ confirmAssetId?: string | undefined;
639
+ } | {
640
+ action: "stop";
641
+ linearIssue: string;
642
+ leaseId: string;
643
+ assetId: string;
644
+ operationId: string;
645
+ receiptFile: string;
646
+ planReceiptFile: string;
647
+ apply?: boolean | undefined;
648
+ confirmAssetId?: string | undefined;
649
+ } | {
650
+ action: "cleanup";
651
+ linearIssue: string;
652
+ leaseId: string;
653
+ assetId: string;
654
+ operationId: string;
655
+ receiptFile: string;
656
+ planReceiptFile: string;
657
+ apply?: boolean | undefined;
658
+ confirmAssetId?: string | undefined;
659
+ }>;
660
+ /**
661
+ * MCP SDK tools/list serializes only object schemas, not top-level refined
662
+ * unions. Expose the known typed fields for discovery, then apply the strict
663
+ * action union above in the handler before constructing any canonical argv.
664
+ * Do not put defaults here: that would inject disallowed fields into actions.
665
+ */
666
+ export declare const LabDevAdvertisedInputSchema: z.ZodObject<{
667
+ action: z.ZodEnum<["doctor", "plan", "prepare", "start", "status", "sync", "stop", "cleanup"]>;
668
+ assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
669
+ leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
670
+ linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
671
+ profile: z.ZodOptional<z.ZodLiteral<"ct-local-dev-v1">>;
672
+ workspaceRef: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
673
+ operationId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
674
+ sourceDigest: z.ZodOptional<z.ZodString>;
675
+ receiptFile: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
676
+ planReceiptFile: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
677
+ apply: z.ZodOptional<z.ZodBoolean>;
678
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
679
+ }, "strict", z.ZodTypeAny, {
680
+ action: "start" | "stop" | "status" | "doctor" | "plan" | "prepare" | "sync" | "cleanup";
681
+ linearIssue?: string | undefined;
682
+ leaseId?: string | undefined;
683
+ assetId?: string | undefined;
684
+ operationId?: string | undefined;
685
+ apply?: boolean | undefined;
686
+ receiptFile?: string | undefined;
687
+ confirmAssetId?: string | undefined;
688
+ profile?: "ct-local-dev-v1" | undefined;
689
+ workspaceRef?: string | undefined;
690
+ sourceDigest?: string | undefined;
691
+ planReceiptFile?: string | undefined;
692
+ }, {
693
+ action: "start" | "stop" | "status" | "doctor" | "plan" | "prepare" | "sync" | "cleanup";
694
+ linearIssue?: string | undefined;
695
+ leaseId?: string | undefined;
696
+ assetId?: string | undefined;
697
+ operationId?: string | undefined;
698
+ apply?: boolean | undefined;
699
+ receiptFile?: string | undefined;
700
+ confirmAssetId?: string | undefined;
701
+ profile?: "ct-local-dev-v1" | undefined;
702
+ workspaceRef?: string | undefined;
703
+ sourceDigest?: string | undefined;
704
+ planReceiptFile?: string | undefined;
705
+ }>;
706
+ export type LabDevInput = z.infer<typeof LabDevInputSchema>;
707
+ export type LabDevRawInput = z.input<typeof LabDevInputSchema>;
708
+ /** Build only the fixed, typed canonical argv for a validated request. */
709
+ export declare function buildLabDevCommand(value: LabDevInput): string[];
710
+ export declare function handleLabDev(rawArgs: LabDevRawInput | unknown, context: ToolContext): Promise<CallToolResult>;
711
+ //# sourceMappingURL=lab-dev.d.ts.map