@lightdash/common 0.2082.0 → 0.2084.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 (109) hide show
  1. package/dist/cjs/ee/AiAgent/followUpTools.d.ts.map +1 -1
  2. package/dist/cjs/ee/AiAgent/followUpTools.js +1 -0
  3. package/dist/cjs/ee/AiAgent/followUpTools.js.map +1 -1
  4. package/dist/cjs/ee/AiAgent/index.d.ts +11 -6
  5. package/dist/cjs/ee/AiAgent/index.d.ts.map +1 -1
  6. package/dist/cjs/ee/AiAgent/index.js +3 -0
  7. package/dist/cjs/ee/AiAgent/index.js.map +1 -1
  8. package/dist/cjs/ee/AiAgent/schemas/index.d.ts +13631 -3
  9. package/dist/cjs/ee/AiAgent/schemas/index.d.ts.map +1 -1
  10. package/dist/cjs/ee/AiAgent/schemas/index.js +12 -1
  11. package/dist/cjs/ee/AiAgent/schemas/index.js.map +1 -1
  12. package/dist/cjs/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  13. package/dist/cjs/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  14. package/dist/cjs/ee/AiAgent/schemas/tools/index.js +1 -0
  15. package/dist/cjs/ee/AiAgent/schemas/tools/index.js.map +1 -1
  16. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +4369 -0
  17. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts.map +1 -0
  18. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunQueryArgs.js +137 -0
  19. package/dist/cjs/ee/AiAgent/schemas/tools/toolRunQueryArgs.js.map +1 -0
  20. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  21. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  22. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.js +3 -0
  23. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.js.map +1 -1
  24. package/dist/cjs/ee/AiAgent/types.d.ts +5 -1
  25. package/dist/cjs/ee/AiAgent/types.d.ts.map +1 -1
  26. package/dist/cjs/ee/AiAgent/types.js +1 -0
  27. package/dist/cjs/ee/AiAgent/types.js.map +1 -1
  28. package/dist/cjs/ee/AiAgent/utils/chartConfigUtils.d.ts +26 -0
  29. package/dist/cjs/ee/AiAgent/utils/chartConfigUtils.d.ts.map +1 -0
  30. package/dist/cjs/ee/AiAgent/utils/chartConfigUtils.js +425 -0
  31. package/dist/cjs/ee/AiAgent/utils/chartConfigUtils.js.map +1 -0
  32. package/dist/cjs/ee/AiAgent/utils.d.ts +115 -0
  33. package/dist/cjs/ee/AiAgent/utils.d.ts.map +1 -1
  34. package/dist/cjs/ee/AiAgent/utils.js +24 -0
  35. package/dist/cjs/ee/AiAgent/utils.js.map +1 -1
  36. package/dist/cjs/index.d.ts +1 -0
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/index.js +1 -0
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/utils/pivotData.d.ts +13 -0
  41. package/dist/cjs/utils/pivotData.d.ts.map +1 -0
  42. package/dist/cjs/utils/pivotData.js +50 -0
  43. package/dist/cjs/utils/pivotData.js.map +1 -0
  44. package/dist/esm/ee/AiAgent/followUpTools.d.ts.map +1 -1
  45. package/dist/esm/ee/AiAgent/followUpTools.js +1 -0
  46. package/dist/esm/ee/AiAgent/followUpTools.js.map +1 -1
  47. package/dist/esm/ee/AiAgent/index.d.ts +11 -6
  48. package/dist/esm/ee/AiAgent/index.d.ts.map +1 -1
  49. package/dist/esm/ee/AiAgent/index.js +3 -0
  50. package/dist/esm/ee/AiAgent/index.js.map +1 -1
  51. package/dist/esm/ee/AiAgent/schemas/index.d.ts +13631 -3
  52. package/dist/esm/ee/AiAgent/schemas/index.d.ts.map +1 -1
  53. package/dist/esm/ee/AiAgent/schemas/index.js +12 -1
  54. package/dist/esm/ee/AiAgent/schemas/index.js.map +1 -1
  55. package/dist/esm/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  56. package/dist/esm/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  57. package/dist/esm/ee/AiAgent/schemas/tools/index.js +1 -0
  58. package/dist/esm/ee/AiAgent/schemas/tools/index.js.map +1 -1
  59. package/dist/esm/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +4369 -0
  60. package/dist/esm/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts.map +1 -0
  61. package/dist/esm/ee/AiAgent/schemas/tools/toolRunQueryArgs.js +133 -0
  62. package/dist/esm/ee/AiAgent/schemas/tools/toolRunQueryArgs.js.map +1 -0
  63. package/dist/esm/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  64. package/dist/esm/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  65. package/dist/esm/ee/AiAgent/schemas/visualizations/index.js +3 -0
  66. package/dist/esm/ee/AiAgent/schemas/visualizations/index.js.map +1 -1
  67. package/dist/esm/ee/AiAgent/types.d.ts +5 -1
  68. package/dist/esm/ee/AiAgent/types.d.ts.map +1 -1
  69. package/dist/esm/ee/AiAgent/types.js +1 -0
  70. package/dist/esm/ee/AiAgent/types.js.map +1 -1
  71. package/dist/esm/ee/AiAgent/utils/chartConfigUtils.d.ts +26 -0
  72. package/dist/esm/ee/AiAgent/utils/chartConfigUtils.d.ts.map +1 -0
  73. package/dist/esm/ee/AiAgent/utils/chartConfigUtils.js +417 -0
  74. package/dist/esm/ee/AiAgent/utils/chartConfigUtils.js.map +1 -0
  75. package/dist/esm/ee/AiAgent/utils.d.ts +115 -0
  76. package/dist/esm/ee/AiAgent/utils.d.ts.map +1 -1
  77. package/dist/esm/ee/AiAgent/utils.js +25 -1
  78. package/dist/esm/ee/AiAgent/utils.js.map +1 -1
  79. package/dist/esm/index.d.ts +1 -0
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +1 -0
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/utils/pivotData.d.ts +13 -0
  84. package/dist/esm/utils/pivotData.d.ts.map +1 -0
  85. package/dist/esm/utils/pivotData.js +46 -0
  86. package/dist/esm/utils/pivotData.js.map +1 -0
  87. package/dist/tsconfig.types.tsbuildinfo +1 -1
  88. package/dist/types/ee/AiAgent/followUpTools.d.ts.map +1 -1
  89. package/dist/types/ee/AiAgent/index.d.ts +11 -6
  90. package/dist/types/ee/AiAgent/index.d.ts.map +1 -1
  91. package/dist/types/ee/AiAgent/schemas/index.d.ts +13631 -3
  92. package/dist/types/ee/AiAgent/schemas/index.d.ts.map +1 -1
  93. package/dist/types/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  94. package/dist/types/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  95. package/dist/types/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +4369 -0
  96. package/dist/types/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts.map +1 -0
  97. package/dist/types/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  98. package/dist/types/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  99. package/dist/types/ee/AiAgent/types.d.ts +5 -1
  100. package/dist/types/ee/AiAgent/types.d.ts.map +1 -1
  101. package/dist/types/ee/AiAgent/utils/chartConfigUtils.d.ts +26 -0
  102. package/dist/types/ee/AiAgent/utils/chartConfigUtils.d.ts.map +1 -0
  103. package/dist/types/ee/AiAgent/utils.d.ts +115 -0
  104. package/dist/types/ee/AiAgent/utils.d.ts.map +1 -1
  105. package/dist/types/index.d.ts +1 -0
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/types/utils/pivotData.d.ts +13 -0
  108. package/dist/types/utils/pivotData.d.ts.map +1 -0
  109. package/package.json +1 -1
