@kynver-app/mcp-estimator 0.1.1

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 (52) hide show
  1. package/dist/index.d.ts +7 -0
  2. package/dist/index.js +11 -0
  3. package/dist/lib/kynver-client.d.ts +20 -0
  4. package/dist/lib/kynver-client.js +110 -0
  5. package/dist/lib/mcp-sse-server.d.ts +29 -0
  6. package/dist/lib/mcp-sse-server.js +191 -0
  7. package/dist/server.d.ts +6 -0
  8. package/dist/server.js +78 -0
  9. package/dist/sse.d.ts +1 -0
  10. package/dist/sse.js +9 -0
  11. package/dist/tools/catalog-tools.d.ts +387 -0
  12. package/dist/tools/catalog-tools.js +193 -0
  13. package/dist/tools/client-tools.d.ts +193 -0
  14. package/dist/tools/client-tools.js +105 -0
  15. package/dist/tools/company-tools.d.ts +163 -0
  16. package/dist/tools/company-tools.js +98 -0
  17. package/dist/tools/create-estimate.d.ts +107 -0
  18. package/dist/tools/create-estimate.js +64 -0
  19. package/dist/tools/estimate-tools.d.ts +531 -0
  20. package/dist/tools/estimate-tools.js +259 -0
  21. package/dist/tools/estimator-chat.d.ts +25 -0
  22. package/dist/tools/estimator-chat.js +15 -0
  23. package/dist/tools/get-estimate.d.ts +19 -0
  24. package/dist/tools/get-estimate.js +14 -0
  25. package/dist/tools/list-catalog.d.ts +25 -0
  26. package/dist/tools/list-catalog.js +22 -0
  27. package/dist/tools/photo-tools.d.ts +77 -0
  28. package/dist/tools/photo-tools.js +51 -0
  29. package/dist/tools/stats-pdf-tools.d.ts +113 -0
  30. package/dist/tools/stats-pdf-tools.js +73 -0
  31. package/dist/tools/template-tools.d.ts +96 -0
  32. package/dist/tools/template-tools.js +70 -0
  33. package/dist/tools/version-tools.d.ts +46 -0
  34. package/dist/tools/version-tools.js +33 -0
  35. package/dist/tools/vision-tools.d.ts +52 -0
  36. package/dist/tools/vision-tools.js +42 -0
  37. package/package.json +27 -0
  38. package/src/index.ts +13 -0
  39. package/src/lib/kynver-client.ts +136 -0
  40. package/src/lib/mcp-sse-server.ts +249 -0
  41. package/src/server.ts +101 -0
  42. package/src/sse.ts +10 -0
  43. package/src/tools/catalog-tools.ts +217 -0
  44. package/src/tools/client-tools.ts +114 -0
  45. package/src/tools/company-tools.ts +108 -0
  46. package/src/tools/estimate-tools.ts +281 -0
  47. package/src/tools/photo-tools.ts +60 -0
  48. package/src/tools/stats-pdf-tools.ts +80 -0
  49. package/src/tools/template-tools.ts +80 -0
  50. package/src/tools/version-tools.ts +39 -0
  51. package/src/tools/vision-tools.ts +48 -0
  52. package/tsconfig.json +15 -0
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ import * as client from "../lib/kynver-client.js";
3
+ const lineItemSchema = z.object({
4
+ serviceCode: z.string(),
5
+ materialType: z.string().optional(),
6
+ quantity: z.number(),
7
+ });
8
+ const inputSchema = z.object({
9
+ type: z.enum(["replacement", "repair_service"]),
10
+ projectName: z.string(),
11
+ roofMaterial: z.string().optional(),
12
+ // For replacement
13
+ footprintSqFt: z.number().optional(),
14
+ pitch: z.string().optional(),
15
+ layers: z.number().optional(),
16
+ ridgeLengthFt: z.number().optional(),
17
+ eavesFt: z.number().optional(),
18
+ // For repair
19
+ lineItems: z.array(lineItemSchema).optional(),
20
+ });
21
+ export const name = "estimator_create_estimate";
22
+ export const description = "Create a roofing estimate. For replacement: provide dimensions and material. For repair: provide service items with quantities.";
23
+ export const inputSchemaZod = inputSchema;
24
+ export async function execute(args) {
25
+ if (!client.hasApiKey())
26
+ return client.noApiKeyMessage();
27
+ // Build a descriptive message for the estimator agent
28
+ let message;
29
+ if (args.type === "replacement") {
30
+ const parts = [
31
+ `Create a roof replacement estimate for project "${args.projectName}".`,
32
+ ];
33
+ if (args.roofMaterial)
34
+ parts.push(`Material: ${args.roofMaterial}.`);
35
+ if (args.footprintSqFt != null)
36
+ parts.push(`Footprint: ${args.footprintSqFt} sq ft.`);
37
+ if (args.pitch)
38
+ parts.push(`Pitch: ${args.pitch}.`);
39
+ if (args.layers != null)
40
+ parts.push(`Layers: ${args.layers}.`);
41
+ if (args.ridgeLengthFt != null)
42
+ parts.push(`Ridge length: ${args.ridgeLengthFt} ft.`);
43
+ if (args.eavesFt != null)
44
+ parts.push(`Eaves: ${args.eavesFt} ft.`);
45
+ message = parts.join(" ");
46
+ }
47
+ else {
48
+ const parts = [
49
+ `Create a roof repair/service estimate for project "${args.projectName}".`,
50
+ ];
51
+ if (args.roofMaterial)
52
+ parts.push(`Material: ${args.roofMaterial}.`);
53
+ if (args.lineItems && args.lineItems.length > 0) {
54
+ const itemDescriptions = args.lineItems.map((item) => {
55
+ const mat = item.materialType ? ` (${item.materialType})` : "";
56
+ return `${item.serviceCode}${mat} x${item.quantity}`;
57
+ });
58
+ parts.push(`Line items: ${itemDescriptions.join(", ")}.`);
59
+ }
60
+ message = parts.join(" ");
61
+ }
62
+ const data = await client.post("/v1/agents/kynver-estimator/chat", { message });
63
+ return JSON.stringify(data);
64
+ }
@@ -0,0 +1,531 @@
1
+ import { z } from "zod";
2
+ declare const createReplacementSchema: z.ZodObject<{
3
+ projectName: z.ZodString;
4
+ roofMaterial: z.ZodString;
5
+ footprintSqFt: z.ZodOptional<z.ZodNumber>;
6
+ roofAreaSqFt: z.ZodOptional<z.ZodNumber>;
7
+ pitch: z.ZodOptional<z.ZodString>;
8
+ layers: z.ZodOptional<z.ZodNumber>;
9
+ ridgeLengthFt: z.ZodNumber;
10
+ hipLengthFt: z.ZodOptional<z.ZodNumber>;
11
+ valleyLengthFt: z.ZodOptional<z.ZodNumber>;
12
+ eavesFt: z.ZodNumber;
13
+ rakeFt: z.ZodOptional<z.ZodNumber>;
14
+ wastePercent: z.ZodOptional<z.ZodNumber>;
15
+ clientId: z.ZodOptional<z.ZodString>;
16
+ companyId: z.ZodOptional<z.ZodString>;
17
+ notes: z.ZodOptional<z.ZodString>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ projectName: string;
20
+ roofMaterial: string;
21
+ ridgeLengthFt: number;
22
+ eavesFt: number;
23
+ notes?: string | undefined;
24
+ footprintSqFt?: number | undefined;
25
+ roofAreaSqFt?: number | undefined;
26
+ pitch?: string | undefined;
27
+ layers?: number | undefined;
28
+ hipLengthFt?: number | undefined;
29
+ valleyLengthFt?: number | undefined;
30
+ rakeFt?: number | undefined;
31
+ wastePercent?: number | undefined;
32
+ clientId?: string | undefined;
33
+ companyId?: string | undefined;
34
+ }, {
35
+ projectName: string;
36
+ roofMaterial: string;
37
+ ridgeLengthFt: number;
38
+ eavesFt: number;
39
+ notes?: string | undefined;
40
+ footprintSqFt?: number | undefined;
41
+ roofAreaSqFt?: number | undefined;
42
+ pitch?: string | undefined;
43
+ layers?: number | undefined;
44
+ hipLengthFt?: number | undefined;
45
+ valleyLengthFt?: number | undefined;
46
+ rakeFt?: number | undefined;
47
+ wastePercent?: number | undefined;
48
+ clientId?: string | undefined;
49
+ companyId?: string | undefined;
50
+ }>;
51
+ export declare const createReplacement: {
52
+ name: string;
53
+ description: string;
54
+ inputSchemaZod: z.ZodObject<{
55
+ projectName: z.ZodString;
56
+ roofMaterial: z.ZodString;
57
+ footprintSqFt: z.ZodOptional<z.ZodNumber>;
58
+ roofAreaSqFt: z.ZodOptional<z.ZodNumber>;
59
+ pitch: z.ZodOptional<z.ZodString>;
60
+ layers: z.ZodOptional<z.ZodNumber>;
61
+ ridgeLengthFt: z.ZodNumber;
62
+ hipLengthFt: z.ZodOptional<z.ZodNumber>;
63
+ valleyLengthFt: z.ZodOptional<z.ZodNumber>;
64
+ eavesFt: z.ZodNumber;
65
+ rakeFt: z.ZodOptional<z.ZodNumber>;
66
+ wastePercent: z.ZodOptional<z.ZodNumber>;
67
+ clientId: z.ZodOptional<z.ZodString>;
68
+ companyId: z.ZodOptional<z.ZodString>;
69
+ notes: z.ZodOptional<z.ZodString>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ projectName: string;
72
+ roofMaterial: string;
73
+ ridgeLengthFt: number;
74
+ eavesFt: number;
75
+ notes?: string | undefined;
76
+ footprintSqFt?: number | undefined;
77
+ roofAreaSqFt?: number | undefined;
78
+ pitch?: string | undefined;
79
+ layers?: number | undefined;
80
+ hipLengthFt?: number | undefined;
81
+ valleyLengthFt?: number | undefined;
82
+ rakeFt?: number | undefined;
83
+ wastePercent?: number | undefined;
84
+ clientId?: string | undefined;
85
+ companyId?: string | undefined;
86
+ }, {
87
+ projectName: string;
88
+ roofMaterial: string;
89
+ ridgeLengthFt: number;
90
+ eavesFt: number;
91
+ notes?: string | undefined;
92
+ footprintSqFt?: number | undefined;
93
+ roofAreaSqFt?: number | undefined;
94
+ pitch?: string | undefined;
95
+ layers?: number | undefined;
96
+ hipLengthFt?: number | undefined;
97
+ valleyLengthFt?: number | undefined;
98
+ rakeFt?: number | undefined;
99
+ wastePercent?: number | undefined;
100
+ clientId?: string | undefined;
101
+ companyId?: string | undefined;
102
+ }>;
103
+ execute: (args: z.infer<typeof createReplacementSchema>) => Promise<string>;
104
+ };
105
+ declare const createRepairSchema: z.ZodObject<{
106
+ projectName: z.ZodString;
107
+ roofMaterial: z.ZodOptional<z.ZodString>;
108
+ lineItems: z.ZodArray<z.ZodObject<{
109
+ serviceCode: z.ZodString;
110
+ materialType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
+ quantity: z.ZodNumber;
112
+ notes: z.ZodOptional<z.ZodString>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ serviceCode: string;
115
+ quantity: number;
116
+ materialType?: string | null | undefined;
117
+ notes?: string | undefined;
118
+ }, {
119
+ serviceCode: string;
120
+ quantity: number;
121
+ materialType?: string | null | undefined;
122
+ notes?: string | undefined;
123
+ }>, "many">;
124
+ clientId: z.ZodOptional<z.ZodString>;
125
+ companyId: z.ZodOptional<z.ZodString>;
126
+ notes: z.ZodOptional<z.ZodString>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ projectName: string;
129
+ lineItems: {
130
+ serviceCode: string;
131
+ quantity: number;
132
+ materialType?: string | null | undefined;
133
+ notes?: string | undefined;
134
+ }[];
135
+ notes?: string | undefined;
136
+ roofMaterial?: string | undefined;
137
+ clientId?: string | undefined;
138
+ companyId?: string | undefined;
139
+ }, {
140
+ projectName: string;
141
+ lineItems: {
142
+ serviceCode: string;
143
+ quantity: number;
144
+ materialType?: string | null | undefined;
145
+ notes?: string | undefined;
146
+ }[];
147
+ notes?: string | undefined;
148
+ roofMaterial?: string | undefined;
149
+ clientId?: string | undefined;
150
+ companyId?: string | undefined;
151
+ }>;
152
+ export declare const createRepair: {
153
+ name: string;
154
+ description: string;
155
+ inputSchemaZod: z.ZodObject<{
156
+ projectName: z.ZodString;
157
+ roofMaterial: z.ZodOptional<z.ZodString>;
158
+ lineItems: z.ZodArray<z.ZodObject<{
159
+ serviceCode: z.ZodString;
160
+ materialType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
161
+ quantity: z.ZodNumber;
162
+ notes: z.ZodOptional<z.ZodString>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ serviceCode: string;
165
+ quantity: number;
166
+ materialType?: string | null | undefined;
167
+ notes?: string | undefined;
168
+ }, {
169
+ serviceCode: string;
170
+ quantity: number;
171
+ materialType?: string | null | undefined;
172
+ notes?: string | undefined;
173
+ }>, "many">;
174
+ clientId: z.ZodOptional<z.ZodString>;
175
+ companyId: z.ZodOptional<z.ZodString>;
176
+ notes: z.ZodOptional<z.ZodString>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ projectName: string;
179
+ lineItems: {
180
+ serviceCode: string;
181
+ quantity: number;
182
+ materialType?: string | null | undefined;
183
+ notes?: string | undefined;
184
+ }[];
185
+ notes?: string | undefined;
186
+ roofMaterial?: string | undefined;
187
+ clientId?: string | undefined;
188
+ companyId?: string | undefined;
189
+ }, {
190
+ projectName: string;
191
+ lineItems: {
192
+ serviceCode: string;
193
+ quantity: number;
194
+ materialType?: string | null | undefined;
195
+ notes?: string | undefined;
196
+ }[];
197
+ notes?: string | undefined;
198
+ roofMaterial?: string | undefined;
199
+ clientId?: string | undefined;
200
+ companyId?: string | undefined;
201
+ }>;
202
+ execute: (args: z.infer<typeof createRepairSchema>) => Promise<string>;
203
+ };
204
+ declare const getEstimateSchema: z.ZodObject<{
205
+ id: z.ZodString;
206
+ }, "strip", z.ZodTypeAny, {
207
+ id: string;
208
+ }, {
209
+ id: string;
210
+ }>;
211
+ export declare const getEstimate: {
212
+ name: string;
213
+ description: string;
214
+ inputSchemaZod: z.ZodObject<{
215
+ id: z.ZodString;
216
+ }, "strip", z.ZodTypeAny, {
217
+ id: string;
218
+ }, {
219
+ id: string;
220
+ }>;
221
+ execute: (args: z.infer<typeof getEstimateSchema>) => Promise<string>;
222
+ };
223
+ declare const listEstimatesSchema: z.ZodObject<{
224
+ status: z.ZodOptional<z.ZodString>;
225
+ type: z.ZodOptional<z.ZodString>;
226
+ clientId: z.ZodOptional<z.ZodString>;
227
+ companyId: z.ZodOptional<z.ZodString>;
228
+ from: z.ZodOptional<z.ZodString>;
229
+ to: z.ZodOptional<z.ZodString>;
230
+ limit: z.ZodOptional<z.ZodNumber>;
231
+ cursor: z.ZodOptional<z.ZodString>;
232
+ }, "strip", z.ZodTypeAny, {
233
+ type?: string | undefined;
234
+ status?: string | undefined;
235
+ limit?: number | undefined;
236
+ cursor?: string | undefined;
237
+ clientId?: string | undefined;
238
+ companyId?: string | undefined;
239
+ from?: string | undefined;
240
+ to?: string | undefined;
241
+ }, {
242
+ type?: string | undefined;
243
+ status?: string | undefined;
244
+ limit?: number | undefined;
245
+ cursor?: string | undefined;
246
+ clientId?: string | undefined;
247
+ companyId?: string | undefined;
248
+ from?: string | undefined;
249
+ to?: string | undefined;
250
+ }>;
251
+ export declare const listEstimates: {
252
+ name: string;
253
+ description: string;
254
+ inputSchemaZod: z.ZodObject<{
255
+ status: z.ZodOptional<z.ZodString>;
256
+ type: z.ZodOptional<z.ZodString>;
257
+ clientId: z.ZodOptional<z.ZodString>;
258
+ companyId: z.ZodOptional<z.ZodString>;
259
+ from: z.ZodOptional<z.ZodString>;
260
+ to: z.ZodOptional<z.ZodString>;
261
+ limit: z.ZodOptional<z.ZodNumber>;
262
+ cursor: z.ZodOptional<z.ZodString>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ type?: string | undefined;
265
+ status?: string | undefined;
266
+ limit?: number | undefined;
267
+ cursor?: string | undefined;
268
+ clientId?: string | undefined;
269
+ companyId?: string | undefined;
270
+ from?: string | undefined;
271
+ to?: string | undefined;
272
+ }, {
273
+ type?: string | undefined;
274
+ status?: string | undefined;
275
+ limit?: number | undefined;
276
+ cursor?: string | undefined;
277
+ clientId?: string | undefined;
278
+ companyId?: string | undefined;
279
+ from?: string | undefined;
280
+ to?: string | undefined;
281
+ }>;
282
+ execute: (args: z.infer<typeof listEstimatesSchema>) => Promise<string>;
283
+ };
284
+ declare const addLineItemSchema: z.ZodObject<{
285
+ estimateId: z.ZodString;
286
+ serviceCode: z.ZodString;
287
+ materialType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
+ quantity: z.ZodNumber;
289
+ notes: z.ZodOptional<z.ZodString>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ serviceCode: string;
292
+ quantity: number;
293
+ estimateId: string;
294
+ materialType?: string | null | undefined;
295
+ notes?: string | undefined;
296
+ }, {
297
+ serviceCode: string;
298
+ quantity: number;
299
+ estimateId: string;
300
+ materialType?: string | null | undefined;
301
+ notes?: string | undefined;
302
+ }>;
303
+ export declare const addLineItem: {
304
+ name: string;
305
+ description: string;
306
+ inputSchemaZod: z.ZodObject<{
307
+ estimateId: z.ZodString;
308
+ serviceCode: z.ZodString;
309
+ materialType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
310
+ quantity: z.ZodNumber;
311
+ notes: z.ZodOptional<z.ZodString>;
312
+ }, "strip", z.ZodTypeAny, {
313
+ serviceCode: string;
314
+ quantity: number;
315
+ estimateId: string;
316
+ materialType?: string | null | undefined;
317
+ notes?: string | undefined;
318
+ }, {
319
+ serviceCode: string;
320
+ quantity: number;
321
+ estimateId: string;
322
+ materialType?: string | null | undefined;
323
+ notes?: string | undefined;
324
+ }>;
325
+ execute: (args: z.infer<typeof addLineItemSchema>) => Promise<string>;
326
+ };
327
+ declare const removeLineItemSchema: z.ZodObject<{
328
+ estimateId: z.ZodString;
329
+ lineItemId: z.ZodString;
330
+ }, "strip", z.ZodTypeAny, {
331
+ estimateId: string;
332
+ lineItemId: string;
333
+ }, {
334
+ estimateId: string;
335
+ lineItemId: string;
336
+ }>;
337
+ export declare const removeLineItem: {
338
+ name: string;
339
+ description: string;
340
+ inputSchemaZod: z.ZodObject<{
341
+ estimateId: z.ZodString;
342
+ lineItemId: z.ZodString;
343
+ }, "strip", z.ZodTypeAny, {
344
+ estimateId: string;
345
+ lineItemId: string;
346
+ }, {
347
+ estimateId: string;
348
+ lineItemId: string;
349
+ }>;
350
+ execute: (args: z.infer<typeof removeLineItemSchema>) => Promise<string>;
351
+ };
352
+ declare const updateLineItemSchema: z.ZodObject<{
353
+ estimateId: z.ZodString;
354
+ lineItemId: z.ZodString;
355
+ quantity: z.ZodOptional<z.ZodNumber>;
356
+ materialCost: z.ZodOptional<z.ZodNumber>;
357
+ laborCost: z.ZodOptional<z.ZodNumber>;
358
+ notes: z.ZodOptional<z.ZodString>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ estimateId: string;
361
+ lineItemId: string;
362
+ materialCost?: number | undefined;
363
+ laborCost?: number | undefined;
364
+ notes?: string | undefined;
365
+ quantity?: number | undefined;
366
+ }, {
367
+ estimateId: string;
368
+ lineItemId: string;
369
+ materialCost?: number | undefined;
370
+ laborCost?: number | undefined;
371
+ notes?: string | undefined;
372
+ quantity?: number | undefined;
373
+ }>;
374
+ export declare const updateLineItem: {
375
+ name: string;
376
+ description: string;
377
+ inputSchemaZod: z.ZodObject<{
378
+ estimateId: z.ZodString;
379
+ lineItemId: z.ZodString;
380
+ quantity: z.ZodOptional<z.ZodNumber>;
381
+ materialCost: z.ZodOptional<z.ZodNumber>;
382
+ laborCost: z.ZodOptional<z.ZodNumber>;
383
+ notes: z.ZodOptional<z.ZodString>;
384
+ }, "strip", z.ZodTypeAny, {
385
+ estimateId: string;
386
+ lineItemId: string;
387
+ materialCost?: number | undefined;
388
+ laborCost?: number | undefined;
389
+ notes?: string | undefined;
390
+ quantity?: number | undefined;
391
+ }, {
392
+ estimateId: string;
393
+ lineItemId: string;
394
+ materialCost?: number | undefined;
395
+ laborCost?: number | undefined;
396
+ notes?: string | undefined;
397
+ quantity?: number | undefined;
398
+ }>;
399
+ execute: (args: z.infer<typeof updateLineItemSchema>) => Promise<string>;
400
+ };
401
+ declare const adjustToTargetSchema: z.ZodObject<{
402
+ estimateId: z.ZodString;
403
+ targetTotal: z.ZodNumber;
404
+ strategy: z.ZodOptional<z.ZodEnum<["uniform", "labor_only", "material_only"]>>;
405
+ }, "strip", z.ZodTypeAny, {
406
+ estimateId: string;
407
+ targetTotal: number;
408
+ strategy?: "uniform" | "labor_only" | "material_only" | undefined;
409
+ }, {
410
+ estimateId: string;
411
+ targetTotal: number;
412
+ strategy?: "uniform" | "labor_only" | "material_only" | undefined;
413
+ }>;
414
+ export declare const adjustToTarget: {
415
+ name: string;
416
+ description: string;
417
+ inputSchemaZod: z.ZodObject<{
418
+ estimateId: z.ZodString;
419
+ targetTotal: z.ZodNumber;
420
+ strategy: z.ZodOptional<z.ZodEnum<["uniform", "labor_only", "material_only"]>>;
421
+ }, "strip", z.ZodTypeAny, {
422
+ estimateId: string;
423
+ targetTotal: number;
424
+ strategy?: "uniform" | "labor_only" | "material_only" | undefined;
425
+ }, {
426
+ estimateId: string;
427
+ targetTotal: number;
428
+ strategy?: "uniform" | "labor_only" | "material_only" | undefined;
429
+ }>;
430
+ execute: (args: z.infer<typeof adjustToTargetSchema>) => Promise<string>;
431
+ };
432
+ declare const updateEstimateSchema: z.ZodObject<{
433
+ estimateId: z.ZodString;
434
+ projectName: z.ZodOptional<z.ZodString>;
435
+ status: z.ZodOptional<z.ZodString>;
436
+ clientId: z.ZodOptional<z.ZodString>;
437
+ companyId: z.ZodOptional<z.ZodString>;
438
+ notes: z.ZodOptional<z.ZodString>;
439
+ siteAddress: z.ZodOptional<z.ZodString>;
440
+ }, "strip", z.ZodTypeAny, {
441
+ estimateId: string;
442
+ status?: string | undefined;
443
+ notes?: string | undefined;
444
+ projectName?: string | undefined;
445
+ clientId?: string | undefined;
446
+ companyId?: string | undefined;
447
+ siteAddress?: string | undefined;
448
+ }, {
449
+ estimateId: string;
450
+ status?: string | undefined;
451
+ notes?: string | undefined;
452
+ projectName?: string | undefined;
453
+ clientId?: string | undefined;
454
+ companyId?: string | undefined;
455
+ siteAddress?: string | undefined;
456
+ }>;
457
+ export declare const updateEstimate: {
458
+ name: string;
459
+ description: string;
460
+ inputSchemaZod: z.ZodObject<{
461
+ estimateId: z.ZodString;
462
+ projectName: z.ZodOptional<z.ZodString>;
463
+ status: z.ZodOptional<z.ZodString>;
464
+ clientId: z.ZodOptional<z.ZodString>;
465
+ companyId: z.ZodOptional<z.ZodString>;
466
+ notes: z.ZodOptional<z.ZodString>;
467
+ siteAddress: z.ZodOptional<z.ZodString>;
468
+ }, "strip", z.ZodTypeAny, {
469
+ estimateId: string;
470
+ status?: string | undefined;
471
+ notes?: string | undefined;
472
+ projectName?: string | undefined;
473
+ clientId?: string | undefined;
474
+ companyId?: string | undefined;
475
+ siteAddress?: string | undefined;
476
+ }, {
477
+ estimateId: string;
478
+ status?: string | undefined;
479
+ notes?: string | undefined;
480
+ projectName?: string | undefined;
481
+ clientId?: string | undefined;
482
+ companyId?: string | undefined;
483
+ siteAddress?: string | undefined;
484
+ }>;
485
+ execute: (args: z.infer<typeof updateEstimateSchema>) => Promise<string>;
486
+ };
487
+ declare const deleteEstimateSchema: z.ZodObject<{
488
+ estimateId: z.ZodString;
489
+ }, "strip", z.ZodTypeAny, {
490
+ estimateId: string;
491
+ }, {
492
+ estimateId: string;
493
+ }>;
494
+ export declare const deleteEstimate: {
495
+ name: string;
496
+ description: string;
497
+ inputSchemaZod: z.ZodObject<{
498
+ estimateId: z.ZodString;
499
+ }, "strip", z.ZodTypeAny, {
500
+ estimateId: string;
501
+ }, {
502
+ estimateId: string;
503
+ }>;
504
+ execute: (args: z.infer<typeof deleteEstimateSchema>) => Promise<string>;
505
+ };
506
+ declare const duplicateEstimateSchema: z.ZodObject<{
507
+ estimateId: z.ZodString;
508
+ projectName: z.ZodOptional<z.ZodString>;
509
+ }, "strip", z.ZodTypeAny, {
510
+ estimateId: string;
511
+ projectName?: string | undefined;
512
+ }, {
513
+ estimateId: string;
514
+ projectName?: string | undefined;
515
+ }>;
516
+ export declare const duplicateEstimate: {
517
+ name: string;
518
+ description: string;
519
+ inputSchemaZod: z.ZodObject<{
520
+ estimateId: z.ZodString;
521
+ projectName: z.ZodOptional<z.ZodString>;
522
+ }, "strip", z.ZodTypeAny, {
523
+ estimateId: string;
524
+ projectName?: string | undefined;
525
+ }, {
526
+ estimateId: string;
527
+ projectName?: string | undefined;
528
+ }>;
529
+ execute: (args: z.infer<typeof duplicateEstimateSchema>) => Promise<string>;
530
+ };
531
+ export {};