drizzle-cube 0.6.1 → 0.6.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 (565) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/express/index.js +1 -1
  3. package/dist/adapters/fastify/index.cjs +1 -1
  4. package/dist/adapters/fastify/index.js +1 -1
  5. package/dist/adapters/{handler-CfgE0JSL.js → handler-CtaSua-i.js} +1 -1
  6. package/dist/adapters/{handler-Cn0dOctE.cjs → handler-OwxSBJH8.cjs} +1 -1
  7. package/dist/adapters/hono/index.cjs +1 -1
  8. package/dist/adapters/hono/index.js +1 -1
  9. package/dist/adapters/nextjs/index.cjs +1 -1
  10. package/dist/adapters/nextjs/index.js +1 -1
  11. package/dist/{server/openai-B5jEiqiB.js → adapters/openai-CmVRIbUg.js} +18 -2
  12. package/dist/adapters/{openai-cDlFSTk6.js → openai-CtXqeznO.js} +1 -1
  13. package/dist/{server/openai-D0musiYP.cjs → adapters/openai-D-6l1Y8h.cjs} +3 -3
  14. package/dist/adapters/{openai-vXvLni8v.cjs → openai-DTSTMiXL.cjs} +1 -1
  15. package/dist/cjs/adapters/express/index.d.ts +114 -0
  16. package/dist/cjs/adapters/fastify/index.d.ts +113 -0
  17. package/dist/cjs/adapters/hono/agent-handler.d.ts +9 -0
  18. package/dist/cjs/adapters/hono/index.d.ts +120 -0
  19. package/dist/cjs/adapters/hono/mcp-handler.d.ts +37 -0
  20. package/dist/cjs/adapters/locale.d.ts +8 -0
  21. package/dist/cjs/adapters/mcp-tools-handlers.d.ts +18 -0
  22. package/dist/cjs/adapters/mcp-tools.d.ts +134 -0
  23. package/dist/cjs/adapters/mcp-transport.d.ts +158 -0
  24. package/dist/cjs/adapters/nextjs/index.d.ts +196 -0
  25. package/dist/cjs/adapters/nextjs/mcp-handler.d.ts +36 -0
  26. package/dist/cjs/adapters/types.d.ts +41 -0
  27. package/dist/cjs/adapters/utils.d.ts +354 -0
  28. package/dist/cjs/client/adapters/adapterRegistry.d.ts +44 -0
  29. package/dist/cjs/client/adapters/flowModeAdapter.d.ts +3 -0
  30. package/dist/cjs/client/adapters/funnelModeAdapter.d.ts +19 -0
  31. package/dist/cjs/client/adapters/index.d.ts +29 -0
  32. package/dist/cjs/client/adapters/modeAdapter.d.ts +117 -0
  33. package/dist/cjs/client/adapters/queryModeAdapter.d.ts +16 -0
  34. package/dist/cjs/client/adapters/retentionModeAdapter.d.ts +3 -0
  35. package/dist/cjs/client/charts/ChartLoader.d.ts +69 -0
  36. package/dist/cjs/client/charts/chartComponentRegistry.d.ts +46 -0
  37. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +38 -0
  38. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +15 -0
  39. package/dist/cjs/client/charts/chartConfigs.d.ts +142 -0
  40. package/dist/cjs/client/charts/chartPlugin.d.ts +74 -0
  41. package/dist/cjs/client/charts/lazyChartConfigRegistry.d.ts +100 -0
  42. package/dist/cjs/client/charts.d.ts +17 -0
  43. package/dist/cjs/client/client/BatchCoordinator.d.ts +38 -0
  44. package/dist/cjs/client/client/CubeClient.d.ts +32 -0
  45. package/dist/cjs/client/components/AIAssistant/constants.d.ts +11 -0
  46. package/dist/cjs/client/components/AIAssistant/index.d.ts +10 -0
  47. package/dist/cjs/client/components/AIAssistant/types.d.ts +49 -0
  48. package/dist/cjs/client/components/AIAssistant/utils.d.ts +17 -0
  49. package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +27 -0
  50. package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +14 -0
  51. package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +9 -0
  52. package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +6 -0
  53. package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +12 -0
  54. package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +15 -0
  55. package/dist/cjs/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  56. package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  57. package/dist/cjs/client/components/AgenticNotebook/index.d.ts +56 -0
  58. package/dist/cjs/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  59. package/dist/cjs/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  60. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +25 -0
  61. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +29 -0
  62. package/dist/cjs/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +18 -0
  63. package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +11 -0
  64. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +20 -0
  65. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +14 -0
  66. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +16 -0
  67. package/dist/cjs/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +27 -0
  68. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +12 -0
  69. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  70. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  71. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +14 -0
  72. package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +17 -0
  73. package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  74. package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +12 -0
  75. package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  76. package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +9 -0
  77. package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  78. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +49 -0
  79. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  80. package/dist/cjs/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +16 -0
  81. package/dist/cjs/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +4 -0
  82. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchItem.d.ts +6 -0
  83. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchModal.d.ts +2 -0
  84. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  85. package/dist/cjs/client/components/AnalysisBuilder/FilterConfigModal.d.ts +17 -0
  86. package/dist/cjs/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  87. package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +28 -0
  88. package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  89. package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +57 -0
  90. package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  91. package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +21 -0
  92. package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +24 -0
  93. package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +48 -0
  94. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +25 -0
  95. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +26 -0
  96. package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  97. package/dist/cjs/client/components/AnalysisBuilder/LimitSection.d.ts +14 -0
  98. package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +11 -0
  99. package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  100. package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +9 -0
  101. package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +36 -0
  102. package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +71 -0
  103. package/dist/cjs/client/components/AnalysisBuilder/SectionHeading.d.ts +12 -0
  104. package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  105. package/dist/cjs/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  106. package/dist/cjs/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  107. package/dist/cjs/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  108. package/dist/cjs/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  109. package/dist/cjs/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  110. package/dist/cjs/client/components/AnalysisBuilder/index.d.ts +9 -0
  111. package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +851 -0
  112. package/dist/cjs/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  113. package/dist/cjs/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  114. package/dist/cjs/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +69 -0
  115. package/dist/cjs/client/components/AnalysisBuilder/utils/filterUtils.d.ts +19 -0
  116. package/dist/cjs/client/components/AnalysisBuilder/utils/idUtils.d.ts +11 -0
  117. package/dist/cjs/client/components/AnalysisBuilder/utils/index.d.ts +11 -0
  118. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +11 -0
  119. package/dist/cjs/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +14 -0
  120. package/dist/cjs/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  121. package/dist/cjs/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  122. package/dist/cjs/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  123. package/dist/cjs/client/components/AnalysisBuilder/utils/storageUtils.d.ts +44 -0
  124. package/dist/cjs/client/components/AnalysisBuilderLazy.d.ts +4 -0
  125. package/dist/cjs/client/components/AnalyticsDashboard.d.ts +2 -0
  126. package/dist/cjs/client/components/AnalyticsPage.d.ts +1 -0
  127. package/dist/cjs/client/components/AnalyticsPortlet.d.ts +10 -0
  128. package/dist/cjs/client/components/ChartErrorBoundary.d.ts +21 -0
  129. package/dist/cjs/client/components/ChartTypeSelector.d.ts +15 -0
  130. package/dist/cjs/client/components/ColorPaletteSelector.d.ts +11 -0
  131. package/dist/cjs/client/components/ConfirmModal.d.ts +30 -0
  132. package/dist/cjs/client/components/DashboardEditModal.d.ts +15 -0
  133. package/dist/cjs/client/components/DashboardFilterPanel.d.ts +15 -0
  134. package/dist/cjs/client/components/DashboardFilters/CompactFilterBar.d.ts +13 -0
  135. package/dist/cjs/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  136. package/dist/cjs/client/components/DashboardFilters/CustomDateDropdown.d.ts +10 -0
  137. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +20 -0
  138. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  139. package/dist/cjs/client/components/DashboardFilters/DashboardFilterItem.d.ts +14 -0
  140. package/dist/cjs/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  141. package/dist/cjs/client/components/DashboardFilters/DatePresetChips.d.ts +8 -0
  142. package/dist/cjs/client/components/DashboardFilters/EditModeFilterList.d.ts +13 -0
  143. package/dist/cjs/client/components/DashboardFilters/FilterChip.d.ts +12 -0
  144. package/dist/cjs/client/components/DashboardFilters/FilterEditModal.d.ts +15 -0
  145. package/dist/cjs/client/components/DashboardFilters/FilterValuePopover.d.ts +11 -0
  146. package/dist/cjs/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +13 -0
  147. package/dist/cjs/client/components/DashboardFilters/XTDDropdown.d.ts +10 -0
  148. package/dist/cjs/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  149. package/dist/cjs/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  150. package/dist/cjs/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  151. package/dist/cjs/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  152. package/dist/cjs/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  153. package/dist/cjs/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  154. package/dist/cjs/client/components/DashboardGrid.d.ts +22 -0
  155. package/dist/cjs/client/components/DashboardPortletCard.d.ts +4 -0
  156. package/dist/cjs/client/components/DashboardThumbnailPlaceholder.d.ts +13 -0
  157. package/dist/cjs/client/components/DataBrowser/DataBrowserSidebar.d.ts +16 -0
  158. package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +16 -0
  159. package/dist/cjs/client/components/DataBrowser/DataBrowserToolbar.d.ts +22 -0
  160. package/dist/cjs/client/components/DataBrowser/index.d.ts +28 -0
  161. package/dist/cjs/client/components/DataHistogram.d.ts +27 -0
  162. package/dist/cjs/client/components/DebugModal.d.ts +17 -0
  163. package/dist/cjs/client/components/DrillBreadcrumb.d.ts +7 -0
  164. package/dist/cjs/client/components/DrillMenu.d.ts +8 -0
  165. package/dist/cjs/client/components/FloatingEditToolbar.d.ts +30 -0
  166. package/dist/cjs/client/components/LoadingIndicator.d.ts +16 -0
  167. package/dist/cjs/client/components/MobileStackedLayout.d.ts +14 -0
  168. package/dist/cjs/client/components/Modal.d.ts +16 -0
  169. package/dist/cjs/client/components/PortletAnalysisModal.d.ts +27 -0
  170. package/dist/cjs/client/components/PortletContainer.d.ts +10 -0
  171. package/dist/cjs/client/components/PortletFilterConfigModal.d.ts +13 -0
  172. package/dist/cjs/client/components/RowManagedLayout.d.ts +19 -0
  173. package/dist/cjs/client/components/ScaledGridWrapper.d.ts +12 -0
  174. package/dist/cjs/client/components/SchemaVisualization/CubeNode.d.ts +25 -0
  175. package/dist/cjs/client/components/SchemaVisualization/FieldDetailPanel.d.ts +15 -0
  176. package/dist/cjs/client/components/SchemaVisualization/RelationshipEdge.d.ts +13 -0
  177. package/dist/cjs/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +3 -0
  178. package/dist/cjs/client/components/SchemaVisualization/index.d.ts +10 -0
  179. package/dist/cjs/client/components/SchemaVisualization/useERDLayout.d.ts +39 -0
  180. package/dist/cjs/client/components/SchemaVisualization/xyflowContext.d.ts +11 -0
  181. package/dist/cjs/client/components/TextPortletModal.d.ts +12 -0
  182. package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  183. package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  184. package/dist/cjs/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  185. package/dist/cjs/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  186. package/dist/cjs/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  187. package/dist/cjs/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  188. package/dist/cjs/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  189. package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  190. package/dist/cjs/client/components/charts/ActivityGridChart.config.d.ts +5 -0
  191. package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +4 -0
  192. package/dist/cjs/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  193. package/dist/cjs/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  194. package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +19 -0
  195. package/dist/cjs/client/components/charts/AreaChart.config.d.ts +5 -0
  196. package/dist/cjs/client/components/charts/AreaChart.d.ts +4 -0
  197. package/dist/cjs/client/components/charts/AxisFormatControls.d.ts +37 -0
  198. package/dist/cjs/client/components/charts/BarChart.config.d.ts +5 -0
  199. package/dist/cjs/client/components/charts/BarChart.d.ts +4 -0
  200. package/dist/cjs/client/components/charts/BarChart.helpers.d.ts +23 -0
  201. package/dist/cjs/client/components/charts/BarSeries.d.ts +29 -0
  202. package/dist/cjs/client/components/charts/BoxPlotChart.config.d.ts +5 -0
  203. package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +4 -0
  204. package/dist/cjs/client/components/charts/BubbleChart.config.d.ts +5 -0
  205. package/dist/cjs/client/components/charts/BubbleChart.d.ts +4 -0
  206. package/dist/cjs/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  207. package/dist/cjs/client/components/charts/BubbleChart.render.d.ts +21 -0
  208. package/dist/cjs/client/components/charts/CandlestickChart.config.d.ts +5 -0
  209. package/dist/cjs/client/components/charts/CandlestickChart.d.ts +4 -0
  210. package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -0
  211. package/dist/cjs/client/components/charts/ChartLegend.d.ts +7 -0
  212. package/dist/cjs/client/components/charts/ChartStates.d.ts +38 -0
  213. package/dist/cjs/client/components/charts/ChartTooltip.d.ts +7 -0
  214. package/dist/cjs/client/components/charts/DataTable.config.d.ts +5 -0
  215. package/dist/cjs/client/components/charts/DataTable.d.ts +4 -0
  216. package/dist/cjs/client/components/charts/FunnelChart.config.d.ts +9 -0
  217. package/dist/cjs/client/components/charts/FunnelChart.d.ts +11 -0
  218. package/dist/cjs/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  219. package/dist/cjs/client/components/charts/FunnelViews.d.ts +16 -0
  220. package/dist/cjs/client/components/charts/GaugeChart.config.d.ts +5 -0
  221. package/dist/cjs/client/components/charts/GaugeChart.d.ts +4 -0
  222. package/dist/cjs/client/components/charts/HeatMapCanvas.d.ts +25 -0
  223. package/dist/cjs/client/components/charts/HeatMapChart.config.d.ts +8 -0
  224. package/dist/cjs/client/components/charts/HeatMapChart.d.ts +10 -0
  225. package/dist/cjs/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  226. package/dist/cjs/client/components/charts/KpiDelta.config.d.ts +5 -0
  227. package/dist/cjs/client/components/charts/KpiDelta.d.ts +4 -0
  228. package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  229. package/dist/cjs/client/components/charts/KpiNumber.config.d.ts +5 -0
  230. package/dist/cjs/client/components/charts/KpiNumber.d.ts +4 -0
  231. package/dist/cjs/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  232. package/dist/cjs/client/components/charts/KpiStates.d.ts +19 -0
  233. package/dist/cjs/client/components/charts/KpiText.config.d.ts +5 -0
  234. package/dist/cjs/client/components/charts/KpiText.d.ts +4 -0
  235. package/dist/cjs/client/components/charts/LineChart.config.d.ts +5 -0
  236. package/dist/cjs/client/components/charts/LineChart.d.ts +4 -0
  237. package/dist/cjs/client/components/charts/MarkdownChart.config.d.ts +5 -0
  238. package/dist/cjs/client/components/charts/MarkdownChart.d.ts +4 -0
  239. package/dist/cjs/client/components/charts/MeasureProfileChart.config.d.ts +5 -0
  240. package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +4 -0
  241. package/dist/cjs/client/components/charts/MissingDependencyFallback.d.ts +12 -0
  242. package/dist/cjs/client/components/charts/PieChart.config.d.ts +5 -0
  243. package/dist/cjs/client/components/charts/PieChart.d.ts +4 -0
  244. package/dist/cjs/client/components/charts/RadarChart.config.d.ts +5 -0
  245. package/dist/cjs/client/components/charts/RadarChart.d.ts +4 -0
  246. package/dist/cjs/client/components/charts/RadialBarChart.config.d.ts +5 -0
  247. package/dist/cjs/client/components/charts/RadialBarChart.d.ts +4 -0
  248. package/dist/cjs/client/components/charts/RetentionCombinedChart.config.d.ts +2 -0
  249. package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +14 -0
  250. package/dist/cjs/client/components/charts/RetentionHeatmap.config.d.ts +2 -0
  251. package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +7 -0
  252. package/dist/cjs/client/components/charts/SankeyChart.config.d.ts +9 -0
  253. package/dist/cjs/client/components/charts/SankeyChart.d.ts +10 -0
  254. package/dist/cjs/client/components/charts/ScatterChart.config.d.ts +5 -0
  255. package/dist/cjs/client/components/charts/ScatterChart.d.ts +4 -0
  256. package/dist/cjs/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  257. package/dist/cjs/client/components/charts/ScatterSeries.d.ts +17 -0
  258. package/dist/cjs/client/components/charts/ScatterTooltip.d.ts +21 -0
  259. package/dist/cjs/client/components/charts/SunburstChart.config.d.ts +9 -0
  260. package/dist/cjs/client/components/charts/SunburstChart.d.ts +10 -0
  261. package/dist/cjs/client/components/charts/TreeMapChart.config.d.ts +5 -0
  262. package/dist/cjs/client/components/charts/TreeMapChart.d.ts +4 -0
  263. package/dist/cjs/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  264. package/dist/cjs/client/components/charts/TreeMapContent.d.ts +24 -0
  265. package/dist/cjs/client/components/charts/TreeMapLegend.d.ts +13 -0
  266. package/dist/cjs/client/components/charts/WaterfallChart.config.d.ts +5 -0
  267. package/dist/cjs/client/components/charts/WaterfallChart.d.ts +4 -0
  268. package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  269. package/dist/cjs/client/components/charts/chartAxisResolution.d.ts +32 -0
  270. package/dist/cjs/client/components/charts/chartScaffolding.d.ts +77 -0
  271. package/dist/cjs/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  272. package/dist/cjs/client/components/charts/index.d.ts +25 -0
  273. package/dist/cjs/client/components/charts/kpiTextHelpers.d.ts +46 -0
  274. package/dist/cjs/client/components/charts/radarChartHelpers.d.ts +14 -0
  275. package/dist/cjs/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  276. package/dist/cjs/client/components/charts/useChartDimensions.d.ts +20 -0
  277. package/dist/cjs/client/components/charts/useKpiDimensions.d.ts +30 -0
  278. package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +113 -0
  279. package/dist/cjs/client/components/dashboard/DashboardCoordinator.d.ts +2 -0
  280. package/dist/cjs/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  281. package/dist/cjs/client/components/dashboard/DashboardFilterBar.d.ts +8 -0
  282. package/dist/cjs/client/components/dashboard/DashboardGridSurface.d.ts +8 -0
  283. package/dist/cjs/client/components/dashboard/DashboardModals.d.ts +8 -0
  284. package/dist/cjs/client/components/dashboard/DashboardProvider.d.ts +2 -0
  285. package/dist/cjs/client/components/dashboard/DashboardToolbar.d.ts +11 -0
  286. package/dist/cjs/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  287. package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +17 -0
  288. package/dist/cjs/client/components/dashboard/index.d.ts +13 -0
  289. package/dist/cjs/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  290. package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  291. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  292. package/dist/cjs/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  293. package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  294. package/dist/cjs/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  295. package/dist/cjs/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  296. package/dist/cjs/client/components/shared/DateRangeFilter.d.ts +4 -0
  297. package/dist/cjs/client/components/shared/DateRangeSelector.d.ts +13 -0
  298. package/dist/cjs/client/components/shared/FilterBuilder.d.ts +4 -0
  299. package/dist/cjs/client/components/shared/FilterGroup.d.ts +4 -0
  300. package/dist/cjs/client/components/shared/FilterItem.d.ts +4 -0
  301. package/dist/cjs/client/components/shared/FilterValueSelector.d.ts +4 -0
  302. package/dist/cjs/client/components/shared/dateRangeUtils.d.ts +40 -0
  303. package/dist/cjs/client/components/shared/filterDisplayUtils.d.ts +10 -0
  304. package/dist/cjs/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  305. package/dist/cjs/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  306. package/dist/cjs/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  307. package/dist/cjs/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  308. package/dist/cjs/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  309. package/dist/cjs/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  310. package/dist/cjs/client/components/shared/queryFieldUtils.d.ts +21 -0
  311. package/dist/cjs/client/components/shared/types.d.ts +60 -0
  312. package/dist/cjs/client/components/shared/utils.d.ts +71 -0
  313. package/dist/cjs/client/components.d.ts +17 -0
  314. package/dist/cjs/client/hooks/agentChatStream.d.ts +39 -0
  315. package/dist/cjs/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  316. package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +7 -0
  317. package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +53 -0
  318. package/dist/cjs/client/hooks/dashboard/useGridLayoutEngine.d.ts +10 -0
  319. package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +18 -0
  320. package/dist/cjs/client/hooks/drillNavigation.d.ts +25 -0
  321. package/dist/cjs/client/hooks/queries/index.d.ts +20 -0
  322. package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +85 -0
  323. package/dist/cjs/client/hooks/queries/useCubeMetaQuery.d.ts +51 -0
  324. package/dist/cjs/client/hooks/queries/useDryRunQuery.d.ts +153 -0
  325. package/dist/cjs/client/hooks/queries/useExplainAI.d.ts +62 -0
  326. package/dist/cjs/client/hooks/queries/useExplainQuery.d.ts +62 -0
  327. package/dist/cjs/client/hooks/queries/useFlowQuery.d.ts +72 -0
  328. package/dist/cjs/client/hooks/queries/useFunnelQuery.d.ts +20 -0
  329. package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +70 -0
  330. package/dist/cjs/client/hooks/queries/useRetentionQuery.d.ts +67 -0
  331. package/dist/cjs/client/hooks/useAgentChat.d.ts +60 -0
  332. package/dist/cjs/client/hooks/useAnalysisAI.d.ts +56 -0
  333. package/dist/cjs/client/hooks/useAnalysisBuilderHook.d.ts +245 -0
  334. package/dist/cjs/client/hooks/useAnalysisChartDefaults.d.ts +35 -0
  335. package/dist/cjs/client/hooks/useAnalysisCombinedFields.d.ts +18 -0
  336. package/dist/cjs/client/hooks/useAnalysisInitialization.d.ts +25 -0
  337. package/dist/cjs/client/hooks/useAnalysisQueryBuilder.d.ts +32 -0
  338. package/dist/cjs/client/hooks/useAnalysisQueryExecution.d.ts +144 -0
  339. package/dist/cjs/client/hooks/useAnalysisShare.d.ts +18 -0
  340. package/dist/cjs/client/hooks/useAnalysisUIState.d.ts +24 -0
  341. package/dist/cjs/client/hooks/useCubeFieldLabel.d.ts +16 -0
  342. package/dist/cjs/client/hooks/useDashboardHook.d.ts +123 -0
  343. package/dist/cjs/client/hooks/useDataBrowser.d.ts +67 -0
  344. package/dist/cjs/client/hooks/useDebounce.d.ts +12 -0
  345. package/dist/cjs/client/hooks/useDebounceQuery.d.ts +48 -0
  346. package/dist/cjs/client/hooks/useDirtyStateTracking.d.ts +37 -0
  347. package/dist/cjs/client/hooks/useDragAutoScroll.d.ts +18 -0
  348. package/dist/cjs/client/hooks/useDrillInteraction.d.ts +9 -0
  349. package/dist/cjs/client/hooks/useElementVisibility.d.ts +30 -0
  350. package/dist/cjs/client/hooks/useFilterValues.d.ts +19 -0
  351. package/dist/cjs/client/hooks/useNotebookLayout.d.ts +8 -0
  352. package/dist/cjs/client/hooks/useResponsiveDashboard.d.ts +16 -0
  353. package/dist/cjs/client/hooks/useScrollDetection.d.ts +29 -0
  354. package/dist/cjs/client/hooks/useTheme.d.ts +11 -0
  355. package/dist/cjs/client/hooks/useTranslation.d.ts +21 -0
  356. package/dist/cjs/client/hooks.d.ts +17 -0
  357. package/dist/cjs/client/icons/customIcons.d.ts +22 -0
  358. package/dist/cjs/client/icons/defaultIcons.d.ts +5 -0
  359. package/dist/cjs/client/icons/index.d.ts +22 -0
  360. package/dist/cjs/client/icons/registry.d.ts +64 -0
  361. package/dist/cjs/client/icons/types.d.ts +129 -0
  362. package/dist/cjs/client/icons.d.ts +2 -0
  363. package/dist/cjs/client/index.d.ts +76 -0
  364. package/dist/cjs/client/providers/CubeApiProvider.d.ts +24 -0
  365. package/dist/cjs/client/providers/CubeFeaturesProvider.d.ts +19 -0
  366. package/dist/cjs/client/providers/CubeMetaContext.d.ts +11 -0
  367. package/dist/cjs/client/providers/CubeMetaProvider.d.ts +6 -0
  368. package/dist/cjs/client/providers/CubeProvider.d.ts +70 -0
  369. package/dist/cjs/client/providers/I18nProvider.d.ts +18 -0
  370. package/dist/cjs/client/providers/ScrollContainerContext.d.ts +19 -0
  371. package/dist/cjs/client/providers.d.ts +10 -0
  372. package/dist/cjs/client/schema.d.ts +13 -0
  373. package/dist/cjs/client/shared/chartConfigBuilders.d.ts +18 -0
  374. package/dist/cjs/client/shared/chartDefaults.d.ts +59 -0
  375. package/dist/cjs/client/shared/components/CodeBlock.d.ts +13 -0
  376. package/dist/cjs/client/shared/components/QueryAnalysisPanel.d.ts +7 -0
  377. package/dist/cjs/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  378. package/dist/cjs/client/shared/index.d.ts +11 -0
  379. package/dist/cjs/client/shared/queryKey.d.ts +1 -0
  380. package/dist/cjs/client/shared/queryTransforms.d.ts +20 -0
  381. package/dist/cjs/client/shared/types.d.ts +184 -0
  382. package/dist/cjs/client/shared/utils.d.ts +104 -0
  383. package/dist/cjs/client/stores/analysisBuilderStore.d.ts +578 -0
  384. package/dist/cjs/client/stores/dashboardStore.d.ts +292 -0
  385. package/dist/cjs/client/stores/dataBrowserStore.d.ts +34 -0
  386. package/dist/cjs/client/stores/index.d.ts +13 -0
  387. package/dist/cjs/client/stores/notebookStore.d.ts +157 -0
  388. package/dist/cjs/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  389. package/dist/cjs/client/stores/slices/coreSlice.d.ts +96 -0
  390. package/dist/cjs/client/stores/slices/flowSlice.d.ts +69 -0
  391. package/dist/cjs/client/stores/slices/funnelSlice.d.ts +61 -0
  392. package/dist/cjs/client/stores/slices/index.d.ts +13 -0
  393. package/dist/cjs/client/stores/slices/querySlice.d.ts +55 -0
  394. package/dist/cjs/client/stores/slices/retentionSlice.d.ts +66 -0
  395. package/dist/cjs/client/stores/slices/uiSlice.d.ts +52 -0
  396. package/dist/cjs/client/theme/index.d.ts +135 -0
  397. package/dist/cjs/client/types/analysisConfig.d.ts +185 -0
  398. package/dist/cjs/client/types/drill.d.ts +240 -0
  399. package/dist/cjs/client/types/flow.d.ts +191 -0
  400. package/dist/cjs/client/types/funnel.d.ts +288 -0
  401. package/dist/cjs/client/types/retention.d.ts +301 -0
  402. package/dist/cjs/client/types.d.ts +600 -0
  403. package/dist/cjs/client/utils/axisValueFormatting.d.ts +32 -0
  404. package/dist/cjs/client/utils/chartConstants.d.ts +16 -0
  405. package/dist/cjs/client/utils/chartUtils.d.ts +35 -0
  406. package/dist/cjs/client/utils/colorPalettes.d.ts +35 -0
  407. package/dist/cjs/client/utils/comparisonUtils.d.ts +96 -0
  408. package/dist/cjs/client/utils/configMigration.d.ts +85 -0
  409. package/dist/cjs/client/utils/drillQueryBuilder.d.ts +41 -0
  410. package/dist/cjs/client/utils/exportXlsx.d.ts +20 -0
  411. package/dist/cjs/client/utils/filterUtils.d.ts +113 -0
  412. package/dist/cjs/client/utils/funnelExecution.d.ts +211 -0
  413. package/dist/cjs/client/utils/funnelValidation.d.ts +46 -0
  414. package/dist/cjs/client/utils/index.d.ts +94 -0
  415. package/dist/cjs/client/utils/joinReachability.d.ts +27 -0
  416. package/dist/cjs/client/utils/measureIcons.d.ts +11 -0
  417. package/dist/cjs/client/utils/multiQueryUtils.d.ts +86 -0
  418. package/dist/cjs/client/utils/multiQueryValidation.d.ts +69 -0
  419. package/dist/cjs/client/utils/periodUtils.d.ts +40 -0
  420. package/dist/cjs/client/utils/pivotUtils.d.ts +87 -0
  421. package/dist/cjs/client/utils/shareUtils.d.ts +61 -0
  422. package/dist/cjs/client/utils/syntaxHighlighting.d.ts +36 -0
  423. package/dist/cjs/client/utils/targetUtils.d.ts +36 -0
  424. package/dist/cjs/client/utils/thumbnail.d.ts +36 -0
  425. package/dist/cjs/client/utils/timeValueFormatting.d.ts +32 -0
  426. package/dist/cjs/client/utils.d.ts +8 -0
  427. package/dist/cjs/package.json +3 -0
  428. package/dist/cjs/server/adapters/base-adapter.d.ts +332 -0
  429. package/dist/cjs/server/adapters/databend-adapter.d.ts +63 -0
  430. package/dist/cjs/server/adapters/duckdb-adapter.d.ts +68 -0
  431. package/dist/cjs/server/adapters/mysql-adapter.d.ts +65 -0
  432. package/dist/cjs/server/adapters/postgres-adapter.d.ts +55 -0
  433. package/dist/cjs/server/adapters/singlestore-adapter.d.ts +4 -0
  434. package/dist/cjs/server/adapters/snowflake-adapter.d.ts +53 -0
  435. package/dist/cjs/server/adapters/sqlite-adapter.d.ts +120 -0
  436. package/dist/cjs/server/adapters/window-function-builder.d.ts +11 -0
  437. package/dist/cjs/server/agent/chart-validation.d.ts +22 -0
  438. package/dist/cjs/server/agent/handler-steps.d.ts +37 -0
  439. package/dist/cjs/server/agent/handler.d.ts +25 -0
  440. package/dist/cjs/server/agent/index.d.ts +11 -0
  441. package/dist/cjs/server/agent/providers/anthropic.d.ts +24 -0
  442. package/dist/cjs/server/agent/providers/factory.d.ts +12 -0
  443. package/dist/cjs/server/agent/providers/google.d.ts +23 -0
  444. package/dist/cjs/server/agent/providers/index.d.ts +6 -0
  445. package/dist/cjs/server/agent/providers/openai.d.ts +26 -0
  446. package/dist/cjs/server/agent/providers/types.d.ts +95 -0
  447. package/dist/cjs/server/agent/system-prompt.d.ts +5 -0
  448. package/dist/cjs/server/agent/tools.d.ts +28 -0
  449. package/dist/cjs/server/agent/types.d.ts +192 -0
  450. package/dist/cjs/server/ai/discovery-helpers.d.ts +29 -0
  451. package/dist/cjs/server/ai/discovery.d.ts +66 -0
  452. package/dist/cjs/server/ai/index.d.ts +10 -0
  453. package/dist/cjs/server/ai/mcp-prompts.d.ts +83 -0
  454. package/dist/cjs/server/ai/query-schema.d.ts +258 -0
  455. package/dist/cjs/server/ai/schemas.d.ts +63 -0
  456. package/dist/cjs/server/ai/suggestion-helpers.d.ts +33 -0
  457. package/dist/cjs/server/ai/suggestion.d.ts +16 -0
  458. package/dist/cjs/server/ai/validation-helpers.d.ts +21 -0
  459. package/dist/cjs/server/ai/validation.d.ts +31 -0
  460. package/dist/cjs/server/builders/analysis-utils.d.ts +106 -0
  461. package/dist/cjs/server/builders/comparison-query-builder.d.ts +70 -0
  462. package/dist/cjs/server/builders/cte-builder.d.ts +108 -0
  463. package/dist/cjs/server/builders/date-time-builder.d.ts +34 -0
  464. package/dist/cjs/server/builders/date-time-helpers.d.ts +34 -0
  465. package/dist/cjs/server/builders/filter-builder.d.ts +25 -0
  466. package/dist/cjs/server/builders/filter-operators.d.ts +23 -0
  467. package/dist/cjs/server/builders/flow-query-builder.d.ts +136 -0
  468. package/dist/cjs/server/builders/funnel-query-builder.d.ts +145 -0
  469. package/dist/cjs/server/builders/group-by-builder.d.ts +38 -0
  470. package/dist/cjs/server/builders/index.d.ts +13 -0
  471. package/dist/cjs/server/builders/measure-builder.d.ts +185 -0
  472. package/dist/cjs/server/builders/retention-query-builder.d.ts +98 -0
  473. package/dist/cjs/server/cache-providers/index.d.ts +5 -0
  474. package/dist/cjs/server/cache-providers/memory.d.ts +105 -0
  475. package/dist/cjs/server/cache-utils.d.ts +85 -0
  476. package/dist/cjs/server/compiler-metadata.d.ts +11 -0
  477. package/dist/cjs/server/compiler.d.ts +212 -0
  478. package/dist/cjs/server/cube-utils.d.ts +158 -0
  479. package/dist/cjs/server/database-utils.d.ts +18 -0
  480. package/dist/cjs/server/execution/annotation-builder.d.ts +12 -0
  481. package/dist/cjs/server/execution/filter-cache-preloader.d.ts +19 -0
  482. package/dist/cjs/server/execution/mode-router.d.ts +25 -0
  483. package/dist/cjs/server/execution/query-result-cache.d.ts +21 -0
  484. package/dist/cjs/server/execution/result-post-processor.d.ts +10 -0
  485. package/dist/cjs/server/executor.d.ts +186 -0
  486. package/dist/cjs/server/executors/base-executor.d.ts +16 -0
  487. package/dist/cjs/server/executors/databend-executor.d.ts +33 -0
  488. package/dist/cjs/server/executors/duckdb-executor.d.ts +33 -0
  489. package/dist/cjs/server/executors/explain-utils.d.ts +28 -0
  490. package/dist/cjs/server/executors/index.d.ts +21 -0
  491. package/dist/cjs/server/executors/mysql-executor.d.ts +27 -0
  492. package/dist/cjs/server/executors/postgres-executor.d.ts +27 -0
  493. package/dist/cjs/server/executors/singlestore-executor.d.ts +9 -0
  494. package/dist/cjs/server/executors/snowflake-executor.d.ts +33 -0
  495. package/dist/cjs/server/executors/sqlite-executor.d.ts +28 -0
  496. package/dist/cjs/server/explain/databend-parser.d.ts +16 -0
  497. package/dist/cjs/server/explain/duckdb-parser.d.ts +28 -0
  498. package/dist/cjs/server/explain/explain-tree.d.ts +20 -0
  499. package/dist/cjs/server/explain/index.d.ts +9 -0
  500. package/dist/cjs/server/explain/mysql-parser.d.ts +38 -0
  501. package/dist/cjs/server/explain/postgres-parser.d.ts +18 -0
  502. package/dist/cjs/server/explain/snowflake-parser.d.ts +17 -0
  503. package/dist/cjs/server/explain/sqlite-parser.d.ts +23 -0
  504. package/dist/cjs/server/filter-cache.d.ts +73 -0
  505. package/dist/cjs/server/gap-filler.d.ts +48 -0
  506. package/dist/cjs/server/index.d.ts +38 -0
  507. package/dist/cjs/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  508. package/dist/cjs/server/logical-plan/cte-planner.d.ts +104 -0
  509. package/dist/cjs/server/logical-plan/filter-propagation.d.ts +44 -0
  510. package/dist/cjs/server/logical-plan/index.d.ts +19 -0
  511. package/dist/cjs/server/logical-plan/join-planner.d.ts +27 -0
  512. package/dist/cjs/server/logical-plan/logical-plan-builder.d.ts +58 -0
  513. package/dist/cjs/server/logical-plan/logical-planner.d.ts +39 -0
  514. package/dist/cjs/server/logical-plan/optimiser.d.ts +34 -0
  515. package/dist/cjs/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  516. package/dist/cjs/server/logical-plan/planner-utils.d.ts +20 -0
  517. package/dist/cjs/server/logical-plan/types.d.ts +199 -0
  518. package/dist/cjs/server/measure-classification.d.ts +40 -0
  519. package/dist/cjs/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  520. package/dist/cjs/server/physical-plan/drizzle-sql-builder.d.ts +118 -0
  521. package/dist/cjs/server/physical-plan/index.d.ts +2 -0
  522. package/dist/cjs/server/physical-plan/processors/cte-processor.d.ts +6 -0
  523. package/dist/cjs/server/physical-plan/processors/index.d.ts +8 -0
  524. package/dist/cjs/server/physical-plan/processors/joins-processor.d.ts +6 -0
  525. package/dist/cjs/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  526. package/dist/cjs/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  527. package/dist/cjs/server/physical-plan/processors/predicates-processor.d.ts +6 -0
  528. package/dist/cjs/server/physical-plan/processors/selection-processor.d.ts +6 -0
  529. package/dist/cjs/server/physical-plan/processors/shared.d.ts +38 -0
  530. package/dist/cjs/server/physical-plan/processors/window-processor.d.ts +6 -0
  531. package/dist/cjs/server/prompts/explain-analysis-prompt.d.ts +47 -0
  532. package/dist/cjs/server/prompts/index.d.ts +27 -0
  533. package/dist/cjs/server/prompts/single-step-prompt.d.ts +31 -0
  534. package/dist/cjs/server/prompts/step0-validation-prompt.d.ts +39 -0
  535. package/dist/cjs/server/prompts/step1-shape-prompt.d.ts +29 -0
  536. package/dist/cjs/server/prompts/step2-complete-prompt.d.ts +19 -0
  537. package/dist/cjs/server/prompts/types.d.ts +37 -0
  538. package/dist/cjs/server/query-handlers.d.ts +79 -0
  539. package/dist/cjs/server/query-modes.d.ts +28 -0
  540. package/dist/cjs/server/query-validator.d.ts +9 -0
  541. package/dist/cjs/server/resolvers/calculated-measure-resolver.d.ts +98 -0
  542. package/dist/cjs/server/resolvers/index.d.ts +6 -0
  543. package/dist/cjs/server/resolvers/join-path-resolver.d.ts +158 -0
  544. package/dist/cjs/server/sql-format.d.ts +11 -0
  545. package/dist/cjs/server/template-substitution.d.ts +57 -0
  546. package/dist/cjs/server/types/analysis.d.ts +189 -0
  547. package/dist/cjs/server/types/cache.d.ts +132 -0
  548. package/dist/cjs/server/types/core.d.ts +164 -0
  549. package/dist/cjs/server/types/cube.d.ts +544 -0
  550. package/dist/cjs/server/types/executor.d.ts +156 -0
  551. package/dist/cjs/server/types/flow.d.ts +144 -0
  552. package/dist/cjs/server/types/funnel.d.ts +118 -0
  553. package/dist/cjs/server/types/index.d.ts +11 -0
  554. package/dist/cjs/server/types/metadata.d.ts +113 -0
  555. package/dist/cjs/server/types/query.d.ts +153 -0
  556. package/dist/cjs/server/types/retention.d.ts +141 -0
  557. package/dist/cjs/server/types/utils.d.ts +11 -0
  558. package/dist/cjs/server/types/validation.d.ts +14 -0
  559. package/dist/server/index.cjs +1 -1
  560. package/dist/server/index.js +1 -1
  561. package/dist/{adapters/openai-B5jEiqiB.js → server/openai-CmVRIbUg.js} +18 -2
  562. package/dist/server/{openai-cDlFSTk6.js → openai-CtXqeznO.js} +1 -1
  563. package/dist/{adapters/openai-D0musiYP.cjs → server/openai-D-6l1Y8h.cjs} +3 -3
  564. package/dist/server/{openai-vXvLni8v.cjs → openai-DTSTMiXL.cjs} +1 -1
  565. package/package.json +75 -29
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared validation types for analysis-mode config validation
3
+ */
4
+ /**
5
+ * Result of validating an analysis-mode config (funnel, flow, retention).
6
+ *
7
+ * `warnings` is optional — flow analysis surfaces non-fatal warnings, while
8
+ * funnel and retention only produce errors (and omit the field entirely).
9
+ */
10
+ export interface AnalysisConfigValidationResult {
11
+ isValid: boolean;
12
+ errors: string[];
13
+ warnings?: string[];
14
+ }
@@ -822,4 +822,4 @@ The query is validated before adding. The portlet fetches its own data.`,paramet
822
822
  [IMPORTANT: Your next response MUST start with a brief text message BEFORE any tool calls. Now call add_markdown and add_portlet to visualize these results.]`}}catch(t){let n={measures:e.measures,dimensions:e.dimensions,filters:e.filters,timeDimensions:e.timeDimensions,order:e.order,limit:e.limit,...e.funnel?{funnel:e.funnel}:{},...e.flow?{flow:e.flow}:{},...e.retention?{retention:e.retention}:{}};return{result:`Query execution failed: ${t instanceof Error?t.message:`Unknown error`}\n\nAttempted query:\n${JSON.stringify(n,null,2)}`,isError:!0}}}),r.set(`add_portlet`,async e=>{let n={number:`kpiNumber`,retention:`retentionHeatmap`}[e.chartType]??e.chartType,r;try{r=JSON.parse(e.query)}catch{return{result:"Invalid query: could not parse JSON string. Ensure `query` is a valid JSON string.",isError:!0}}r=Jd(r);let i=t.validateQuery(r);if(!i.isValid)return{result:`Invalid query — fix these errors and retry:\n${i.errors.join(`
823
823
  `)}\n\nAttempted query:\n${JSON.stringify(r,null,2)}`,isError:!0};let a=!!(r.funnel||r.flow||r.retention),o;if(a)o=e.chartConfig??{};else{let t=_f(n,e.chartConfig,r),i=mf(n,t,r);if(!i.isValid)return{result:`Chart config invalid — fix these errors and retry:\n${i.errors.join(`
824
824
  `)}`,isError:!0};o=t}let s=`portlet-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,c={id:s,title:e.title,query:e.query,chartType:n,chartConfig:o,displayConfig:e.displayConfig};return{result:`Portlet "${e.title}" added to notebook (id: ${s}, chart: ${n}). [Reminder: in your next response, start with a brief sentence about what you will do next BEFORE making any tool calls.]`,sideEffect:{type:`add_portlet`,data:c}}}),r.set(`add_markdown`,async e=>{let t=`markdown-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,n=e.content||e.text||e.markdown||``,r={id:t,title:e.title,content:n};return{result:`Markdown block added to notebook (id: ${t}). [Reminder: in your next response, start with a brief sentence about what you will do next BEFORE making any tool calls.]`,sideEffect:{type:`add_markdown`,data:r}}}),r.set(`save_as_dashboard`,async e=>{try{let n=e.portlets;if(!n||n.length===0)return{result:`Dashboard must contain at least one portlet.`,isError:!0};let r=[];for(let e of n){if(e.chartType===`markdown`)continue;let n=e.query;if(!n){r.push(`Portlet "${e.title}": missing query`);continue}let i;try{i=JSON.parse(n)}catch{r.push(`Portlet "${e.title}": invalid JSON query`);continue}i=Jd(i);let a=t.validateQuery(i);a.isValid||r.push(`Portlet "${e.title}": ${a.errors.join(`, `)}`)}if(r.length>0)return{result:`Dashboard has invalid portlets — fix these errors and retry:\n${r.join(`
825
- `)}`,isError:!0};let i={portlets:n.map(e=>{let t=e.chartType,n=t===`markdown`,r=n?`query`:e.analysisType||`query`,i=r===`funnel`?`funnel`:r===`flow`?`flow`:r===`retention`?`retention`:`query`,a=e.query||`{}`,o;try{o=JSON.parse(a)}catch{o={}}let s={version:1,analysisType:i,activeView:`chart`,charts:{[i]:{chartType:t,chartConfig:e.chartConfig||{},displayConfig:e.displayConfig||{}}},query:n?{}:o};return{id:e.id,title:e.title,analysisConfig:s,dashboardFilterMapping:e.dashboardFilterMapping,w:e.w,h:e.h,x:e.x,y:e.y}}),filters:e.filters,colorPalette:e.colorPalette},a=e.title;return{result:`Dashboard "${a}" created with ${i.portlets.length} portlets and ${i.filters?.length||0} filters.`,sideEffect:{type:`dashboard_saved`,data:{title:a,description:e.description,dashboardConfig:i}}}}catch(e){return{result:`Failed to save dashboard: ${e instanceof Error?e.message:`Unknown error`}`,isError:!0}}}),r}async function Sf(e,t,n){switch(e){case`anthropic`:{let{AnthropicProvider:e}=await Promise.resolve().then(()=>require("./anthropic-DG4r1LSm.cjs"));return new e(t)}case`openai`:{let{OpenAIProvider:e}=await Promise.resolve().then(()=>require("./openai-vXvLni8v.cjs"));return new e(t,n)}case`google`:{let{GoogleProvider:e}=await Promise.resolve().then(()=>require("./google-BOnRIN1w.cjs"));return new e(t)}default:throw Error(`Unknown LLM provider: "${e}". Supported providers: anthropic, openai, google`)}}function Cf(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function wf(e){if(e)try{e()}catch{}}function Tf(e,t){let n=[];if(!e||e.length===0)return n;for(let r of e){if(r.role===`user`){n.push({role:`user`,content:r.content});continue}if(r.role!==`assistant`)continue;let e=[];if(r.content&&e.push({type:`text`,text:r.content}),r.toolCalls&&r.toolCalls.length>0){for(let t of r.toolCalls)e.push({type:`tool_use`,id:t.id,name:t.name,input:t.input||{}});n.push({role:`assistant`,content:e});let i=r.toolCalls.map(e=>({toolUseId:e.id,toolName:e.name,content:typeof e.result==`string`?e.result:JSON.stringify(e.result??``),isError:e.status===`error`}));Cf(n,t.formatToolResults(i))}else e.length>0&&n.push({role:`assistant`,content:r.content})}return n}function Ef(e,t){if(!(e?.type!==`tool_use`||!t))try{e.input=JSON.parse(t)}catch{e.input={}}}function Df(e,t){let n=e.contentBlocks[e.contentBlocks.length-1];n&&n.type===`text`?n.text=(n.text||``)+t:e.contentBlocks.push({type:`text`,text:t})}function Of(e,t){if(e.currentBlockIsToolUse&&e.currentToolInputJson){let t=e.contentBlocks[e.contentBlocks.length-1];if(t?.type===`tool_use`)try{t.input=JSON.parse(e.currentToolInputJson)}catch{}}e.contentBlocks.push({type:`tool_use`,id:t.id,name:t.name,input:{},...t.metadata?{metadata:t.metadata}:{}}),e.currentToolInputJson=``,e.currentBlockIsToolUse=!0}function kf(e,t){if(t.id&&t.input){let n=e.contentBlocks.find(e=>e.type===`tool_use`&&e.id===t.id);n&&(n.input=t.input)}else if(e.currentBlockIsToolUse){let t=e.contentBlocks[e.contentBlocks.length-1];t?.type===`tool_use`&&e.currentToolInputJson&&(Ef(t,e.currentToolInputJson),e.currentToolInputJson=``),e.currentBlockIsToolUse=!1}}async function*Af(e,t){let n={contentBlocks:[],currentToolInputJson:``,currentBlockIsToolUse:!1,stopReason:``};for await(let r of e.parseStreamEvents(t)){let e=r;switch(e.type){case`text_delta`:Df(n,e.text),yield{type:`text_delta`,data:e.text};break;case`tool_use_start`:Of(n,e),yield{type:`tool_use_start`,data:{id:e.id,name:e.name,input:void 0}};break;case`tool_input_delta`:n.currentToolInputJson+=e.json;break;case`tool_use_end`:kf(n,e);break;case`message_meta`:e.inputTokens!=null&&(n.inputTokens=e.inputTokens),e.outputTokens!=null&&(n.outputTokens=e.outputTokens),e.stopReason&&(n.stopReason=e.stopReason);break}}return{contentBlocks:n.contentBlocks,stopReason:n.stopReason,inputTokens:n.inputTokens,outputTokens:n.outputTokens}}async function*jf(e,t){let{executor:n,observability:r,traceId:i,turn:a}=t,o=e.name,s=e.input||{},c=e.id,l=n.get(o);if(!l)return yield{type:`tool_use_result`,data:{id:c,name:o,result:`Unknown tool: ${o}`,isError:!0}},{toolUseId:c,toolName:o,content:`Unknown tool: ${o}`,isError:!0};let u=Date.now();try{let e=await l(s);return e.sideEffect&&(yield e.sideEffect),yield{type:`tool_use_result`,data:{id:c,name:o,result:e.result,...e.isError?{isError:!0}:{}}},wf(()=>r?.onToolEnd?.({traceId:i,turn:a,toolName:o,toolUseId:c,isError:!!e.isError,durationMs:Date.now()-u})),{toolUseId:c,toolName:o,content:e.result,...e.isError?{isError:!0}:{}}}catch(e){let t=e instanceof Error?e.message:`Tool execution failed`;return yield{type:`tool_use_result`,data:{id:c,name:o,result:t,isError:!0}},wf(()=>r?.onToolEnd?.({traceId:i,turn:a,toolName:o,toolUseId:c,isError:!0,durationMs:Date.now()-u})),{toolUseId:c,toolName:o,content:t,isError:!0}}}async function*Mf(e,t){let n=[];for(let r of e){if(r.type!==`tool_use`)continue;let e=yield*jf(r,t);n.push(e)}return n}var Nf={anthropic:`claude-sonnet-4-6`,openai:`gpt-4.1-mini`,google:`gemini-3-flash-preview`};async function*Pf(e){let{message:t,history:n,semanticLayer:r,securityContext:i,agentConfig:a,apiKey:o}=e,s=e.sessionId||crypto.randomUUID(),c=a.observability,l=crypto.randomUUID(),u=Date.now(),d=e.providerOverride||a.provider||`anthropic`,f=e.modelOverride||a.model||Nf[d]||`claude-sonnet-4-6`,p=e.baseURLOverride||a.baseURL,m=a.maxTurns||25,h=a.maxTokens||4096,g;try{g=await Sf(d,o,{baseURL:p})}catch(e){console.error(`[agent] Failed to create %s provider: %s`,String(d).replace(/\n|\r/g,``),String(e instanceof Error?e.message:e).replace(/\n|\r/g,``)),yield{type:`error`,data:{message:e instanceof Error?e.message:k(`server.errors.llmInitFailed`)}};return}let _=bf(),v=xf({semanticLayer:r,securityContext:i}),y=Dd(r.getMetadata());e.systemContext&&(y+=`\n\n## User Context\n\n${e.systemContext}`),wf(()=>c?.onChatStart?.({traceId:l,sessionId:s,message:t,model:f,historyLength:n?.length??0}));let b=Tf(n,g);b.push({role:`user`,content:t});let x=0;try{for(let e=0;e<m;e++){x=e+1;let t=await g.createStream({model:f,maxTokens:h,system:y,tools:_,messages:b}),n=Date.now(),{contentBlocks:r,stopReason:i,inputTokens:a,outputTokens:o}=yield*Af(g,t);if(wf(()=>c?.onGenerationEnd?.({traceId:l,turn:e,model:f,stopReason:i,inputTokens:a,outputTokens:o,durationMs:Date.now()-n,input:b,output:r})),b.push({role:`assistant`,content:r}),!g.shouldContinue(i))break;let s=yield*Mf(r,{executor:v,observability:c,traceId:l,turn:e});yield{type:`turn_complete`,data:{}},Cf(b,g.formatToolResults(s))}wf(()=>c?.onChatEnd?.({traceId:l,sessionId:s,totalTurns:x,durationMs:Date.now()-u})),yield{type:`done`,data:{sessionId:s||``,traceId:l}}}catch(e){try{c?.onChatEnd?.({traceId:l,sessionId:s,totalTurns:0,durationMs:Date.now()-u,error:e instanceof Error?e.message:`Unknown error`})}catch{}console.error(`[agent] Chat error (provider=%s, model=%s): %s`,String(d).replace(/\n|\r/g,``),String(f).replace(/\n|\r/g,``),String(e instanceof Error?e.message:e).replace(/\n|\r/g,``)),yield{type:`error`,data:{message:g.formatError(e)}}}}function Ff(e){return e.toISOString().split(`T`)[0]}function If(e,t){let n=new Date,r=Ff(n);if(/days?/.test(t)){let t=new Date(n);return t.setDate(t.getDate()-e),{dateRange:[Ff(t),r],granularity:`day`}}if(/weeks?/.test(t)){let t=new Date(n);return t.setDate(t.getDate()-e*7),{dateRange:[Ff(t),r],granularity:e<=4?`day`:`week`}}if(/months?/.test(t)){let t=new Date(n);return t.setMonth(t.getMonth()-e),{dateRange:[Ff(t),r],granularity:e<=3?`day`:`month`}}return null}function Lf(e){let t=parseInt(e.slice(1),10),n=new Date().getFullYear(),r=(t-1)*3,i=new Date(n,r,1),a=new Date(n,r+3,0);return{dateRange:[Ff(i),Ff(a)],granularity:`month`}}function Rf(e,t,n,r){let i=0;for(let a of e.measures){let e=[(a.name.split(`.`).pop()||a.name).toLowerCase(),a.title.toLowerCase(),...(a.synonyms||[]).map(e=>e.toLowerCase())];for(let o of e)if(t.includes(o)){n.push(a.name),r.push(`Matched measure '${a.name}' via keyword '${o}'`),i+=.15;break}}return i}function zf(e,t,n,r){let i=e.measures.filter(e=>e.type===t.type);if(i.length>0){n.push(i[0].name),r.push(`Suggested ${i[0].name} based on ${t.type} intent`);return}if(t.type===`count`){let t=e.measures.find(e=>e.type===`count`||e.type===`countDistinct`);t&&(n.push(t.name),r.push(`Suggested ${t.name} for counting`))}}function Bf(e,t,n,r,i){let a=0;for(let n of t){let t=Wd(e,n,`dimension`);t&&(r.push(t.field),i.push(`Matched dimension '${t.field}' from grouping keyword '${n}'`),a+=.1)}for(let t of e)for(let e of t.dimensions){let t=[(e.name.split(`.`).pop()||e.name).toLowerCase(),e.title.toLowerCase(),...(e.synonyms||[]).map(e=>e.toLowerCase())];for(let o of t)if(n.includes(o)&&!r.includes(e.name)&&(n.includes(`by ${o}`)||n.includes(`per ${o}`))){r.push(e.name),i.push(`Matched dimension '${e.name}' as grouping`),a+=.1;break}}return a}function Vf(){let e=new Date,t=e.toISOString().split(`T`)[0],n=e=>e.toISOString().split(`T`)[0],r=e=>new Date(e.getFullYear(),e.getMonth(),1),i=e=>new Date(e.getFullYear(),0,1),a=e=>{let t=Math.floor(e.getMonth()/3);return new Date(e.getFullYear(),t*3,1)},o=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1);return new Date(e.getFullYear(),e.getMonth(),n)};return[{pattern:/\btoday\b/i,getDateRange:()=>[t,t],granularity:`day`},{pattern:/\byesterday\b/i,getDateRange:()=>{let t=new Date(e);t.setDate(t.getDate()-1);let r=n(t);return[r,r]},granularity:`day`},{pattern:/\bthis week\b/i,getDateRange:()=>[n(o(e)),t],granularity:`day`},{pattern:/\blast week\b/i,getDateRange:()=>{let t=new Date(o(e));t.setDate(t.getDate()-7);let r=new Date(t);return r.setDate(r.getDate()+6),[n(t),n(r)]},granularity:`day`},{pattern:/\bthis month\b/i,getDateRange:()=>[n(r(e)),t],granularity:`day`},{pattern:/\blast month\b/i,getDateRange:()=>{let t=new Date(e.getFullYear(),e.getMonth()-1,1),r=new Date(e.getFullYear(),e.getMonth(),0);return[n(t),n(r)]},granularity:`day`},{pattern:/\bthis quarter\b/i,getDateRange:()=>[n(a(e)),t],granularity:`month`},{pattern:/\blast quarter\b/i,getDateRange:()=>{let t=new Date(a(e));t.setMonth(t.getMonth()-3);let r=new Date(a(e));return r.setDate(r.getDate()-1),[n(t),n(r)]},granularity:`month`},{pattern:/\bthis year\b/i,getDateRange:()=>[n(i(e)),t],granularity:`month`},{pattern:/\blast year\b/i,getDateRange:()=>{let t=new Date(e.getFullYear()-1,0,1),r=new Date(e.getFullYear()-1,11,31);return[n(t),n(r)]},granularity:`month`},{pattern:/\blast (\d+) days?\b/i,getDateRange:()=>{let r=new Date(e);return r.setDate(r.getDate()-7),[n(r),t]},granularity:`day`},{pattern:/\blast (\d+) weeks?\b/i,getDateRange:()=>{let r=new Date(e);return r.setDate(r.getDate()-28),[n(r),t]},granularity:`week`},{pattern:/\blast (\d+) months?\b/i,getDateRange:()=>{let r=new Date(e);return r.setMonth(r.getMonth()-3),[n(r),t]},granularity:`month`},{pattern:/\bq([1-4])\b/i,getDateRange:()=>[n(new Date(e.getFullYear(),0,1)),n(new Date(e.getFullYear(),2,31))],granularity:`month`}]}var Hf={funnel:/\b(funnel|conversion|drop.?off|steps?|journey|pipeline|stages?)\b/i,flow:/\b(flows?|paths?|sequence|before|after|next|previous|user.?journey)\b/i,retention:/\b(retention|cohort|return|churn|comeback|retained|day.?\d+)\b/i};function Uf(e){let t=e.toLowerCase();return Hf.funnel.test(t)?`funnel`:Hf.flow.test(t)?`flow`:Hf.retention.test(t)?`retention`:`query`}function Wf(e,t){let n=t||`the relevant cube`;switch(e){case`funnel`:return[`Use /mcp/discover to get ${n} funnel configuration and schema`,`Query the event dimension to discover available event types for funnel steps`,`Build funnel query with discovered values using the schema from discover`];case`flow`:return[`Use /mcp/discover to get ${n} flow configuration and schema`,`Query the event dimension to discover available event types`,`Build flow query specifying the starting event and steps before/after`];case`retention`:return[`Use /mcp/discover to get ${n} retention configuration and schema`,`Build retention query specifying granularity (day/week/month) and number of periods`]}}function Gf(e){let t=Vf(),n=e.toLowerCase();for(let e of t){let t=n.match(e.pattern);if(t){if(t[1]&&/^\d+$/.test(t[1])){let e=If(parseInt(t[1],10),n);if(e)return e}return/^q[1-4]$/i.test(t[0])?Lf(t[0]):{dateRange:e.getDateRange(),granularity:e.granularity}}}return null}function Kf(e){let t=e.toLowerCase();for(let{pattern:e,type:n}of[{pattern:/\b(total|sum|combined)\b/i,type:`sum`},{pattern:/\b(count|number of|how many)\b/i,type:`count`},{pattern:/\b(average|avg|mean)\b/i,type:`avg`},{pattern:/\b(maximum|max|highest|top)\b/i,type:`max`},{pattern:/\b(minimum|min|lowest|bottom)\b/i,type:`min`}])if(e.test(t))return{type:n,confidence:.8};return null}function qf(e){let t=e.toLowerCase(),n=[],r=/\bby\s+(\w+(?:\s+\w+)?)/gi,i;for(;(i=r.exec(t))!==null;)n.push(i[1].trim());let a=/\bper\s+(\w+)/gi;for(;(i=a.exec(t))!==null;)n.push(i[1].trim());let o=/\bfor each\s+(\w+)/gi;for(;(i=o.exec(t))!==null;)n.push(i[1].trim());return n}function Jf(e,t,n,r,i){if(n){let t=e.find(e=>e.name===n);return t?(r.push(`Using specified cube: ${n}`),[t]):(i.push(`Specified cube '${n}' not found`),[])}let a=Ud(e,{intent:t,limit:3}).map(t=>e.find(e=>e.name===t.cube)).filter(e=>e!==void 0);return a.length>0&&r.push(`Identified relevant cubes: ${a.map(e=>e.name).join(`, `)}`),a}function Yf(e,t){return e===`query`?{query:{},confidence:0,reasoning:[`Could not identify relevant cubes for this query`],warnings:t,analysisMode:e,nextSteps:void 0}:{query:{},confidence:.7,reasoning:[`Detected ${e} intent from natural language`],warnings:t,analysisMode:e,nextSteps:Wf(e,void 0)}}function Xf(e,t,n){let r=[],i=[],a={},o=Uf(t),s=Jf(e,t,n,r,i);if(s.length===0)return Yf(o,i);let c=s[0],l=.5,u=Kf(t);u&&(r.push(`Detected ${u.type} aggregation intent`),l+=.1);let d=[],f=t.toLowerCase();l+=Rf(c,f,d,r),d.length===0&&u&&zf(c,u,d,r),d.length===0&&c.measures.length>0&&(d.push(c.measures[0].name),r.push(`Using default measure: ${c.measures[0].name}`),i.push(`Could not determine specific measure from query, using default`)),a.measures=d;let p=qf(t),m=[];l+=Bf(s,p,f,m,r),m.length>0&&(a.dimensions=m);let h=Gf(t);if(h){let e=c.dimensions.find(e=>e.type===`time`);if(e){let t={dimension:e.name,dateRange:h.dateRange};h.granularity&&(t.granularity=h.granularity),a.timeDimensions=[t],r.push(`Applied time filter: ${h.dateRange[0]} to ${h.dateRange[1]}`),l+=.15}else i.push(`Time expression found but no time dimension in cube`)}if(l=Math.min(1,l),o!==`query`){let e=s.length>0?s[0].name:void 0;return{query:{},confidence:.7,reasoning:[`Detected ${o} intent from natural language`,...e?[`Found relevant cube: ${e}`]:[]],warnings:i.length>0?i:void 0,analysisMode:o,nextSteps:Wf(o,e)}}return{query:a,confidence:l,reasoning:r,warnings:i.length>0?i:void 0,analysisMode:`query`}}function $(e,t,n,r){e?typeof e==`string`&&n(e,r):r.push({type:`syntax_error`,message:k(t)})}function Zf(e,t){return e.map(e=>t.get(e)||e)}function Qf(e,t){if(t.size===0)return;let n=JSON.parse(JSON.stringify(e));return n.measures&&=Zf(n.measures,t),n.dimensions&&=Zf(n.dimensions,t),n.timeDimensions&&=n.timeDimensions.map(e=>({...e,dimension:t.get(e.dimension)||e.dimension})),n}function $f(e,t){e.measures&&e.measures.length>10&&t.push({type:`performance`,message:k(`server.validation.ai.performanceManyMeasures`,{count:e.measures.length}),suggestion:k(`server.validation.ai.suggestSplitQueries`)}),e.dimensions&&e.dimensions.length>5&&t.push({type:`performance`,message:k(`server.validation.ai.performanceManyDimensions`,{count:e.dimensions.length}),suggestion:k(`server.validation.ai.suggestAddDimensionFilters`)})}function ep(e,t,n){let[r]=e.split(`.`),i=t.find(e=>e.name===r);if(!i)return;let a=i.dimensions.find(t=>t.name===e);a&&a.type!==`time`&&n.push({type:`best_practice`,message:k(`server.validation.ai.dimensionNotTimeType`,{dimension:e,type:a.type}),field:e,suggestion:k(`server.validation.ai.suggestUseTimeDimension`)})}function tp(e,t,n,r,i){let a=e.member,o=a.split(`.`);if(o.length!==2){n.push({type:`invalid_filter`,message:k(`server.validation.ai.invalidFilterMemberFormat`,{member:a}),field:a});return}let[s,c]=o,l=t.find(e=>e.name===s);if(!l){let e=i(s,t.map(e=>e.name));e&&r.set(a,`${e.field}.${c}`),n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundInFilter`,{cubeName:s}),field:a,suggestion:e?`Did you mean '${e.field}'?`:void 0,correctedValue:e?`${e.field}.${c}`:void 0});return}let u=l.dimensions.some(e=>e.name===a),d=l.measures.some(e=>e.name===a);if(u||d)return;let f=i(c,[...l.dimensions.map(e=>e.name.split(`.`).pop()),...l.measures.map(e=>e.name.split(`.`).pop())]);if(f){let e=`${s}.${f.field}`;r.set(a,e),n.push({type:`invalid_filter`,message:k(`server.validation.ai.filterFieldNotFoundWithSuggestion`,{fieldName:c,cubeName:s}),field:a,suggestion:`Did you mean '${f.field}'?`,correctedValue:e})}else n.push({type:`invalid_filter`,message:k(`server.validation.ai.filterFieldNotFound`,{fieldName:c,cubeName:s}),field:a})}function np(e,t){let n=null;for(let r of t){let t=Nd(e.toLowerCase(),r.toLowerCase());t<=3&&(!n||t<n.distance)&&(n={field:r,distance:t})}return n}function rp(e,t,n,r){let i=e.split(`.`);if(i.length!==2){n.push({type:`syntax_error`,message:k(`server.validation.ai.invalidMeasureFormat`,{measure:e}),field:e});return}let[a,o]=i,s=t.find(e=>e.name===a);if(!s){let i=t.map(e=>e.name),s=np(a,i);s?(n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithSuggestion`,{cubeName:a}),field:e,suggestion:`Did you mean '${s.field}'?`,correctedValue:`${s.field}.${o}`}),r.set(e,`${s.field}.${o}`)):n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithAvailable`,{cubeName:a}),field:e,suggestion:`Available cubes: ${i.join(`, `)}`});return}if(!s.measures.some(t=>t.name===e)){let i=Wd(t,o,`measure`);if(i&&i.cube===a)n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithSuggestion`,{measureName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:i.field}),r.set(e,i.field);else{let t=s.measures.map(e=>e.name.split(`.`).pop()),i=np(o,t);if(i){let t=`${a}.${i.field}`;n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithSuggestion`,{measureName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:t}),r.set(e,t)}else n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithAvailable`,{measureName:o,cubeName:a}),field:e,suggestion:`Available measures: ${t.slice(0,5).join(`, `)}${t.length>5?`...`:``}`})}}}function ip(e,t,n,r){let i=e.split(`.`);if(i.length!==2){n.push({type:`syntax_error`,message:k(`server.validation.ai.invalidDimensionFormat`,{dimension:e}),field:e});return}let[a,o]=i,s=t.find(e=>e.name===a);if(!s){let i=t.map(e=>e.name),s=np(a,i);s?(n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithSuggestion`,{cubeName:a}),field:e,suggestion:`Did you mean '${s.field}'?`,correctedValue:`${s.field}.${o}`}),r.set(e,`${s.field}.${o}`)):n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithAvailable`,{cubeName:a}),field:e,suggestion:`Available cubes: ${i.join(`, `)}`});return}if(!s.dimensions.some(t=>t.name===e)){let i=Wd(t,o,`dimension`);if(i&&i.cube===a)n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithSuggestion`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:i.field}),r.set(e,i.field);else{let t=s.dimensions.map(e=>e.name.split(`.`).pop()),i=np(o,t);if(i){let t=`${a}.${i.field}`;n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithSuggestion`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:t}),r.set(e,t)}else n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithAvailable`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Available dimensions: ${t.slice(0,5).join(`, `)}${t.length>5?`...`:``}`})}}}function ap(e,t,n,r){for(let i of e){if(`and`in i&&Array.isArray(i.and)){ap(i.and,t,n,r);continue}if(`or`in i&&Array.isArray(i.or)){ap(i.or,t,n,r);continue}`member`in i&&tp(i,t,n,r,np)}}function op(e,t,n,r,i){let a=e.funnel;if(!a)return;let o=(e,n)=>ip(e,t,n,i);if($(a.bindingKey,`server.validation.ai.bindingKeyRequired.funnel`,o,n),$(a.timeDimension,`server.validation.ai.timeDimensionRequired.funnel`,o,n),!a.steps||!Array.isArray(a.steps))n.push({type:`syntax_error`,message:k(`server.validation.ai.funnelStepsRequired`)});else if(a.steps.length<2)n.push({type:`syntax_error`,message:k(`server.validation.ai.funnelRequiresSteps`)});else for(let e=0;e<a.steps.length;e++){let o=a.steps[e];o.name||r.push({type:`best_practice`,message:k(`server.validation.ai.stepMissingName`,{step:e+1}),suggestion:k(`server.validation.ai.suggestAddStepNames`)}),o.filter&&`member`in o.filter&&ap([o.filter],t,n,i)}}function sp(e,t,n,r,i){let a=e.flow;if(!a)return;let o=(e,n)=>ip(e,t,n,i);$(a.bindingKey,`server.validation.ai.bindingKeyRequired.flow`,o,n),$(a.timeDimension,`server.validation.ai.timeDimensionRequired.flow`,o,n),$(a.eventDimension,`server.validation.ai.eventDimensionRequired`,o,n),a.stepsBefore===void 0&&a.stepsAfter===void 0&&r.push({type:`best_practice`,message:k(`server.validation.ai.stepsBothMissing`),suggestion:k(`server.validation.ai.suggestSetSteps`)})}function cp(e,t,n,r,i){let a=e.retention;if(!a)return;let o=(e,n)=>ip(e,t,n,i);$(a.bindingKey,`server.validation.ai.bindingKeyRequired.retention`,o,n),$(a.timeDimension,`server.validation.ai.retentionTimeDimensionRequired`,o,n),a.granularity||r.push({type:`best_practice`,message:k(`server.validation.ai.granularityNotSpecified`),suggestion:k(`server.validation.ai.suggestSpecifyGranularity`)}),a.periods||r.push({type:`best_practice`,message:k(`server.validation.ai.periodsNotSpecified`),suggestion:k(`server.validation.ai.suggestSpecifyPeriods`)})}function lp(e,t,n,r,i){return e.funnel?(op(e,t,n,r,i),!0):e.flow?(sp(e,t,n,r,i),!0):e.retention?(cp(e,t,n,r,i),!0):!1}function up(e,t,n,r,i){if(e.measures)for(let r of e.measures)rp(r,t,n,i);if(e.dimensions)for(let r of e.dimensions)ip(r,t,n,i);if(e.timeDimensions)for(let a of e.timeDimensions)ip(a.dimension,t,n,i),ep(a.dimension,t,r);e.filters&&ap(e.filters,t,n,i),!e.measures?.length&&!e.dimensions?.length&&n.push({type:`syntax_error`,message:k(`server.validation.ai.emptyQuery`)}),$f(e,r)}function dp(e,t){let n=[],r=[],i=new Map;if(lp(e,t,n,r,i))return{isValid:n.length===0,errors:n,warnings:r,correctedQuery:void 0};up(e,t,n,r,i);let a=Qf(e,i);return{isValid:n.length===0,errors:n,warnings:r,correctedQuery:a}}function fp(e){return new td({drizzle:e.drizzle,schema:e.schema})}exports.BaseDatabaseExecutor=S,exports.CTEBuilder=Tn,exports.CalculatedMeasureResolver=j,exports.ComparisonQueryBuilder=Ar,exports.DatabendExecutor=Ve,exports.DrizzlePlanBuilder=Ni,exports.DrizzleSqlBuilder=cn,exports.DuckDBExecutor=Ie,exports.EXPLAIN_ANALYSIS_PROMPT=fd,exports.FlowQueryBuilder=Mr,exports.FunnelQueryBuilder=jr,exports.IdentityOptimiser=Br,exports.JoinPathResolver=ln,exports.LogicalPlanBuilder=zr,exports.LogicalPlanner=Cn,exports.MemoryCacheProvider=rd,exports.MySQLExecutor=Te,exports.OptimiserPipeline=Vr,exports.PostgresExecutor=xe,exports.QueryExecutor=Fi,exports.RetentionQueryBuilder=Rr,exports.SQLiteExecutor=ke,exports.STEP0_VALIDATION_PROMPT=id,exports.STEP1_SYSTEM_PROMPT=cd,exports.STEP2_SYSTEM_PROMPT=ud,exports.SYSTEM_PROMPT_TEMPLATE=od,exports.SemanticLayerCompiler=td,exports.SnowflakeExecutor=qe,exports.aiValidateQuery=dp,exports.buildAgentSystemPrompt=Dd,exports.buildExplainAnalysisPrompt=pd,exports.buildStep0Prompt=ad,exports.buildStep1Prompt=ld,exports.buildStep2Prompt=dd,exports.buildSystemPrompt=sd,exports.createDatabaseExecutor=Ye,exports.createDatabendExecutor=He,exports.createDrizzleSemanticLayer=fp,exports.createDuckDBExecutor=Le,exports.createMultiCubeContext=tt,exports.createMySQLExecutor=Ee,exports.createPostgresExecutor=Se,exports.createSQLiteExecutor=Ae,exports.createSnowflakeExecutor=Je,exports.createToolExecutor=xf,exports.defineCube=nt,exports.detectQueryMode=er,exports.detectQueryModes=Qn,exports.discoverCubes=Ud,exports.findBestFieldMatch=Wd,exports.fnv1aHash=Er,exports.formatCubeSchemaForExplain=md,exports.formatExistingIndexes=hd,exports.generateCacheKey=yr,exports.getActiveQueryModes=$n,exports.getCubeInvalidationPattern=Or,exports.getJoinType=Ze,exports.getToolDefinitions=bf,exports.handleAgentChat=Pf,exports.hasComparisonMode=Jn,exports.hasFlowMode=Xn,exports.hasFunnelMode=Yn,exports.hasRetentionMode=Zn,exports.normalizeQuery=br,exports.resolveCubeReference=w,exports.resolveSqlExpression=T,exports.strongHash=Dr,exports.suggestQuery=Xf;
825
+ `)}`,isError:!0};let i={portlets:n.map(e=>{let t=e.chartType,n=t===`markdown`,r=n?`query`:e.analysisType||`query`,i=r===`funnel`?`funnel`:r===`flow`?`flow`:r===`retention`?`retention`:`query`,a=e.query||`{}`,o;try{o=JSON.parse(a)}catch{o={}}let s={version:1,analysisType:i,activeView:`chart`,charts:{[i]:{chartType:t,chartConfig:e.chartConfig||{},displayConfig:e.displayConfig||{}}},query:n?{}:o};return{id:e.id,title:e.title,analysisConfig:s,dashboardFilterMapping:e.dashboardFilterMapping,w:e.w,h:e.h,x:e.x,y:e.y}}),filters:e.filters,colorPalette:e.colorPalette},a=e.title;return{result:`Dashboard "${a}" created with ${i.portlets.length} portlets and ${i.filters?.length||0} filters.`,sideEffect:{type:`dashboard_saved`,data:{title:a,description:e.description,dashboardConfig:i}}}}catch(e){return{result:`Failed to save dashboard: ${e instanceof Error?e.message:`Unknown error`}`,isError:!0}}}),r}async function Sf(e,t,n){switch(e){case`anthropic`:{let{AnthropicProvider:e}=await Promise.resolve().then(()=>require("./anthropic-DG4r1LSm.cjs"));return new e(t)}case`openai`:{let{OpenAIProvider:e}=await Promise.resolve().then(()=>require("./openai-DTSTMiXL.cjs"));return new e(t,n)}case`google`:{let{GoogleProvider:e}=await Promise.resolve().then(()=>require("./google-BOnRIN1w.cjs"));return new e(t)}default:throw Error(`Unknown LLM provider: "${e}". Supported providers: anthropic, openai, google`)}}function Cf(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function wf(e){if(e)try{e()}catch{}}function Tf(e,t){let n=[];if(!e||e.length===0)return n;for(let r of e){if(r.role===`user`){n.push({role:`user`,content:r.content});continue}if(r.role!==`assistant`)continue;let e=[];if(r.content&&e.push({type:`text`,text:r.content}),r.toolCalls&&r.toolCalls.length>0){for(let t of r.toolCalls)e.push({type:`tool_use`,id:t.id,name:t.name,input:t.input||{}});n.push({role:`assistant`,content:e});let i=r.toolCalls.map(e=>({toolUseId:e.id,toolName:e.name,content:typeof e.result==`string`?e.result:JSON.stringify(e.result??``),isError:e.status===`error`}));Cf(n,t.formatToolResults(i))}else e.length>0&&n.push({role:`assistant`,content:r.content})}return n}function Ef(e,t){if(!(e?.type!==`tool_use`||!t))try{e.input=JSON.parse(t)}catch{e.input={}}}function Df(e,t){let n=e.contentBlocks[e.contentBlocks.length-1];n&&n.type===`text`?n.text=(n.text||``)+t:e.contentBlocks.push({type:`text`,text:t})}function Of(e,t){if(e.currentBlockIsToolUse&&e.currentToolInputJson){let t=e.contentBlocks[e.contentBlocks.length-1];if(t?.type===`tool_use`)try{t.input=JSON.parse(e.currentToolInputJson)}catch{}}e.contentBlocks.push({type:`tool_use`,id:t.id,name:t.name,input:{},...t.metadata?{metadata:t.metadata}:{}}),e.currentToolInputJson=``,e.currentBlockIsToolUse=!0}function kf(e,t){if(t.id&&t.input){let n=e.contentBlocks.find(e=>e.type===`tool_use`&&e.id===t.id);n&&(n.input=t.input)}else if(e.currentBlockIsToolUse){let t=e.contentBlocks[e.contentBlocks.length-1];t?.type===`tool_use`&&e.currentToolInputJson&&(Ef(t,e.currentToolInputJson),e.currentToolInputJson=``),e.currentBlockIsToolUse=!1}}async function*Af(e,t){let n={contentBlocks:[],currentToolInputJson:``,currentBlockIsToolUse:!1,stopReason:``};for await(let r of e.parseStreamEvents(t)){let e=r;switch(e.type){case`text_delta`:Df(n,e.text),yield{type:`text_delta`,data:e.text};break;case`tool_use_start`:Of(n,e),yield{type:`tool_use_start`,data:{id:e.id,name:e.name,input:void 0}};break;case`tool_input_delta`:n.currentToolInputJson+=e.json;break;case`tool_use_end`:kf(n,e);break;case`message_meta`:e.inputTokens!=null&&(n.inputTokens=e.inputTokens),e.outputTokens!=null&&(n.outputTokens=e.outputTokens),e.stopReason&&(n.stopReason=e.stopReason);break}}return{contentBlocks:n.contentBlocks,stopReason:n.stopReason,inputTokens:n.inputTokens,outputTokens:n.outputTokens}}async function*jf(e,t){let{executor:n,observability:r,traceId:i,turn:a}=t,o=e.name,s=e.input||{},c=e.id,l=n.get(o);if(!l)return yield{type:`tool_use_result`,data:{id:c,name:o,result:`Unknown tool: ${o}`,isError:!0}},{toolUseId:c,toolName:o,content:`Unknown tool: ${o}`,isError:!0};let u=Date.now();try{let e=await l(s);return e.sideEffect&&(yield e.sideEffect),yield{type:`tool_use_result`,data:{id:c,name:o,result:e.result,...e.isError?{isError:!0}:{}}},wf(()=>r?.onToolEnd?.({traceId:i,turn:a,toolName:o,toolUseId:c,isError:!!e.isError,durationMs:Date.now()-u})),{toolUseId:c,toolName:o,content:e.result,...e.isError?{isError:!0}:{}}}catch(e){let t=e instanceof Error?e.message:`Tool execution failed`;return yield{type:`tool_use_result`,data:{id:c,name:o,result:t,isError:!0}},wf(()=>r?.onToolEnd?.({traceId:i,turn:a,toolName:o,toolUseId:c,isError:!0,durationMs:Date.now()-u})),{toolUseId:c,toolName:o,content:t,isError:!0}}}async function*Mf(e,t){let n=[];for(let r of e){if(r.type!==`tool_use`)continue;let e=yield*jf(r,t);n.push(e)}return n}var Nf={anthropic:`claude-sonnet-4-6`,openai:`gpt-4.1-mini`,google:`gemini-3-flash-preview`};async function*Pf(e){let{message:t,history:n,semanticLayer:r,securityContext:i,agentConfig:a,apiKey:o}=e,s=e.sessionId||crypto.randomUUID(),c=a.observability,l=crypto.randomUUID(),u=Date.now(),d=e.providerOverride||a.provider||`anthropic`,f=e.modelOverride||a.model||Nf[d]||`claude-sonnet-4-6`,p=e.baseURLOverride||a.baseURL,m=a.maxTurns||25,h=a.maxTokens||4096,g;try{g=await Sf(d,o,{baseURL:p})}catch(e){console.error(`[agent] Failed to create %s provider: %s`,String(d).replace(/\n|\r/g,``),String(e instanceof Error?e.message:e).replace(/\n|\r/g,``)),yield{type:`error`,data:{message:e instanceof Error?e.message:k(`server.errors.llmInitFailed`)}};return}let _=bf(),v=xf({semanticLayer:r,securityContext:i}),y=Dd(r.getMetadata());e.systemContext&&(y+=`\n\n## User Context\n\n${e.systemContext}`),wf(()=>c?.onChatStart?.({traceId:l,sessionId:s,message:t,model:f,historyLength:n?.length??0}));let b=Tf(n,g);b.push({role:`user`,content:t});let x=0;try{for(let e=0;e<m;e++){x=e+1;let t=await g.createStream({model:f,maxTokens:h,system:y,tools:_,messages:b}),n=Date.now(),{contentBlocks:r,stopReason:i,inputTokens:a,outputTokens:o}=yield*Af(g,t);if(wf(()=>c?.onGenerationEnd?.({traceId:l,turn:e,model:f,stopReason:i,inputTokens:a,outputTokens:o,durationMs:Date.now()-n,input:b,output:r})),b.push({role:`assistant`,content:r}),!g.shouldContinue(i))break;let s=yield*Mf(r,{executor:v,observability:c,traceId:l,turn:e});yield{type:`turn_complete`,data:{}},Cf(b,g.formatToolResults(s))}wf(()=>c?.onChatEnd?.({traceId:l,sessionId:s,totalTurns:x,durationMs:Date.now()-u})),yield{type:`done`,data:{sessionId:s||``,traceId:l}}}catch(e){try{c?.onChatEnd?.({traceId:l,sessionId:s,totalTurns:0,durationMs:Date.now()-u,error:e instanceof Error?e.message:`Unknown error`})}catch{}console.error(`[agent] Chat error (provider=%s, model=%s): %s`,String(d).replace(/\n|\r/g,``),String(f).replace(/\n|\r/g,``),String(e instanceof Error?e.message:e).replace(/\n|\r/g,``)),yield{type:`error`,data:{message:g.formatError(e)}}}}function Ff(e){return e.toISOString().split(`T`)[0]}function If(e,t){let n=new Date,r=Ff(n);if(/days?/.test(t)){let t=new Date(n);return t.setDate(t.getDate()-e),{dateRange:[Ff(t),r],granularity:`day`}}if(/weeks?/.test(t)){let t=new Date(n);return t.setDate(t.getDate()-e*7),{dateRange:[Ff(t),r],granularity:e<=4?`day`:`week`}}if(/months?/.test(t)){let t=new Date(n);return t.setMonth(t.getMonth()-e),{dateRange:[Ff(t),r],granularity:e<=3?`day`:`month`}}return null}function Lf(e){let t=parseInt(e.slice(1),10),n=new Date().getFullYear(),r=(t-1)*3,i=new Date(n,r,1),a=new Date(n,r+3,0);return{dateRange:[Ff(i),Ff(a)],granularity:`month`}}function Rf(e,t,n,r){let i=0;for(let a of e.measures){let e=[(a.name.split(`.`).pop()||a.name).toLowerCase(),a.title.toLowerCase(),...(a.synonyms||[]).map(e=>e.toLowerCase())];for(let o of e)if(t.includes(o)){n.push(a.name),r.push(`Matched measure '${a.name}' via keyword '${o}'`),i+=.15;break}}return i}function zf(e,t,n,r){let i=e.measures.filter(e=>e.type===t.type);if(i.length>0){n.push(i[0].name),r.push(`Suggested ${i[0].name} based on ${t.type} intent`);return}if(t.type===`count`){let t=e.measures.find(e=>e.type===`count`||e.type===`countDistinct`);t&&(n.push(t.name),r.push(`Suggested ${t.name} for counting`))}}function Bf(e,t,n,r,i){let a=0;for(let n of t){let t=Wd(e,n,`dimension`);t&&(r.push(t.field),i.push(`Matched dimension '${t.field}' from grouping keyword '${n}'`),a+=.1)}for(let t of e)for(let e of t.dimensions){let t=[(e.name.split(`.`).pop()||e.name).toLowerCase(),e.title.toLowerCase(),...(e.synonyms||[]).map(e=>e.toLowerCase())];for(let o of t)if(n.includes(o)&&!r.includes(e.name)&&(n.includes(`by ${o}`)||n.includes(`per ${o}`))){r.push(e.name),i.push(`Matched dimension '${e.name}' as grouping`),a+=.1;break}}return a}function Vf(){let e=new Date,t=e.toISOString().split(`T`)[0],n=e=>e.toISOString().split(`T`)[0],r=e=>new Date(e.getFullYear(),e.getMonth(),1),i=e=>new Date(e.getFullYear(),0,1),a=e=>{let t=Math.floor(e.getMonth()/3);return new Date(e.getFullYear(),t*3,1)},o=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1);return new Date(e.getFullYear(),e.getMonth(),n)};return[{pattern:/\btoday\b/i,getDateRange:()=>[t,t],granularity:`day`},{pattern:/\byesterday\b/i,getDateRange:()=>{let t=new Date(e);t.setDate(t.getDate()-1);let r=n(t);return[r,r]},granularity:`day`},{pattern:/\bthis week\b/i,getDateRange:()=>[n(o(e)),t],granularity:`day`},{pattern:/\blast week\b/i,getDateRange:()=>{let t=new Date(o(e));t.setDate(t.getDate()-7);let r=new Date(t);return r.setDate(r.getDate()+6),[n(t),n(r)]},granularity:`day`},{pattern:/\bthis month\b/i,getDateRange:()=>[n(r(e)),t],granularity:`day`},{pattern:/\blast month\b/i,getDateRange:()=>{let t=new Date(e.getFullYear(),e.getMonth()-1,1),r=new Date(e.getFullYear(),e.getMonth(),0);return[n(t),n(r)]},granularity:`day`},{pattern:/\bthis quarter\b/i,getDateRange:()=>[n(a(e)),t],granularity:`month`},{pattern:/\blast quarter\b/i,getDateRange:()=>{let t=new Date(a(e));t.setMonth(t.getMonth()-3);let r=new Date(a(e));return r.setDate(r.getDate()-1),[n(t),n(r)]},granularity:`month`},{pattern:/\bthis year\b/i,getDateRange:()=>[n(i(e)),t],granularity:`month`},{pattern:/\blast year\b/i,getDateRange:()=>{let t=new Date(e.getFullYear()-1,0,1),r=new Date(e.getFullYear()-1,11,31);return[n(t),n(r)]},granularity:`month`},{pattern:/\blast (\d+) days?\b/i,getDateRange:()=>{let r=new Date(e);return r.setDate(r.getDate()-7),[n(r),t]},granularity:`day`},{pattern:/\blast (\d+) weeks?\b/i,getDateRange:()=>{let r=new Date(e);return r.setDate(r.getDate()-28),[n(r),t]},granularity:`week`},{pattern:/\blast (\d+) months?\b/i,getDateRange:()=>{let r=new Date(e);return r.setMonth(r.getMonth()-3),[n(r),t]},granularity:`month`},{pattern:/\bq([1-4])\b/i,getDateRange:()=>[n(new Date(e.getFullYear(),0,1)),n(new Date(e.getFullYear(),2,31))],granularity:`month`}]}var Hf={funnel:/\b(funnel|conversion|drop.?off|steps?|journey|pipeline|stages?)\b/i,flow:/\b(flows?|paths?|sequence|before|after|next|previous|user.?journey)\b/i,retention:/\b(retention|cohort|return|churn|comeback|retained|day.?\d+)\b/i};function Uf(e){let t=e.toLowerCase();return Hf.funnel.test(t)?`funnel`:Hf.flow.test(t)?`flow`:Hf.retention.test(t)?`retention`:`query`}function Wf(e,t){let n=t||`the relevant cube`;switch(e){case`funnel`:return[`Use /mcp/discover to get ${n} funnel configuration and schema`,`Query the event dimension to discover available event types for funnel steps`,`Build funnel query with discovered values using the schema from discover`];case`flow`:return[`Use /mcp/discover to get ${n} flow configuration and schema`,`Query the event dimension to discover available event types`,`Build flow query specifying the starting event and steps before/after`];case`retention`:return[`Use /mcp/discover to get ${n} retention configuration and schema`,`Build retention query specifying granularity (day/week/month) and number of periods`]}}function Gf(e){let t=Vf(),n=e.toLowerCase();for(let e of t){let t=n.match(e.pattern);if(t){if(t[1]&&/^\d+$/.test(t[1])){let e=If(parseInt(t[1],10),n);if(e)return e}return/^q[1-4]$/i.test(t[0])?Lf(t[0]):{dateRange:e.getDateRange(),granularity:e.granularity}}}return null}function Kf(e){let t=e.toLowerCase();for(let{pattern:e,type:n}of[{pattern:/\b(total|sum|combined)\b/i,type:`sum`},{pattern:/\b(count|number of|how many)\b/i,type:`count`},{pattern:/\b(average|avg|mean)\b/i,type:`avg`},{pattern:/\b(maximum|max|highest|top)\b/i,type:`max`},{pattern:/\b(minimum|min|lowest|bottom)\b/i,type:`min`}])if(e.test(t))return{type:n,confidence:.8};return null}function qf(e){let t=e.toLowerCase(),n=[],r=/\bby\s+(\w+(?:\s+\w+)?)/gi,i;for(;(i=r.exec(t))!==null;)n.push(i[1].trim());let a=/\bper\s+(\w+)/gi;for(;(i=a.exec(t))!==null;)n.push(i[1].trim());let o=/\bfor each\s+(\w+)/gi;for(;(i=o.exec(t))!==null;)n.push(i[1].trim());return n}function Jf(e,t,n,r,i){if(n){let t=e.find(e=>e.name===n);return t?(r.push(`Using specified cube: ${n}`),[t]):(i.push(`Specified cube '${n}' not found`),[])}let a=Ud(e,{intent:t,limit:3}).map(t=>e.find(e=>e.name===t.cube)).filter(e=>e!==void 0);return a.length>0&&r.push(`Identified relevant cubes: ${a.map(e=>e.name).join(`, `)}`),a}function Yf(e,t){return e===`query`?{query:{},confidence:0,reasoning:[`Could not identify relevant cubes for this query`],warnings:t,analysisMode:e,nextSteps:void 0}:{query:{},confidence:.7,reasoning:[`Detected ${e} intent from natural language`],warnings:t,analysisMode:e,nextSteps:Wf(e,void 0)}}function Xf(e,t,n){let r=[],i=[],a={},o=Uf(t),s=Jf(e,t,n,r,i);if(s.length===0)return Yf(o,i);let c=s[0],l=.5,u=Kf(t);u&&(r.push(`Detected ${u.type} aggregation intent`),l+=.1);let d=[],f=t.toLowerCase();l+=Rf(c,f,d,r),d.length===0&&u&&zf(c,u,d,r),d.length===0&&c.measures.length>0&&(d.push(c.measures[0].name),r.push(`Using default measure: ${c.measures[0].name}`),i.push(`Could not determine specific measure from query, using default`)),a.measures=d;let p=qf(t),m=[];l+=Bf(s,p,f,m,r),m.length>0&&(a.dimensions=m);let h=Gf(t);if(h){let e=c.dimensions.find(e=>e.type===`time`);if(e){let t={dimension:e.name,dateRange:h.dateRange};h.granularity&&(t.granularity=h.granularity),a.timeDimensions=[t],r.push(`Applied time filter: ${h.dateRange[0]} to ${h.dateRange[1]}`),l+=.15}else i.push(`Time expression found but no time dimension in cube`)}if(l=Math.min(1,l),o!==`query`){let e=s.length>0?s[0].name:void 0;return{query:{},confidence:.7,reasoning:[`Detected ${o} intent from natural language`,...e?[`Found relevant cube: ${e}`]:[]],warnings:i.length>0?i:void 0,analysisMode:o,nextSteps:Wf(o,e)}}return{query:a,confidence:l,reasoning:r,warnings:i.length>0?i:void 0,analysisMode:`query`}}function $(e,t,n,r){e?typeof e==`string`&&n(e,r):r.push({type:`syntax_error`,message:k(t)})}function Zf(e,t){return e.map(e=>t.get(e)||e)}function Qf(e,t){if(t.size===0)return;let n=JSON.parse(JSON.stringify(e));return n.measures&&=Zf(n.measures,t),n.dimensions&&=Zf(n.dimensions,t),n.timeDimensions&&=n.timeDimensions.map(e=>({...e,dimension:t.get(e.dimension)||e.dimension})),n}function $f(e,t){e.measures&&e.measures.length>10&&t.push({type:`performance`,message:k(`server.validation.ai.performanceManyMeasures`,{count:e.measures.length}),suggestion:k(`server.validation.ai.suggestSplitQueries`)}),e.dimensions&&e.dimensions.length>5&&t.push({type:`performance`,message:k(`server.validation.ai.performanceManyDimensions`,{count:e.dimensions.length}),suggestion:k(`server.validation.ai.suggestAddDimensionFilters`)})}function ep(e,t,n){let[r]=e.split(`.`),i=t.find(e=>e.name===r);if(!i)return;let a=i.dimensions.find(t=>t.name===e);a&&a.type!==`time`&&n.push({type:`best_practice`,message:k(`server.validation.ai.dimensionNotTimeType`,{dimension:e,type:a.type}),field:e,suggestion:k(`server.validation.ai.suggestUseTimeDimension`)})}function tp(e,t,n,r,i){let a=e.member,o=a.split(`.`);if(o.length!==2){n.push({type:`invalid_filter`,message:k(`server.validation.ai.invalidFilterMemberFormat`,{member:a}),field:a});return}let[s,c]=o,l=t.find(e=>e.name===s);if(!l){let e=i(s,t.map(e=>e.name));e&&r.set(a,`${e.field}.${c}`),n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundInFilter`,{cubeName:s}),field:a,suggestion:e?`Did you mean '${e.field}'?`:void 0,correctedValue:e?`${e.field}.${c}`:void 0});return}let u=l.dimensions.some(e=>e.name===a),d=l.measures.some(e=>e.name===a);if(u||d)return;let f=i(c,[...l.dimensions.map(e=>e.name.split(`.`).pop()),...l.measures.map(e=>e.name.split(`.`).pop())]);if(f){let e=`${s}.${f.field}`;r.set(a,e),n.push({type:`invalid_filter`,message:k(`server.validation.ai.filterFieldNotFoundWithSuggestion`,{fieldName:c,cubeName:s}),field:a,suggestion:`Did you mean '${f.field}'?`,correctedValue:e})}else n.push({type:`invalid_filter`,message:k(`server.validation.ai.filterFieldNotFound`,{fieldName:c,cubeName:s}),field:a})}function np(e,t){let n=null;for(let r of t){let t=Nd(e.toLowerCase(),r.toLowerCase());t<=3&&(!n||t<n.distance)&&(n={field:r,distance:t})}return n}function rp(e,t,n,r){let i=e.split(`.`);if(i.length!==2){n.push({type:`syntax_error`,message:k(`server.validation.ai.invalidMeasureFormat`,{measure:e}),field:e});return}let[a,o]=i,s=t.find(e=>e.name===a);if(!s){let i=t.map(e=>e.name),s=np(a,i);s?(n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithSuggestion`,{cubeName:a}),field:e,suggestion:`Did you mean '${s.field}'?`,correctedValue:`${s.field}.${o}`}),r.set(e,`${s.field}.${o}`)):n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithAvailable`,{cubeName:a}),field:e,suggestion:`Available cubes: ${i.join(`, `)}`});return}if(!s.measures.some(t=>t.name===e)){let i=Wd(t,o,`measure`);if(i&&i.cube===a)n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithSuggestion`,{measureName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:i.field}),r.set(e,i.field);else{let t=s.measures.map(e=>e.name.split(`.`).pop()),i=np(o,t);if(i){let t=`${a}.${i.field}`;n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithSuggestion`,{measureName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:t}),r.set(e,t)}else n.push({type:`measure_not_found`,message:k(`server.validation.ai.measureNotFoundWithAvailable`,{measureName:o,cubeName:a}),field:e,suggestion:`Available measures: ${t.slice(0,5).join(`, `)}${t.length>5?`...`:``}`})}}}function ip(e,t,n,r){let i=e.split(`.`);if(i.length!==2){n.push({type:`syntax_error`,message:k(`server.validation.ai.invalidDimensionFormat`,{dimension:e}),field:e});return}let[a,o]=i,s=t.find(e=>e.name===a);if(!s){let i=t.map(e=>e.name),s=np(a,i);s?(n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithSuggestion`,{cubeName:a}),field:e,suggestion:`Did you mean '${s.field}'?`,correctedValue:`${s.field}.${o}`}),r.set(e,`${s.field}.${o}`)):n.push({type:`cube_not_found`,message:k(`server.validation.ai.cubeNotFoundWithAvailable`,{cubeName:a}),field:e,suggestion:`Available cubes: ${i.join(`, `)}`});return}if(!s.dimensions.some(t=>t.name===e)){let i=Wd(t,o,`dimension`);if(i&&i.cube===a)n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithSuggestion`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:i.field}),r.set(e,i.field);else{let t=s.dimensions.map(e=>e.name.split(`.`).pop()),i=np(o,t);if(i){let t=`${a}.${i.field}`;n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithSuggestion`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Did you mean '${i.field}'?`,correctedValue:t}),r.set(e,t)}else n.push({type:`dimension_not_found`,message:k(`server.validation.ai.dimensionNotFoundWithAvailable`,{dimensionName:o,cubeName:a}),field:e,suggestion:`Available dimensions: ${t.slice(0,5).join(`, `)}${t.length>5?`...`:``}`})}}}function ap(e,t,n,r){for(let i of e){if(`and`in i&&Array.isArray(i.and)){ap(i.and,t,n,r);continue}if(`or`in i&&Array.isArray(i.or)){ap(i.or,t,n,r);continue}`member`in i&&tp(i,t,n,r,np)}}function op(e,t,n,r,i){let a=e.funnel;if(!a)return;let o=(e,n)=>ip(e,t,n,i);if($(a.bindingKey,`server.validation.ai.bindingKeyRequired.funnel`,o,n),$(a.timeDimension,`server.validation.ai.timeDimensionRequired.funnel`,o,n),!a.steps||!Array.isArray(a.steps))n.push({type:`syntax_error`,message:k(`server.validation.ai.funnelStepsRequired`)});else if(a.steps.length<2)n.push({type:`syntax_error`,message:k(`server.validation.ai.funnelRequiresSteps`)});else for(let e=0;e<a.steps.length;e++){let o=a.steps[e];o.name||r.push({type:`best_practice`,message:k(`server.validation.ai.stepMissingName`,{step:e+1}),suggestion:k(`server.validation.ai.suggestAddStepNames`)}),o.filter&&`member`in o.filter&&ap([o.filter],t,n,i)}}function sp(e,t,n,r,i){let a=e.flow;if(!a)return;let o=(e,n)=>ip(e,t,n,i);$(a.bindingKey,`server.validation.ai.bindingKeyRequired.flow`,o,n),$(a.timeDimension,`server.validation.ai.timeDimensionRequired.flow`,o,n),$(a.eventDimension,`server.validation.ai.eventDimensionRequired`,o,n),a.stepsBefore===void 0&&a.stepsAfter===void 0&&r.push({type:`best_practice`,message:k(`server.validation.ai.stepsBothMissing`),suggestion:k(`server.validation.ai.suggestSetSteps`)})}function cp(e,t,n,r,i){let a=e.retention;if(!a)return;let o=(e,n)=>ip(e,t,n,i);$(a.bindingKey,`server.validation.ai.bindingKeyRequired.retention`,o,n),$(a.timeDimension,`server.validation.ai.retentionTimeDimensionRequired`,o,n),a.granularity||r.push({type:`best_practice`,message:k(`server.validation.ai.granularityNotSpecified`),suggestion:k(`server.validation.ai.suggestSpecifyGranularity`)}),a.periods||r.push({type:`best_practice`,message:k(`server.validation.ai.periodsNotSpecified`),suggestion:k(`server.validation.ai.suggestSpecifyPeriods`)})}function lp(e,t,n,r,i){return e.funnel?(op(e,t,n,r,i),!0):e.flow?(sp(e,t,n,r,i),!0):e.retention?(cp(e,t,n,r,i),!0):!1}function up(e,t,n,r,i){if(e.measures)for(let r of e.measures)rp(r,t,n,i);if(e.dimensions)for(let r of e.dimensions)ip(r,t,n,i);if(e.timeDimensions)for(let a of e.timeDimensions)ip(a.dimension,t,n,i),ep(a.dimension,t,r);e.filters&&ap(e.filters,t,n,i),!e.measures?.length&&!e.dimensions?.length&&n.push({type:`syntax_error`,message:k(`server.validation.ai.emptyQuery`)}),$f(e,r)}function dp(e,t){let n=[],r=[],i=new Map;if(lp(e,t,n,r,i))return{isValid:n.length===0,errors:n,warnings:r,correctedQuery:void 0};up(e,t,n,r,i);let a=Qf(e,i);return{isValid:n.length===0,errors:n,warnings:r,correctedQuery:a}}function fp(e){return new td({drizzle:e.drizzle,schema:e.schema})}exports.BaseDatabaseExecutor=S,exports.CTEBuilder=Tn,exports.CalculatedMeasureResolver=j,exports.ComparisonQueryBuilder=Ar,exports.DatabendExecutor=Ve,exports.DrizzlePlanBuilder=Ni,exports.DrizzleSqlBuilder=cn,exports.DuckDBExecutor=Ie,exports.EXPLAIN_ANALYSIS_PROMPT=fd,exports.FlowQueryBuilder=Mr,exports.FunnelQueryBuilder=jr,exports.IdentityOptimiser=Br,exports.JoinPathResolver=ln,exports.LogicalPlanBuilder=zr,exports.LogicalPlanner=Cn,exports.MemoryCacheProvider=rd,exports.MySQLExecutor=Te,exports.OptimiserPipeline=Vr,exports.PostgresExecutor=xe,exports.QueryExecutor=Fi,exports.RetentionQueryBuilder=Rr,exports.SQLiteExecutor=ke,exports.STEP0_VALIDATION_PROMPT=id,exports.STEP1_SYSTEM_PROMPT=cd,exports.STEP2_SYSTEM_PROMPT=ud,exports.SYSTEM_PROMPT_TEMPLATE=od,exports.SemanticLayerCompiler=td,exports.SnowflakeExecutor=qe,exports.aiValidateQuery=dp,exports.buildAgentSystemPrompt=Dd,exports.buildExplainAnalysisPrompt=pd,exports.buildStep0Prompt=ad,exports.buildStep1Prompt=ld,exports.buildStep2Prompt=dd,exports.buildSystemPrompt=sd,exports.createDatabaseExecutor=Ye,exports.createDatabendExecutor=He,exports.createDrizzleSemanticLayer=fp,exports.createDuckDBExecutor=Le,exports.createMultiCubeContext=tt,exports.createMySQLExecutor=Ee,exports.createPostgresExecutor=Se,exports.createSQLiteExecutor=Ae,exports.createSnowflakeExecutor=Je,exports.createToolExecutor=xf,exports.defineCube=nt,exports.detectQueryMode=er,exports.detectQueryModes=Qn,exports.discoverCubes=Ud,exports.findBestFieldMatch=Wd,exports.fnv1aHash=Er,exports.formatCubeSchemaForExplain=md,exports.formatExistingIndexes=hd,exports.generateCacheKey=yr,exports.getActiveQueryModes=$n,exports.getCubeInvalidationPattern=Or,exports.getJoinType=Ze,exports.getToolDefinitions=bf,exports.handleAgentChat=Pf,exports.hasComparisonMode=Jn,exports.hasFlowMode=Xn,exports.hasFunnelMode=Yn,exports.hasRetentionMode=Zn,exports.normalizeQuery=br,exports.resolveCubeReference=w,exports.resolveSqlExpression=T,exports.strongHash=Dr,exports.suggestQuery=Xf;
@@ -16754,7 +16754,7 @@ async function Kf(e, t, n) {
16754
16754
  return new e(t);
16755
16755
  }
16756
16756
  case "openai": {
16757
- let { OpenAIProvider: e } = await import("./openai-cDlFSTk6.js");
16757
+ let { OpenAIProvider: e } = await import("./openai-CtXqeznO.js");
16758
16758
  return new e(t, n);
16759
16759
  }
16760
16760
  case "google": {
@@ -119,7 +119,7 @@ var ce = (e, t) => {
119
119
  } catch {
120
120
  return;
121
121
  }
122
- }, ue = (e) => new Promise((t) => setTimeout(t, e)), de = "6.42.0", fe = () => typeof window < "u" && window.document !== void 0 && typeof navigator < "u";
122
+ }, ue = (e) => new Promise((t) => setTimeout(t, e)), de = "6.43.0", fe = () => typeof window < "u" && window.document !== void 0 && typeof navigator < "u";
123
123
  function pe() {
124
124
  return typeof Deno < "u" && Deno.build != null ? "deno" : typeof EdgeRuntime < "u" ? "edge" : Object.prototype.toString.call(globalThis.process === void 0 ? 0 : globalThis.process) === "[object process]" ? "node" : "unknown";
125
125
  }
@@ -1399,7 +1399,10 @@ I = /* @__PURE__ */ new WeakSet(), hn = function() {
1399
1399
  }, _n = function() {
1400
1400
  for (let e = this.messages.length - 1; e >= 0; e--) {
1401
1401
  let t = this.messages[e];
1402
- if (Qt(t) && t?.tool_calls?.length) return t.tool_calls.filter((e) => e.type === "function").at(-1)?.function;
1402
+ if (Qt(t) && t?.tool_calls?.length) for (let e = t.tool_calls.length - 1; e >= 0; e--) {
1403
+ let n = t.tool_calls[e];
1404
+ if (n?.type === "function") return n.function;
1405
+ }
1403
1406
  }
1404
1407
  }, vn = function() {
1405
1408
  for (let e = this.messages.length - 1; e >= 0; e--) {
@@ -2080,6 +2083,12 @@ var Gn = class extends N {
2080
2083
  __security: { adminAPIKeyAuth: !0 }
2081
2084
  });
2082
2085
  }
2086
+ retrieve(e, t) {
2087
+ return this._client.get(P`/organization/spend_alerts/${e}`, {
2088
+ ...t,
2089
+ __security: { adminAPIKeyAuth: !0 }
2090
+ });
2091
+ }
2083
2092
  update(e, t, n) {
2084
2093
  return this._client.post(P`/organization/spend_alerts/${e}`, {
2085
2094
  body: t,
@@ -2469,6 +2478,13 @@ var nr = class extends N {
2469
2478
  __security: { adminAPIKeyAuth: !0 }
2470
2479
  });
2471
2480
  }
2481
+ retrieve(e, t, n) {
2482
+ let { project_id: r } = t;
2483
+ return this._client.get(P`/organization/projects/${r}/spend_alerts/${e}`, {
2484
+ ...n,
2485
+ __security: { adminAPIKeyAuth: !0 }
2486
+ });
2487
+ }
2472
2488
  update(e, t, n) {
2473
2489
  let { project_id: r, ...i } = t;
2474
2490
  return this._client.post(P`/organization/projects/${r}/spend_alerts/${e}`, {
@@ -70,7 +70,7 @@ var r = class {
70
70
  try {
71
71
  let t = await import(
72
72
  /* webpackIgnore: true */
73
- "./openai-B5jEiqiB.js"
73
+ "./openai-CmVRIbUg.js"
74
74
  );
75
75
  e = t.default || t.OpenAI || t;
76
76
  } catch {