@@ -0,0 +1,417 @@
1
+ import { friendlyName, isField } from '../../../types/field';
2
+ import { CartesianSeriesType, ChartType, FunnelChartDataInput, } from '../../../types/savedCharts';
3
+ import { formatItemValue } from '../../../utils/formatting';
4
+ import { getItemLabelWithoutTableName } from '../../../utils/item';
5
+ /**
6
+ * Determines if a query can be rendered as a specific chart type
7
+ */
8
+ export const canRenderAsChart = (chartType, metricQuery) => {
9
+ switch (chartType) {
10
+ case 'table':
11
+ return true; // Table can always render
12
+ case 'bar':
13
+ case 'horizontal':
14
+ case 'line':
15
+ case 'scatter':
16
+ // Charts require at least one dimension and one metric
17
+ return (metricQuery.dimensions.length > 0 &&
18
+ metricQuery.metrics.length > 0);
19
+ case 'pie':
20
+ case 'funnel':
21
+ // Pie and funnel charts require at least one dimension and one metric
22
+ return (metricQuery.dimensions.length > 0 &&
23
+ metricQuery.metrics.length > 0);
24
+ default:
25
+ return false;
26
+ }
27
+ };
28
+ /**
29
+ * Gets all available chart types for a query
30
+ */
31
+ export const getAvailableChartTypes = (metricQuery) => {
32
+ const types = ['table'];
33
+ if (metricQuery.metrics.length > 0 && metricQuery.dimensions.length > 0) {
34
+ types.push('bar', 'horizontal', 'line', 'scatter', 'pie', 'funnel');
35
+ }
36
+ return types;
37
+ };
38
+ export const formatFieldLabel = (fieldId, fieldsMap) => {
39
+ const field = fieldsMap[fieldId];
40
+ if (field && isField(field)) {
41
+ return getItemLabelWithoutTableName(field);
42
+ }
43
+ return friendlyName(fieldId);
44
+ };
45
+ export const formatPivotValueLabel = (pivotReference, fieldsMap) => {
46
+ if (!pivotReference.pivotValues?.[0]) {
47
+ return '';
48
+ }
49
+ const pivotFieldId = pivotReference.pivotValues[0].field;
50
+ const pivotField = fieldsMap[pivotFieldId];
51
+ const pivotValue = pivotReference.pivotValues[0].value;
52
+ if (pivotField && isField(pivotField)) {
53
+ return formatItemValue(pivotField, pivotValue);
54
+ }
55
+ return friendlyName(String(pivotValue));
56
+ };
57
+ /**
58
+ * Generates bar chart echarts config
59
+ */
60
+ const getBarChartConfig = ({ queryTool, metricQuery, fieldsMap, chartConfig, metadata, }) => {
61
+ const { dimensions, metrics } = queryTool.queryConfig;
62
+ const xDimension = dimensions[0];
63
+ return {
64
+ type: ChartType.CARTESIAN,
65
+ config: {
66
+ layout: {
67
+ xField: xDimension,
68
+ yField: metricQuery.metrics,
69
+ },
70
+ eChartsConfig: {
71
+ ...(metadata.title ? { title: { text: metadata.title } } : {}),
72
+ legend: {
73
+ show: true,
74
+ type: 'scroll',
75
+ },
76
+ grid: { containLabel: true },
77
+ xAxis: [
78
+ {
79
+ type: chartConfig?.xAxisType ?? 'category',
80
+ ...(chartConfig?.xAxisLabel
81
+ ? { name: chartConfig.xAxisLabel }
82
+ : {}),
83
+ },
84
+ ],
85
+ yAxis: [
86
+ {
87
+ type: 'value',
88
+ ...(chartConfig?.yAxisLabel
89
+ ? { name: chartConfig.yAxisLabel }
90
+ : {}),
91
+ },
92
+ ],
93
+ series: metrics.map((metric) => {
94
+ const defaultProperties = {
95
+ type: CartesianSeriesType.BAR,
96
+ yAxisIndex: 0,
97
+ // ...(chartConfig?.stackBars && { stack: 'total' }),
98
+ };
99
+ if (typeof metric === 'string') {
100
+ return {
101
+ ...defaultProperties,
102
+ name: formatFieldLabel(metric, fieldsMap),
103
+ encode: {
104
+ xRef: { field: xDimension },
105
+ yRef: { field: metric },
106
+ },
107
+ };
108
+ }
109
+ return {
110
+ ...defaultProperties,
111
+ name: formatPivotValueLabel(metric, fieldsMap),
112
+ encode: {
113
+ xRef: { field: xDimension },
114
+ yRef: metric,
115
+ },
116
+ };
117
+ }),
118
+ },
119
+ },
120
+ };
121
+ };
122
+ /**
123
+ * Generates line chart echarts config
124
+ */
125
+ const getLineChartConfig = ({ queryTool, metricQuery, fieldsMap, chartConfig, metadata, }) => {
126
+ const { dimensions, metrics } = queryTool.queryConfig;
127
+ const xDimension = dimensions[0];
128
+ return {
129
+ type: ChartType.CARTESIAN,
130
+ config: {
131
+ layout: {
132
+ xField: xDimension,
133
+ yField: metricQuery.metrics,
134
+ },
135
+ eChartsConfig: {
136
+ ...(metadata.title ? { title: { text: metadata.title } } : {}),
137
+ legend: {
138
+ show: true,
139
+ type: 'scroll',
140
+ },
141
+ grid: { containLabel: true },
142
+ xAxis: [
143
+ {
144
+ type: 'time',
145
+ ...(chartConfig?.xAxisLabel
146
+ ? { name: chartConfig.xAxisLabel }
147
+ : {}),
148
+ },
149
+ ],
150
+ yAxis: [
151
+ {
152
+ type: 'value',
153
+ ...(chartConfig?.yAxisLabel
154
+ ? { name: chartConfig.yAxisLabel }
155
+ : {}),
156
+ },
157
+ ],
158
+ series: metrics.map((metric) => {
159
+ const defaultProperties = {
160
+ type: CartesianSeriesType.LINE,
161
+ yAxisIndex: 0,
162
+ ...(chartConfig?.lineType === 'area' && {
163
+ areaStyle: {},
164
+ }),
165
+ };
166
+ if (typeof metric === 'string') {
167
+ return {
168
+ ...defaultProperties,
169
+ name: formatFieldLabel(metric, fieldsMap),
170
+ encode: {
171
+ xRef: { field: xDimension },
172
+ yRef: { field: metric },
173
+ },
174
+ };
175
+ }
176
+ return {
177
+ ...defaultProperties,
178
+ name: formatPivotValueLabel(metric, fieldsMap),
179
+ encode: {
180
+ xRef: { field: xDimension },
181
+ yRef: metric,
182
+ },
183
+ };
184
+ }),
185
+ },
186
+ },
187
+ };
188
+ };
189
+ /**
190
+ * Generates horizontal bar chart echarts config
191
+ */
192
+ const getHorizontalBarChartConfig = ({ queryTool, metricQuery, fieldsMap, chartConfig, metadata, }) => {
193
+ const { dimensions, metrics } = queryTool.queryConfig;
194
+ const xDimension = dimensions[0];
195
+ return {
196
+ type: ChartType.CARTESIAN,
197
+ config: {
198
+ layout: {
199
+ xField: xDimension,
200
+ yField: metricQuery.metrics,
201
+ flipAxes: true, // This makes it horizontal
202
+ },
203
+ eChartsConfig: {
204
+ ...(metadata.title ? { title: { text: metadata.title } } : {}),
205
+ legend: {
206
+ show: true,
207
+ type: 'scroll',
208
+ },
209
+ grid: { containLabel: true },
210
+ xAxis: [
211
+ {
212
+ type: 'value',
213
+ ...(chartConfig?.xAxisLabel
214
+ ? { name: chartConfig.xAxisLabel }
215
+ : {}),
216
+ },
217
+ ],
218
+ yAxis: [
219
+ {
220
+ type: chartConfig?.xAxisType ?? 'category',
221
+ ...(chartConfig?.yAxisLabel
222
+ ? { name: chartConfig.yAxisLabel }
223
+ : {}),
224
+ },
225
+ ],
226
+ series: metrics.map((metric) => {
227
+ const defaultProperties = {
228
+ type: CartesianSeriesType.BAR,
229
+ yAxisIndex: 0,
230
+ };
231
+ if (typeof metric === 'string') {
232
+ return {
233
+ ...defaultProperties,
234
+ name: formatFieldLabel(metric, fieldsMap),
235
+ encode: {
236
+ xRef: { field: xDimension },
237
+ yRef: { field: metric },
238
+ },
239
+ };
240
+ }
241
+ return {
242
+ ...defaultProperties,
243
+ name: formatPivotValueLabel(metric, fieldsMap),
244
+ encode: {
245
+ xRef: { field: xDimension },
246
+ yRef: metric,
247
+ },
248
+ };
249
+ }),
250
+ },
251
+ },
252
+ };
253
+ };
254
+ /**
255
+ * Generates scatter chart echarts config
256
+ */
257
+ const getScatterChartConfig = ({ queryTool, metricQuery, fieldsMap, chartConfig, metadata, }) => {
258
+ const { dimensions, metrics } = queryTool.queryConfig;
259
+ const xDimension = dimensions[0];
260
+ return {
261
+ type: ChartType.CARTESIAN,
262
+ config: {
263
+ layout: {
264
+ xField: xDimension,
265
+ yField: metricQuery.metrics,
266
+ },
267
+ eChartsConfig: {
268
+ ...(metadata.title ? { title: { text: metadata.title } } : {}),
269
+ legend: {
270
+ show: true,
271
+ type: 'scroll',
272
+ },
273
+ grid: { containLabel: true },
274
+ xAxis: [
275
+ {
276
+ type: chartConfig?.xAxisType ?? 'category',
277
+ ...(chartConfig?.xAxisLabel
278
+ ? { name: chartConfig.xAxisLabel }
279
+ : {}),
280
+ },
281
+ ],
282
+ yAxis: [
283
+ {
284
+ type: 'value',
285
+ ...(chartConfig?.yAxisLabel
286
+ ? { name: chartConfig.yAxisLabel }
287
+ : {}),
288
+ },
289
+ ],
290
+ series: metrics.map((metric) => {
291
+ const defaultProperties = {
292
+ type: CartesianSeriesType.SCATTER,
293
+ yAxisIndex: 0,
294
+ // Scatter charts should show symbols by default
295
+ showSymbol: true,
296
+ };
297
+ if (typeof metric === 'string') {
298
+ return {
299
+ ...defaultProperties,
300
+ name: formatFieldLabel(metric, fieldsMap),
301
+ encode: {
302
+ xRef: { field: xDimension },
303
+ yRef: { field: metric },
304
+ },
305
+ };
306
+ }
307
+ return {
308
+ ...defaultProperties,
309
+ name: formatPivotValueLabel(metric, fieldsMap),
310
+ encode: {
311
+ xRef: { field: xDimension },
312
+ yRef: metric,
313
+ },
314
+ };
315
+ }),
316
+ },
317
+ },
318
+ };
319
+ };
320
+ /**
321
+ * Generates pie chart config
322
+ */
323
+ const getPieChartConfig = ({ queryTool, metricQuery, }) => {
324
+ const { dimensions } = queryTool.queryConfig;
325
+ const { metrics } = metricQuery;
326
+ const config = {
327
+ groupFieldIds: dimensions,
328
+ metricId: metrics[0],
329
+ };
330
+ return {
331
+ type: ChartType.PIE,
332
+ config,
333
+ };
334
+ };
335
+ /**
336
+ * Generates funnel chart config
337
+ */
338
+ const getFunnelChartConfig = ({ queryTool, metricQuery, }) => {
339
+ const { metrics } = metricQuery;
340
+ const { chartConfig } = queryTool;
341
+ let dataInput = FunnelChartDataInput.COLUMN;
342
+ if (chartConfig?.funnelDataInput === 'row') {
343
+ dataInput = FunnelChartDataInput.ROW;
344
+ }
345
+ return {
346
+ type: ChartType.FUNNEL,
347
+ config: {
348
+ fieldId: metrics[0],
349
+ dataInput,
350
+ },
351
+ };
352
+ };
353
+ /**
354
+ * Converts runQuery tool result to echarts config
355
+ * This is the main function used for chart type switching
356
+ */
357
+ export const getChartConfigFromRunQuery = ({ queryTool, metricQuery, fieldsMap, overrideChartType, }) => {
358
+ const chartType = overrideChartType ?? queryTool.chartConfig?.defaultVizType ?? 'table';
359
+ if (!canRenderAsChart(chartType, metricQuery)) {
360
+ // Fallback to table if chart type is not valid
361
+ return { type: ChartType.TABLE };
362
+ }
363
+ const { chartConfig } = queryTool;
364
+ const metadata = {
365
+ title: queryTool.title,
366
+ description: queryTool.description,
367
+ };
368
+ switch (chartType) {
369
+ case 'table':
370
+ return { type: ChartType.TABLE };
371
+ case 'bar':
372
+ return getBarChartConfig({
373
+ queryTool,
374
+ metricQuery,
375
+ fieldsMap,
376
+ chartConfig,
377
+ metadata,
378
+ });
379
+ case 'horizontal':
380
+ return getHorizontalBarChartConfig({
381
+ queryTool,
382
+ metricQuery,
383
+ fieldsMap,
384
+ chartConfig,
385
+ metadata,
386
+ });
387
+ case 'line':
388
+ return getLineChartConfig({
389
+ queryTool,
390
+ metricQuery,
391
+ fieldsMap,
392
+ chartConfig,
393
+ metadata,
394
+ });
395
+ case 'scatter':
396
+ return getScatterChartConfig({
397
+ queryTool,
398
+ metricQuery,
399
+ fieldsMap,
400
+ chartConfig,
401
+ metadata,
402
+ });
403
+ case 'pie':
404
+ return getPieChartConfig({
405
+ queryTool,
406
+ metricQuery,
407
+ });
408
+ case 'funnel':
409
+ return getFunnelChartConfig({
410
+ queryTool,
411
+ metricQuery,
412
+ });
413
+ default:
414
+ throw new Error(`Unknown chart type: ${chartType}`);
415
+ }
416
+ };
417
+ //# sourceMappingURL=chartConfigUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartConfigUtils.js","sourceRoot":"","sources":["../../../../../src/ee/AiAgent/utils/chartConfigUtils.ts"],"names":[],"mappings":"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"}
@@ -266,5 +266,120 @@ export declare const parseVizConfig: (vizConfigUnknown: object | null, maxLimit?
266
266
  };
