@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.
Files changed (42) hide show
  1. package/README.md +97 -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 +107 -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 +607 -0
  27. package/dist/src/tools/lab-dev.d.ts.map +1 -0
  28. package/dist/src/tools/lab-dev.js +404 -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,607 @@
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<"start">;
71
+ }, "strict", z.ZodTypeAny, {
72
+ action: "start";
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: "start";
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.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
99
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
100
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
101
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
102
+ action: z.ZodLiteral<"status">;
103
+ }, "strict", z.ZodTypeAny, {
104
+ action: "status";
105
+ linearIssue: string;
106
+ leaseId: string;
107
+ assetId: string;
108
+ operationId?: string | undefined;
109
+ }, {
110
+ action: "status";
111
+ linearIssue: string;
112
+ leaseId: string;
113
+ assetId: string;
114
+ operationId?: string | undefined;
115
+ }>, z.ZodObject<{
116
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
117
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
118
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
119
+ sourceDigest: z.ZodString;
120
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
121
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
122
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
123
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
124
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
125
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
126
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
127
+ action: z.ZodLiteral<"sync">;
128
+ }, "strict", z.ZodTypeAny, {
129
+ action: "sync";
130
+ linearIssue: string;
131
+ leaseId: string;
132
+ assetId: string;
133
+ operationId: string;
134
+ apply: boolean;
135
+ receiptFile: string;
136
+ profile: "ct-local-dev-v1";
137
+ workspaceRef: string;
138
+ sourceDigest: string;
139
+ planReceiptFile: string;
140
+ confirmAssetId?: string | undefined;
141
+ }, {
142
+ action: "sync";
143
+ linearIssue: string;
144
+ leaseId: string;
145
+ assetId: string;
146
+ operationId: string;
147
+ receiptFile: string;
148
+ profile: "ct-local-dev-v1";
149
+ workspaceRef: string;
150
+ sourceDigest: string;
151
+ planReceiptFile: string;
152
+ apply?: boolean | undefined;
153
+ confirmAssetId?: string | undefined;
154
+ }>, z.ZodObject<{
155
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
156
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
157
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
158
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
159
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
160
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
161
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
162
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
163
+ action: z.ZodLiteral<"stop">;
164
+ }, "strict", z.ZodTypeAny, {
165
+ action: "stop";
166
+ linearIssue: string;
167
+ leaseId: string;
168
+ assetId: string;
169
+ operationId: string;
170
+ apply: boolean;
171
+ receiptFile: string;
172
+ planReceiptFile: string;
173
+ confirmAssetId?: string | undefined;
174
+ }, {
175
+ action: "stop";
176
+ linearIssue: string;
177
+ leaseId: string;
178
+ assetId: string;
179
+ operationId: string;
180
+ receiptFile: string;
181
+ planReceiptFile: string;
182
+ apply?: boolean | undefined;
183
+ confirmAssetId?: string | undefined;
184
+ }>, z.ZodObject<{
185
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
186
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
187
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
188
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
189
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
190
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
191
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
192
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
193
+ action: z.ZodLiteral<"cleanup">;
194
+ }, "strict", z.ZodTypeAny, {
195
+ action: "cleanup";
196
+ linearIssue: string;
197
+ leaseId: string;
198
+ assetId: string;
199
+ operationId: string;
200
+ apply: boolean;
201
+ receiptFile: string;
202
+ planReceiptFile: string;
203
+ confirmAssetId?: string | undefined;
204
+ }, {
205
+ action: "cleanup";
206
+ linearIssue: string;
207
+ leaseId: string;
208
+ assetId: string;
209
+ operationId: string;
210
+ receiptFile: string;
211
+ planReceiptFile: string;
212
+ apply?: boolean | undefined;
213
+ confirmAssetId?: string | undefined;
214
+ }>]>;
215
+ export declare const LabDevInputSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"action", [z.ZodObject<{
216
+ assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
217
+ leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
218
+ linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
219
+ action: z.ZodLiteral<"doctor">;
220
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
221
+ }, "strict", z.ZodTypeAny, {
222
+ action: "doctor";
223
+ profile: "ct-local-dev-v1";
224
+ linearIssue?: string | undefined;
225
+ leaseId?: string | undefined;
226
+ assetId?: string | undefined;
227
+ }, {
228
+ action: "doctor";
229
+ profile: "ct-local-dev-v1";
230
+ linearIssue?: string | undefined;
231
+ leaseId?: string | undefined;
232
+ assetId?: string | undefined;
233
+ }>, z.ZodObject<{
234
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
235
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
236
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
237
+ sourceDigest: z.ZodString;
238
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
239
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
240
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
241
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
242
+ action: z.ZodLiteral<"plan">;
243
+ }, "strict", z.ZodTypeAny, {
244
+ action: "plan";
245
+ linearIssue: string;
246
+ leaseId: string;
247
+ assetId: string;
248
+ operationId: string;
249
+ receiptFile: string;
250
+ profile: "ct-local-dev-v1";
251
+ workspaceRef: string;
252
+ sourceDigest: string;
253
+ }, {
254
+ action: "plan";
255
+ linearIssue: string;
256
+ leaseId: string;
257
+ assetId: string;
258
+ operationId: string;
259
+ receiptFile: string;
260
+ profile: "ct-local-dev-v1";
261
+ workspaceRef: string;
262
+ sourceDigest: string;
263
+ }>, z.ZodObject<{
264
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
265
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
266
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
267
+ sourceDigest: z.ZodString;
268
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
269
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
270
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
271
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
272
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
273
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
274
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
275
+ action: z.ZodLiteral<"start">;
276
+ }, "strict", z.ZodTypeAny, {
277
+ action: "start";
278
+ linearIssue: string;
279
+ leaseId: string;
280
+ assetId: string;
281
+ operationId: string;
282
+ apply: boolean;
283
+ receiptFile: string;
284
+ profile: "ct-local-dev-v1";
285
+ workspaceRef: string;
286
+ sourceDigest: string;
287
+ planReceiptFile: string;
288
+ confirmAssetId?: string | undefined;
289
+ }, {
290
+ action: "start";
291
+ linearIssue: string;
292
+ leaseId: string;
293
+ assetId: string;
294
+ operationId: string;
295
+ receiptFile: string;
296
+ profile: "ct-local-dev-v1";
297
+ workspaceRef: string;
298
+ sourceDigest: string;
299
+ planReceiptFile: string;
300
+ apply?: boolean | undefined;
301
+ confirmAssetId?: string | undefined;
302
+ }>, z.ZodObject<{
303
+ operationId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
304
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
305
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
306
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
307
+ action: z.ZodLiteral<"status">;
308
+ }, "strict", z.ZodTypeAny, {
309
+ action: "status";
310
+ linearIssue: string;
311
+ leaseId: string;
312
+ assetId: string;
313
+ operationId?: string | undefined;
314
+ }, {
315
+ action: "status";
316
+ linearIssue: string;
317
+ leaseId: string;
318
+ assetId: string;
319
+ operationId?: string | undefined;
320
+ }>, z.ZodObject<{
321
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
322
+ profile: z.ZodLiteral<"ct-local-dev-v1">;
323
+ workspaceRef: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
324
+ sourceDigest: z.ZodString;
325
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
326
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
327
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
328
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
329
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
330
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
331
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
332
+ action: z.ZodLiteral<"sync">;
333
+ }, "strict", z.ZodTypeAny, {
334
+ action: "sync";
335
+ linearIssue: string;
336
+ leaseId: string;
337
+ assetId: string;
338
+ operationId: string;
339
+ apply: boolean;
340
+ receiptFile: string;
341
+ profile: "ct-local-dev-v1";
342
+ workspaceRef: string;
343
+ sourceDigest: string;
344
+ planReceiptFile: string;
345
+ confirmAssetId?: string | undefined;
346
+ }, {
347
+ action: "sync";
348
+ linearIssue: string;
349
+ leaseId: string;
350
+ assetId: string;
351
+ operationId: string;
352
+ receiptFile: string;
353
+ profile: "ct-local-dev-v1";
354
+ workspaceRef: string;
355
+ sourceDigest: string;
356
+ planReceiptFile: string;
357
+ apply?: boolean | undefined;
358
+ confirmAssetId?: string | undefined;
359
+ }>, z.ZodObject<{
360
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
361
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
362
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
363
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
364
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
365
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
366
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
367
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
368
+ action: z.ZodLiteral<"stop">;
369
+ }, "strict", z.ZodTypeAny, {
370
+ action: "stop";
371
+ linearIssue: string;
372
+ leaseId: string;
373
+ assetId: string;
374
+ operationId: string;
375
+ apply: boolean;
376
+ receiptFile: string;
377
+ planReceiptFile: string;
378
+ confirmAssetId?: string | undefined;
379
+ }, {
380
+ action: "stop";
381
+ linearIssue: string;
382
+ leaseId: string;
383
+ assetId: string;
384
+ operationId: string;
385
+ receiptFile: string;
386
+ planReceiptFile: string;
387
+ apply?: boolean | undefined;
388
+ confirmAssetId?: string | undefined;
389
+ }>, z.ZodObject<{
390
+ operationId: z.ZodType<string, z.ZodTypeDef, string>;
391
+ planReceiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
392
+ receiptFile: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
393
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
394
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
395
+ assetId: z.ZodType<string, z.ZodTypeDef, string>;
396
+ leaseId: z.ZodType<string, z.ZodTypeDef, string>;
397
+ linearIssue: z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>;
398
+ action: z.ZodLiteral<"cleanup">;
399
+ }, "strict", z.ZodTypeAny, {
400
+ action: "cleanup";
401
+ linearIssue: string;
402
+ leaseId: string;
403
+ assetId: string;
404
+ operationId: string;
405
+ apply: boolean;
406
+ receiptFile: string;
407
+ planReceiptFile: string;
408
+ confirmAssetId?: string | undefined;
409
+ }, {
410
+ action: "cleanup";
411
+ linearIssue: string;
412
+ leaseId: string;
413
+ assetId: string;
414
+ operationId: string;
415
+ receiptFile: string;
416
+ planReceiptFile: string;
417
+ apply?: boolean | undefined;
418
+ confirmAssetId?: string | undefined;
419
+ }>]>, {
420
+ action: "doctor";
421
+ profile: "ct-local-dev-v1";
422
+ linearIssue?: string | undefined;
423
+ leaseId?: string | undefined;
424
+ assetId?: string | undefined;
425
+ } | {
426
+ action: "plan";
427
+ linearIssue: string;
428
+ leaseId: string;
429
+ assetId: string;
430
+ operationId: string;
431
+ receiptFile: string;
432
+ profile: "ct-local-dev-v1";
433
+ workspaceRef: string;
434
+ sourceDigest: string;
435
+ } | {
436
+ action: "status";
437
+ linearIssue: string;
438
+ leaseId: string;
439
+ assetId: string;
440
+ operationId?: string | undefined;
441
+ } | {
442
+ action: "start";
443
+ linearIssue: string;
444
+ leaseId: string;
445
+ assetId: string;
446
+ operationId: string;
447
+ apply: boolean;
448
+ receiptFile: string;
449
+ profile: "ct-local-dev-v1";
450
+ workspaceRef: string;
451
+ sourceDigest: string;
452
+ planReceiptFile: string;
453
+ confirmAssetId?: string | undefined;
454
+ } | {
455
+ action: "sync";
456
+ linearIssue: string;
457
+ leaseId: string;
458
+ assetId: string;
459
+ operationId: string;
460
+ apply: boolean;
461
+ receiptFile: string;
462
+ profile: "ct-local-dev-v1";
463
+ workspaceRef: string;
464
+ sourceDigest: string;
465
+ planReceiptFile: string;
466
+ confirmAssetId?: string | undefined;
467
+ } | {
468
+ action: "stop";
469
+ linearIssue: string;
470
+ leaseId: string;
471
+ assetId: string;
472
+ operationId: string;
473
+ apply: boolean;
474
+ receiptFile: string;
475
+ planReceiptFile: string;
476
+ confirmAssetId?: string | undefined;
477
+ } | {
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: "doctor";
489
+ profile: "ct-local-dev-v1";
490
+ linearIssue?: string | undefined;
491
+ leaseId?: string | undefined;
492
+ assetId?: string | undefined;
493
+ } | {
494
+ action: "plan";
495
+ linearIssue: string;
496
+ leaseId: string;
497
+ assetId: string;
498
+ operationId: string;
499
+ receiptFile: string;
500
+ profile: "ct-local-dev-v1";
501
+ workspaceRef: string;
502
+ sourceDigest: string;
503
+ } | {
504
+ action: "status";
505
+ linearIssue: string;
506
+ leaseId: string;
507
+ assetId: string;
508
+ operationId?: string | undefined;
509
+ } | {
510
+ action: "start";
511
+ linearIssue: string;
512
+ leaseId: string;
513
+ assetId: string;
514
+ operationId: string;
515
+ receiptFile: string;
516
+ profile: "ct-local-dev-v1";
517
+ workspaceRef: string;
518
+ sourceDigest: string;
519
+ planReceiptFile: string;
520
+ apply?: boolean | undefined;
521
+ confirmAssetId?: string | undefined;
522
+ } | {
523
+ action: "sync";
524
+ linearIssue: string;
525
+ leaseId: string;
526
+ assetId: string;
527
+ operationId: string;
528
+ receiptFile: string;
529
+ profile: "ct-local-dev-v1";
530
+ workspaceRef: string;
531
+ sourceDigest: string;
532
+ planReceiptFile: string;
533
+ apply?: boolean | undefined;
534
+ confirmAssetId?: string | undefined;
535
+ } | {
536
+ action: "stop";
537
+ linearIssue: string;
538
+ leaseId: string;
539
+ assetId: string;
540
+ operationId: string;
541
+ receiptFile: string;
542
+ planReceiptFile: string;
543
+ apply?: boolean | undefined;
544
+ confirmAssetId?: string | undefined;
545
+ } | {
546
+ action: "cleanup";
547
+ linearIssue: string;
548
+ leaseId: string;
549
+ assetId: string;
550
+ operationId: string;
551
+ receiptFile: string;
552
+ planReceiptFile: string;
553
+ apply?: boolean | undefined;
554
+ confirmAssetId?: string | undefined;
555
+ }>;
556
+ /**
557
+ * MCP SDK tools/list serializes only object schemas, not top-level refined
558
+ * unions. Expose the known typed fields for discovery, then apply the strict
559
+ * action union above in the handler before constructing any canonical argv.
560
+ * Do not put defaults here: that would inject disallowed fields into actions.
561
+ */
562
+ export declare const LabDevAdvertisedInputSchema: z.ZodObject<{
563
+ action: z.ZodEnum<["doctor", "plan", "start", "status", "sync", "stop", "cleanup"]>;
564
+ assetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
565
+ leaseId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
566
+ linearIssue: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
567
+ profile: z.ZodOptional<z.ZodLiteral<"ct-local-dev-v1">>;
568
+ workspaceRef: z.ZodOptional<z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>>;
569
+ operationId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
570
+ sourceDigest: z.ZodOptional<z.ZodString>;
571
+ receiptFile: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
572
+ planReceiptFile: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
573
+ apply: z.ZodOptional<z.ZodBoolean>;
574
+ confirmAssetId: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
575
+ }, "strict", z.ZodTypeAny, {
576
+ action: "start" | "stop" | "status" | "doctor" | "plan" | "sync" | "cleanup";
577
+ linearIssue?: string | undefined;
578
+ leaseId?: string | undefined;
579
+ assetId?: string | undefined;
580
+ operationId?: string | undefined;
581
+ apply?: boolean | undefined;
582
+ receiptFile?: string | undefined;
583
+ confirmAssetId?: string | undefined;
584
+ profile?: "ct-local-dev-v1" | undefined;
585
+ workspaceRef?: string | undefined;
586
+ sourceDigest?: string | undefined;
587
+ planReceiptFile?: string | undefined;
588
+ }, {
589
+ action: "start" | "stop" | "status" | "doctor" | "plan" | "sync" | "cleanup";
590
+ linearIssue?: string | undefined;
591
+ leaseId?: string | undefined;
592
+ assetId?: string | undefined;
593
+ operationId?: string | undefined;
594
+ apply?: boolean | undefined;
595
+ receiptFile?: string | undefined;
596
+ confirmAssetId?: string | undefined;
597
+ profile?: "ct-local-dev-v1" | undefined;
598
+ workspaceRef?: string | undefined;
599
+ sourceDigest?: string | undefined;
600
+ planReceiptFile?: string | undefined;
601
+ }>;
602
+ export type LabDevInput = z.infer<typeof LabDevInputSchema>;
603
+ export type LabDevRawInput = z.input<typeof LabDevInputSchema>;
604
+ /** Build only the fixed, typed canonical argv for a validated request. */
605
+ export declare function buildLabDevCommand(value: LabDevInput): string[];
606
+ export declare function handleLabDev(rawArgs: LabDevRawInput | unknown, context: ToolContext): Promise<CallToolResult>;
607
+ //# sourceMappingURL=lab-dev.d.ts.map
@@ -0,0 +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;AA6InD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD5B,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,CA2D/D;AA0KD,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,GAAG,OAAO,EACjC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAyBzB"}