@lightdash/common 0.2077.5 → 0.2078.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.
Files changed (101) hide show
  1. package/dist/cjs/ee/AiAgent/schemas/index.d.ts +1200 -0
  2. package/dist/cjs/ee/AiAgent/schemas/index.d.ts.map +1 -1
  3. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.d.ts.map +1 -1
  4. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.js +8 -4
  5. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.js.map +1 -1
  6. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts +3 -0
  7. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts.map +1 -1
  8. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.js +4 -0
  9. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.js.map +1 -1
  10. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts +109 -0
  11. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts.map +1 -0
  12. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.js +103 -0
  13. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.js.map +1 -0
  14. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts +216 -0
  15. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts.map +1 -1
  16. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.js +87 -30
  17. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.js.map +1 -1
  18. package/dist/cjs/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +2218 -4
  19. package/dist/cjs/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts.map +1 -1
  20. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +354 -0
  21. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts.map +1 -1
  22. package/dist/cjs/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +354 -0
  23. package/dist/cjs/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts.map +1 -1
  24. package/dist/cjs/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +354 -0
  25. package/dist/cjs/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts.map +1 -1
  26. package/dist/cjs/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +354 -0
  27. package/dist/cjs/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts.map +1 -1
  28. package/dist/cjs/ee/AiAgent/utils.d.ts +69 -0
  29. package/dist/cjs/ee/AiAgent/utils.d.ts.map +1 -1
  30. package/dist/cjs/types/field.d.ts +42 -1
  31. package/dist/cjs/types/field.d.ts.map +1 -1
  32. package/dist/cjs/types/field.js +25 -1
  33. package/dist/cjs/types/field.js.map +1 -1
  34. package/dist/esm/ee/AiAgent/schemas/index.d.ts +1200 -0
  35. package/dist/esm/ee/AiAgent/schemas/index.d.ts.map +1 -1
  36. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.d.ts.map +1 -1
  37. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.js +8 -4
  38. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.js.map +1 -1
  39. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts +3 -0
  40. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts.map +1 -1
  41. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.js +5 -1
  42. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.js.map +1 -1
  43. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts +109 -0
  44. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts.map +1 -0
  45. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.js +100 -0
  46. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.js.map +1 -0
  47. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts +216 -0
  48. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts.map +1 -1
  49. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.js +88 -31
  50. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.js.map +1 -1
  51. package/dist/esm/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +2218 -4
  52. package/dist/esm/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts.map +1 -1
  53. package/dist/esm/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +354 -0
  54. package/dist/esm/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts.map +1 -1
  55. package/dist/esm/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +354 -0
  56. package/dist/esm/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts.map +1 -1
  57. package/dist/esm/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +354 -0
  58. package/dist/esm/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts.map +1 -1
  59. package/dist/esm/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +354 -0
  60. package/dist/esm/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts.map +1 -1
  61. package/dist/esm/ee/AiAgent/utils.d.ts +69 -0
  62. package/dist/esm/ee/AiAgent/utils.d.ts.map +1 -1
  63. package/dist/esm/types/field.d.ts +42 -1
  64. package/dist/esm/types/field.d.ts.map +1 -1
  65. package/dist/esm/types/field.js +24 -0
  66. package/dist/esm/types/field.js.map +1 -1
  67. package/dist/tsconfig.types.tsbuildinfo +1 -1
  68. package/dist/types/ee/AiAgent/schemas/index.d.ts +1200 -0
  69. package/dist/types/ee/AiAgent/schemas/index.d.ts.map +1 -1
  70. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcBaseSchemas.d.ts.map +1 -1
  71. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts +3 -0
  72. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcPercentOfColumnTotal.d.ts.map +1 -1
  73. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts +109 -0
  74. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcWindowFunction.d.ts.map +1 -0
  75. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts +216 -0
  76. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcs.d.ts.map +1 -1
  77. package/dist/types/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +2218 -4
  78. package/dist/types/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts.map +1 -1
  79. package/dist/types/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +354 -0
  80. package/dist/types/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts.map +1 -1
  81. package/dist/types/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +354 -0
  82. package/dist/types/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts.map +1 -1
  83. package/dist/types/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +354 -0
  84. package/dist/types/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts.map +1 -1
  85. package/dist/types/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +354 -0
  86. package/dist/types/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts.map +1 -1
  87. package/dist/types/ee/AiAgent/utils.d.ts +69 -0
  88. package/dist/types/ee/AiAgent/utils.d.ts.map +1 -1
  89. package/dist/types/types/field.d.ts +42 -1
  90. package/dist/types/types/field.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts +0 -2
  93. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts.map +0 -1
  94. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.js +0 -56
  95. package/dist/cjs/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.js.map +0 -1
  96. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts +0 -2
  97. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts.map +0 -1
  98. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.js +0 -54
  99. package/dist/esm/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.js.map +0 -1
  100. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts +0 -2
  101. package/dist/types/ee/AiAgent/schemas/tableCalcs/tableCalcs.test.d.ts.map +0 -1
