@warmio/contracts 3.0.5 → 3.0.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/public-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAoB,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ3E,eAAO,MAAM,+BAA+B;aAC1C,MAAM,EAAE,eAAe;aACvB,gBAAgB,EAAE,UAAU;aAC5B,MAAM;iBACJ,qBAAqB,EAAE,wBAAwB;iBAC/C,gBAAgB,EAAE,mBAAmB;;CAE/B,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,+BAA+B,CAAC,MAAM,CAAC;AACpF,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAcrE,KAAK,mBAAmB,GAAG,eAAe,GAAG;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,GAAG,SAAS,CAAC;CAC9D,CAAC;AAYF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBkB,CAAC;AAExD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;IAUpC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/public-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAoB,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ3E,eAAO,MAAM,+BAA+B;aAC1C,MAAM,EAAE,eAAe;aACvB,gBAAgB,EAAE,UAAU;aAC5B,MAAM;iBACJ,qBAAqB,EAAE,wBAAwB;iBAC/C,gBAAgB,EAAE,mBAAmB;;CAE/B,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,+BAA+B,CAAC,MAAM,CAAC;AACpF,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAcrE,KAAK,mBAAmB,GAAG,eAAe,GAAG;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,GAAG,SAAS,CAAC;CAC9D,CAAC;AAYF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBkB,CAAC;AAExD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;IAUpC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -2,7 +2,8 @@ import { z } from 'zod';
2
2
  import { type JsonSchema7Type } from 'zod-to-json-schema';
3
3
  export declare const emptyMcpInputShape: {};
4
4
  export declare const getTransactionsMcpInputShape: {
5
- period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
5
+ period: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>>;
6
+ periods: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
6
7
  };
7
8
  export declare const searchOperationsMcpInputShape: {
8
9
  query: z.ZodOptional<z.ZodString>;
@@ -34,20 +35,305 @@ export declare const invokeOperationMcpInputShape: {
34
35
  }>>;
35
36
  approval_id: z.ZodOptional<z.ZodString>;
36
37
  };
