@warmio/contracts 2.0.0 → 3.0.2

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 (71) hide show
  1. package/README.md +3 -3
  2. package/dist/api/endpoints.d.ts +34 -48
  3. package/dist/api/endpoints.d.ts.map +1 -1
  4. package/dist/api/endpoints.js +36 -56
  5. package/dist/api/endpoints.js.map +1 -1
  6. package/dist/examples/financial-context.d.ts.map +1 -1
  7. package/dist/examples/financial-context.js +2 -1
  8. package/dist/examples/financial-context.js.map +1 -1
  9. package/dist/generated/base-openapi.d.ts +1 -1
  10. package/dist/generated/base-openapi.d.ts.map +1 -1
  11. package/dist/generated/base-openapi.js +1 -1
  12. package/dist/generated/base-openapi.js.map +1 -1
  13. package/dist/generated/mcp-package-release-metadata.d.ts +7 -0
  14. package/dist/generated/mcp-package-release-metadata.d.ts.map +1 -0
  15. package/dist/generated/mcp-package-release-metadata.js +7 -0
  16. package/dist/generated/mcp-package-release-metadata.js.map +1 -0
  17. package/dist/generated/private-mcp-tool-descriptors.d.ts +28 -43
  18. package/dist/generated/private-mcp-tool-descriptors.d.ts.map +1 -1
  19. package/dist/generated/private-mcp-tool-descriptors.js +38 -52
  20. package/dist/generated/private-mcp-tool-descriptors.js.map +1 -1
  21. package/dist/generated/protected-crawler-paths.d.ts +1 -1
  22. package/dist/generated/protected-crawler-paths.d.ts.map +1 -1
  23. package/dist/generated/protected-crawler-paths.js +3 -0
  24. package/dist/generated/protected-crawler-paths.js.map +1 -1
  25. package/dist/generated/warm-app-api-manifest.d.ts +1264 -0
  26. package/dist/generated/warm-app-api-manifest.d.ts.map +1 -0
  27. package/dist/generated/warm-app-api-manifest.js +1884 -0
  28. package/dist/generated/warm-app-api-manifest.js.map +1 -0
  29. package/dist/index.d.ts +0 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +0 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/manifest.d.ts +600 -1176
  34. package/dist/manifest.d.ts.map +1 -1
  35. package/dist/manifest.js +31 -35
  36. package/dist/manifest.js.map +1 -1
  37. package/dist/mcp/distribution.d.ts +241 -71
  38. package/dist/mcp/distribution.d.ts.map +1 -1
  39. package/dist/mcp/distribution.js +137 -56
  40. package/dist/mcp/distribution.js.map +1 -1
  41. package/dist/mcp/tools.d.ts +1030 -29
  42. package/dist/mcp/tools.d.ts.map +1 -1
  43. package/dist/mcp/tools.js +11 -30
  44. package/dist/mcp/tools.js.map +1 -1
  45. package/dist/openapi/base.yaml +44 -67
  46. package/dist/openapi/build-openapi.d.ts +8 -2
  47. package/dist/openapi/build-openapi.d.ts.map +1 -1
  48. package/dist/openapi/build-openapi.js +93 -21
  49. package/dist/openapi/build-openapi.js.map +1 -1
  50. package/dist/product.d.ts.map +1 -1
  51. package/dist/product.js +9 -1
  52. package/dist/product.js.map +1 -1
  53. package/dist/schemas/financial-context.d.ts +33 -0
  54. package/dist/schemas/financial-context.d.ts.map +1 -1
  55. package/dist/schemas/financial-context.js +21 -6
  56. package/dist/schemas/financial-context.js.map +1 -1
  57. package/dist/schemas/index.d.ts +1 -0
  58. package/dist/schemas/index.d.ts.map +1 -1
  59. package/dist/schemas/index.js +1 -0
  60. package/dist/schemas/index.js.map +1 -1
  61. package/dist/schemas/public-api.d.ts +1368 -0
  62. package/dist/schemas/public-api.d.ts.map +1 -0
  63. package/dist/schemas/public-api.js +181 -0
  64. package/dist/schemas/public-api.js.map +1 -0
  65. package/dist/types.d.ts +8 -2
  66. package/dist/types.d.ts.map +1 -1
  67. package/package.json +1 -8
  68. package/dist/public-discovery.d.ts +0 -116
  69. package/dist/public-discovery.d.ts.map +0 -1
  70. package/dist/public-discovery.js +0 -91
  71. package/dist/public-discovery.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { z, type ZodRawShape } from 'zod';
2
- import type { PrivateMcpMode } from './distribution.js';
1
+ import { z } from 'zod';
2
+ import { type JsonSchema7Type } from 'zod-to-json-schema';
3
3
  export declare const emptyMcpInputShape: {};
4
4
  export declare const getTransactionsMcpInputShape: {
5
- period: z.ZodString;
5
+ period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
6
6
  };