267
267
  };
268
268
  readonly metricQuery: import("./types").AiMetricQueryWithFilters;
269
+ } | {
270
+ readonly type: AiResultType.QUERY_RESULT;
271
+ readonly vizTool: {
272
+ filters: import("../..").Filters;
273
+ tableCalculations: ({
274
+ name: string;
275
+ fieldId: string;
276
+ type: "percent_change_from_previous";
277
+ displayName: string;
278
+ orderBy: {
279
+ fieldId: string;
280
+ order: "asc" | "desc" | null;
281
+ }[];
282
+ } | {
283
+ name: string;
284
+ fieldId: string;
285
+ type: "percent_of_previous_value";
286
+ displayName: string;
287
+ orderBy: {
288
+ fieldId: string;
289
+ order: "asc" | "desc" | null;
290
+ }[];
291
+ } | {
292
+ name: string;
293
+ fieldId: string;
294
+ type: "percent_of_column_total";
295
+ displayName: string;
296
+ partitionBy: string[] | null;
297
+ } | {
298
+ name: string;
299
+ fieldId: string;
300
+ type: "rank_in_column";
301
+ displayName: string;
302
+ } | {
303
+ name: string;
304
+ fieldId: string;
305
+ type: "running_total";
306
+ displayName: string;
307
+ } | {
308
+ name: string;
309
+ fieldId: string | null;
310
+ type: "window_function";
311
+ displayName: string;
312
+ orderBy: {
313
+ fieldId: string;
314
+ order: "asc" | "desc" | null;
315
+ }[] | null;
316
+ partitionBy: string[] | null;
317
+ windowFunction: "row_number" | "percent_rank" | "sum" | "avg" | "count" | "min" | "max";
318
+ frame: {
319
+ start: {
320
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
321
+ offset: number | null;
322
+ } | null;
323
+ end: {
324
+ type: "unbounded_preceding" | "preceding" | "current_row" | "following" | "unbounded_following";
325
+ offset: number | null;
326
+ };
327
+ frameType: "rows" | "range";
328
+ } | null;
329
+ })[] | null;
330
+ type: AiResultType.QUERY_RESULT;
331
+ description: string;
332
+ customMetrics: {
333
+ name: string;
334
+ label: string;
335
+ table: string;
336
+ type: import("../..").MetricType.PERCENTILE | import("../..").MetricType.AVERAGE | import("../..").MetricType.COUNT | import("../..").MetricType.COUNT_DISTINCT | import("../..").MetricType.SUM | import("../..").MetricType.MIN | import("../..").MetricType.MAX | import("../..").MetricType.MEDIAN;
337
+ description: string;
338
+ baseDimensionName: string;
339
+ }[] | null;
340
+ chartConfig: {
341
+ groupBy: string[] | null;
342
+ stackBars: boolean | null;
343
+ xAxisType: "time" | "category" | null;
344
+ xAxisLabel: string | null;
345
+ yAxisLabel: string | null;
346
+ lineType: "line" | "area" | null;
347
+ defaultVizType: "table" | "bar" | "line" | "scatter" | "pie" | "funnel" | "horizontal";
348
+ funnelDataInput: "row" | "column" | null;
349
+ } | null;
350
+ title: string;
351
+ queryConfig: {
352
+ dimensions: string[];
353
+ metrics: string[];
354
+ limit: number | null;
355
+ exploreName: string;
356
+ sorts: {
357
+ fieldId: string;
358
+ descending: boolean;
359
+ nullsFirst: boolean | null;
360
+ }[];
361
+ };
362
+ };
363
+ readonly metricQuery: {
364
+ exploreName: string;
365
+ dimensions: string[];
366
+ metrics: string[];
367
+ sorts: {
368
+ nullsFirst: boolean | undefined;
369
+ fieldId: string;
370
+ descending: boolean;
371
+ }[];
372
+ limit: number;
373
+ filters: import("../..").Filters;
374
+ additionalMetrics: {
375
+ name: string;
376
+ label: string;
377
+ table: string;
378
+ type: import("../..").MetricType.PERCENTILE | import("../..").MetricType.AVERAGE | import("../..").MetricType.COUNT | import("../..").MetricType.COUNT_DISTINCT | import("../..").MetricType.SUM | import("../..").MetricType.MIN | import("../..").MetricType.MAX | import("../..").MetricType.MEDIAN;
379
+ description: string;
380
+ baseDimensionName: string;
381
+ }[];
382
+ tableCalculations: import("../..").TableCalculation[];
383
+ };
269
384
  } | null;