37
- export declare const getTransactionsMcpInputSchema: z.ZodObject<{
38
- period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
38
+ export declare const getTransactionsMcpInputSchema: z.ZodEffects<z.ZodObject<{
39
+ period: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>>;
40
+ periods: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
39
41
  }, "strict", z.ZodTypeAny, {
40
- period: string;
42
+ period?: string | undefined;
43
+ periods?: string[] | undefined;
41
44
  }, {
42
- period: string;
45
+ period?: string | undefined;
46
+ periods?: string[] | undefined;
47
+ }>, {
48
+ period?: string | undefined;
49
+ periods?: string[] | undefined;
50
+ }, {
51
+ period?: string | undefined;
52
+ periods?: string[] | undefined;
43
53
  }>;
44
54
  export declare function normalizeGetTransactionsMcpInput(input: z.infer<typeof getTransactionsMcpInputSchema>): {
55
+ readonly periods: string[];
56
+ readonly latest?: never;
57
+ readonly month?: never;
58
+ } | {
59
+ readonly periods?: never;
45
60
  readonly latest: true;
46
61
  readonly month?: never;
47
62
  } | {
63
+ readonly periods?: never;
48
64
  readonly latest?: never;
49
65
  readonly month: string;
50
66
  };
67
+ export declare const transactionMonthMcpOutputSchema: z.ZodObject<{
68
+ month: z.ZodString;
69
+ start_date: z.ZodString;
70
+ end_date: z.ZodString;
71
+ count: z.ZodNumber;
72
+ items: z.ZodArray<z.ZodObject<{
73
+ id: z.ZodString;
74
+ account_id: z.ZodNullable<z.ZodString>;
75
+ date: z.ZodNullable<z.ZodString>;
76
+ amount: z.ZodNumber;
77
+ merchant: z.ZodNullable<z.ZodString>;
78
+ name: z.ZodNullable<z.ZodString>;
79
+ category: z.ZodNullable<z.ZodString>;
80
+ subcategory: z.ZodNullable<z.ZodString>;
81
+ pending: z.ZodNullable<z.ZodBoolean>;
82
+ currency: z.ZodNullable<z.ZodString>;
83
+ }, "strict", z.ZodTypeAny, {
84
+ id: string;
85
+ account_id: string | null;
86
+ date: string | null;
87
+ amount: number;
88
+ merchant: string | null;
89
+ name: string | null;
90
+ category: string | null;
91
+ subcategory: string | null;
92
+ pending: boolean | null;
93
+ currency: string | null;
94
+ }, {
95
+ id: string;
96
+ account_id: string | null;
97
+ date: string | null;
98
+ amount: number;
99
+ merchant: string | null;
100
+ name: string | null;
101
+ category: string | null;
102
+ subcategory: string | null;
103
+ pending: boolean | null;
104
+ currency: string | null;
105
+ }>, "many">;
106
+ } & {
107
+ truncated: z.ZodOptional<z.ZodBoolean>;
108
+ }, "strict", z.ZodTypeAny, {
109
+ month: string;
110
+ start_date: string;
111
+ end_date: string;
112
+ count: number;
113
+ items: {
114
+ id: string;
115
+ account_id: string | null;
116
+ date: string | null;
117
+ amount: number;
118
+ merchant: string | null;
119
+ name: string | null;
120
+ category: string | null;
121
+ subcategory: string | null;
122
+ pending: boolean | null;
123
+ currency: string | null;
124
+ }[];
125
+ truncated?: boolean | undefined;
126
+ }, {
127
+ month: string;
128
+ start_date: string;
129
+ end_date: string;
130
+ count: number;
131
+ items: {
132
+ id: string;
133
+ account_id: string | null;
134
+ date: string | null;
135
+ amount: number;
136
+ merchant: string | null;
137
+ name: string | null;
138
+ category: string | null;
139
+ subcategory: string | null;
140
+ pending: boolean | null;
141
+ currency: string | null;
142
+ }[];
143
+ truncated?: boolean | undefined;
144
+ }>;
145
+ export declare const latestTransactionsMcpOutputSchema: z.ZodObject<{
146
+ since: z.ZodString;
147
+ window_days: z.ZodLiteral<10>;
148
+ count: z.ZodNumber;
149
+ items: z.ZodArray<z.ZodObject<{
150
+ id: z.ZodString;
151
+ account_id: z.ZodNullable<z.ZodString>;
152
+ date: z.ZodNullable<z.ZodString>;
153
+ amount: z.ZodNumber;
154
+ merchant: z.ZodNullable<z.ZodString>;
155
+ name: z.ZodNullable<z.ZodString>;
156
+ category: z.ZodNullable<z.ZodString>;
157
+ subcategory: z.ZodNullable<z.ZodString>;
158
+ pending: z.ZodNullable<z.ZodBoolean>;
159
+ currency: z.ZodNullable<z.ZodString>;
160
+ }, "strict", z.ZodTypeAny, {
161
+ id: string;
162
+ account_id: string | null;
163
+ date: string | null;
164
+ amount: number;
165
+ merchant: string | null;
166
+ name: string | null;
167
+ category: string | null;
168
+ subcategory: string | null;
169
+ pending: boolean | null;
170
+ currency: string | null;
171
+ }, {
172
+ id: string;
173
+ account_id: string | null;
174
+ date: string | null;
175
+ amount: number;
176
+ merchant: string | null;
177
+ name: string | null;
178
+ category: string | null;
179
+ subcategory: string | null;
180
+ pending: boolean | null;
181
+ currency: string | null;
182
+ }>, "many">;
183
+ } & {
184
+ truncated: z.ZodOptional<z.ZodBoolean>;
185
+ }, "strict", z.ZodTypeAny, {
186
+ since: string;
187
+ window_days: 10;
188
+ count: number;
189
+ items: {
190
+ id: string;
191
+ account_id: string | null;
192
+ date: string | null;
193
+ amount: number;
194
+ merchant: string | null;
195
+ name: string | null;
196
+ category: string | null;
197
+ subcategory: string | null;
198
+ pending: boolean | null;
199
+ currency: string | null;
200
+ }[];
201
+ truncated?: boolean | undefined;
202
+ }, {
203
+ since: string;
204
+ window_days: 10;
205
+ count: number;
206
+ items: {
207
+ id: string;
208
+ account_id: string | null;
209
+ date: string | null;
210
+ amount: number;
211
+ merchant: string | null;
212
+ name: string | null;
213
+ category: string | null;
214
+ subcategory: string | null;
215
+ pending: boolean | null;
216
+ currency: string | null;
217
+ }[];
218
+ truncated?: boolean | undefined;
219
+ }>;
220
+ export declare const transactionPeriodsMcpOutputSchema: z.ZodObject<{
221
+ periods: z.ZodArray<z.ZodObject<{
222
+ month: z.ZodString;
223
+ start_date: z.ZodString;
224
+ end_date: z.ZodString;
225
+ count: z.ZodNumber;
226
+ items: z.ZodArray<z.ZodObject<{
227
+ id: z.ZodString;
228
+ account_id: z.ZodNullable<z.ZodString>;
229
+ date: z.ZodNullable<z.ZodString>;
230
+ amount: z.ZodNumber;
231
+ merchant: z.ZodNullable<z.ZodString>;
232
+ name: z.ZodNullable<z.ZodString>;
233
+ category: z.ZodNullable<z.ZodString>;
234
+ subcategory: z.ZodNullable<z.ZodString>;
235
+ pending: z.ZodNullable<z.ZodBoolean>;
236
+ currency: z.ZodNullable<z.ZodString>;
237
+ }, "strict", z.ZodTypeAny, {
238
+ id: string;
239
+ account_id: string | null;
240
+ date: string | null;
241
+ amount: number;
242
+ merchant: string | null;
243
+ name: string | null;
244
+ category: string | null;
245
+ subcategory: string | null;
246
+ pending: boolean | null;
247
+ currency: string | null;
248
+ }, {
249
+ id: string;
250
+ account_id: string | null;
251
+ date: string | null;
252
+ amount: number;
253
+ merchant: string | null;
254
+ name: string | null;
255
+ category: string | null;
256
+ subcategory: string | null;
257
+ pending: boolean | null;
258
+ currency: string | null;
259
+ }>, "many">;
260
+ }, "strict", z.ZodTypeAny, {
261
+ month: string;
262
+ start_date: string;
263
+ end_date: string;
264
+ count: number;
265
+ items: {
266
+ id: string;
267
+ account_id: string | null;
268
+ date: string | null;
269
+ amount: number;
270
+ merchant: string | null;
271
+ name: string | null;
272
+ category: string | null;
273
+ subcategory: string | null;
274
+ pending: boolean | null;
275
+ currency: string | null;
276
+ }[];
277
+ }, {
278
+ month: string;
279
+ start_date: string;
280
+ end_date: string;
281
+ count: number;
282
+ items: {
283
+ id: string;
284
+ account_id: string | null;
285
+ date: string | null;
286
+ amount: number;
287
+ merchant: string | null;
288
+ name: string | null;
289
+ category: string | null;
290
+ subcategory: string | null;
291
+ pending: boolean | null;
292
+ currency: string | null;
293
+ }[];
294
+ }>, "many">;
295
+ truncated: z.ZodOptional<z.ZodBoolean>;
296
+ }, "strict", z.ZodTypeAny, {
297
+ periods: {
298
+ month: string;
299
+ start_date: string;
300
+ end_date: string;
301
+ count: number;
302
+ items: {
303
+ id: string;
304
+ account_id: string | null;
305
+ date: string | null;
306
+ amount: number;
307
+ merchant: string | null;
308
+ name: string | null;
309
+ category: string | null;
310
+ subcategory: string | null;
311
+ pending: boolean | null;
312
+ currency: string | null;
313
+ }[];
314
+ }[];
315
+ truncated?: boolean | undefined;
316
+ }, {
317
+ periods: {
318
+ month: string;
319
+ start_date: string;
320
+ end_date: string;
321
+ count: number;
322
+ items: {
323
+ id: string;
324
+ account_id: string | null;
325
+ date: string | null;
326
+ amount: number;
327
+ merchant: string | null;
328
+ name: string | null;
329
+ category: string | null;
330
+ subcategory: string | null;
331
+ pending: boolean | null;
332
+ currency: string | null;
333
+ }[];
334
+ }[];
335
+ truncated?: boolean | undefined;
336
+ }>;
51
337
  type JsonSchema7Document = JsonSchema7Type & {
52
338
  $schema?: string | undefined;
53
339
  definitions?: {
@@ -678,14 +964,15 @@ export declare const privateMcpToolDefinitions: readonly [{
678
964
  }>;
679
965
  }, {
680
966
  readonly name: "get_transactions";
681
- 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.";
967
+ readonly description: "Read-only transactions from the FinancialContext artifact. Pass exactly one of `period` or `periods`. Use `period: \"latest\"` for the fixed 10-day window, `period: \"YYYY-MM\"` for one month, or `periods` for two or three distinct months. Multi-month output contains one month page per requested period in input order. The latest window is not caller-configurable. Months outside the covered range return an error.";
682
968
  readonly annotations: {
683
969
  readonly readOnlyHint: true;
684
970
  readonly destructiveHint: false;
685
971
  readonly openWorldHint: false;
686
972
  };
687
973
  readonly inputShape: {
688
- period: z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>;
974
+ period: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"latest">, z.ZodString]>>;
975
+ periods: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
689
976
  };
690
977
  readonly outputSchema: z.ZodUnion<[z.ZodObject<{
691
978
  month: z.ZodString;
@@ -726,6 +1013,8 @@ export declare const privateMcpToolDefinitions: readonly [{
726
1013
  pending: boolean | null;
727
1014
  currency: string | null;
728
1015
  }>, "many">;
1016
+ } & {
1017
+ truncated: z.ZodOptional<z.ZodBoolean>;
729
1018
  }, "strict", z.ZodTypeAny, {
730
1019
  month: string;
731
1020
  start_date: string;
@@ -743,6 +1032,7 @@ export declare const privateMcpToolDefinitions: readonly [{
743
1032
  pending: boolean | null;
744
1033
  currency: string | null;
745
1034
  }[];
1035
+ truncated?: boolean | undefined;
746
1036
  }, {
747
1037
  month: string;
748
1038
  start_date: string;
@@ -760,6 +1050,7 @@ export declare const privateMcpToolDefinitions: readonly [{
760
1050
  pending: boolean | null;
761
1051
  currency: string | null;
762
1052
  }[];
1053
+ truncated?: boolean | undefined;
763
1054
  }>, z.ZodObject<{
764
1055
  since: z.ZodString;
765
1056
  window_days: z.ZodLiteral<10>;
@@ -798,6 +1089,8 @@ export declare const privateMcpToolDefinitions: readonly [{
798
1089
  pending: boolean | null;
799
1090
  currency: string | null;
800
1091
  }>, "many">;
1092
+ } & {
1093
+ truncated: z.ZodOptional<z.ZodBoolean>;
801
1094
  }, "strict", z.ZodTypeAny, {
802
1095
  since: string;
803
1096
  window_days: 10;
@@ -814,6 +1107,7 @@ export declare const privateMcpToolDefinitions: readonly [{
814
1107
  pending: boolean | null;
815
1108
  currency: string | null;
816
1109
  }[];
1110
+ truncated?: boolean | undefined;
817
1111
  }, {
818
1112
  since: string;
819
1113
  window_days: 10;
@@ -830,6 +1124,123 @@ export declare const privateMcpToolDefinitions: readonly [{
830
1124
  pending: boolean | null;
831
1125
  currency: string | null;
832
1126
  }[];
1127
+ truncated?: boolean | undefined;
1128
+ }>, z.ZodObject<{
1129
+ periods: z.ZodArray<z.ZodObject<{
1130
+ month: z.ZodString;
1131
+ start_date: z.ZodString;
1132
+ end_date: z.ZodString;
1133
+ count: z.ZodNumber;
1134
+ items: z.ZodArray<z.ZodObject<{
1135
+ id: z.ZodString;
1136
+ account_id: z.ZodNullable<z.ZodString>;
1137
+ date: z.ZodNullable<z.ZodString>;
1138
+ amount: z.ZodNumber;
1139
+ merchant: z.ZodNullable<z.ZodString>;
1140
+ name: z.ZodNullable<z.ZodString>;
1141
+ category: z.ZodNullable<z.ZodString>;
1142
+ subcategory: z.ZodNullable<z.ZodString>;
1143
+ pending: z.ZodNullable<z.ZodBoolean>;
1144
+ currency: z.ZodNullable<z.ZodString>;
1145
+ }, "strict", z.ZodTypeAny, {
1146
+ id: string;
1147
+ account_id: string | null;
1148
+ date: string | null;
1149
+ amount: number;
1150
+ merchant: string | null;
1151
+ name: string | null;
1152
+ category: string | null;
1153
+ subcategory: string | null;
1154
+ pending: boolean | null;
1155
+ currency: string | null;
1156
+ }, {
1157
+ id: string;
1158
+ account_id: string | null;
1159
+ date: string | null;
1160
+ amount: number;
1161
+ merchant: string | null;
1162
+ name: string | null;
1163
+ category: string | null;
1164
+ subcategory: string | null;
1165
+ pending: boolean | null;
1166
+ currency: string | null;
1167
+ }>, "many">;
1168
+ }, "strict", z.ZodTypeAny, {
1169
+ month: string;
1170
+ start_date: string;
1171
+ end_date: string;
1172
+ count: number;
1173
+ items: {
1174
+ id: string;
1175
+ account_id: string | null;
1176
+ date: string | null;
1177
+ amount: number;
1178
+ merchant: string | null;
1179
+ name: string | null;
1180
+ category: string | null;
1181
+ subcategory: string | null;
1182
+ pending: boolean | null;
1183
+ currency: string | null;
1184
+ }[];
1185
+ }, {
1186
+ month: string;
1187
+ start_date: string;
1188
+ end_date: string;
1189
+ count: number;
1190
+ items: {
1191
+ id: string;
1192
+ account_id: string | null;
1193
+ date: string | null;
1194
+ amount: number;
1195
+ merchant: string | null;
1196
+ name: string | null;
1197
+ category: string | null;
1198
+ subcategory: string | null;
1199
+ pending: boolean | null;
1200
+ currency: string | null;
1201
+ }[];
1202
+ }>, "many">;
1203
+ truncated: z.ZodOptional<z.ZodBoolean>;
1204
+ }, "strict", z.ZodTypeAny, {
1205
+ periods: {
1206
+ month: string;
1207
+ start_date: string;
1208
+ end_date: string;
1209
+ count: number;
1210
+ items: {
1211
+ id: string;
1212
+ account_id: string | null;
1213
+ date: string | null;
1214
+ amount: number;
1215
+ merchant: string | null;
1216
+ name: string | null;
1217
+ category: string | null;
1218
+ subcategory: string | null;
1219
+ pending: boolean | null;
1220
+ currency: string | null;
1221
+ }[];
1222
+ }[];
1223
+ truncated?: boolean | undefined;
1224
+ }, {
1225
+ periods: {
1226
+ month: string;
1227
+ start_date: string;
1228
+ end_date: string;
1229
+ count: number;
1230
+ items: {
1231
+ id: string;
1232
+ account_id: string | null;
1233
+ date: string | null;
1234
+ amount: number;
1235
+ merchant: string | null;
1236
+ name: string | null;
1237
+ category: string | null;
1238
+ subcategory: string | null;
1239
+ pending: boolean | null;
1240
+ currency: string | null;
1241
+ }[];
1242
+ }[];
1243
+ truncated?: boolean | undefined;
833
1244
  }>]>;
834
1245
  }, {
835
1246
  readonly name: "search_operations";
@@ -1044,7 +1455,7 @@ export declare const privateMcpToolDescriptors: ({
1044
1455
  output_schema: JsonSchema7Document;
1045
1456
  } | {
1046
1457
  name: "get_transactions";
1047
- 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.";
1458
+ description: "Read-only transactions from the FinancialContext artifact. Pass exactly one of `period` or `periods`. Use `period: \"latest\"` for the fixed 10-day window, `period: \"YYYY-MM\"` for one month, or `periods` for two or three distinct months. Multi-month output contains one month page per requested period in input order. The latest window is not caller-configurable. Months outside the covered range return an error.";
1048
1459
  annotations: {
1049
1460
  readonly readOnlyHint: true;
1050
1461
  readonly destructiveHint: false;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAoB,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAY3E,eAAO,MAAM,kBAAkB,IAA2B,CAAC;AAC3D,eAAO,MAAM,4BAA4B;;CAMlB,CAAC;AACxB,eAAO,MAAM,6BAA6B;;CAEnB,CAAC;AACxB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;CAKpB,CAAC;AACxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;CAOlB,CAAC;AAExB,eAAO,MAAM,6BAA6B;;;;;;EAAkD,CAAC;AAE7F,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC;;;;;;EAKrD;AAsBD,KAAK,mBAAmB,GAAG,eAAe,GAAG;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,GAAG,SAAS,CAAC;CAC9D,CAAC;AAWF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCW,CAAC;AAElD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUrC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/dist/mcp/tools.js CHANGED
@@ -1,12 +1,16 @@
1
1
  /* oxlint-disable anti-slop/no-shape-in-symbol-names -- ZodRawShape and inputShape are canonical Zod/MCP contract terms. */
2
2
  import { z } from 'zod';
3
3
  import { zodToJsonSchema } from 'zod-to-json-schema';
4
- import { automationInputSchema, automationOperationDescriptionResponseSchema, automationOperationSearchResponseSchema, financialContextMonthSchema, FINANCIAL_CONTEXT_POSITION_DESCRIPTION, financialContextSchema, latestTransactionsSchema, transactionMonthSchema, } from '../schemas/index.js';
4
+ import { automationInputSchema, automationOperationDescriptionResponseSchema, automationOperationSearchResponseSchema, financialContextMonthSchema, financialContextTransactionPeriodsSchema, FINANCIAL_CONTEXT_POSITION_DESCRIPTION, financialContextSchema, latestTransactionsSchema, transactionMonthSchema, } from '../schemas/index.js';
5
5
  export const emptyMcpInputShape = {};
6
6
  export const getTransactionsMcpInputShape = {
7
7
  period: z
8
8
  .union([z.literal('latest'), financialContextMonthSchema])
9
- .describe('Use "latest" for the fixed 10-day window or a YYYY-MM month. Months outside the covered range return an error.'),
9
+ .optional()
10
+ .describe('Use "latest" for the fixed 10-day window or a YYYY-MM month when periods is not provided. A month outside the covered range returns an error.'),
11
+ periods: financialContextTransactionPeriodsSchema
12
+ .optional()
13
+ .describe('Use two or three distinct YYYY-MM months for one read. Pass periods instead of period. Months outside the covered range return an error.'),
10
14
  };
11
15
  export const searchOperationsMcpInputShape = {
12
16
  query: z.string().max(200).optional().describe('Words describing the action or data you need.'),
@@ -25,12 +29,40 @@ export const invokeOperationMcpInputShape = {
25
29
  .optional()
26
30
  .describe('Approval ID returned by describe_operation for the exact write input.'),
27
31
  };
28
- export const getTransactionsMcpInputSchema = z.object(getTransactionsMcpInputShape).strict();
32
+ export const getTransactionsMcpInputSchema = z
33
+ .object(getTransactionsMcpInputShape)
34
+ .strict()
35
+ .superRefine((input, context) => {
36
+ if ((input.period === undefined) === (input.periods === undefined)) {
37
+ context.addIssue({
38
+ code: z.ZodIssueCode.custom,
39
+ message: 'Pass exactly one of period or periods.',
40
+ });
41
+ }
42
+ });
29
43
  export function normalizeGetTransactionsMcpInput(input) {
44
+ if (input.periods !== undefined) {
45
+ return { periods: input.periods };
46
+ }
47
+ if (input.period === undefined) {
48
+ throw new Error('Pass exactly one of period or periods.');
49
+ }
30
50
  return input.period === 'latest'
31
51
  ? { latest: true }
32
52
  : { month: input.period };
33
53
  }
54
+ export const transactionMonthMcpOutputSchema = transactionMonthSchema
55
+ .extend({ truncated: z.boolean().optional() })
56
+ .strict();
57
+ export const latestTransactionsMcpOutputSchema = latestTransactionsSchema
58
+ .extend({ truncated: z.boolean().optional() })
59
+ .strict();
60
+ export const transactionPeriodsMcpOutputSchema = z
61
+ .object({
62
+ periods: z.array(transactionMonthSchema).min(2).max(3),
63
+ truncated: z.boolean().optional(),
64
+ })
65
+ .strict();
34
66
  const operationInvokeOutputSchema = z
35
67
  .object({
36
68
  body: z.unknown(),
@@ -57,10 +89,14 @@ export const privateMcpToolDefinitions = [
57
89
  }),
58
90
  tool({
59
91
  name: 'get_transactions',
60
- 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.',
92
+ description: 'Read-only transactions from the FinancialContext artifact. Pass exactly one of `period` or `periods`. Use `period: "latest"` for the fixed 10-day window, `period: "YYYY-MM"` for one month, or `periods` for two or three distinct months. Multi-month output contains one month page per requested period in input order. The latest window is not caller-configurable. Months outside the covered range return an error.',
61
93
  annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
62
94
  inputShape: getTransactionsMcpInputShape,
63
- outputSchema: z.union([transactionMonthSchema, latestTransactionsSchema]),
95
+ outputSchema: z.union([
96
+ transactionMonthMcpOutputSchema,
97
+ latestTransactionsMcpOutputSchema,
98
+ transactionPeriodsMcpOutputSchema,
99
+ ]),
64
100
  }),
65
101
  tool({
66
102
  name: 'search_operations',
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare const FREQUENCIES: readonly ['WEEKLY', 'BIWEEKLY', 'MONTHLY', 'QU
16
16
  export declare const LATEST_FINANCIAL_CONTEXT_TRANSACTION_WINDOW_DAYS = 10;
17
17
  export declare const FINANCIAL_CONTEXT_POSITION_DESCRIPTION = "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.";
18
18
  export declare const financialContextMonthSchema: z.ZodString;
19
+ export declare const financialContextTransactionPeriodsSchema: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
19
20
  export declare function normalizeFinancialContextTransactionSelector(period: string): {
20
21
  readonly latest: true;
21
22
  readonly month?: never;
@@ -1 +1 @@
1
- {"version":3,"file":"financial-context.d.ts","sourceRoot":"","sources":["../../src/schemas/financial-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"financial-context.d.ts","sourceRoot":"","sources":["../../src/schemas/financial-context.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,11 @@ export const FINANCIAL_CONTEXT_POSITION_DESCRIPTION = 'The status.position field
51
51
  export const financialContextMonthSchema = z
52
52
  .string()
53
53
  .regex(/^\d{4}-(0[1-9]|1[0-2])$/, 'Expected YYYY-MM month.');
54
+ export const financialContextTransactionPeriodsSchema = z
55
+ .array(financialContextMonthSchema)
56
+ .min(2)
57
+ .max(3)
58
+ .refine((periods) => new Set(periods).size === periods.length, 'Expected unique YYYY-MM periods.');
54
59
  export function normalizeFinancialContextTransactionSelector(period) {
55
60
  if (period === 'latest') {
56
61
  return { latest: true };