@@ -74,16 +74,19 @@ declare const tableCalcSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
74
74
  } & {
75
75
  type: z.ZodLiteral<"percent_of_column_total">;
76
76
  fieldId: z.ZodString;
77
+ partitionBy: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
77
78
  }, "strip", z.ZodTypeAny, {
78
79
  name: string;
79
80
  fieldId: string;
80
81
  type: "percent_of_column_total";
81
82
  displayName: string;
83
+ partitionBy: string[] | null;
82
84
  }, {
83
85
  name: string;
84
86
  fieldId: string;
85
87
  type: "percent_of_column_total";
86
88
  displayName: string;
89
+ partitionBy: string[] | null;
87
90
  }>, z.ZodObject<{
88
91
  name: z.ZodString;
89
92
  displayName: z.ZodString;
@@ -116,6 +119,111 @@ declare const tableCalcSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
116
119
  fieldId: string;
117
120
  type: "running_total";
118
121
  displayName: string;
122
+ }>, z.ZodObject<{
123
+ name: z.ZodString;
124
+ displayName: z.ZodString;
125
+ } & {
126
+ type: z.ZodLiteral<"window_function">;
127
+ windowFunction: z.ZodEnum<["row_number", "percent_rank", "sum", "avg", "count", "min", "max"]>;
128
+ fieldId: z.ZodNullable<z.ZodString>;
129
+ orderBy: z.ZodNullable<z.ZodArray<z.ZodObject<{
130
+ fieldId: z.ZodString;
131
+ order: z.ZodNullable<z.ZodEnum<["asc", "desc"]>>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ fieldId: string;
134
+ order: "asc" | "desc" | null;
135
+ }, {
136
+ fieldId: string;
137
+ order: "asc" | "desc" | null;
138
+ }>, "many">>;
139
+ partitionBy: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
140
+ frame: z.ZodNullable<z.ZodObject<{
141
+ frameType: z.ZodEnum<["rows", "range"]>;
142
+ start: z.ZodNullable<z.ZodObject<{
143
+ type: z.ZodEnum<["unbounded_preceding", "preceding", "current_row", "following", "unbounded_following"]>;
144
+ offset: z.ZodNullable<z.ZodNumber>;
145
+ }, "strip", z.ZodTypeAny, {
146
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
147
+ offset: number | null;
148
+ }, {
149
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
150
+ offset: number | null;
151
+ }>>;
152
+ end: z.ZodObject<{
153
+ type: z.ZodEnum<["unbounded_preceding", "preceding", "current_row", "following", "unbounded_following"]>;
154
+ offset: z.ZodNullable<z.ZodNumber>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
157
+ offset: number | null;
158
+ }, {
159
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
160
+ offset: number | null;
161
+ }>;
162
+ }, "strip", z.ZodTypeAny, {
163
+ start: {
164
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
165
+ offset: number | null;
166
+ } | null;
167
+ end: {
168
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
169
+ offset: number | null;
170
+ };
171
+ frameType: "rows" | "range";
172
+ }, {
173
+ start: {
174
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
175
+ offset: number | null;
176
+ } | null;
177
+ end: {
178
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
179
+ offset: number | null;
180
+ };
181
+ frameType: "rows" | "range";
182
+ }>>;
183
+ }, "strip", z.ZodTypeAny, {
184
+ name: string;
185
+ fieldId: string | null;
186
+ type: "window_function";
187
+ displayName: string;
188
+ orderBy: {
189
+ fieldId: string;
190
+ order: "asc" | "desc" | null;
191
+ }[] | null;
192
+ partitionBy: string[] | null;
193
+ windowFunction: "row_number" | "percent_rank" | "sum" | "avg" | "count" | "min" | "max";
194
+ frame: {
195
+ start: {
196
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
197
+ offset: number | null;
198
+ } | null;
199
+ end: {
200
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
201
+ offset: number | null;
202
+ };
203
+ frameType: "rows" | "range";
204
+ } | null;
205
+ }, {
206
+ name: string;
207
+ fieldId: string | null;
208
+ type: "window_function";
209
+ displayName: string;
210
+ orderBy: {
211
+ fieldId: string;
212
+ order: "asc" | "desc" | null;
213
+ }[] | null;
214
+ partitionBy: string[] | null;
215
+ windowFunction: "row_number" | "percent_rank" | "sum" | "avg" | "count" | "min" | "max";
216
+ frame: {
217
+ start: {
218
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
219
+ offset: number | null;
220
+ } | null;
221
+ end: {
222
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
223
+ offset: number | null;
224
+ };
225
+ frameType: "rows" | "range";
226
+ } | null;
119
227
  }>]>;