270
385
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/utils.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,cAAc,qBACL,MAAM,GAAG,IAAI,aACpB,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoEhC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/utils.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,eAAO,MAAM,cAAc,qBACL,MAAM,GAAG,IAAI,aACpB,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoGhC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AI_DEFAULT_MAX_QUERY_LIMIT } from './constants';
2
- import { convertAiTableCalcsSchemaToTableCalcs, metricQueryTableViz, metricQueryTimeSeriesViz, metricQueryVerticalBarViz, toolTableVizArgsSchemaTransformed, toolTimeSeriesArgsSchemaTransformed, toolVerticalBarArgsSchemaTransformed, } from './schemas';
2
+ import { convertAiTableCalcsSchemaToTableCalcs, metricQueryTableViz, metricQueryTimeSeriesViz, metricQueryVerticalBarViz, toolRunQueryArgsSchemaTransformed, toolTableVizArgsSchemaTransformed, toolTimeSeriesArgsSchemaTransformed, toolVerticalBarArgsSchemaTransformed, } from './schemas';
3
3
  import { AiResultType } from './types';
4
+ import { getValidAiQueryLimit } from './validators';
4
5
  export const parseVizConfig = (vizConfigUnknown, maxLimit) => {
5
6
  if (!vizConfigUnknown) {
6
7
  return null;
@@ -53,6 +54,29 @@ export const parseVizConfig = (vizConfigUnknown, maxLimit) => {
53
54
  metricQuery,
54
55
  };
55
56
  }
57
+ // Parse runQuery tool
58
+ const toolRunQueryArgsParsed = toolRunQueryArgsSchemaTransformed.safeParse(vizConfigUnknown);
59
+ if (toolRunQueryArgsParsed.success) {
60
+ const vizTool = toolRunQueryArgsParsed.data;
61
+ const metricQuery = {
62
+ exploreName: vizTool.queryConfig.exploreName,
63
+ dimensions: vizTool.queryConfig.dimensions,
64
+ metrics: vizTool.queryConfig.metrics,
65
+ sorts: vizTool.queryConfig.sorts.map((sort) => ({
66
+ ...sort,
67
+ nullsFirst: sort.nullsFirst ?? undefined,
68
+ })),
69
+ limit: getValidAiQueryLimit(vizTool.queryConfig.limit, maxLimit ?? AI_DEFAULT_MAX_QUERY_LIMIT),
70
+ filters: vizTool.filters,
71
+ additionalMetrics: vizTool.customMetrics ?? [],
72
+ tableCalculations: convertAiTableCalcsSchemaToTableCalcs(vizTool.tableCalculations),
73
+ };
74
+ return {
75
+ type: AiResultType.QUERY_RESULT,
76
+ vizTool,
77
+ metricQuery,
78
+ };
79
+ }
56
80
  return null;
57
81
  };
