@mentoringo/vantage-ops-mcp 1.3.0

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.
@@ -0,0 +1,397 @@
1
+ /**
2
+ * Output schemas for MCP tool results — feeds `outputSchema` on
3
+ * `server.registerTool(...)` and the matching `structuredContent` payload
4
+ * the handler returns.
5
+ *
6
+ * Why permissive entity shapes (`.passthrough()`)
7
+ * ------------------------------------------------
8
+ * DynamoDB items in Vantage are append-only in spirit — fields get added
9
+ * over time and the read surface returns whatever the unmarshaller produces.
10
+ * Pinning every property would make the client fragile to backend changes.
11
+ * We declare the fields tools actually reason about (so Claude can rely on
12
+ * them) and let the rest pass through.
13
+ *
14
+ * Why `.nullish()` on declared fields
15
+ * -----------------------------------
16
+ * DynamoDB unmarshalling returns `null` for fields that exist on the item
17
+ * but were explicitly set to null (e.g. an opportunity with no
18
+ * primary_contact_id yet). Plain `.optional()` only accepts `undefined`,
19
+ * so the structured-content validator rejects real API payloads. `.nullish()`
20
+ * is the shorthand for `.nullable().optional()` and accepts both.
21
+ *
22
+ * Why builder functions
23
+ * ---------------------
24
+ * `outputSchema` on registerTool takes a ZodRawShape (object of zod schemas).
25
+ * Search/list tools share a common wrapper — items + count + summary —
26
+ * parameterised by the item schema. The builders produce that shape so
27
+ * each tool only has to name the entity type it returns.
28
+ */
29
+ import { z } from "zod";
30
+ export declare const companyEntity: z.ZodObject<{
31
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ tier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
36
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ lead_score: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ website: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
46
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
47
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
49
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ tier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
53
+ lead_score: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
54
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ website: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
61
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
62
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
63
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
64
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
+ tier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
66
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
67
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
68
+ lead_score: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
69
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
70
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
71
+ website: z.ZodOptional<z.ZodNullable<z.ZodString>>;
72
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
73
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
74
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
75
+ }, z.ZodTypeAny, "passthrough">>;
76
+ export declare const contactEntity: z.ZodObject<{
77
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
81
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
82
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
85
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
86
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
87
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
88
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
89
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
90
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
91
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
92
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
93
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
94
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
95
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
96
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
98
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
99
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
102
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
103
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
104
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
105
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
106
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
109
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
110
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
112
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
113
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
114
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
115
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
116
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
117
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
118
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
120
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
121
+ linkedin_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
122
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
123
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
124
+ }, z.ZodTypeAny, "passthrough">>;
125
+ export declare const opportunityEntity: z.ZodObject<{
126
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
127
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
128
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
129
+ stage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
131
+ deal_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
132
+ currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
133
+ probability: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
134
+ weighted_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
135
+ expected_close_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
136
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
137
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
138
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
139
+ owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
140
+ owner_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
141
+ primary_contact_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
143
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
144
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
145
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
146
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
149
+ stage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
150
+ value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
151
+ deal_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
152
+ currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
153
+ probability: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
154
+ weighted_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
155
+ expected_close_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
156
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
157
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
158
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
159
+ owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
160
+ owner_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
161
+ primary_contact_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
162
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
163
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
166
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
167
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
+ stage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
+ value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
171
+ deal_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
172
+ currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
173
+ probability: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
174
+ weighted_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
175
+ expected_close_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
176
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
177
+ company_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
178
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
179
+ owner_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
180
+ owner_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
181
+ primary_contact_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
182
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
183
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
184
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
185
+ }, z.ZodTypeAny, "passthrough">>;
186
+ export declare const campaignEntity: z.ZodObject<{
187
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
188
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
190
+ campaign_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
191
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
192
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
193
+ recipient_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
194
+ total_recipients: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
195
+ goal_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
196
+ goal_target: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
197
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
198
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
199
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
200
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
201
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
202
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
203
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
204
+ campaign_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
205
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
206
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
207
+ recipient_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
208
+ total_recipients: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
209
+ goal_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
210
+ goal_target: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
211
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
212
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
213
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
215
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
216
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
217
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
218
+ campaign_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
+ vertical: z.ZodOptional<z.ZodNullable<z.ZodString>>;
220
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
221
+ recipient_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
222
+ total_recipients: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
223
+ goal_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
224
+ goal_target: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
225
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
226
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
227
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
228
+ }, z.ZodTypeAny, "passthrough">>;
229
+ export declare const clientEntity: z.ZodObject<{
230
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
231
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
232
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
233
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
234
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
235
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
236
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
237
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
238
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
239
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
240
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
241
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
242
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
243
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
244
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
245
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
246
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
247
+ status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
248
+ industry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
249
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
250
+ }, z.ZodTypeAny, "passthrough">>;
251
+ export declare const campaignTargetEntity: z.ZodObject<{
252
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
253
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
254
+ priority: z.ZodOptional<z.ZodNullable<z.ZodString>>;
255
+ added_by: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
+ added_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
257
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
258
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
259
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
260
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
261
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
262
+ priority: z.ZodOptional<z.ZodNullable<z.ZodString>>;
263
+ added_by: z.ZodOptional<z.ZodNullable<z.ZodString>>;
264
+ added_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
265
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
266
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
267
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
268
+ campaign_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
269
+ company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
270
+ priority: z.ZodOptional<z.ZodNullable<z.ZodString>>;
271
+ added_by: z.ZodOptional<z.ZodNullable<z.ZodString>>;
272
+ added_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
273
+ created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
274
+ updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
275
+ }, z.ZodTypeAny, "passthrough">>;
276
+ export declare const userEntity: z.ZodObject<{
277
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
278
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
279
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
280
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
281
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
282
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
283
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
284
+ client_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
285
+ client_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
286
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
287
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
289
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
290
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
291
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
292
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
293
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
294
+ client_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
295
+ client_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
296
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
297
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
298
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
299
+ first_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
300
+ last_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
301
+ email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
302
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
303
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
304
+ client_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
305
+ client_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
306
+ }, z.ZodTypeAny, "passthrough">>;
307
+ export declare const genericRecord: z.ZodRecord<z.ZodString, z.ZodUnknown>;
308
+ /**
309
+ * Wrapper for list/search tools. `summary` is the human-readable text the
310
+ * `content` block already shows; carrying it in structuredContent too lets
311
+ * downstream callers reason about both the typed items and the rendered
312
+ * description without re-parsing.
313
+ */
314
+ export declare function listOutput(itemSchema: z.ZodTypeAny): {
315
+ readonly items: z.ZodArray<z.ZodTypeAny, "many">;
316
+ readonly count: z.ZodNumber;
317
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
318
+ readonly summary: z.ZodString;
319
+ };
320
+ /**
321
+ * Wrapper for single-entity get tools. `found` distinguishes "exists, here
322
+ * it is" from "not found" without forcing the caller to inspect `item` for
323
+ * null vs object.
324
+ */
325
+ export declare function getOutput(itemSchema: z.ZodTypeAny): {
326
+ readonly found: z.ZodBoolean;
327
+ readonly item: z.ZodOptional<z.ZodTypeAny>;
328
+ readonly summary: z.ZodString;
329
+ };
330
+ /**
331
+ * Aggregate stats — counts grouped by one or more facets. Every tool that
332
+ * uses this returns `total` plus a map of facet-name → bucket counts.
333
+ */
334
+ export declare const statsOutput: {
335
+ readonly total: z.ZodNumber;
336
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
337
+ readonly buckets: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>;
338
+ readonly summary: z.ZodString;
339
+ };
340
+ /**
341
+ * Pipeline summary — deal counts and totals by stage, plus a grand total.
342
+ */
343
+ export declare const pipelineSummaryOutput: {
344
+ readonly total_deals: z.ZodNumber;
345
+ readonly total_value: z.ZodNumber;
346
+ readonly by_stage: z.ZodRecord<z.ZodString, z.ZodObject<{
347
+ count: z.ZodNumber;
348
+ value: z.ZodNumber;
349
+ }, "strip", z.ZodTypeAny, {
350
+ value: number;
351
+ count: number;
352
+ }, {
353
+ value: number;
354
+ count: number;
355
+ }>>;
356
+ readonly client_id: z.ZodOptional<z.ZodString>;
357
+ readonly summary: z.ZodString;
358
+ };
359
+ /**
360
+ * Write-tool result. The Vantage API returns the created/updated record
361
+ * inline; we surface it under `record` along with a short `summary` for
362
+ * human readers and a `success` flag mirroring HTTP 2xx.
363
+ */
364
+ export declare const writeOutput: {
365
+ readonly success: z.ZodBoolean;
366
+ readonly record: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
367
+ readonly message: z.ZodOptional<z.ZodString>;
368
+ readonly summary: z.ZodString;
369
+ };
370
+ /**
371
+ * Health/diagnostics. Boolean + free-form details map; `details` carries
372
+ * facets like API status, key configured, table counts, etc.
373
+ */
374
+ export declare const healthOutput: {
375
+ readonly healthy: z.ZodBoolean;
376
+ readonly details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
377
+ readonly summary: z.ZodString;
378
+ };
379
+ /**
380
+ * Table-counts diagnostic — keyed map of label → { items, size_bytes }.
381
+ */
382
+ export declare const tableCountsOutput: {
383
+ readonly tables: z.ZodRecord<z.ZodString, z.ZodObject<{
384
+ item_count: z.ZodOptional<z.ZodNumber>;
385
+ size_bytes: z.ZodOptional<z.ZodNumber>;
386
+ available: z.ZodBoolean;
387
+ }, "strip", z.ZodTypeAny, {
388
+ available: boolean;
389
+ item_count?: number | undefined;
390
+ size_bytes?: number | undefined;
391
+ }, {
392
+ available: boolean;
393
+ item_count?: number | undefined;
394
+ size_bytes?: number | undefined;
395
+ }>>;
396
+ readonly summary: z.ZodString;
397
+ };
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Output schemas for MCP tool results — feeds `outputSchema` on
3
+ * `server.registerTool(...)` and the matching `structuredContent` payload
4
+ * the handler returns.
5
+ *
6
+ * Why permissive entity shapes (`.passthrough()`)
7
+ * ------------------------------------------------
8
+ * DynamoDB items in Vantage are append-only in spirit — fields get added
9
+ * over time and the read surface returns whatever the unmarshaller produces.
10
+ * Pinning every property would make the client fragile to backend changes.
11
+ * We declare the fields tools actually reason about (so Claude can rely on
12
+ * them) and let the rest pass through.
13
+ *
14
+ * Why `.nullish()` on declared fields
15
+ * -----------------------------------
16
+ * DynamoDB unmarshalling returns `null` for fields that exist on the item
17
+ * but were explicitly set to null (e.g. an opportunity with no
18
+ * primary_contact_id yet). Plain `.optional()` only accepts `undefined`,
19
+ * so the structured-content validator rejects real API payloads. `.nullish()`
20
+ * is the shorthand for `.nullable().optional()` and accepts both.
21
+ *
22
+ * Why builder functions
23
+ * ---------------------
24
+ * `outputSchema` on registerTool takes a ZodRawShape (object of zod schemas).
25
+ * Search/list tools share a common wrapper — items + count + summary —
26
+ * parameterised by the item schema. The builders produce that shape so
27
+ * each tool only has to name the entity type it returns.
28
+ */
29
+ import { z } from "zod";
30
+ // ── Entity shapes ─────────────────────────────────────────────────────
31
+ // Each is passthrough so structuredContent can carry every field DDB
32
+ // returns, while documenting the ones tools and Claude actually use.
33
+ export const companyEntity = z
34
+ .object({
35
+ id: z.string().nullish(),
36
+ name: z.string().nullish(),
37
+ domain: z.string().nullish(),
38
+ vertical: z.string().nullish(),
39
+ tier: z.string().nullish(),
40
+ status: z.string().nullish(),
41
+ client_id: z.string().nullish(),
42
+ lead_score: z.number().nullish(),
43
+ industry: z.string().nullish(),
44
+ description: z.string().nullish(),
45
+ website: z.string().nullish(),
46
+ linkedin_url: z.string().nullish(),
47
+ created_at: z.string().nullish(),
48
+ updated_at: z.string().nullish(),
49
+ })
50
+ .passthrough();
51
+ export const contactEntity = z
52
+ .object({
53
+ id: z.string().nullish(),
54
+ name: z.string().nullish(),
55
+ first_name: z.string().nullish(),
56
+ last_name: z.string().nullish(),
57
+ email: z.string().nullish(),
58
+ title: z.string().nullish(),
59
+ role: z.string().nullish(),
60
+ status: z.string().nullish(),
61
+ company_id: z.string().nullish(),
62
+ company_name: z.string().nullish(),
63
+ client_id: z.string().nullish(),
64
+ phone: z.string().nullish(),
65
+ linkedin_url: z.string().nullish(),
66
+ created_at: z.string().nullish(),
67
+ updated_at: z.string().nullish(),
68
+ })
69
+ .passthrough();
70
+ export const opportunityEntity = z
71
+ .object({
72
+ id: z.string().nullish(),
73
+ name: z.string().nullish(),
74
+ title: z.string().nullish(),
75
+ stage: z.string().nullish(),
76
+ value: z.number().nullish(),
77
+ deal_value: z.number().nullish(),
78
+ currency: z.string().nullish(),
79
+ probability: z.number().nullish(),
80
+ weighted_value: z.number().nullish(),
81
+ expected_close_date: z.string().nullish(),
82
+ company_id: z.string().nullish(),
83
+ company_name: z.string().nullish(),
84
+ client_id: z.string().nullish(),
85
+ owner_id: z.string().nullish(),
86
+ owner_name: z.string().nullish(),
87
+ primary_contact_id: z.string().nullish(),
88
+ campaign_id: z.string().nullish(),
89
+ created_at: z.string().nullish(),
90
+ updated_at: z.string().nullish(),
91
+ })
92
+ .passthrough();
93
+ export const campaignEntity = z
94
+ .object({
95
+ id: z.string().nullish(),
96
+ name: z.string().nullish(),
97
+ status: z.string().nullish(),
98
+ campaign_type: z.string().nullish(),
99
+ vertical: z.string().nullish(),
100
+ client_id: z.string().nullish(),
101
+ recipient_count: z.number().nullish(),
102
+ total_recipients: z.number().nullish(),
103
+ goal_type: z.string().nullish(),
104
+ goal_target: z.number().nullish(),
105
+ description: z.string().nullish(),
106
+ created_at: z.string().nullish(),
107
+ updated_at: z.string().nullish(),
108
+ })
109
+ .passthrough();
110
+ export const clientEntity = z
111
+ .object({
112
+ id: z.string().nullish(),
113
+ name: z.string().nullish(),
114
+ slug: z.string().nullish(),
115
+ status: z.string().nullish(),
116
+ industry: z.string().nullish(),
117
+ created_at: z.string().nullish(),
118
+ })
119
+ .passthrough();
120
+ // Junction record from the campaign-targets table — the (campaign_id,
121
+ // company_id) pair plus per-link metadata. Returned by
122
+ // vantage_campaign_list_targets. Uses .nullish() per the convention
123
+ // established by the other entity shapes.
124
+ export const campaignTargetEntity = z
125
+ .object({
126
+ campaign_id: z.string().nullish(),
127
+ company_id: z.string().nullish(),
128
+ priority: z.string().nullish(),
129
+ added_by: z.string().nullish(),
130
+ added_at: z.string().nullish(),
131
+ created_at: z.string().nullish(),
132
+ updated_at: z.string().nullish(),
133
+ })
134
+ .passthrough();
135
+ export const userEntity = z
136
+ .object({
137
+ id: z.string().nullish(),
138
+ name: z.string().nullish(),
139
+ first_name: z.string().nullish(),
140
+ last_name: z.string().nullish(),
141
+ email: z.string().nullish(),
142
+ role: z.string().nullish(),
143
+ client_id: z.string().nullish(),
144
+ client_name: z.string().nullish(),
145
+ client_ids: z.array(z.string()).nullish(),
146
+ })
147
+ .passthrough();
148
+ // Generic record — used for tools that return whatever the API gave back
149
+ // (writes, Apollo passthroughs, etc.) without imposing a specific shape.
150
+ export const genericRecord = z.record(z.unknown());
151
+ // ── Output shape builders ─────────────────────────────────────────────
152
+ // Each returns a ZodRawShape ready to pass as registerTool's outputSchema.
153
+ /**
154
+ * Wrapper for list/search tools. `summary` is the human-readable text the
155
+ * `content` block already shows; carrying it in structuredContent too lets
156
+ * downstream callers reason about both the typed items and the rendered
157
+ * description without re-parsing.
158
+ */
159
+ export function listOutput(itemSchema) {
160
+ return {
161
+ items: z.array(itemSchema),
162
+ count: z.number(),
163
+ truncated: z.boolean().optional(),
164
+ summary: z.string(),
165
+ };
166
+ }
167
+ /**
168
+ * Wrapper for single-entity get tools. `found` distinguishes "exists, here
169
+ * it is" from "not found" without forcing the caller to inspect `item` for
170
+ * null vs object.
171
+ */
172
+ export function getOutput(itemSchema) {
173
+ return {
174
+ found: z.boolean(),
175
+ item: itemSchema.optional(),
176
+ summary: z.string(),
177
+ };
178
+ }
179
+ /**
180
+ * Aggregate stats — counts grouped by one or more facets. Every tool that
181
+ * uses this returns `total` plus a map of facet-name → bucket counts.
182
+ */
183
+ export const statsOutput = {
184
+ total: z.number(),
185
+ truncated: z.boolean().optional(),
186
+ buckets: z.record(z.record(z.number())),
187
+ summary: z.string(),
188
+ };
189
+ /**
190
+ * Pipeline summary — deal counts and totals by stage, plus a grand total.
191
+ */
192
+ export const pipelineSummaryOutput = {
193
+ total_deals: z.number(),
194
+ total_value: z.number(),
195
+ by_stage: z.record(z.object({
196
+ count: z.number(),
197
+ value: z.number(),
198
+ })),
199
+ client_id: z.string().optional(),
200
+ summary: z.string(),
201
+ };
202
+ /**
203
+ * Write-tool result. The Vantage API returns the created/updated record
204
+ * inline; we surface it under `record` along with a short `summary` for
205
+ * human readers and a `success` flag mirroring HTTP 2xx.
206
+ */
207
+ export const writeOutput = {
208
+ success: z.boolean(),
209
+ record: genericRecord.optional(),
210
+ message: z.string().optional(),
211
+ summary: z.string(),
212
+ };
213
+ /**
214
+ * Health/diagnostics. Boolean + free-form details map; `details` carries
215
+ * facets like API status, key configured, table counts, etc.
216
+ */
217
+ export const healthOutput = {
218
+ healthy: z.boolean(),
219
+ details: z.record(z.unknown()),
220
+ summary: z.string(),
221
+ };
222
+ /**
223
+ * Table-counts diagnostic — keyed map of label → { items, size_bytes }.
224
+ */
225
+ export const tableCountsOutput = {
226
+ tables: z.record(z.object({
227
+ item_count: z.number().optional(),
228
+ size_bytes: z.number().optional(),
229
+ available: z.boolean(),
230
+ })),
231
+ summary: z.string(),
232
+ };
233
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAdminTools(server: McpServer): void;