120
228
  export type TableCalcSchema = z.infer<typeof tableCalcSchema>;
121
229
  export declare const tableCalcsSchema: z.ZodNullable<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
@@ -192,16 +300,19 @@ export declare const tableCalcsSchema: z.ZodNullable<z.ZodArray<z.ZodDiscriminat
192
300
  } & {
193
301
  type: z.ZodLiteral<"percent_of_column_total">;
194
302
  fieldId: z.ZodString;
303
+ partitionBy: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
195
304
  }, "strip", z.ZodTypeAny, {
196
305
  name: string;
197
306
  fieldId: string;
198
307
  type: "percent_of_column_total";
199
308
  displayName: string;
309
+ partitionBy: string[] | null;
200
310
  }, {
201
311
  name: string;
202
312
  fieldId: string;
203
313
  type: "percent_of_column_total";
204
314
  displayName: string;
315
+ partitionBy: string[] | null;
205
316
  }>, z.ZodObject<{
206
317
  name: z.ZodString;
207
318
  displayName: z.ZodString;
@@ -234,6 +345,111 @@ export declare const tableCalcsSchema: z.ZodNullable<z.ZodArray<z.ZodDiscriminat
234
345
  fieldId: string;
235
346
  type: "running_total";
236
347
  displayName: string;
348
+ }>, z.ZodObject<{
349
+ name: z.ZodString;
350
+ displayName: z.ZodString;
351
+ } & {
352
+ type: z.ZodLiteral<"window_function">;
353
+ windowFunction: z.ZodEnum<["row_number", "percent_rank", "sum", "avg", "count", "min", "max"]>;
354
+ fieldId: z.ZodNullable<z.ZodString>;
355
+ orderBy: z.ZodNullable<z.ZodArray<z.ZodObject<{
356
+ fieldId: z.ZodString;
357
+ order: z.ZodNullable<z.ZodEnum<["asc", "desc"]>>;
358
+ }, "strip", z.ZodTypeAny, {
359
+ fieldId: string;
360
+ order: "asc" | "desc" | null;
361
+ }, {
362
+ fieldId: string;
363
+ order: "asc" | "desc" | null;
364
+ }>, "many">>;
365
+ partitionBy: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
366
+ frame: z.ZodNullable<z.ZodObject<{
367
+ frameType: z.ZodEnum<["rows", "range"]>;
368
+ start: z.ZodNullable<z.ZodObject<{
369
+ type: z.ZodEnum<["unbounded_preceding", "preceding", "current_row", "following", "unbounded_following"]>;
370
+ offset: z.ZodNullable<z.ZodNumber>;
371
+ }, "strip", z.ZodTypeAny, {
372
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
373
+ offset: number | null;
374
+ }, {
375
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
376
+ offset: number | null;
377
+ }>>;
378
+ end: z.ZodObject<{
379
+ type: z.ZodEnum<["unbounded_preceding", "preceding", "current_row", "following", "unbounded_following"]>;
380
+ offset: z.ZodNullable<z.ZodNumber>;
381
+ }, "strip", z.ZodTypeAny, {
382
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
383
+ offset: number | null;
384
+ }, {
385
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
386
+ offset: number | null;
387
+ }>;
388
+ }, "strip", z.ZodTypeAny, {
389
+ start: {
390
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
391
+ offset: number | null;
392
+ } | null;
393
+ end: {
394
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
395
+ offset: number | null;
396
+ };
397
+ frameType: "rows" | "range";
398
+ }, {
399
+ start: {
400
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
401
+ offset: number | null;
402
+ } | null;
403
+ end: {
404
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
405
+ offset: number | null;
406
+ };
407
+ frameType: "rows" | "range";
408
+ }>>;
409
+ }, "strip", z.ZodTypeAny, {
410
+ name: string;
411
+ fieldId: string | null;
412
+ type: "window_function";
413
+ displayName: string;
414
+ orderBy: {
415
+ fieldId: string;
416
+ order: "asc" | "desc" | null;
417
+ }[] | null;
418
+ partitionBy: string[] | null;
419
+ windowFunction: "row_number" | "percent_rank" | "sum" | "avg" | "count" | "min" | "max";
420
+ frame: {
421
+ start: {
422
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
423
+ offset: number | null;
424
+ } | null;
425
+ end: {
426
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
427
+ offset: number | null;
428
+ };
429
+ frameType: "rows" | "range";
430
+ } | null;
431
+ }, {
432
+ name: string;
433
+ fieldId: string | null;
434
+ type: "window_function";
435
+ displayName: string;
436
+ orderBy: {
437
+ fieldId: string;
438
+ order: "asc" | "desc" | null;
439
+ }[] | null;
440
+ partitionBy: string[] | null;
441
+ windowFunction: "row_number" | "percent_rank" | "sum" | "avg" | "count" | "min" | "max";
442
+ frame: {
443
+ start: {
444
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
445
+ offset: number | null;
446
+ } | null;
447
+ end: {
448
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
449
+ offset: number | null;
450
+ };
451
+ frameType: "rows" | "range";
452
+ } | null;
237
453
  }>]>, "many">>;