58
82
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACH,qCAAqC,EACrC,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,EACnC,oCAAoC,GACvC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,gBAA+B,EAC/B,QAA6B,EAC/B,EAAE;IACA,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,yBAAyB,GAC3B,oCAAoC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAErE,IAAI,yBAAyB,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAC/C,MAAM,WAAW,GAAG,yBAAyB,CAAC;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,QAAQ,IAAI,0BAA0B;YAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,iBAAiB,EAAE,qCAAqC,CACpD,OAAO,CAAC,iBAAiB,CAC5B;SACJ,CAAC,CAAC;QACH,OAAO;YACH,IAAI,EAAE,YAAY,CAAC,mBAAmB;YACtC,OAAO;YACP,WAAW;SACL,CAAC;IACf,CAAC;IAED,MAAM,wBAAwB,GAC1B,mCAAmC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpE,IAAI,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC;QAC9C,MAAM,WAAW,GAAG,wBAAwB,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,QAAQ,IAAI,0BAA0B;YAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,iBAAiB,EAAE,qCAAqC,CACpD,OAAO,CAAC,iBAAiB,CAC5B;SACJ,CAAC,CAAC;QACH,OAAO;YACH,IAAI,EAAE,YAAY,CAAC,kBAAkB;YACrC,OAAO;YACP,WAAW;SACL,CAAC;IACf,CAAC;IAED,MAAM,sBAAsB,GACxB,iCAAiC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAClE,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC;QAC5C,MAAM,WAAW,GAAG,mBAAmB,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,QAAQ,IAAI,0BAA0B;YAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,iBAAiB,EAAE,qCAAqC,CACpD,OAAO,CAAC,iBAAiB,CAC5B;SACJ,CAAC,CAAC;QACH,OAAO;YACH,IAAI,EAAE,YAAY,CAAC,YAAY;YAC/B,OAAO;YACP,WAAW;SACL,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/utils.ts"],"names":[],"mappings":"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"}
@@ -185,6 +185,7 @@ export * from './utils/loadLightdashProjectConfig';
185
185
  export * from './utils/metricsExplorer';
186
186
  export * from './utils/oauth';
187
187
  export * from './utils/organization';
188
+ export * from './utils/pivotData';
188
189
  export * from './utils/projectMemberRole';
189
190
  export * from './utils/promises';
190
191
  export * from './utils/sanitizeHtml';