7
7
  export declare const searchOperationsMcpInputShape: {
8
8
  query: z.ZodOptional<z.ZodString>;
@@ -35,7 +35,7 @@ export declare const invokeOperationMcpInputShape: {
35
35
  approval_id: z.ZodOptional<z.ZodString>;
36
36
  };
37
37
  export declare const getTransactionsMcpInputSchema: z.ZodObject<{
38
- period: z.ZodString;
38
+ period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
39
39
  }, "strict", z.ZodTypeAny, {
40
40
  period: string;
41
41
  }, {
@@ -43,40 +43,1041 @@ export declare const getTransactionsMcpInputSchema: z.ZodObject<{
43
43
  }>;
44
44
  export declare function normalizeGetTransactionsMcpInput(input: z.infer<typeof getTransactionsMcpInputSchema>): {
45
45
  readonly latest: true;
46
- readonly month?: undefined;
46
+ readonly month?: never;
47
47
  } | {
48
- readonly latest?: undefined;
48
+ readonly latest?: never;
49
49
  readonly month: string;
50
50
  };
51
- type McpToolDefinition = {
51
+ type JsonSchema7Document = JsonSchema7Type & {
52
+ $schema?: string | undefined;
53
+ definitions?: {
54
+ [key: string]: JsonSchema7Type;
55
+ } | undefined;
56
+ };
57
+ export declare const privateMcpToolDefinitions: readonly [{
58
+ readonly name: "get_financial_context";
59
+ readonly description: "Read-only compact FinancialContext JSON. Includes status.position, status.accounts, transaction index total/months, recurring, budgets, goals, snapshots, liabilities, holdings, and health. The status.position field is a point-in-time (as-of-date) balance snapshot, separate from transaction and behavior windows. A null position means no position snapshot is available. Transaction items are not inline; use get_transactions for items.";
60
+ readonly annotations: {
61
+ readonly readOnlyHint: true;
62
+ readonly destructiveHint: false;
63
+ readonly openWorldHint: false;
64
+ };
65
+ readonly inputShape: {};
66
+ readonly outputSchema: z.ZodObject<{
67
+ version: z.ZodEnum<["v1"]>;
68
+ updated_at: z.ZodString;
69
+ currency: z.ZodEnum<["USD"]>;
70
+ status: z.ZodObject<{
71
+ position: z.ZodNullable<z.ZodObject<{
72
+ date: z.ZodNullable<z.ZodString>;
73
+ net_worth: z.ZodNullable<z.ZodNumber>;
74
+ cash: z.ZodNullable<z.ZodNumber>;
75
+ debt: z.ZodNullable<z.ZodNumber>;
76
+ investments: z.ZodNullable<z.ZodNumber>;
77
+ other_assets: z.ZodNullable<z.ZodNumber>;
78
+ total_assets: z.ZodNullable<z.ZodNumber>;
79
+ }, "strict", z.ZodTypeAny, {
80
+ date: string | null;
81
+ net_worth: number | null;
82
+ cash: number | null;
83
+ debt: number | null;
84
+ investments: number | null;
85
+ other_assets: number | null;
86
+ total_assets: number | null;
87
+ }, {
88
+ date: string | null;
89
+ net_worth: number | null;
90
+ cash: number | null;
91
+ debt: number | null;
92
+ investments: number | null;
93
+ other_assets: number | null;
94
+ total_assets: number | null;
95
+ }>>;
96
+ accounts: z.ZodArray<z.ZodObject<{
97
+ id: z.ZodString;
98
+ name: z.ZodString;
99
+ source: z.ZodNullable<z.ZodEnum<["plaid", "manual", "csv_import"]>>;
100
+ type: z.ZodEnum<["depository", "credit", "loan", "investment", "brokerage", "other"]>;
101
+ subtype: z.ZodNullable<z.ZodString>;
102
+ group: z.ZodNullable<z.ZodEnum<["cash", "debt", "investments"]>>;
103
+ institution: z.ZodNullable<z.ZodString>;
104
+ mask: z.ZodNullable<z.ZodString>;
105
+ balance: z.ZodNullable<z.ZodNumber>;
106
+ available: z.ZodNullable<z.ZodNumber>;
107
+ currency: z.ZodNullable<z.ZodString>;
108
+ updated_at: z.ZodNullable<z.ZodString>;
109
+ }, "strict", z.ZodTypeAny, {
110
+ id: string;
111
+ name: string;
112
+ source: "csv_import" | "manual" | "plaid" | null;
113
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
114
+ subtype: string | null;
115
+ group: "cash" | "debt" | "investments" | null;
116
+ institution: string | null;
117
+ mask: string | null;
118
+ balance: number | null;
119
+ available: number | null;
120
+ currency: string | null;
121
+ updated_at: string | null;
122
+ }, {
123
+ id: string;
124
+ name: string;
125
+ source: "csv_import" | "manual" | "plaid" | null;
126
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
127
+ subtype: string | null;
128
+ group: "cash" | "debt" | "investments" | null;
129
+ institution: string | null;
130
+ mask: string | null;
131
+ balance: number | null;
132
+ available: number | null;
133
+ currency: string | null;
134
+ updated_at: string | null;
135
+ }>, "many">;
136
+ }, "strict", z.ZodTypeAny, {
137
+ position: {
138
+ date: string | null;
139
+ net_worth: number | null;
140
+ cash: number | null;
141
+ debt: number | null;
142
+ investments: number | null;
143
+ other_assets: number | null;
144
+ total_assets: number | null;
145
+ } | null;
146
+ accounts: {
147
+ id: string;
148
+ name: string;
149
+ source: "csv_import" | "manual" | "plaid" | null;
150
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
151
+ subtype: string | null;
152
+ group: "cash" | "debt" | "investments" | null;
153
+ institution: string | null;
154
+ mask: string | null;
155
+ balance: number | null;
156
+ available: number | null;
157
+ currency: string | null;
158
+ updated_at: string | null;
159
+ }[];
160
+ }, {
161
+ position: {
162
+ date: string | null;
163
+ net_worth: number | null;
164
+ cash: number | null;
165
+ debt: number | null;
166
+ investments: number | null;
167
+ other_assets: number | null;
168
+ total_assets: number | null;
169
+ } | null;
170
+ accounts: {
171
+ id: string;
172
+ name: string;
173
+ source: "csv_import" | "manual" | "plaid" | null;
174
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
175
+ subtype: string | null;
176
+ group: "cash" | "debt" | "investments" | null;
177
+ institution: string | null;
178
+ mask: string | null;
179
+ balance: number | null;
180
+ available: number | null;
181
+ currency: string | null;
182
+ updated_at: string | null;
183
+ }[];
184
+ }>;
185
+ transactions: z.ZodObject<{
186
+ total: z.ZodNumber;
187
+ months: z.ZodArray<z.ZodObject<{
188
+ month: z.ZodString;
189
+ count: z.ZodNumber;
190
+ }, "strict", z.ZodTypeAny, {
191
+ month: string;
192
+ count: number;
193
+ }, {
194
+ month: string;
195
+ count: number;
196
+ }>, "many">;
197
+ }, "strict", z.ZodTypeAny, {
198
+ total: number;
199
+ months: {
200
+ month: string;
201
+ count: number;
202
+ }[];
203
+ }, {
204
+ total: number;
205
+ months: {
206
+ month: string;
207
+ count: number;
208
+ }[];
209
+ }>;
210
+ recurring: z.ZodArray<z.ZodObject<{
211
+ id: z.ZodString;
212
+ account_id: z.ZodNullable<z.ZodString>;
213
+ direction: z.ZodNullable<z.ZodEnum<["inflow", "outflow"]>>;
214
+ frequency: z.ZodNullable<z.ZodEnum<["WEEKLY", "BIWEEKLY", "MONTHLY", "QUARTERLY", "SEMI_ANNUALLY", "ANNUALLY"]>>;
215
+ status: z.ZodNullable<z.ZodEnum<["active", "inactive", "dismissed"]>>;
216
+ merchant: z.ZodNullable<z.ZodString>;
217
+ amount: z.ZodNullable<z.ZodNumber>;
218
+ next_date: z.ZodNullable<z.ZodString>;
219
+ }, "strict", z.ZodTypeAny, {
220
+ id: string;
221
+ account_id: string | null;
222
+ direction: "inflow" | "outflow" | null;
223
+ frequency: "ANNUALLY" | "BIWEEKLY" | "MONTHLY" | "QUARTERLY" | "SEMI_ANNUALLY" | "WEEKLY" | null;
224
+ status: "active" | "dismissed" | "inactive" | null;
225
+ merchant: string | null;
226
+ amount: number | null;
227
+ next_date: string | null;
228
+ }, {
229
+ id: string;
230
+ account_id: string | null;
231
+ direction: "inflow" | "outflow" | null;
232
+ frequency: "ANNUALLY" | "BIWEEKLY" | "MONTHLY" | "QUARTERLY" | "SEMI_ANNUALLY" | "WEEKLY" | null;
233
+ status: "active" | "dismissed" | "inactive" | null;
234
+ merchant: string | null;
235
+ amount: number | null;
236
+ next_date: string | null;
237
+ }>, "many">;
238
+ budgets: z.ZodArray<z.ZodObject<{
239
+ id: z.ZodString;
240
+ name: z.ZodString;
241
+ type: z.ZodEnum<["category", "merchant"]>;
242
+ period: z.ZodEnum<["weekly", "biweekly", "monthly"]>;
243
+ status: z.ZodEnum<["under", "warning", "over"]>;
244
+ amount: z.ZodNumber;
245
+ spent: z.ZodNumber;
246
+ remaining: z.ZodNumber;
247
+ used_percent: z.ZodNumber;
248
+ }, "strict", z.ZodTypeAny, {
249
+ id: string;
250
+ name: string;
251
+ type: "category" | "merchant";
252
+ period: "biweekly" | "monthly" | "weekly";
253
+ status: "over" | "under" | "warning";
254
+ amount: number;
255
+ spent: number;
256
+ remaining: number;
257
+ used_percent: number;
258
+ }, {
259
+ id: string;
260
+ name: string;
261
+ type: "category" | "merchant";
262
+ period: "biweekly" | "monthly" | "weekly";
263
+ status: "over" | "under" | "warning";
264
+ amount: number;
265
+ spent: number;
266
+ remaining: number;
267
+ used_percent: number;
268
+ }>, "many">;
269
+ goals: z.ZodArray<z.ZodObject<{
270
+ id: z.ZodString;
271
+ name: z.ZodString;
272
+ category: z.ZodString;
273
+ status: z.ZodEnum<["not_started", "in_progress", "on_track", "behind", "completed"]>;
274
+ target: z.ZodNumber;
275
+ current: z.ZodNumber;
276
+ progress_percent: z.ZodNumber;
277
+ target_date: z.ZodNullable<z.ZodString>;
278
+ }, "strict", z.ZodTypeAny, {
279
+ id: string;
280
+ name: string;
281
+ category: string;
282
+ status: "behind" | "completed" | "in_progress" | "not_started" | "on_track";
283
+ target: number;
284
+ current: number;
285
+ progress_percent: number;
286
+ target_date: string | null;
287
+ }, {
288
+ id: string;
289
+ name: string;
290
+ category: string;
291
+ status: "behind" | "completed" | "in_progress" | "not_started" | "on_track";
292
+ target: number;
293
+ current: number;
294
+ progress_percent: number;
295
+ target_date: string | null;
296
+ }>, "many">;
297
+ snapshots: z.ZodArray<z.ZodObject<{
298
+ date: z.ZodString;
299
+ net_worth: z.ZodNullable<z.ZodNumber>;
300
+ cash: z.ZodNullable<z.ZodNumber>;
301
+ debt: z.ZodNullable<z.ZodNumber>;
302
+ income: z.ZodNullable<z.ZodNumber>;
303
+ expenses: z.ZodNullable<z.ZodNumber>;
304
+ cash_flow: z.ZodNullable<z.ZodNumber>;
305
+ savings_rate: z.ZodNullable<z.ZodNumber>;
306
+ investments: z.ZodNullable<z.ZodNumber>;
307
+ assets: z.ZodNullable<z.ZodNumber>;
308
+ health_score: z.ZodNullable<z.ZodNumber>;
309
+ health_score_model_version: z.ZodNullable<z.ZodLiteral<2>>;
310
+ }, "strict", z.ZodTypeAny, {
311
+ date: string;
312
+ net_worth: number | null;
313
+ cash: number | null;
314
+ debt: number | null;
315
+ income: number | null;
316
+ expenses: number | null;
317
+ cash_flow: number | null;
318
+ savings_rate: number | null;
319
+ investments: number | null;
320
+ assets: number | null;
321
+ health_score: number | null;
322
+ health_score_model_version: 2 | null;
323
+ }, {
324
+ date: string;
325
+ net_worth: number | null;
326
+ cash: number | null;
327
+ debt: number | null;
328
+ income: number | null;
329
+ expenses: number | null;
330
+ cash_flow: number | null;
331
+ savings_rate: number | null;
332
+ investments: number | null;
333
+ assets: number | null;
334
+ health_score: number | null;
335
+ health_score_model_version: 2 | null;
336
+ }>, "many">;
337
+ liabilities: z.ZodArray<z.ZodObject<{
338
+ account_id: z.ZodNullable<z.ZodString>;
339
+ type: z.ZodNullable<z.ZodEnum<["credit", "student", "mortgage", "other"]>>;
340
+ balance: z.ZodNullable<z.ZodNumber>;
341
+ minimum_payment: z.ZodNullable<z.ZodNumber>;
342
+ due_date: z.ZodNullable<z.ZodString>;
343
+ interest_rate: z.ZodNullable<z.ZodNumber>;
344
+ rate_type: z.ZodNullable<z.ZodEnum<["fixed", "variable"]>>;
345
+ overdue: z.ZodNullable<z.ZodBoolean>;
346
+ }, "strict", z.ZodTypeAny, {
347
+ account_id: string | null;
348
+ type: "credit" | "mortgage" | "other" | "student" | null;
349
+ balance: number | null;
350
+ minimum_payment: number | null;
351
+ due_date: string | null;
352
+ interest_rate: number | null;
353
+ rate_type: "fixed" | "variable" | null;
354
+ overdue: boolean | null;
355
+ }, {
356
+ account_id: string | null;
357
+ type: "credit" | "mortgage" | "other" | "student" | null;
358
+ balance: number | null;
359
+ minimum_payment: number | null;
360
+ due_date: string | null;
361
+ interest_rate: number | null;
362
+ rate_type: "fixed" | "variable" | null;
363
+ overdue: boolean | null;
364
+ }>, "many">;
365
+ holdings: z.ZodArray<z.ZodObject<{
366
+ account_id: z.ZodNullable<z.ZodString>;
367
+ symbol: z.ZodNullable<z.ZodString>;
368
+ name: z.ZodNullable<z.ZodString>;
369
+ type: z.ZodNullable<z.ZodEnum<["cash", "derivative", "equity", "etf", "fixed_income", "mutual_fund", "other"]>>;
370
+ quantity: z.ZodNullable<z.ZodNumber>;
371
+ value: z.ZodNullable<z.ZodNumber>;
372
+ cost_basis: z.ZodNullable<z.ZodNumber>;
373
+ }, "strict", z.ZodTypeAny, {
374
+ account_id: string | null;
375
+ symbol: string | null;
376
+ name: string | null;
377
+ type: "cash" | "derivative" | "equity" | "etf" | "fixed_income" | "mutual_fund" | "other" | null;
378
+ quantity: number | null;
379
+ value: number | null;
380
+ cost_basis: number | null;
381
+ }, {
382
+ account_id: string | null;
383
+ symbol: string | null;
384
+ name: string | null;
385
+ type: "cash" | "derivative" | "equity" | "etf" | "fixed_income" | "mutual_fund" | "other" | null;
386
+ quantity: number | null;
387
+ value: number | null;
388
+ cost_basis: number | null;
389
+ }>, "many">;
390
+ health: z.ZodNullable<z.ZodObject<{
391
+ score: z.ZodNumber;
392
+ model_version: z.ZodLiteral<2>;
393
+ record_count: z.ZodNumber;
394
+ label: z.ZodEnum<["Needs Attention", "Good", "Strong"]>;
395
+ level: z.ZodEnum<["strong", "good", "fair", "poor", "critical"]>;
396
+ summary: z.ZodString;
397
+ data_completeness: z.ZodNumber;
398
+ pillars: z.ZodNullable<z.ZodObject<{
399
+ spend: z.ZodNullable<z.ZodNumber>;
400
+ save: z.ZodNullable<z.ZodNumber>;
401
+ borrow: z.ZodNullable<z.ZodNumber>;
402
+ build: z.ZodNullable<z.ZodNumber>;
403
+ }, "strict", z.ZodTypeAny, {
404
+ spend: number | null;
405
+ save: number | null;
406
+ borrow: number | null;
407
+ build: number | null;
408
+ }, {
409
+ spend: number | null;
410
+ save: number | null;
411
+ borrow: number | null;
412
+ build: number | null;
413
+ }>>;
414
+ }, "strict", z.ZodTypeAny, {
415
+ score: number;
416
+ model_version: 2;
417
+ record_count: number;
418
+ label: "Good" | "Needs Attention" | "Strong";
419
+ level: "critical" | "fair" | "good" | "poor" | "strong";
420
+ summary: string;
421
+ data_completeness: number;
422
+ pillars: {
423
+ spend: number | null;
424
+ save: number | null;
425
+ borrow: number | null;
426
+ build: number | null;
427
+ } | null;
428
+ }, {
429
+ score: number;
430
+ model_version: 2;
431
+ record_count: number;
432
+ label: "Good" | "Needs Attention" | "Strong";
433
+ level: "critical" | "fair" | "good" | "poor" | "strong";
434
+ summary: string;
435
+ data_completeness: number;
436
+ pillars: {
437
+ spend: number | null;
438
+ save: number | null;
439
+ borrow: number | null;
440
+ build: number | null;
441
+ } | null;
442
+ }>>;
443
+ }, "strict", z.ZodTypeAny, {
444
+ version: "v1";
445
+ updated_at: string;
446
+ currency: "USD";
447
+ status: {
448
+ position: {
449
+ date: string | null;
450
+ net_worth: number | null;
451
+ cash: number | null;
452
+ debt: number | null;
453
+ investments: number | null;
454
+ other_assets: number | null;
455
+ total_assets: number | null;
456
+ } | null;
457
+ accounts: {
458
+ id: string;
459
+ name: string;
460
+ source: "csv_import" | "manual" | "plaid" | null;
461
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
462
+ subtype: string | null;
463
+ group: "cash" | "debt" | "investments" | null;
464
+ institution: string | null;
465
+ mask: string | null;
466
+ balance: number | null;
467
+ available: number | null;
468
+ currency: string | null;
469
+ updated_at: string | null;
470
+ }[];
471
+ };
472
+ transactions: {
473
+ total: number;
474
+ months: {
475
+ month: string;
476
+ count: number;
477
+ }[];
478
+ };
479
+ recurring: {
480
+ id: string;
481
+ account_id: string | null;
482
+ direction: "inflow" | "outflow" | null;
483
+ frequency: "ANNUALLY" | "BIWEEKLY" | "MONTHLY" | "QUARTERLY" | "SEMI_ANNUALLY" | "WEEKLY" | null;
484
+ status: "active" | "dismissed" | "inactive" | null;
485
+ merchant: string | null;
486
+ amount: number | null;
487
+ next_date: string | null;
488
+ }[];
489
+ budgets: {
490
+ id: string;
491
+ name: string;
492
+ type: "category" | "merchant";
493
+ period: "biweekly" | "monthly" | "weekly";
494
+ status: "over" | "under" | "warning";
495
+ amount: number;
496
+ spent: number;
497
+ remaining: number;
498
+ used_percent: number;
499
+ }[];
500
+ goals: {
501
+ id: string;
502
+ name: string;
503
+ category: string;
504
+ status: "behind" | "completed" | "in_progress" | "not_started" | "on_track";
505
+ target: number;
506
+ current: number;
507
+ progress_percent: number;
508
+ target_date: string | null;
509
+ }[];
510
+ snapshots: {
511
+ date: string;
512
+ net_worth: number | null;
513
+ cash: number | null;
514
+ debt: number | null;
515
+ income: number | null;
516
+ expenses: number | null;
517
+ cash_flow: number | null;
518
+ savings_rate: number | null;
519
+ investments: number | null;
520
+ assets: number | null;
521
+ health_score: number | null;
522
+ health_score_model_version: 2 | null;
523
+ }[];
524
+ liabilities: {
525
+ account_id: string | null;
526
+ type: "credit" | "mortgage" | "other" | "student" | null;
527
+ balance: number | null;
528
+ minimum_payment: number | null;
529
+ due_date: string | null;
530
+ interest_rate: number | null;
531
+ rate_type: "fixed" | "variable" | null;
532
+ overdue: boolean | null;
533
+ }[];
534
+ holdings: {
535
+ account_id: string | null;
536
+ symbol: string | null;
537
+ name: string | null;
538
+ type: "cash" | "derivative" | "equity" | "etf" | "fixed_income" | "mutual_fund" | "other" | null;
539
+ quantity: number | null;
540
+ value: number | null;
541
+ cost_basis: number | null;
542
+ }[];
543
+ health: {
544
+ score: number;
545
+ model_version: 2;
546
+ record_count: number;
547
+ label: "Good" | "Needs Attention" | "Strong";
548
+ level: "critical" | "fair" | "good" | "poor" | "strong";
549
+ summary: string;
550
+ data_completeness: number;
551
+ pillars: {
552
+ spend: number | null;
553
+ save: number | null;
554
+ borrow: number | null;
555
+ build: number | null;
556
+ } | null;
557
+ } | null;
558
+ }, {
559
+ version: "v1";
560
+ updated_at: string;
561
+ currency: "USD";
562
+ status: {
563
+ position: {
564
+ date: string | null;
565
+ net_worth: number | null;
566
+ cash: number | null;
567
+ debt: number | null;
568
+ investments: number | null;
569
+ other_assets: number | null;
570
+ total_assets: number | null;
571
+ } | null;
572
+ accounts: {
573
+ id: string;
574
+ name: string;
575
+ source: "csv_import" | "manual" | "plaid" | null;
576
+ type: "brokerage" | "credit" | "depository" | "investment" | "loan" | "other";
577
+ subtype: string | null;
578
+ group: "cash" | "debt" | "investments" | null;
579
+ institution: string | null;
580
+ mask: string | null;
581
+ balance: number | null;
582
+ available: number | null;
583
+ currency: string | null;
584
+ updated_at: string | null;
585
+ }[];
586
+ };
587
+ transactions: {
588
+ total: number;
589
+ months: {
590
+ month: string;
591
+ count: number;
592
+ }[];
593
+ };
594
+ recurring: {
595
+ id: string;
596
+ account_id: string | null;
597
+ direction: "inflow" | "outflow" | null;
598
+ frequency: "ANNUALLY" | "BIWEEKLY" | "MONTHLY" | "QUARTERLY" | "SEMI_ANNUALLY" | "WEEKLY" | null;
599
+ status: "active" | "dismissed" | "inactive" | null;
600
+ merchant: string | null;
601
+ amount: number | null;
602
+ next_date: string | null;
603
+ }[];
604
+ budgets: {
605
+ id: string;
606
+ name: string;
607
+ type: "category" | "merchant";
608
+ period: "biweekly" | "monthly" | "weekly";
609
+ status: "over" | "under" | "warning";
610
+ amount: number;
611
+ spent: number;
612
+ remaining: number;
613
+ used_percent: number;
614
+ }[];
615
+ goals: {
616
+ id: string;
617
+ name: string;
618
+ category: string;
619
+ status: "behind" | "completed" | "in_progress" | "not_started" | "on_track";
620
+ target: number;
621
+ current: number;
622
+ progress_percent: number;
623
+ target_date: string | null;
624
+ }[];
625
+ snapshots: {
626
+ date: string;
627
+ net_worth: number | null;
628
+ cash: number | null;
629
+ debt: number | null;
630
+ income: number | null;
631
+ expenses: number | null;
632
+ cash_flow: number | null;
633
+ savings_rate: number | null;
634
+ investments: number | null;
635
+ assets: number | null;
636
+ health_score: number | null;
637
+ health_score_model_version: 2 | null;
638
+ }[];
639
+ liabilities: {
640
+ account_id: string | null;
641
+ type: "credit" | "mortgage" | "other" | "student" | null;
642
+ balance: number | null;
643
+ minimum_payment: number | null;
644
+ due_date: string | null;
645
+ interest_rate: number | null;
646
+ rate_type: "fixed" | "variable" | null;
647
+ overdue: boolean | null;
648
+ }[];
649
+ holdings: {
650
+ account_id: string | null;
651
+ symbol: string | null;
652
+ name: string | null;
653
+ type: "cash" | "derivative" | "equity" | "etf" | "fixed_income" | "mutual_fund" | "other" | null;
654
+ quantity: number | null;
655
+ value: number | null;
656
+ cost_basis: number | null;
657
+ }[];
658
+ health: {
659
+ score: number;
660
+ model_version: 2;
661
+ record_count: number;
662
+ label: "Good" | "Needs Attention" | "Strong";
663
+ level: "critical" | "fair" | "good" | "poor" | "strong";
664
+ summary: string;
665
+ data_completeness: number;
666
+ pillars: {
667
+ spend: number | null;
668
+ save: number | null;
669
+ borrow: number | null;
670
+ build: number | null;
671
+ } | null;
672
+ } | null;
673
+ }>;
674
+ }, {
675
+ readonly name: "get_transactions";
676
+ readonly description: "Read-only transactions from the FinancialContext artifact. Pass `period: \"latest\"` for the fixed 10-day latest window or `period: \"YYYY-MM\"` for a month page. The latest window is not caller-configurable. Months outside the covered range return an error.";
677
+ readonly annotations: {
678
+ readonly readOnlyHint: true;
679
+ readonly destructiveHint: false;
680
+ readonly openWorldHint: false;
681
+ };
682
+ readonly inputShape: {
683
+ period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
684
+ };
685
+ readonly outputSchema: z.ZodUnion<[z.ZodObject<{
686
+ month: z.ZodString;
687
+ start_date: z.ZodString;
688
+ end_date: z.ZodString;
689
+ count: z.ZodNumber;
690
+ items: z.ZodArray<z.ZodObject<{
691
+ id: z.ZodString;
692
+ account_id: z.ZodNullable<z.ZodString>;
693
+ date: z.ZodNullable<z.ZodString>;
694
+ amount: z.ZodNumber;
695
+ merchant: z.ZodNullable<z.ZodString>;
696
+ name: z.ZodNullable<z.ZodString>;
697
+ category: z.ZodNullable<z.ZodString>;
698
+ subcategory: z.ZodNullable<z.ZodString>;
699
+ pending: z.ZodNullable<z.ZodBoolean>;
700
+ currency: z.ZodNullable<z.ZodString>;
701
+ }, "strict", z.ZodTypeAny, {
702
+ id: string;
703
+ account_id: string | null;
704
+ date: string | null;
705
+ amount: number;
706
+ merchant: string | null;
707
+ name: string | null;
708
+ category: string | null;
709
+ subcategory: string | null;
710
+ pending: boolean | null;
711
+ currency: string | null;
712
+ }, {
713
+ id: string;
714
+ account_id: string | null;
715
+ date: string | null;
716
+ amount: number;
717
+ merchant: string | null;
718
+ name: string | null;
719
+ category: string | null;
720
+ subcategory: string | null;
721
+ pending: boolean | null;
722
+ currency: string | null;
723
+ }>, "many">;
724
+ }, "strict", z.ZodTypeAny, {
725
+ month: string;
726
+ start_date: string;
727
+ end_date: string;
728
+ count: number;
729
+ items: {
730
+ id: string;
731
+ account_id: string | null;
732
+ date: string | null;
733
+ amount: number;
734
+ merchant: string | null;
735
+ name: string | null;
736
+ category: string | null;
737
+ subcategory: string | null;
738
+ pending: boolean | null;
739
+ currency: string | null;
740
+ }[];
741
+ }, {
742
+ month: string;
743
+ start_date: string;
744
+ end_date: string;
745
+ count: number;
746
+ items: {
747
+ id: string;
748
+ account_id: string | null;
749
+ date: string | null;
750
+ amount: number;
751
+ merchant: string | null;
752
+ name: string | null;
753
+ category: string | null;
754
+ subcategory: string | null;
755
+ pending: boolean | null;
756
+ currency: string | null;
757
+ }[];
758
+ }>, z.ZodObject<{
759
+ since: z.ZodString;
760
+ window_days: z.ZodLiteral<10>;
761
+ count: z.ZodNumber;
762
+ items: z.ZodArray<z.ZodObject<{
763
+ id: z.ZodString;
764
+ account_id: z.ZodNullable<z.ZodString>;
765
+ date: z.ZodNullable<z.ZodString>;
766
+ amount: z.ZodNumber;
767
+ merchant: z.ZodNullable<z.ZodString>;
768
+ name: z.ZodNullable<z.ZodString>;
769
+ category: z.ZodNullable<z.ZodString>;
770
+ subcategory: z.ZodNullable<z.ZodString>;
771
+ pending: z.ZodNullable<z.ZodBoolean>;
772
+ currency: z.ZodNullable<z.ZodString>;
773
+ }, "strict", z.ZodTypeAny, {
774
+ id: string;
775
+ account_id: string | null;
776
+ date: string | null;
777
+ amount: number;
778
+ merchant: string | null;
779
+ name: string | null;
780
+ category: string | null;
781
+ subcategory: string | null;
782
+ pending: boolean | null;
783
+ currency: string | null;
784
+ }, {
785
+ id: string;
786
+ account_id: string | null;
787
+ date: string | null;
788
+ amount: number;
789
+ merchant: string | null;
790
+ name: string | null;
791
+ category: string | null;
792
+ subcategory: string | null;
793
+ pending: boolean | null;
794
+ currency: string | null;
795
+ }>, "many">;
796
+ }, "strict", z.ZodTypeAny, {
797
+ since: string;
798
+ window_days: 10;
799
+ count: number;
800
+ items: {
801
+ id: string;
802
+ account_id: string | null;
803
+ date: string | null;
804
+ amount: number;
805
+ merchant: string | null;
806
+ name: string | null;
807
+ category: string | null;
808
+ subcategory: string | null;
809
+ pending: boolean | null;
810
+ currency: string | null;
811
+ }[];
812
+ }, {
813
+ since: string;
814
+ window_days: 10;
815
+ count: number;
816
+ items: {
817
+ id: string;
818
+ account_id: string | null;
819
+ date: string | null;
820
+ amount: number;
821
+ merchant: string | null;
822
+ name: string | null;
823
+ category: string | null;
824
+ subcategory: string | null;
825
+ pending: boolean | null;
826
+ currency: string | null;
827
+ }[];
828
+ }>]>;
829
+ }, {
830
+ readonly name: "search_operations";
831
+ readonly description: "Search the supported Warm operation catalog. Use this first to find the smallest matching operation.";
832
+ readonly annotations: {
833
+ readonly readOnlyHint: true;
834
+ readonly destructiveHint: false;
835
+ readonly openWorldHint: false;
836
+ };
837
+ readonly inputShape: {
838
+ query: z.ZodOptional<z.ZodString>;
839
+ };
840
+ readonly outputSchema: z.ZodObject<{
841
+ operations: z.ZodArray<z.ZodObject<Omit<{
842
+ confirmation_required: z.ZodBoolean;
843
+ description: z.ZodString;
844
+ method: z.ZodEnum<["DELETE", "GET", "PATCH", "POST", "PUT"]>;
845
+ operation_id: z.ZodString;
846
+ path: z.ZodString;
847
+ path_parameter_kind: z.ZodNullable<z.ZodEnum<["opaque", "uuid"]>>;
848
+ risk: z.ZodArray<z.ZodEnum<["read", "write", "destructive", "external_effect"]>, "many">;
849
+ summary: z.ZodString;
850
+ }, "path_parameter_kind">, "strict", z.ZodTypeAny, {
851
+ confirmation_required: boolean;
852
+ description: string;
853
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
854
+ operation_id: string;
855
+ path: string;
856
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
857
+ summary: string;
858
+ }, {
859
+ confirmation_required: boolean;
860
+ description: string;
861
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
862
+ operation_id: string;
863
+ path: string;
864
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
865
+ summary: string;
866
+ }>, "many">;
867
+ }, "strict", z.ZodTypeAny, {
868
+ operations: {
869
+ confirmation_required: boolean;
870
+ description: string;
871
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
872
+ operation_id: string;
873
+ path: string;
874
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
875
+ summary: string;
876
+ }[];
877
+ }, {
878
+ operations: {
879
+ confirmation_required: boolean;
880
+ description: string;
881
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
882
+ operation_id: string;
883
+ path: string;
884
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
885
+ summary: string;
886
+ }[];
887
+ }>;
888
+ }, {
889
+ readonly name: "describe_operation";
890
+ readonly description: "Describe one operation, including its input schema and risk. For write operations, pass the exact intended input to receive an approval with its ID, status, URL, and expiry.";
891
+ readonly annotations: {
892
+ readonly readOnlyHint: false;
893
+ readonly destructiveHint: false;
894
+ readonly openWorldHint: false;
895
+ };
896
+ readonly inputShape: {
897
+ operation_id: z.ZodString;
898
+ input: z.ZodOptional<z.ZodObject<{
899
+ body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
900
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
901
+ }, "strict", z.ZodTypeAny, {
902
+ body?: Record<string, unknown> | undefined;
903
+ params?: Record<string, string> | undefined;
904
+ }, {
905
+ body?: Record<string, unknown> | undefined;
906
+ params?: Record<string, string> | undefined;
907
+ }>>;
908
+ };
909
+ readonly outputSchema: z.ZodObject<{
910
+ approval: z.ZodOptional<z.ZodObject<{
911
+ approval_url: z.ZodString;
912
+ expires_at: z.ZodString;
913
+ id: z.ZodString;
914
+ status: z.ZodLiteral<"pending">;
915
+ }, "strict", z.ZodTypeAny, {
916
+ approval_url: string;
917
+ expires_at: string;
918
+ id: string;
919
+ status: "pending";
920
+ }, {
921
+ approval_url: string;
922
+ expires_at: string;
923
+ id: string;
924
+ status: "pending";
925
+ }>>;
926
+ operation: z.ZodObject<Omit<{
927
+ confirmation_required: z.ZodBoolean;
928
+ description: z.ZodString;
929
+ method: z.ZodEnum<["DELETE", "GET", "PATCH", "POST", "PUT"]>;
930
+ operation_id: z.ZodString;
931
+ path: z.ZodString;
932
+ path_parameter_kind: z.ZodNullable<z.ZodEnum<["opaque", "uuid"]>>;
933
+ risk: z.ZodArray<z.ZodEnum<["read", "write", "destructive", "external_effect"]>, "many">;
934
+ summary: z.ZodString;
935
+ }, "path_parameter_kind"> & {
936
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
937
+ }, "strict", z.ZodTypeAny, {
938
+ confirmation_required: boolean;
939
+ description: string;
940
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
941
+ operation_id: string;
942
+ path: string;
943
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
944
+ summary: string;
945
+ input_schema: Record<string, unknown>;
946
+ }, {
947
+ confirmation_required: boolean;
948
+ description: string;
949
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
950
+ operation_id: string;
951
+ path: string;
952
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
953
+ summary: string;
954
+ input_schema: Record<string, unknown>;
955
+ }>;
956
+ }, "strict", z.ZodTypeAny, {
957
+ approval?: {
958
+ approval_url: string;
959
+ expires_at: string;
960
+ id: string;
961
+ status: "pending";
962
+ } | undefined;
963
+ operation: {
964
+ confirmation_required: boolean;
965
+ description: string;
966
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
967
+ operation_id: string;
968
+ path: string;
969
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
970
+ summary: string;
971
+ input_schema: Record<string, unknown>;
972
+ };
973
+ }, {
974
+ approval?: {
975
+ approval_url: string;
976
+ expires_at: string;
977
+ id: string;
978
+ status: "pending";
979
+ } | undefined;
980
+ operation: {
981
+ confirmation_required: boolean;
982
+ description: string;
983
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
984
+ operation_id: string;
985
+ path: string;
986
+ risk: ("destructive" | "external_effect" | "read" | "write")[];
987
+ summary: string;
988
+ input_schema: Record<string, unknown>;
989
+ };
990
+ }>;
991
+ }, {
992
+ readonly name: "invoke_operation";
993
+ readonly description: "Invoke one previously discovered Warm operation. Every write operation requires the approval_id returned for the exact same input by describe_operation.";
994
+ readonly annotations: {
995
+ readonly readOnlyHint: false;
996
+ readonly destructiveHint: true;
997
+ readonly openWorldHint: false;
998
+ };
999
+ readonly inputShape: {
1000
+ operation_id: z.ZodString;
1001
+ input: z.ZodOptional<z.ZodObject<{
1002
+ body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1003
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1004
+ }, "strict", z.ZodTypeAny, {
1005
+ body?: Record<string, unknown> | undefined;
1006
+ params?: Record<string, string> | undefined;
1007
+ }, {
1008
+ body?: Record<string, unknown> | undefined;
1009
+ params?: Record<string, string> | undefined;
1010
+ }>>;
1011
+ approval_id: z.ZodOptional<z.ZodString>;
1012
+ };
1013
+ readonly outputSchema: z.ZodObject<{
1014
+ body: z.ZodUnknown;
1015
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
1016
+ operation_id: z.ZodString;
1017
+ status: z.ZodNumber;
1018
+ }, "strict", z.ZodTypeAny, {
1019
+ body?: unknown;
1020
+ headers: Record<string, string>;
1021
+ operation_id: string;
1022
+ status: number;
1023
+ }, {
1024
+ body?: unknown;
1025
+ headers: Record<string, string>;
1026
+ operation_id: string;
1027
+ status: number;
1028
+ }>;
1029
+ }];
1030
+ export declare const privateMcpToolDescriptors: ({
1031
+ name: "get_financial_context";
1032
+ description: "Read-only compact FinancialContext JSON. Includes status.position, status.accounts, transaction index total/months, recurring, budgets, goals, snapshots, liabilities, holdings, and health. The status.position field is a point-in-time (as-of-date) balance snapshot, separate from transaction and behavior windows. A null position means no position snapshot is available. Transaction items are not inline; use get_transactions for items.";
52
1033
  annotations: {
53
- destructiveHint: boolean;
54
- openWorldHint: boolean;
55
- readOnlyHint: boolean;
1034
+ readonly readOnlyHint: true;
1035
+ readonly destructiveHint: false;
1036
+ readonly openWorldHint: false;
56
1037
  };
57
- description: string;
58
- inputShape: ZodRawShape;
59
- mode: PrivateMcpMode;
60
- name: string;
61
- outputSchema: z.ZodTypeAny;
62
- };
63
- export declare const privateMcpToolDefinitions: readonly [McpToolDefinition, McpToolDefinition, McpToolDefinition, McpToolDefinition, McpToolDefinition, McpToolDefinition];
64
- export declare const privateMcpToolDescriptors: {
1038
+ input_schema: JsonSchema7Document;
1039
+ output_schema: JsonSchema7Document;
1040
+ } | {
1041
+ name: "get_transactions";
1042
+ description: "Read-only transactions from the FinancialContext artifact. Pass `period: \"latest\"` for the fixed 10-day latest window or `period: \"YYYY-MM\"` for a month page. The latest window is not caller-configurable. Months outside the covered range return an error.";
1043
+ annotations: {
1044
+ readonly readOnlyHint: true;
1045
+ readonly destructiveHint: false;
1046
+ readonly openWorldHint: false;
1047
+ };
1048
+ input_schema: JsonSchema7Document;
1049
+ output_schema: JsonSchema7Document;
1050
+ } | {
1051
+ name: "search_operations";
1052
+ description: "Search the supported Warm operation catalog. Use this first to find the smallest matching operation.";
65
1053
  annotations: {
66
- destructiveHint: boolean;
67
- openWorldHint: boolean;
68
- readOnlyHint: boolean;
1054
+ readonly readOnlyHint: true;
1055
+ readonly destructiveHint: false;
1056
+ readonly openWorldHint: false;
69
1057
  };
70
- description: string;
71
- mode: PrivateMcpMode;
72
- name: string;
73
- input_schema: {
74
- $schema?: string | undefined;
1058
+ input_schema: JsonSchema7Document;
1059
+ output_schema: JsonSchema7Document;
1060
+ } | {
1061
+ name: "describe_operation";
1062
+ description: "Describe one operation, including its input schema and risk. For write operations, pass the exact intended input to receive an approval with its ID, status, URL, and expiry.";
1063
+ annotations: {
1064
+ readonly readOnlyHint: false;
1065
+ readonly destructiveHint: false;
1066
+ readonly openWorldHint: false;
75
1067
  };
76
- output_schema: {
77
- $schema?: string | undefined;
1068
+ input_schema: JsonSchema7Document;
1069
+ output_schema: JsonSchema7Document;
1070
+ } | {
1071
+ name: "invoke_operation";
1072
+ description: "Invoke one previously discovered Warm operation. Every write operation requires the approval_id returned for the exact same input by describe_operation.";
1073
+ annotations: {
1074
+ readonly readOnlyHint: false;
1075
+ readonly destructiveHint: true;
1076
+ readonly openWorldHint: false;
78
1077
  };
79
- }[];
1078
+ input_schema: JsonSchema7Document;
1079
+ output_schema: JsonSchema7Document;
1080
+ })[];
80
1081
  export type PrivateMcpToolDescriptor = (typeof privateMcpToolDescriptors)[number];
81
1082
  export {};
82
1083
  //# sourceMappingURL=tools.d.ts.map