238
454
  export type TableCalcsSchema = z.infer<typeof tableCalcsSchema>;
239
455
  export declare function convertAiTableCalcsSchemaToTableCalcs(tableCalcs: TableCalcsSchema): TableCalculation[];
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalcs.d.ts","sourceRoot":"","sources":["../../../../../../src/ee/AiAgent/schemas/tableCalcs/tableCalcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKH,KAAK,gBAAgB,EACxB,MAAM,yBAAyB,CAAC;AAQjC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMnB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwB3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAkFhE,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,gBAAgB,GAC7B,gBAAgB,EAAE,CAEpB"}
1
+ {"version":3,"file":"tableCalcs.d.ts","sourceRoot":"","sources":["../../../../../../src/ee/AiAgent/schemas/tableCalcs/tableCalcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAQH,KAAK,gBAAgB,EACxB,MAAM,yBAAyB,CAAC;AASjC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOnB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAY3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiLhE,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,gBAAgB,GAC7B,gBAAgB,EAAE,CAEpB"}
@@ -1,46 +1,51 @@
1
1
  import { z } from 'zod';
2
- import { CustomFormatType, NumberSeparator, TableCalculationTemplateType, TableCalculationType, } from '../../../../types/field';
2
+ import { CustomFormatType, FrameBoundaryType, FrameType, NumberSeparator, TableCalculationTemplateType, TableCalculationType, WindowFunctionType, } from '../../../../types/field';
3
3
  import assertUnreachable from '../../../../utils/assertUnreachable';
4
4
  import { tableCalcPercentChangeFromPreviousSchema } from './tableCalcPercentChangeFromPrevious';
5
5
  import { tableCalcPercentOfColumnTotalSchema } from './tableCalcPercentOfColumnTotal';
6
6
  import { tableCalcPercentOfPreviousValueSchema } from './tableCalcPercentOfPreviousValue';
7
7
  import { tableCalcRankInColumnSchema } from './tableCalcRankInColumn';
8
8
  import { tableCalcRunningTotalSchema } from './tableCalcRunningTotal';
9
+ import { tableCalcWindowFunctionSchema } from './tableCalcWindowFunction';
9
10
  const tableCalcSchema = z.discriminatedUnion('type', [
10
11
  tableCalcPercentChangeFromPreviousSchema,
11
12
  tableCalcPercentOfPreviousValueSchema,
12
13
  tableCalcPercentOfColumnTotalSchema,
13
14
  tableCalcRankInColumnSchema,
14
15
  tableCalcRunningTotalSchema,
16
+ tableCalcWindowFunctionSchema,
15
17
  ]);
16
- // TODO improve description
17
18
  export const tableCalcsSchema = z.array(tableCalcSchema).nullable().describe(`
18
- Table calculations are a way to perform calculations across row sets without collapsing rows. You can think of them like SQL Window Functions.
19
+ Table calculations perform row-by-row calculations on query results without collapsing rows. Similar to SQL window functions.
19
20
 
20
- Create table calculations when:
21
+ **Available Types:**
22
+ - Simple calculations: percent_change_from_previous, percent_of_previous_value, percent_of_column_total, rank_in_column, running_total
23
+ - Advanced window_function: Supports row_number, percent_rank, sum, avg, count, min, max with optional partitioning, ordering, and frame clauses
21
24
 
22
- - User requests percentage change between columns
23
- Examples: "Show revenue growth from last month", "Calculate MoY/Month-over-month, YoY/Year-over-year sales change"
24
- Recommended visualization type: Table, bar chart
25
-
26
- - User requests percentage of column compared to previous row
27
- Examples: "Show revenue as % of previous month", "What percent is each quarter vs the prior quarter"
28
- Recommended visualization type: Table, bar chart
29
-
30
- - User requests percentage of column total
31
- Examples: "Show each product as % of total sales", "What percentage does each region contribute to overall revenue"
32
- Recommended visualization type: Table, Bar chart
33
-
34
- - User requests rank within a column
35
- Examples: "Rank customers by revenue", "Show top performing sales reps by deal count"
36
- Recommended visualization type: Table, Bar chart
37
-
38
- - User requests running total
39
- Examples: "Show cumulative revenue over time", "Running sum of orders by month"
40
- Recommended visualization type: Line chart for the table calculation as Y axis and time as X axis
25
+ **Technical Requirements:**
26
+ - Appear as additional columns in query results
27
+ - Can be used in sorts and filters alongside dimensions/metrics
28
+ - Multiple calculations can be combined in a single query
29
+ - All fields referenced must exist in the query (dimensions, metrics, or other table calculations)
41
30
  `);
31
+ function frameBoundaryStringToEnum(boundaryType) {
32
+ switch (boundaryType) {
33
+ case 'unbounded_preceding':
34
+ return FrameBoundaryType.UNBOUNDED_PRECEDING;
35
+ case 'preceding':
36
+ return FrameBoundaryType.PRECEDING;
37
+ case 'current_row':
38
+ return FrameBoundaryType.CURRENT_ROW;
39
+ case 'following':
40
+ return FrameBoundaryType.FOLLOWING;
41
+ case 'unbounded_following':
42
+ return FrameBoundaryType.UNBOUNDED_FOLLOWING;
43
+ default:
44
+ return assertUnreachable(boundaryType, 'Unknown boundary type');
45
+ }
46
+ }
42
47
  function convertTableCalcSchemaToTableCalc(tableCalc) {
43
- const { type, name, displayName, fieldId } = tableCalc;
48
+ const { type, name, displayName } = tableCalc;
44
49
  // Build the template
45
50
  const baseCalc = {
46
51
  name,
@@ -53,8 +58,8 @@ function convertTableCalcSchemaToTableCalc(tableCalc) {
53
58
  ...baseCalc,
54
59
  template: {
55
60
  type: TableCalculationTemplateType.PERCENT_CHANGE_FROM_PREVIOUS,
56
- fieldId,
57
- orderBy: tableCalc.orderBy,
61
+ fieldId: tableCalc.fieldId,
62
+ orderBy: tableCalc.orderBy ?? [],
58
63
  },
59
64
  format: {
60
65
  type: CustomFormatType.PERCENT,
@@ -66,8 +71,8 @@ function convertTableCalcSchemaToTableCalc(tableCalc) {
66
71
  ...baseCalc,
67
72
  template: {
68
73
  type: TableCalculationTemplateType.PERCENT_OF_PREVIOUS_VALUE,
69
- fieldId,
70
- orderBy: tableCalc.orderBy,
74
+ fieldId: tableCalc.fieldId,
75
+ orderBy: tableCalc.orderBy ?? [],
71
76
  },
72
77
  format: {
73
78
  type: CustomFormatType.PERCENT,
@@ -79,7 +84,8 @@ function convertTableCalcSchemaToTableCalc(tableCalc) {
79
84
  ...baseCalc,
80
85
  template: {
81
86
  type: TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL,
82
- fieldId,
87
+ fieldId: tableCalc.fieldId,
88
+ partitionBy: tableCalc.partitionBy ?? [],
83
89
  },
84
90
  format: {
85
91
  type: CustomFormatType.PERCENT,
@@ -91,7 +97,7 @@ function convertTableCalcSchemaToTableCalc(tableCalc) {
91
97
  ...baseCalc,
92
98
  template: {
93
99
  type: TableCalculationTemplateType.RANK_IN_COLUMN,
94
- fieldId,
100
+ fieldId: tableCalc.fieldId,
95
101
  },
96
102
  format: {
97
103
  type: CustomFormatType.NUMBER,
@@ -103,13 +109,64 @@ function convertTableCalcSchemaToTableCalc(tableCalc) {
103
109
  ...baseCalc,
104
110
  template: {
105
111
  type: TableCalculationTemplateType.RUNNING_TOTAL,
106
- fieldId,
112
+ fieldId: tableCalc.fieldId,
107
113
  },
108
114
  format: {
109
115
  type: CustomFormatType.NUMBER,
110
116
  separator: NumberSeparator.DEFAULT,
111
117
  },
112
118
  };
119
+ case 'window_function': {
120
+ // Map string window function to enum
121
+ const windowFunctionMap = {
122
+ row_number: WindowFunctionType.ROW_NUMBER,
123
+ percent_rank: WindowFunctionType.PERCENT_RANK,
124
+ sum: WindowFunctionType.SUM,
125
+ avg: WindowFunctionType.AVG,
126
+ count: WindowFunctionType.COUNT,
127
+ min: WindowFunctionType.MIN,
128
+ max: WindowFunctionType.MAX,
129
+ };
130
+ const format = tableCalc.windowFunction === 'percent_rank'
131
+ ? {
132
+ type: CustomFormatType.PERCENT,
133
+ separator: NumberSeparator.DEFAULT,
134
+ }
135
+ : {
136
+ type: CustomFormatType.NUMBER,
137
+ separator: NumberSeparator.DEFAULT,
138
+ };
139
+ // Convert frame clause string literals to enum types
140
+ const frame = tableCalc.frame
141
+ ? {
142
+ frameType: tableCalc.frame.frameType === 'rows'
143
+ ? FrameType.ROWS
144
+ : FrameType.RANGE,
145
+ start: tableCalc.frame.start
146
+ ? {
147
+ type: frameBoundaryStringToEnum(tableCalc.frame.start.type),
148
+ offset: tableCalc.frame.start.offset ?? undefined,
149
+ }
150
+ : undefined,
151
+ end: {
152
+ type: frameBoundaryStringToEnum(tableCalc.frame.end.type),
153
+ offset: tableCalc.frame.end.offset ?? undefined,
154
+ },
155
+ }
156
+ : undefined;
157
+ return {
158
+ ...baseCalc,
159
+ template: {
160
+ type: TableCalculationTemplateType.WINDOW_FUNCTION,
161
+ windowFunction: windowFunctionMap[tableCalc.windowFunction],
162
+ fieldId: tableCalc.fieldId,
163
+ orderBy: tableCalc.orderBy ?? [],
164
+ partitionBy: tableCalc.partitionBy ?? [],
165
+ frame,
166
+ },
167
+ format,
168
+ };
169
+ }
113
170
  default:
114
171
  return assertUnreachable(type, 'Unknown table calc type');
115
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalcs.js","sourceRoot":"","sources":["../../../../../../src/ee/AiAgent/schemas/tableCalcs/tableCalcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,wCAAwC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACjD,wCAAwC;IACxC,qCAAqC;IACrC,mCAAmC;IACnC,2BAA2B;IAC3B,2BAA2B;CAC9B,CAAC,CAAC;AAGH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwB5E,CAAC,CAAC;AAIH,SAAS,iCAAiC,CACtC,SAA0B;IAE1B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAEvD,qBAAqB;IACrB,MAAM,QAAQ,GAAqC;QAC/C,IAAI;QACJ,WAAW;QACX,IAAI,EAAE,oBAAoB,CAAC,MAAM;KACpC,CAAC;IAEF,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,8BAA8B;YAC/B,OAAO;gBACH,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,4BAA4B,CAAC,4BAA4B;oBAC/D,OAAO;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;iBAC7B;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,gBAAgB,CAAC,OAAO;oBAC9B,SAAS,EAAE,eAAe,CAAC,OAAO;iBACrC;aACJ,CAAC;QACN,KAAK,2BAA2B;YAC5B,OAAO;gBACH,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,4BAA4B,CAAC,yBAAyB;oBAC5D,OAAO;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;iBAC7B;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,gBAAgB,CAAC,OAAO;oBAC9B,SAAS,EAAE,eAAe,CAAC,OAAO;iBACrC;aACJ,CAAC;QACN,KAAK,yBAAyB;YAC1B,OAAO;gBACH,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,4BAA4B,CAAC,uBAAuB;oBAC1D,OAAO;iBACV;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,gBAAgB,CAAC,OAAO;oBAC9B,SAAS,EAAE,eAAe,CAAC,OAAO;iBACrC;aACJ,CAAC;QACN,KAAK,gBAAgB;YACjB,OAAO;gBACH,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,4BAA4B,CAAC,cAAc;oBACjD,OAAO;iBACV;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,gBAAgB,CAAC,MAAM;oBAC7B,SAAS,EAAE,eAAe,CAAC,OAAO;iBACrC;aACJ,CAAC;QACN,KAAK,eAAe;YAChB,OAAO;gBACH,GAAG,QAAQ;gBACX,QAAQ,EAAE;oBACN,IAAI,EAAE,4BAA4B,CAAC,aAAa;oBAChD,OAAO;iBACV;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,gBAAgB,CAAC,MAAM;oBAC7B,SAAS,EAAE,eAAe,CAAC,OAAO;iBACrC;aACJ,CAAC;QACN;YACI,OAAO,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,UAA4B;IAE5B,OAAO,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"tableCalcs.js","sourceRoot":"","sources":["../../../../../../src/ee/AiAgent/schemas/tableCalcs/tableCalcs.ts"],"names":[],"mappings":"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"}