drizzle-cube 0.6.0 → 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 (1099) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/{adapters/express → express}/index.d.ts +3 -3
  3. package/dist/adapters/express/index.js +2 -2
  4. package/dist/adapters/fastify/index.cjs +1 -1
  5. package/dist/adapters/{adapters/fastify → fastify}/index.d.ts +3 -3
  6. package/dist/adapters/fastify/index.js +2 -2
  7. package/dist/adapters/{handler-CfgE0JSL.js → handler-CtaSua-i.js} +1 -1
  8. package/dist/adapters/{handler-Cn0dOctE.cjs → handler-OwxSBJH8.cjs} +1 -1
  9. package/dist/adapters/{adapters/hono → hono}/agent-handler.d.ts +3 -3
  10. package/dist/adapters/hono/index.cjs +1 -1
  11. package/dist/adapters/{adapters/hono → hono}/index.d.ts +4 -4
  12. package/dist/adapters/hono/index.js +2 -2
  13. package/dist/adapters/{adapters/hono → hono}/mcp-handler.d.ts +2 -2
  14. package/dist/adapters/{adapters/locale.d.ts → locale.d.ts} +1 -1
  15. package/dist/adapters/{adapters/mcp-tools-handlers.d.ts → mcp-tools-handlers.d.ts} +2 -2
  16. package/dist/adapters/mcp-tools.cjs +1 -1
  17. package/dist/adapters/{adapters/mcp-tools.d.ts → mcp-tools.d.ts} +5 -5
  18. package/dist/adapters/mcp-tools.js +1 -1
  19. package/dist/adapters/mcp-transport-B7ddET3M.cjs +40 -0
  20. package/dist/adapters/mcp-transport-Dfuj4j4q.js +591 -0
  21. package/dist/adapters/{adapters/mcp-transport.d.ts → mcp-transport.d.ts} +3 -3
  22. package/dist/adapters/nextjs/index.cjs +1 -1
  23. package/dist/adapters/{adapters/nextjs → nextjs}/index.d.ts +3 -3
  24. package/dist/adapters/nextjs/index.js +2 -2
  25. package/dist/adapters/{adapters/nextjs → nextjs}/mcp-handler.d.ts +2 -2
  26. package/dist/adapters/{openai-B5jEiqiB.js → openai-CmVRIbUg.js} +18 -2
  27. package/dist/adapters/{openai-cDlFSTk6.js → openai-CtXqeznO.js} +1 -1
  28. package/dist/{server/openai-D0musiYP.cjs → adapters/openai-D-6l1Y8h.cjs} +3 -3
  29. package/dist/adapters/{openai-vXvLni8v.cjs → openai-DTSTMiXL.cjs} +1 -1
  30. package/dist/adapters/{adapters/types.d.ts → types.d.ts} +1 -1
  31. package/dist/adapters/{adapters/utils.d.ts → utils.d.ts} +16 -16
  32. package/dist/cjs/adapters/express/index.d.ts +114 -0
  33. package/dist/cjs/adapters/fastify/index.d.ts +113 -0
  34. package/dist/cjs/adapters/hono/agent-handler.d.ts +9 -0
  35. package/dist/cjs/adapters/hono/index.d.ts +120 -0
  36. package/dist/cjs/adapters/hono/mcp-handler.d.ts +37 -0
  37. package/dist/cjs/adapters/locale.d.ts +8 -0
  38. package/dist/cjs/adapters/mcp-tools-handlers.d.ts +18 -0
  39. package/dist/cjs/adapters/mcp-tools.d.ts +134 -0
  40. package/dist/cjs/adapters/mcp-transport.d.ts +158 -0
  41. package/dist/cjs/adapters/nextjs/index.d.ts +196 -0
  42. package/dist/cjs/adapters/nextjs/mcp-handler.d.ts +36 -0
  43. package/dist/cjs/adapters/types.d.ts +41 -0
  44. package/dist/cjs/adapters/utils.d.ts +354 -0
  45. package/dist/cjs/client/adapters/adapterRegistry.d.ts +44 -0
  46. package/dist/cjs/client/adapters/flowModeAdapter.d.ts +3 -0
  47. package/dist/cjs/client/adapters/funnelModeAdapter.d.ts +19 -0
  48. package/dist/cjs/client/adapters/index.d.ts +29 -0
  49. package/dist/cjs/client/adapters/modeAdapter.d.ts +117 -0
  50. package/dist/cjs/client/adapters/queryModeAdapter.d.ts +16 -0
  51. package/dist/cjs/client/adapters/retentionModeAdapter.d.ts +3 -0
  52. package/dist/cjs/client/charts/ChartLoader.d.ts +69 -0
  53. package/dist/cjs/client/charts/chartComponentRegistry.d.ts +46 -0
  54. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +38 -0
  55. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +15 -0
  56. package/dist/cjs/client/charts/chartConfigs.d.ts +142 -0
  57. package/dist/cjs/client/charts/chartPlugin.d.ts +74 -0
  58. package/dist/cjs/client/charts/lazyChartConfigRegistry.d.ts +100 -0
  59. package/dist/cjs/client/charts.d.ts +17 -0
  60. package/dist/cjs/client/client/BatchCoordinator.d.ts +38 -0
  61. package/dist/cjs/client/client/CubeClient.d.ts +32 -0
  62. package/dist/cjs/client/components/AIAssistant/constants.d.ts +11 -0
  63. package/dist/cjs/client/components/AIAssistant/index.d.ts +10 -0
  64. package/dist/cjs/client/components/AIAssistant/types.d.ts +49 -0
  65. package/dist/cjs/client/components/AIAssistant/utils.d.ts +17 -0
  66. package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +27 -0
  67. package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +14 -0
  68. package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +9 -0
  69. package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +6 -0
  70. package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +12 -0
  71. package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +15 -0
  72. package/dist/cjs/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  73. package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  74. package/dist/cjs/client/components/AgenticNotebook/index.d.ts +56 -0
  75. package/dist/cjs/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  76. package/dist/cjs/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  77. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +25 -0
  78. package/dist/cjs/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +29 -0
  79. package/dist/cjs/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +18 -0
  80. package/dist/cjs/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +11 -0
  81. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +20 -0
  82. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +14 -0
  83. package/dist/cjs/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +16 -0
  84. package/dist/cjs/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +27 -0
  85. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +12 -0
  86. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  87. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  88. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +14 -0
  89. package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +17 -0
  90. package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  91. package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +12 -0
  92. package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  93. package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +9 -0
  94. package/dist/cjs/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  95. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +49 -0
  96. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  97. package/dist/cjs/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +16 -0
  98. package/dist/cjs/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +4 -0
  99. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchItem.d.ts +6 -0
  100. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchModal.d.ts +2 -0
  101. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  102. package/dist/cjs/client/components/AnalysisBuilder/FilterConfigModal.d.ts +17 -0
  103. package/dist/cjs/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  104. package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +28 -0
  105. package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  106. package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +57 -0
  107. package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  108. package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +21 -0
  109. package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +24 -0
  110. package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +48 -0
  111. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +25 -0
  112. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +26 -0
  113. package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  114. package/dist/cjs/client/components/AnalysisBuilder/LimitSection.d.ts +14 -0
  115. package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +11 -0
  116. package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  117. package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +9 -0
  118. package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +36 -0
  119. package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +71 -0
  120. package/dist/cjs/client/components/AnalysisBuilder/SectionHeading.d.ts +12 -0
  121. package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  122. package/dist/cjs/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  123. package/dist/cjs/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  124. package/dist/cjs/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  125. package/dist/cjs/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  126. package/dist/cjs/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  127. package/dist/cjs/client/components/AnalysisBuilder/index.d.ts +9 -0
  128. package/dist/cjs/client/components/AnalysisBuilder/types.d.ts +851 -0
  129. package/dist/cjs/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  130. package/dist/cjs/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  131. package/dist/cjs/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +69 -0
  132. package/dist/cjs/client/components/AnalysisBuilder/utils/filterUtils.d.ts +19 -0
  133. package/dist/cjs/client/components/AnalysisBuilder/utils/idUtils.d.ts +11 -0
  134. package/dist/cjs/client/components/AnalysisBuilder/utils/index.d.ts +11 -0
  135. package/dist/cjs/client/components/AnalysisBuilder/utils/queryUtils.d.ts +11 -0
  136. package/dist/cjs/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +14 -0
  137. package/dist/cjs/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  138. package/dist/cjs/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  139. package/dist/cjs/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  140. package/dist/cjs/client/components/AnalysisBuilder/utils/storageUtils.d.ts +44 -0
  141. package/dist/cjs/client/components/AnalysisBuilderLazy.d.ts +4 -0
  142. package/dist/cjs/client/components/AnalyticsDashboard.d.ts +2 -0
  143. package/dist/cjs/client/components/AnalyticsPage.d.ts +1 -0
  144. package/dist/cjs/client/components/AnalyticsPortlet.d.ts +10 -0
  145. package/dist/cjs/client/components/ChartErrorBoundary.d.ts +21 -0
  146. package/dist/cjs/client/components/ChartTypeSelector.d.ts +15 -0
  147. package/dist/cjs/client/components/ColorPaletteSelector.d.ts +11 -0
  148. package/dist/cjs/client/components/ConfirmModal.d.ts +30 -0
  149. package/dist/cjs/client/components/DashboardEditModal.d.ts +15 -0
  150. package/dist/cjs/client/components/DashboardFilterPanel.d.ts +15 -0
  151. package/dist/cjs/client/components/DashboardFilters/CompactFilterBar.d.ts +13 -0
  152. package/dist/cjs/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  153. package/dist/cjs/client/components/DashboardFilters/CustomDateDropdown.d.ts +10 -0
  154. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +20 -0
  155. package/dist/cjs/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  156. package/dist/cjs/client/components/DashboardFilters/DashboardFilterItem.d.ts +14 -0
  157. package/dist/cjs/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  158. package/dist/cjs/client/components/DashboardFilters/DatePresetChips.d.ts +8 -0
  159. package/dist/cjs/client/components/DashboardFilters/EditModeFilterList.d.ts +13 -0
  160. package/dist/cjs/client/components/DashboardFilters/FilterChip.d.ts +12 -0
  161. package/dist/cjs/client/components/DashboardFilters/FilterEditModal.d.ts +15 -0
  162. package/dist/cjs/client/components/DashboardFilters/FilterValuePopover.d.ts +11 -0
  163. package/dist/cjs/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +13 -0
  164. package/dist/cjs/client/components/DashboardFilters/XTDDropdown.d.ts +10 -0
  165. package/dist/cjs/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  166. package/dist/cjs/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  167. package/dist/cjs/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  168. package/dist/cjs/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  169. package/dist/cjs/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  170. package/dist/cjs/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  171. package/dist/cjs/client/components/DashboardGrid.d.ts +22 -0
  172. package/dist/cjs/client/components/DashboardPortletCard.d.ts +4 -0
  173. package/dist/cjs/client/components/DashboardThumbnailPlaceholder.d.ts +13 -0
  174. package/dist/cjs/client/components/DataBrowser/DataBrowserSidebar.d.ts +16 -0
  175. package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +16 -0
  176. package/dist/cjs/client/components/DataBrowser/DataBrowserToolbar.d.ts +22 -0
  177. package/dist/cjs/client/components/DataBrowser/index.d.ts +28 -0
  178. package/dist/cjs/client/components/DataHistogram.d.ts +27 -0
  179. package/dist/cjs/client/components/DebugModal.d.ts +17 -0
  180. package/dist/cjs/client/components/DrillBreadcrumb.d.ts +7 -0
  181. package/dist/cjs/client/components/DrillMenu.d.ts +8 -0
  182. package/dist/cjs/client/components/FloatingEditToolbar.d.ts +30 -0
  183. package/dist/cjs/client/components/LoadingIndicator.d.ts +16 -0
  184. package/dist/cjs/client/components/MobileStackedLayout.d.ts +14 -0
  185. package/dist/cjs/client/components/Modal.d.ts +16 -0
  186. package/dist/cjs/client/components/PortletAnalysisModal.d.ts +27 -0
  187. package/dist/cjs/client/components/PortletContainer.d.ts +10 -0
  188. package/dist/cjs/client/components/PortletFilterConfigModal.d.ts +13 -0
  189. package/dist/cjs/client/components/RowManagedLayout.d.ts +19 -0
  190. package/dist/cjs/client/components/ScaledGridWrapper.d.ts +12 -0
  191. package/dist/cjs/client/components/SchemaVisualization/CubeNode.d.ts +25 -0
  192. package/dist/cjs/client/components/SchemaVisualization/FieldDetailPanel.d.ts +15 -0
  193. package/dist/cjs/client/components/SchemaVisualization/RelationshipEdge.d.ts +13 -0
  194. package/dist/cjs/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +3 -0
  195. package/dist/cjs/client/components/SchemaVisualization/index.d.ts +10 -0
  196. package/dist/cjs/client/components/SchemaVisualization/useERDLayout.d.ts +39 -0
  197. package/dist/cjs/client/components/SchemaVisualization/xyflowContext.d.ts +11 -0
  198. package/dist/cjs/client/components/TextPortletModal.d.ts +12 -0
  199. package/dist/cjs/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  200. package/dist/cjs/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  201. package/dist/cjs/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  202. package/dist/cjs/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  203. package/dist/cjs/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  204. package/dist/cjs/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  205. package/dist/cjs/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  206. package/dist/cjs/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  207. package/dist/cjs/client/components/charts/ActivityGridChart.config.d.ts +5 -0
  208. package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +4 -0
  209. package/dist/cjs/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  210. package/dist/cjs/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  211. package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +19 -0
  212. package/dist/cjs/client/components/charts/AreaChart.config.d.ts +5 -0
  213. package/dist/cjs/client/components/charts/AreaChart.d.ts +4 -0
  214. package/dist/cjs/client/components/charts/AxisFormatControls.d.ts +37 -0
  215. package/dist/cjs/client/components/charts/BarChart.config.d.ts +5 -0
  216. package/dist/cjs/client/components/charts/BarChart.d.ts +4 -0
  217. package/dist/cjs/client/components/charts/BarChart.helpers.d.ts +23 -0
  218. package/dist/cjs/client/components/charts/BarSeries.d.ts +29 -0
  219. package/dist/cjs/client/components/charts/BoxPlotChart.config.d.ts +5 -0
  220. package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +4 -0
  221. package/dist/cjs/client/components/charts/BubbleChart.config.d.ts +5 -0
  222. package/dist/cjs/client/components/charts/BubbleChart.d.ts +4 -0
  223. package/dist/cjs/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  224. package/dist/cjs/client/components/charts/BubbleChart.render.d.ts +21 -0
  225. package/dist/cjs/client/components/charts/CandlestickChart.config.d.ts +5 -0
  226. package/dist/cjs/client/components/charts/CandlestickChart.d.ts +4 -0
  227. package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -0
  228. package/dist/cjs/client/components/charts/ChartLegend.d.ts +7 -0
  229. package/dist/cjs/client/components/charts/ChartStates.d.ts +38 -0
  230. package/dist/cjs/client/components/charts/ChartTooltip.d.ts +7 -0
  231. package/dist/cjs/client/components/charts/DataTable.config.d.ts +5 -0
  232. package/dist/cjs/client/components/charts/DataTable.d.ts +4 -0
  233. package/dist/cjs/client/components/charts/FunnelChart.config.d.ts +9 -0
  234. package/dist/cjs/client/components/charts/FunnelChart.d.ts +11 -0
  235. package/dist/cjs/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  236. package/dist/cjs/client/components/charts/FunnelViews.d.ts +16 -0
  237. package/dist/cjs/client/components/charts/GaugeChart.config.d.ts +5 -0
  238. package/dist/cjs/client/components/charts/GaugeChart.d.ts +4 -0
  239. package/dist/cjs/client/components/charts/HeatMapCanvas.d.ts +25 -0
  240. package/dist/cjs/client/components/charts/HeatMapChart.config.d.ts +8 -0
  241. package/dist/cjs/client/components/charts/HeatMapChart.d.ts +10 -0
  242. package/dist/cjs/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  243. package/dist/cjs/client/components/charts/KpiDelta.config.d.ts +5 -0
  244. package/dist/cjs/client/components/charts/KpiDelta.d.ts +4 -0
  245. package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  246. package/dist/cjs/client/components/charts/KpiNumber.config.d.ts +5 -0
  247. package/dist/cjs/client/components/charts/KpiNumber.d.ts +4 -0
  248. package/dist/cjs/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  249. package/dist/cjs/client/components/charts/KpiStates.d.ts +19 -0
  250. package/dist/cjs/client/components/charts/KpiText.config.d.ts +5 -0
  251. package/dist/cjs/client/components/charts/KpiText.d.ts +4 -0
  252. package/dist/cjs/client/components/charts/LineChart.config.d.ts +5 -0
  253. package/dist/cjs/client/components/charts/LineChart.d.ts +4 -0
  254. package/dist/cjs/client/components/charts/MarkdownChart.config.d.ts +5 -0
  255. package/dist/cjs/client/components/charts/MarkdownChart.d.ts +4 -0
  256. package/dist/cjs/client/components/charts/MeasureProfileChart.config.d.ts +5 -0
  257. package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +4 -0
  258. package/dist/cjs/client/components/charts/MissingDependencyFallback.d.ts +12 -0
  259. package/dist/cjs/client/components/charts/PieChart.config.d.ts +5 -0
  260. package/dist/cjs/client/components/charts/PieChart.d.ts +4 -0
  261. package/dist/cjs/client/components/charts/RadarChart.config.d.ts +5 -0
  262. package/dist/cjs/client/components/charts/RadarChart.d.ts +4 -0
  263. package/dist/cjs/client/components/charts/RadialBarChart.config.d.ts +5 -0
  264. package/dist/cjs/client/components/charts/RadialBarChart.d.ts +4 -0
  265. package/dist/cjs/client/components/charts/RetentionCombinedChart.config.d.ts +2 -0
  266. package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +14 -0
  267. package/dist/cjs/client/components/charts/RetentionHeatmap.config.d.ts +2 -0
  268. package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +7 -0
  269. package/dist/cjs/client/components/charts/SankeyChart.config.d.ts +9 -0
  270. package/dist/cjs/client/components/charts/SankeyChart.d.ts +10 -0
  271. package/dist/cjs/client/components/charts/ScatterChart.config.d.ts +5 -0
  272. package/dist/cjs/client/components/charts/ScatterChart.d.ts +4 -0
  273. package/dist/cjs/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  274. package/dist/cjs/client/components/charts/ScatterSeries.d.ts +17 -0
  275. package/dist/cjs/client/components/charts/ScatterTooltip.d.ts +21 -0
  276. package/dist/cjs/client/components/charts/SunburstChart.config.d.ts +9 -0
  277. package/dist/cjs/client/components/charts/SunburstChart.d.ts +10 -0
  278. package/dist/cjs/client/components/charts/TreeMapChart.config.d.ts +5 -0
  279. package/dist/cjs/client/components/charts/TreeMapChart.d.ts +4 -0
  280. package/dist/cjs/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  281. package/dist/cjs/client/components/charts/TreeMapContent.d.ts +24 -0
  282. package/dist/cjs/client/components/charts/TreeMapLegend.d.ts +13 -0
  283. package/dist/cjs/client/components/charts/WaterfallChart.config.d.ts +5 -0
  284. package/dist/cjs/client/components/charts/WaterfallChart.d.ts +4 -0
  285. package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  286. package/dist/cjs/client/components/charts/chartAxisResolution.d.ts +32 -0
  287. package/dist/cjs/client/components/charts/chartScaffolding.d.ts +77 -0
  288. package/dist/cjs/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  289. package/dist/cjs/client/components/charts/index.d.ts +25 -0
  290. package/dist/cjs/client/components/charts/kpiTextHelpers.d.ts +46 -0
  291. package/dist/cjs/client/components/charts/radarChartHelpers.d.ts +14 -0
  292. package/dist/cjs/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  293. package/dist/cjs/client/components/charts/useChartDimensions.d.ts +20 -0
  294. package/dist/cjs/client/components/charts/useKpiDimensions.d.ts +30 -0
  295. package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +113 -0
  296. package/dist/cjs/client/components/dashboard/DashboardCoordinator.d.ts +2 -0
  297. package/dist/cjs/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  298. package/dist/cjs/client/components/dashboard/DashboardFilterBar.d.ts +8 -0
  299. package/dist/cjs/client/components/dashboard/DashboardGridSurface.d.ts +8 -0
  300. package/dist/cjs/client/components/dashboard/DashboardModals.d.ts +8 -0
  301. package/dist/cjs/client/components/dashboard/DashboardProvider.d.ts +2 -0
  302. package/dist/cjs/client/components/dashboard/DashboardToolbar.d.ts +11 -0
  303. package/dist/cjs/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  304. package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +17 -0
  305. package/dist/cjs/client/components/dashboard/index.d.ts +13 -0
  306. package/dist/cjs/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  307. package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  308. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  309. package/dist/cjs/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  310. package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  311. package/dist/cjs/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  312. package/dist/cjs/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  313. package/dist/cjs/client/components/shared/DateRangeFilter.d.ts +4 -0
  314. package/dist/cjs/client/components/shared/DateRangeSelector.d.ts +13 -0
  315. package/dist/cjs/client/components/shared/FilterBuilder.d.ts +4 -0
  316. package/dist/cjs/client/components/shared/FilterGroup.d.ts +4 -0
  317. package/dist/cjs/client/components/shared/FilterItem.d.ts +4 -0
  318. package/dist/cjs/client/components/shared/FilterValueSelector.d.ts +4 -0
  319. package/dist/cjs/client/components/shared/dateRangeUtils.d.ts +40 -0
  320. package/dist/cjs/client/components/shared/filterDisplayUtils.d.ts +10 -0
  321. package/dist/cjs/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  322. package/dist/cjs/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  323. package/dist/cjs/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  324. package/dist/cjs/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  325. package/dist/cjs/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  326. package/dist/cjs/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  327. package/dist/cjs/client/components/shared/queryFieldUtils.d.ts +21 -0
  328. package/dist/cjs/client/components/shared/types.d.ts +60 -0
  329. package/dist/cjs/client/components/shared/utils.d.ts +71 -0
  330. package/dist/cjs/client/components.d.ts +17 -0
  331. package/dist/cjs/client/hooks/agentChatStream.d.ts +39 -0
  332. package/dist/cjs/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  333. package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +7 -0
  334. package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +53 -0
  335. package/dist/cjs/client/hooks/dashboard/useGridLayoutEngine.d.ts +10 -0
  336. package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +18 -0
  337. package/dist/cjs/client/hooks/drillNavigation.d.ts +25 -0
  338. package/dist/cjs/client/hooks/queries/index.d.ts +20 -0
  339. package/dist/cjs/client/hooks/queries/useCubeLoadQuery.d.ts +85 -0
  340. package/dist/cjs/client/hooks/queries/useCubeMetaQuery.d.ts +51 -0
  341. package/dist/cjs/client/hooks/queries/useDryRunQuery.d.ts +153 -0
  342. package/dist/cjs/client/hooks/queries/useExplainAI.d.ts +62 -0
  343. package/dist/cjs/client/hooks/queries/useExplainQuery.d.ts +62 -0
  344. package/dist/cjs/client/hooks/queries/useFlowQuery.d.ts +72 -0
  345. package/dist/cjs/client/hooks/queries/useFunnelQuery.d.ts +20 -0
  346. package/dist/cjs/client/hooks/queries/useMultiCubeLoadQuery.d.ts +70 -0
  347. package/dist/cjs/client/hooks/queries/useRetentionQuery.d.ts +67 -0
  348. package/dist/cjs/client/hooks/useAgentChat.d.ts +60 -0
  349. package/dist/cjs/client/hooks/useAnalysisAI.d.ts +56 -0
  350. package/dist/cjs/client/hooks/useAnalysisBuilderHook.d.ts +245 -0
  351. package/dist/cjs/client/hooks/useAnalysisChartDefaults.d.ts +35 -0
  352. package/dist/cjs/client/hooks/useAnalysisCombinedFields.d.ts +18 -0
  353. package/dist/cjs/client/hooks/useAnalysisInitialization.d.ts +25 -0
  354. package/dist/cjs/client/hooks/useAnalysisQueryBuilder.d.ts +32 -0
  355. package/dist/cjs/client/hooks/useAnalysisQueryExecution.d.ts +144 -0
  356. package/dist/cjs/client/hooks/useAnalysisShare.d.ts +18 -0
  357. package/dist/cjs/client/hooks/useAnalysisUIState.d.ts +24 -0
  358. package/dist/cjs/client/hooks/useCubeFieldLabel.d.ts +16 -0
  359. package/dist/cjs/client/hooks/useDashboardHook.d.ts +123 -0
  360. package/dist/cjs/client/hooks/useDataBrowser.d.ts +67 -0
  361. package/dist/cjs/client/hooks/useDebounce.d.ts +12 -0
  362. package/dist/cjs/client/hooks/useDebounceQuery.d.ts +48 -0
  363. package/dist/cjs/client/hooks/useDirtyStateTracking.d.ts +37 -0
  364. package/dist/cjs/client/hooks/useDragAutoScroll.d.ts +18 -0
  365. package/dist/cjs/client/hooks/useDrillInteraction.d.ts +9 -0
  366. package/dist/cjs/client/hooks/useElementVisibility.d.ts +30 -0
  367. package/dist/cjs/client/hooks/useFilterValues.d.ts +19 -0
  368. package/dist/cjs/client/hooks/useNotebookLayout.d.ts +8 -0
  369. package/dist/cjs/client/hooks/useResponsiveDashboard.d.ts +16 -0
  370. package/dist/cjs/client/hooks/useScrollDetection.d.ts +29 -0
  371. package/dist/cjs/client/hooks/useTheme.d.ts +11 -0
  372. package/dist/cjs/client/hooks/useTranslation.d.ts +21 -0
  373. package/dist/cjs/client/hooks.d.ts +17 -0
  374. package/dist/cjs/client/icons/customIcons.d.ts +22 -0
  375. package/dist/cjs/client/icons/defaultIcons.d.ts +5 -0
  376. package/dist/cjs/client/icons/index.d.ts +22 -0
  377. package/dist/cjs/client/icons/registry.d.ts +64 -0
  378. package/dist/cjs/client/icons/types.d.ts +129 -0
  379. package/dist/cjs/client/icons.d.ts +2 -0
  380. package/dist/cjs/client/index.d.ts +76 -0
  381. package/dist/cjs/client/providers/CubeApiProvider.d.ts +24 -0
  382. package/dist/cjs/client/providers/CubeFeaturesProvider.d.ts +19 -0
  383. package/dist/cjs/client/providers/CubeMetaContext.d.ts +11 -0
  384. package/dist/cjs/client/providers/CubeMetaProvider.d.ts +6 -0
  385. package/dist/cjs/client/providers/CubeProvider.d.ts +70 -0
  386. package/dist/cjs/client/providers/I18nProvider.d.ts +18 -0
  387. package/dist/cjs/client/providers/ScrollContainerContext.d.ts +19 -0
  388. package/dist/cjs/client/providers.d.ts +10 -0
  389. package/dist/cjs/client/schema.d.ts +13 -0
  390. package/dist/cjs/client/shared/chartConfigBuilders.d.ts +18 -0
  391. package/dist/cjs/client/shared/chartDefaults.d.ts +59 -0
  392. package/dist/cjs/client/shared/components/CodeBlock.d.ts +13 -0
  393. package/dist/cjs/client/shared/components/QueryAnalysisPanel.d.ts +7 -0
  394. package/dist/cjs/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  395. package/dist/cjs/client/shared/index.d.ts +11 -0
  396. package/dist/cjs/client/shared/queryKey.d.ts +1 -0
  397. package/dist/cjs/client/shared/queryTransforms.d.ts +20 -0
  398. package/dist/cjs/client/shared/types.d.ts +184 -0
  399. package/dist/cjs/client/shared/utils.d.ts +104 -0
  400. package/dist/cjs/client/stores/analysisBuilderStore.d.ts +578 -0
  401. package/dist/cjs/client/stores/dashboardStore.d.ts +292 -0
  402. package/dist/cjs/client/stores/dataBrowserStore.d.ts +34 -0
  403. package/dist/cjs/client/stores/index.d.ts +13 -0
  404. package/dist/cjs/client/stores/notebookStore.d.ts +157 -0
  405. package/dist/cjs/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  406. package/dist/cjs/client/stores/slices/coreSlice.d.ts +96 -0
  407. package/dist/cjs/client/stores/slices/flowSlice.d.ts +69 -0
  408. package/dist/cjs/client/stores/slices/funnelSlice.d.ts +61 -0
  409. package/dist/cjs/client/stores/slices/index.d.ts +13 -0
  410. package/dist/cjs/client/stores/slices/querySlice.d.ts +55 -0
  411. package/dist/cjs/client/stores/slices/retentionSlice.d.ts +66 -0
  412. package/dist/cjs/client/stores/slices/uiSlice.d.ts +52 -0
  413. package/dist/cjs/client/theme/index.d.ts +135 -0
  414. package/dist/cjs/client/types/analysisConfig.d.ts +185 -0
  415. package/dist/cjs/client/types/drill.d.ts +240 -0
  416. package/dist/cjs/client/types/flow.d.ts +191 -0
  417. package/dist/cjs/client/types/funnel.d.ts +288 -0
  418. package/dist/cjs/client/types/retention.d.ts +301 -0
  419. package/dist/cjs/client/types.d.ts +600 -0
  420. package/dist/cjs/client/utils/axisValueFormatting.d.ts +32 -0
  421. package/dist/cjs/client/utils/chartConstants.d.ts +16 -0
  422. package/dist/cjs/client/utils/chartUtils.d.ts +35 -0
  423. package/dist/cjs/client/utils/colorPalettes.d.ts +35 -0
  424. package/dist/cjs/client/utils/comparisonUtils.d.ts +96 -0
  425. package/dist/cjs/client/utils/configMigration.d.ts +85 -0
  426. package/dist/cjs/client/utils/drillQueryBuilder.d.ts +41 -0
  427. package/dist/cjs/client/utils/exportXlsx.d.ts +20 -0
  428. package/dist/cjs/client/utils/filterUtils.d.ts +113 -0
  429. package/dist/cjs/client/utils/funnelExecution.d.ts +211 -0
  430. package/dist/cjs/client/utils/funnelValidation.d.ts +46 -0
  431. package/dist/cjs/client/utils/index.d.ts +94 -0
  432. package/dist/cjs/client/utils/joinReachability.d.ts +27 -0
  433. package/dist/cjs/client/utils/measureIcons.d.ts +11 -0
  434. package/dist/cjs/client/utils/multiQueryUtils.d.ts +86 -0
  435. package/dist/cjs/client/utils/multiQueryValidation.d.ts +69 -0
  436. package/dist/cjs/client/utils/periodUtils.d.ts +40 -0
  437. package/dist/cjs/client/utils/pivotUtils.d.ts +87 -0
  438. package/dist/cjs/client/utils/shareUtils.d.ts +61 -0
  439. package/dist/cjs/client/utils/syntaxHighlighting.d.ts +36 -0
  440. package/dist/cjs/client/utils/targetUtils.d.ts +36 -0
  441. package/dist/cjs/client/utils/thumbnail.d.ts +36 -0
  442. package/dist/cjs/client/utils/timeValueFormatting.d.ts +32 -0
  443. package/dist/cjs/client/utils.d.ts +8 -0
  444. package/dist/cjs/package.json +3 -0
  445. package/dist/{server → cjs}/server/adapters/base-adapter.d.ts +1 -1
  446. package/dist/{server → cjs}/server/adapters/databend-adapter.d.ts +2 -2
  447. package/dist/{server → cjs}/server/adapters/duckdb-adapter.d.ts +2 -2
  448. package/dist/{server → cjs}/server/adapters/mysql-adapter.d.ts +2 -2
  449. package/dist/{server → cjs}/server/adapters/postgres-adapter.d.ts +2 -2
  450. package/dist/{server → cjs}/server/adapters/singlestore-adapter.d.ts +1 -1
  451. package/dist/{server → cjs}/server/adapters/snowflake-adapter.d.ts +2 -2
  452. package/dist/{server → cjs}/server/adapters/sqlite-adapter.d.ts +2 -2
  453. package/dist/{server → cjs}/server/adapters/window-function-builder.d.ts +1 -1
  454. package/dist/{server → cjs}/server/agent/handler-steps.d.ts +3 -3
  455. package/dist/{server → cjs}/server/agent/handler.d.ts +3 -3
  456. package/dist/cjs/server/agent/index.d.ts +11 -0
  457. package/dist/{server → cjs}/server/agent/providers/anthropic.d.ts +1 -1
  458. package/dist/{server → cjs}/server/agent/providers/factory.d.ts +1 -1
  459. package/dist/{server → cjs}/server/agent/providers/google.d.ts +1 -1
  460. package/dist/cjs/server/agent/providers/index.d.ts +6 -0
  461. package/dist/{server → cjs}/server/agent/providers/openai.d.ts +1 -1
  462. package/dist/{server → cjs}/server/agent/system-prompt.d.ts +1 -1
  463. package/dist/{server → cjs}/server/agent/tools.d.ts +4 -4
  464. package/dist/{server → cjs}/server/agent/types.d.ts +1 -1
  465. package/dist/{server → cjs}/server/ai/discovery-helpers.d.ts +1 -1
  466. package/dist/{server → cjs}/server/ai/discovery.d.ts +2 -2
  467. package/dist/{server → cjs}/server/ai/index.d.ts +6 -6
  468. package/dist/{server → cjs}/server/ai/suggestion-helpers.d.ts +1 -1
  469. package/dist/{server → cjs}/server/ai/suggestion.d.ts +2 -2
  470. package/dist/{server → cjs}/server/ai/validation-helpers.d.ts +4 -4
  471. package/dist/{server → cjs}/server/ai/validation.d.ts +2 -2
  472. package/dist/{server → cjs}/server/builders/analysis-utils.d.ts +1 -1
  473. package/dist/{server → cjs}/server/builders/comparison-query-builder.d.ts +2 -2
  474. package/dist/{server → cjs}/server/builders/cte-builder.d.ts +2 -2
  475. package/dist/{server → cjs}/server/builders/date-time-builder.d.ts +2 -2
  476. package/dist/{server → cjs}/server/builders/date-time-helpers.d.ts +1 -1
  477. package/dist/{server → cjs}/server/builders/filter-builder.d.ts +3 -3
  478. package/dist/{server → cjs}/server/builders/filter-operators.d.ts +3 -3
  479. package/dist/{server → cjs}/server/builders/flow-query-builder.d.ts +4 -4
  480. package/dist/{server → cjs}/server/builders/funnel-query-builder.d.ts +3 -3
  481. package/dist/{server → cjs}/server/builders/group-by-builder.d.ts +2 -2
  482. package/dist/cjs/server/builders/index.d.ts +13 -0
  483. package/dist/{server → cjs}/server/builders/measure-builder.d.ts +3 -3
  484. package/dist/{server → cjs}/server/builders/retention-query-builder.d.ts +3 -3
  485. package/dist/cjs/server/cache-providers/index.d.ts +5 -0
  486. package/dist/{server → cjs}/server/cache-providers/memory.d.ts +1 -1
  487. package/dist/{server → cjs}/server/cache-utils.d.ts +1 -1
  488. package/dist/{server → cjs}/server/compiler-metadata.d.ts +1 -1
  489. package/dist/{server → cjs}/server/compiler.d.ts +3 -3
  490. package/dist/{server → cjs}/server/cube-utils.d.ts +1 -1
  491. package/dist/{server → cjs}/server/database-utils.d.ts +1 -1
  492. package/dist/{server → cjs}/server/execution/annotation-builder.d.ts +1 -1
  493. package/dist/{server → cjs}/server/execution/filter-cache-preloader.d.ts +3 -3
  494. package/dist/{server → cjs}/server/execution/mode-router.d.ts +5 -5
  495. package/dist/{server → cjs}/server/execution/query-result-cache.d.ts +1 -1
  496. package/dist/{server → cjs}/server/execution/result-post-processor.d.ts +2 -2
  497. package/dist/{server → cjs}/server/executor.d.ts +3 -3
  498. package/dist/{server → cjs}/server/executors/base-executor.d.ts +2 -2
  499. package/dist/{server → cjs}/server/executors/databend-executor.d.ts +2 -2
  500. package/dist/{server → cjs}/server/executors/duckdb-executor.d.ts +2 -2
  501. package/dist/{server → cjs}/server/executors/index.d.ts +9 -9
  502. package/dist/{server → cjs}/server/executors/mysql-executor.d.ts +2 -2
  503. package/dist/{server → cjs}/server/executors/postgres-executor.d.ts +2 -2
  504. package/dist/{server → cjs}/server/executors/singlestore-executor.d.ts +2 -2
  505. package/dist/{server → cjs}/server/executors/snowflake-executor.d.ts +2 -2
  506. package/dist/{server → cjs}/server/executors/sqlite-executor.d.ts +2 -2
  507. package/dist/{server → cjs}/server/explain/databend-parser.d.ts +1 -1
  508. package/dist/{server → cjs}/server/explain/duckdb-parser.d.ts +1 -1
  509. package/dist/{server → cjs}/server/explain/explain-tree.d.ts +1 -1
  510. package/dist/cjs/server/explain/index.d.ts +9 -0
  511. package/dist/{server → cjs}/server/explain/mysql-parser.d.ts +1 -1
  512. package/dist/{server → cjs}/server/explain/postgres-parser.d.ts +1 -1
  513. package/dist/{server → cjs}/server/explain/snowflake-parser.d.ts +1 -1
  514. package/dist/{server → cjs}/server/explain/sqlite-parser.d.ts +1 -1
  515. package/dist/{server → cjs}/server/filter-cache.d.ts +1 -1
  516. package/dist/{server → cjs}/server/gap-filler.d.ts +2 -2
  517. package/dist/{server → cjs}/server/index.d.ts +25 -25
  518. package/dist/{server → cjs}/server/logical-plan/cte-planner-helpers.d.ts +1 -1
  519. package/dist/{server → cjs}/server/logical-plan/cte-planner.d.ts +4 -4
  520. package/dist/{server → cjs}/server/logical-plan/filter-propagation.d.ts +1 -1
  521. package/dist/{server → cjs}/server/logical-plan/index.d.ts +11 -11
  522. package/dist/{server → cjs}/server/logical-plan/join-planner.d.ts +3 -3
  523. package/dist/{server → cjs}/server/logical-plan/logical-plan-builder.d.ts +5 -5
  524. package/dist/{server → cjs}/server/logical-plan/logical-planner.d.ts +2 -2
  525. package/dist/{server → cjs}/server/logical-plan/optimiser.d.ts +1 -1
  526. package/dist/{server → cjs}/server/logical-plan/plan-analysis-reporter.d.ts +2 -2
  527. package/dist/{server → cjs}/server/logical-plan/planner-utils.d.ts +2 -2
  528. package/dist/{server → cjs}/server/logical-plan/types.d.ts +3 -3
  529. package/dist/{server → cjs}/server/measure-classification.d.ts +1 -1
  530. package/dist/{server → cjs}/server/physical-plan/drizzle-plan-builder.d.ts +5 -5
  531. package/dist/{server → cjs}/server/physical-plan/drizzle-sql-builder.d.ts +3 -3
  532. package/dist/cjs/server/physical-plan/index.d.ts +2 -0
  533. package/dist/{server → cjs}/server/physical-plan/processors/cte-processor.d.ts +2 -2
  534. package/dist/cjs/server/physical-plan/processors/index.d.ts +8 -0
  535. package/dist/{server → cjs}/server/physical-plan/processors/joins-processor.d.ts +2 -2
  536. package/dist/{server → cjs}/server/physical-plan/processors/keys-dedup-processor.d.ts +2 -2
  537. package/dist/{server → cjs}/server/physical-plan/processors/multi-fact-processor.d.ts +2 -2
  538. package/dist/{server → cjs}/server/physical-plan/processors/predicates-processor.d.ts +2 -2
  539. package/dist/{server → cjs}/server/physical-plan/processors/selection-processor.d.ts +2 -2
  540. package/dist/{server → cjs}/server/physical-plan/processors/shared.d.ts +4 -4
  541. package/dist/{server → cjs}/server/physical-plan/processors/window-processor.d.ts +2 -2
  542. package/dist/{server → cjs}/server/query-handlers.d.ts +3 -3
  543. package/dist/{server → cjs}/server/query-modes.d.ts +1 -1
  544. package/dist/{server → cjs}/server/query-validator.d.ts +1 -1
  545. package/dist/{server → cjs}/server/resolvers/calculated-measure-resolver.d.ts +1 -1
  546. package/dist/{server → cjs}/server/resolvers/index.d.ts +2 -2
  547. package/dist/{server → cjs}/server/resolvers/join-path-resolver.d.ts +1 -1
  548. package/dist/{server → cjs}/server/template-substitution.d.ts +1 -1
  549. package/dist/{server → cjs}/server/types/cache.d.ts +1 -1
  550. package/dist/{server → cjs}/server/types/cube.d.ts +4 -4
  551. package/dist/{server → cjs}/server/types/executor.d.ts +2 -2
  552. package/dist/{server → cjs}/server/types/flow.d.ts +2 -2
  553. package/dist/{server → cjs}/server/types/funnel.d.ts +1 -1
  554. package/dist/cjs/server/types/index.d.ts +11 -0
  555. package/dist/{server → cjs}/server/types/metadata.d.ts +1 -1
  556. package/dist/{server → cjs}/server/types/query.d.ts +4 -4
  557. package/dist/{server → cjs}/server/types/retention.d.ts +1 -1
  558. package/dist/{server → cjs}/server/types/utils.d.ts +1 -1
  559. package/dist/cli/index.cjs +2 -2
  560. package/dist/client/adapters/adapterRegistry.d.ts +2 -2
  561. package/dist/client/adapters/flowModeAdapter.d.ts +2 -2
  562. package/dist/client/adapters/funnelModeAdapter.d.ts +2 -2
  563. package/dist/client/adapters/index.d.ts +9 -9
  564. package/dist/client/adapters/modeAdapter.d.ts +1 -1
  565. package/dist/client/adapters/queryModeAdapter.d.ts +3 -3
  566. package/dist/client/adapters/retentionModeAdapter.d.ts +2 -2
  567. package/dist/client/charts/ChartLoader.d.ts +2 -2
  568. package/dist/client/charts/chartComponentRegistry.d.ts +1 -1
  569. package/dist/client/charts/chartConfigHelpers.d.ts +1 -1
  570. package/dist/client/charts/chartConfigRegistry.d.ts +1 -1
  571. package/dist/client/charts/chartPlugin.d.ts +3 -3
  572. package/dist/client/charts/lazyChartConfigRegistry.d.ts +2 -2
  573. package/dist/client/charts.d.ts +8 -8
  574. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -1
  575. package/dist/client/chunks/RetentionCombinedChart-BgbDhsPz.js.map +1 -1
  576. package/dist/client/chunks/RetentionHeatmap-DjXZaTPq.js.map +1 -1
  577. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -1
  578. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -1
  579. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -1
  580. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -1
  581. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -1
  582. package/dist/client/chunks/chart-box-plot-kkBixZ27.js.map +1 -1
  583. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -1
  584. package/dist/client/chunks/chart-candlestick-DZp19Tzh.js.map +1 -1
  585. package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.js.map +1 -1
  586. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -1
  587. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -1
  588. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -1
  589. package/dist/client/chunks/chart-config-bubble-gIoqVyjZ.js.map +1 -1
  590. package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +1 -1
  591. package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +1 -1
  592. package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +1 -1
  593. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -1
  594. package/dist/client/chunks/chart-config-heat-map-CfRnRNcw.js.map +1 -1
  595. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -1
  596. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -1
  597. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -1
  598. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -1
  599. package/dist/client/chunks/chart-config-markdown-BtRIe8JN.js.map +1 -1
  600. package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +1 -1
  601. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -1
  602. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -1
  603. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -1
  604. package/dist/client/chunks/chart-config-sankey-BTnWA7EW.js.map +1 -1
  605. package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +1 -1
  606. package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +1 -1
  607. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -1
  608. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -1
  609. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -1
  610. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -1
  611. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -1
  612. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -1
  613. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -1
  614. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -1
  615. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -1
  616. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -1
  617. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +1 -1
  618. package/dist/client/chunks/chart-measure-profile-Ket8fJyf.js.map +1 -1
  619. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -1
  620. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -1
  621. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -1
  622. package/dist/client/chunks/chart-sankey-DjrvKw6K.js.map +1 -1
  623. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -1
  624. package/dist/client/chunks/chart-sunburst-leGpuDj7.js.map +1 -1
  625. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -1
  626. package/dist/client/chunks/chart-waterfall-DyvQReN5.js.map +1 -1
  627. package/dist/client/chunks/charts-core-DaXSt1Dd.js.map +1 -1
  628. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -1
  629. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  630. package/dist/client/chunks/schema-visualization-Cb_E9_Gd.js.map +1 -1
  631. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -1
  632. package/dist/client/chunks/useExplainAI-evnZkjCY.js.map +1 -1
  633. package/dist/client/chunks/utils-3P6z1vz5.js.map +1 -1
  634. package/dist/client/client/BatchCoordinator.d.ts +1 -1
  635. package/dist/client/client/CubeClient.d.ts +1 -1
  636. package/dist/client/components/AIAssistant/index.d.ts +3 -3
  637. package/dist/client/components/AIAssistant/utils.d.ts +1 -1
  638. package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
  639. package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +1 -1
  640. package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
  641. package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +2 -2
  642. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +1 -1
  643. package/dist/client/components/AgenticNotebook/index.d.ts +2 -2
  644. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +1 -1
  645. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +1 -1
  646. package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
  647. package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +4 -4
  648. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
  649. package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +2 -2
  650. package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +2 -2
  651. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +2 -2
  652. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
  653. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
  654. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +3 -3
  655. package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
  656. package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
  657. package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
  658. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +2 -2
  659. package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
  660. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +2 -2
  661. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
  662. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +1 -1
  663. package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +1 -1
  664. package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
  665. package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
  666. package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
  667. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +2 -2
  668. package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -2
  669. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +2 -2
  670. package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
  671. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
  672. package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +3 -3
  673. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
  674. package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
  675. package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
  676. package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +2 -2
  677. package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
  678. package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
  679. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
  680. package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
  681. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +2 -2
  682. package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
  683. package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
  684. package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +3 -3
  685. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +2 -2
  686. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +2 -2
  687. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +1 -1
  688. package/dist/client/components/AnalysisBuilder/index.d.ts +1 -1
  689. package/dist/client/components/AnalysisBuilder/types.d.ts +28 -28
  690. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +1 -1
  691. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +2 -2
  692. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +2 -2
  693. package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +1 -1
  694. package/dist/client/components/AnalysisBuilder/utils/index.d.ts +6 -6
  695. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +2 -2
  696. package/dist/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +2 -2
  697. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +16 -16
  698. package/dist/client/components/AnalysisBuilder/utils/storageUtils.d.ts +2 -2
  699. package/dist/client/components/AnalysisBuilderLazy.d.ts +1 -1
  700. package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
  701. package/dist/client/components/AnalyticsPortlet.d.ts +1 -1
  702. package/dist/client/components/ChartTypeSelector.d.ts +2 -2
  703. package/dist/client/components/DashboardFilterPanel.d.ts +1 -1
  704. package/dist/client/components/DashboardFilters/CompactFilterBar.d.ts +1 -1
  705. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +1 -1
  706. package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +2 -2
  707. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +2 -2
  708. package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +2 -2
  709. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +2 -2
  710. package/dist/client/components/DashboardFilters/EditModeFilterList.d.ts +1 -1
  711. package/dist/client/components/DashboardFilters/FilterChip.d.ts +1 -1
  712. package/dist/client/components/DashboardFilters/FilterEditModal.d.ts +2 -2
  713. package/dist/client/components/DashboardFilters/FilterValuePopover.d.ts +1 -1
  714. package/dist/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +2 -2
  715. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +2 -2
  716. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +1 -1
  717. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +6 -6
  718. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +2 -2
  719. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +1 -1
  720. package/dist/client/components/DashboardGrid.d.ts +2 -2
  721. package/dist/client/components/DashboardPortletCard.d.ts +1 -1
  722. package/dist/client/components/DebugModal.d.ts +2 -2
  723. package/dist/client/components/DrillBreadcrumb.d.ts +1 -1
  724. package/dist/client/components/DrillMenu.d.ts +1 -1
  725. package/dist/client/components/FloatingEditToolbar.d.ts +1 -1
  726. package/dist/client/components/MobileStackedLayout.d.ts +2 -2
  727. package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
  728. package/dist/client/components/PortletContainer.d.ts +1 -1
  729. package/dist/client/components/PortletFilterConfigModal.d.ts +1 -1
  730. package/dist/client/components/RowManagedLayout.d.ts +1 -1
  731. package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
  732. package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
  733. package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
  734. package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
  735. package/dist/client/components/TextPortletModal.d.ts +2 -2
  736. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +4 -4
  737. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +5 -5
  738. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +2 -2
  739. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +3 -3
  740. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +3 -3
  741. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +4 -4
  742. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +2 -2
  743. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +4 -4
  744. package/dist/client/components/charts/ActivityGridChart.config.d.ts +1 -1
  745. package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
  746. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +1 -1
  747. package/dist/client/components/charts/ActivityGridChart.render.d.ts +3 -3
  748. package/dist/client/components/charts/AreaChart.config.d.ts +1 -1
  749. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  750. package/dist/client/components/charts/AxisFormatControls.d.ts +1 -1
  751. package/dist/client/components/charts/BarChart.config.d.ts +1 -1
  752. package/dist/client/components/charts/BarChart.d.ts +1 -1
  753. package/dist/client/components/charts/BarChart.helpers.d.ts +1 -1
  754. package/dist/client/components/charts/BarSeries.d.ts +2 -2
  755. package/dist/client/components/charts/BoxPlotChart.config.d.ts +1 -1
  756. package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
  757. package/dist/client/components/charts/BubbleChart.config.d.ts +1 -1
  758. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  759. package/dist/client/components/charts/BubbleChart.helpers.d.ts +1 -1
  760. package/dist/client/components/charts/BubbleChart.render.d.ts +2 -2
  761. package/dist/client/components/charts/CandlestickChart.config.d.ts +1 -1
  762. package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
  763. package/dist/client/components/charts/DataTable.config.d.ts +1 -1
  764. package/dist/client/components/charts/DataTable.d.ts +1 -1
  765. package/dist/client/components/charts/FunnelChart.config.d.ts +1 -1
  766. package/dist/client/components/charts/FunnelChart.d.ts +1 -1
  767. package/dist/client/components/charts/FunnelChart.helpers.d.ts +2 -2
  768. package/dist/client/components/charts/FunnelViews.d.ts +2 -2
  769. package/dist/client/components/charts/GaugeChart.config.d.ts +1 -1
  770. package/dist/client/components/charts/GaugeChart.d.ts +1 -1
  771. package/dist/client/components/charts/HeatMapCanvas.d.ts +1 -1
  772. package/dist/client/components/charts/HeatMapChart.config.d.ts +1 -1
  773. package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
  774. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +1 -1
  775. package/dist/client/components/charts/KpiDelta.config.d.ts +1 -1
  776. package/dist/client/components/charts/KpiDelta.d.ts +1 -1
  777. package/dist/client/components/charts/KpiDelta.helpers.d.ts +1 -1
  778. package/dist/client/components/charts/KpiNumber.config.d.ts +1 -1
  779. package/dist/client/components/charts/KpiNumber.d.ts +1 -1
  780. package/dist/client/components/charts/KpiNumber.helpers.d.ts +1 -1
  781. package/dist/client/components/charts/KpiText.config.d.ts +1 -1
  782. package/dist/client/components/charts/KpiText.d.ts +1 -1
  783. package/dist/client/components/charts/LineChart.config.d.ts +1 -1
  784. package/dist/client/components/charts/LineChart.d.ts +1 -1
  785. package/dist/client/components/charts/MarkdownChart.config.d.ts +1 -1
  786. package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
  787. package/dist/client/components/charts/MeasureProfileChart.config.d.ts +1 -1
  788. package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
  789. package/dist/client/components/charts/PieChart.config.d.ts +1 -1
  790. package/dist/client/components/charts/PieChart.d.ts +1 -1
  791. package/dist/client/components/charts/RadarChart.config.d.ts +1 -1
  792. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  793. package/dist/client/components/charts/RadialBarChart.config.d.ts +1 -1
  794. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  795. package/dist/client/components/charts/RetentionCombinedChart.config.d.ts +1 -1
  796. package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
  797. package/dist/client/components/charts/RetentionHeatmap.config.d.ts +1 -1
  798. package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
  799. package/dist/client/components/charts/SankeyChart.config.d.ts +1 -1
  800. package/dist/client/components/charts/SankeyChart.d.ts +1 -1
  801. package/dist/client/components/charts/ScatterChart.config.d.ts +1 -1
  802. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  803. package/dist/client/components/charts/ScatterChart.helpers.d.ts +2 -2
  804. package/dist/client/components/charts/ScatterSeries.d.ts +2 -2
  805. package/dist/client/components/charts/ScatterTooltip.d.ts +2 -2
  806. package/dist/client/components/charts/SunburstChart.config.d.ts +1 -1
  807. package/dist/client/components/charts/SunburstChart.d.ts +1 -1
  808. package/dist/client/components/charts/TreeMapChart.config.d.ts +1 -1
  809. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  810. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +1 -1
  811. package/dist/client/components/charts/TreeMapContent.d.ts +3 -3
  812. package/dist/client/components/charts/TreeMapLegend.d.ts +2 -2
  813. package/dist/client/components/charts/WaterfallChart.config.d.ts +1 -1
  814. package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
  815. package/dist/client/components/charts/cartesianChartHelpers.d.ts +1 -1
  816. package/dist/client/components/charts/chartAxisResolution.d.ts +1 -1
  817. package/dist/client/components/charts/chartScaffolding.d.ts +1 -1
  818. package/dist/client/components/charts/gaugeChartHelpers.d.ts +1 -1
  819. package/dist/client/components/charts/index.d.ts +21 -21
  820. package/dist/client/components/charts/kpiTextHelpers.d.ts +1 -1
  821. package/dist/client/components/charts/radialBarChartHelpers.d.ts +1 -1
  822. package/dist/client/components/dashboard/DashboardContext.d.ts +6 -6
  823. package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
  824. package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
  825. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
  826. package/dist/client/components/dashboard/index.d.ts +7 -7
  827. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +1 -1
  828. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -2
  829. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +1 -1
  830. package/dist/client/components/dashboardPortletCard/filterField.d.ts +1 -1
  831. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +2 -2
  832. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +1 -1
  833. package/dist/client/components/shared/DateRangeFilter.d.ts +1 -1
  834. package/dist/client/components/shared/FilterBuilder.d.ts +1 -1
  835. package/dist/client/components/shared/FilterGroup.d.ts +1 -1
  836. package/dist/client/components/shared/FilterItem.d.ts +1 -1
  837. package/dist/client/components/shared/FilterValueSelector.d.ts +1 -1
  838. package/dist/client/components/shared/dateRangeUtils.d.ts +1 -1
  839. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +1 -1
  840. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +1 -1
  841. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +1 -1
  842. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +1 -1
  843. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +2 -2
  844. package/dist/client/components/shared/queryFieldUtils.d.ts +2 -2
  845. package/dist/client/components/shared/types.d.ts +8 -8
  846. package/dist/client/components/shared/utils.d.ts +7 -7
  847. package/dist/client/components.d.ts +11 -11
  848. package/dist/client/hooks/agentChatStream.d.ts +1 -1
  849. package/dist/client/hooks/dashboard/layoutUtils.d.ts +1 -1
  850. package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
  851. package/dist/client/hooks/dashboard/useGridLayoutEngine.d.ts +1 -1
  852. package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +1 -1
  853. package/dist/client/hooks/drillNavigation.d.ts +2 -2
  854. package/dist/client/hooks/queries/index.d.ts +9 -9
  855. package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +2 -2
  856. package/dist/client/hooks/queries/useCubeMetaQuery.d.ts +2 -2
  857. package/dist/client/hooks/queries/useDryRunQuery.d.ts +2 -2
  858. package/dist/client/hooks/queries/useExplainAI.d.ts +1 -1
  859. package/dist/client/hooks/queries/useExplainQuery.d.ts +1 -1
  860. package/dist/client/hooks/queries/useFlowQuery.d.ts +1 -1
  861. package/dist/client/hooks/queries/useFunnelQuery.d.ts +1 -1
  862. package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +1 -1
  863. package/dist/client/hooks/queries/useRetentionQuery.d.ts +1 -1
  864. package/dist/client/hooks/useAgentChat.d.ts +1 -1
  865. package/dist/client/hooks/useAnalysisAI.d.ts +4 -4
  866. package/dist/client/hooks/useAnalysisBuilderHook.d.ts +27 -27
  867. package/dist/client/hooks/useAnalysisChartDefaults.d.ts +4 -4
  868. package/dist/client/hooks/useAnalysisCombinedFields.d.ts +2 -2
  869. package/dist/client/hooks/useAnalysisInitialization.d.ts +1 -1
  870. package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +3 -3
  871. package/dist/client/hooks/useAnalysisQueryExecution.d.ts +7 -7
  872. package/dist/client/hooks/useAnalysisShare.d.ts +1 -1
  873. package/dist/client/hooks/useAnalysisUIState.d.ts +2 -2
  874. package/dist/client/hooks/useDashboardHook.d.ts +2 -2
  875. package/dist/client/hooks/useDataBrowser.d.ts +5 -5
  876. package/dist/client/hooks/useDrillInteraction.d.ts +1 -1
  877. package/dist/client/hooks/useTheme.d.ts +1 -1
  878. package/dist/client/hooks/useTranslation.d.ts +1 -1
  879. package/dist/client/hooks.d.ts +11 -11
  880. package/dist/client/icons/defaultIcons.d.ts +1 -1
  881. package/dist/client/icons/index.d.ts +3 -3
  882. package/dist/client/icons/registry.d.ts +1 -1
  883. package/dist/client/index.d.ts +74 -74
  884. package/dist/client/index.js.map +1 -1
  885. package/dist/client/providers/CubeApiProvider.d.ts +3 -3
  886. package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
  887. package/dist/client/providers/CubeMetaContext.d.ts +1 -1
  888. package/dist/client/providers/CubeProvider.d.ts +7 -7
  889. package/dist/client/providers/I18nProvider.d.ts +1 -1
  890. package/dist/client/providers.d.ts +4 -4
  891. package/dist/client/schema.d.ts +2 -2
  892. package/dist/client/shared/chartConfigBuilders.d.ts +2 -2
  893. package/dist/client/shared/chartDefaults.d.ts +4 -4
  894. package/dist/client/shared/components/QueryAnalysisPanel.d.ts +1 -1
  895. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +1 -1
  896. package/dist/client/shared/index.d.ts +7 -7
  897. package/dist/client/shared/queryTransforms.d.ts +1 -1
  898. package/dist/client/shared/types.d.ts +1 -1
  899. package/dist/client/shared/utils.d.ts +3 -3
  900. package/dist/client/stores/analysisBuilderStore.d.ts +9 -9
  901. package/dist/client/stores/dashboardStore.d.ts +3 -3
  902. package/dist/client/stores/dataBrowserStore.d.ts +1 -1
  903. package/dist/client/stores/notebookStore.d.ts +1 -1
  904. package/dist/client/stores/optionsToAnalysisConfig.d.ts +4 -4
  905. package/dist/client/stores/slices/coreSlice.d.ts +3 -3
  906. package/dist/client/stores/slices/flowSlice.d.ts +3 -3
  907. package/dist/client/stores/slices/funnelSlice.d.ts +3 -3
  908. package/dist/client/stores/slices/index.d.ts +7 -7
  909. package/dist/client/stores/slices/querySlice.d.ts +3 -3
  910. package/dist/client/stores/slices/retentionSlice.d.ts +3 -3
  911. package/dist/client/stores/slices/uiSlice.d.ts +2 -2
  912. package/dist/client/types/analysisConfig.d.ts +4 -4
  913. package/dist/client/types/drill.d.ts +5 -5
  914. package/dist/client/types/flow.d.ts +2 -2
  915. package/dist/client/types/funnel.d.ts +1 -1
  916. package/dist/client/types/retention.d.ts +2 -2
  917. package/dist/client/types.d.ts +12 -12
  918. package/dist/client/utils/axisValueFormatting.d.ts +1 -1
  919. package/dist/client/utils/chartUtils.d.ts +1 -1
  920. package/dist/client/utils/configMigration.d.ts +2 -2
  921. package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
  922. package/dist/client/utils/exportXlsx.d.ts +2 -2
  923. package/dist/client/utils/filterUtils.d.ts +1 -1
  924. package/dist/client/utils/funnelExecution.d.ts +2 -2
  925. package/dist/client/utils/funnelValidation.d.ts +2 -2
  926. package/dist/client/utils/index.d.ts +10 -10
  927. package/dist/client/utils/joinReachability.d.ts +1 -1
  928. package/dist/client/utils/multiQueryUtils.d.ts +1 -1
  929. package/dist/client/utils/multiQueryValidation.d.ts +1 -1
  930. package/dist/client/utils/pivotUtils.d.ts +1 -1
  931. package/dist/client/utils/shareUtils.d.ts +1 -1
  932. package/dist/client/utils/thumbnail.d.ts +1 -1
  933. package/dist/client/utils.d.ts +2 -2
  934. package/dist/mcp-app/mcp-app.html +33 -33
  935. package/dist/server/adapters/base-adapter.d.ts +332 -0
  936. package/dist/server/adapters/databend-adapter.d.ts +63 -0
  937. package/dist/server/adapters/duckdb-adapter.d.ts +68 -0
  938. package/dist/server/adapters/mysql-adapter.d.ts +65 -0
  939. package/dist/server/adapters/postgres-adapter.d.ts +55 -0
  940. package/dist/server/adapters/singlestore-adapter.d.ts +4 -0
  941. package/dist/server/adapters/snowflake-adapter.d.ts +53 -0
  942. package/dist/server/adapters/sqlite-adapter.d.ts +120 -0
  943. package/dist/server/adapters/window-function-builder.d.ts +11 -0
  944. package/dist/server/agent/chart-validation.d.ts +22 -0
  945. package/dist/server/agent/handler-steps.d.ts +37 -0
  946. package/dist/server/agent/handler.d.ts +25 -0
  947. package/dist/server/agent/index.d.ts +11 -0
  948. package/dist/server/agent/providers/anthropic.d.ts +24 -0
  949. package/dist/server/agent/providers/factory.d.ts +12 -0
  950. package/dist/server/agent/providers/google.d.ts +23 -0
  951. package/dist/server/agent/providers/index.d.ts +6 -0
  952. package/dist/server/agent/providers/openai.d.ts +26 -0
  953. package/dist/server/agent/providers/types.d.ts +95 -0
  954. package/dist/server/agent/system-prompt.d.ts +5 -0
  955. package/dist/server/agent/tools.d.ts +28 -0
  956. package/dist/server/agent/types.d.ts +192 -0
  957. package/dist/server/ai/discovery-helpers.d.ts +29 -0
  958. package/dist/server/ai/discovery.d.ts +66 -0
  959. package/dist/server/ai/index.d.ts +10 -0
  960. package/dist/server/ai/mcp-prompts.d.ts +83 -0
  961. package/dist/server/ai/query-schema.d.ts +258 -0
  962. package/dist/server/ai/schemas.d.ts +63 -0
  963. package/dist/server/ai/suggestion-helpers.d.ts +33 -0
  964. package/dist/server/ai/suggestion.d.ts +16 -0
  965. package/dist/server/ai/validation-helpers.d.ts +21 -0
  966. package/dist/server/ai/validation.d.ts +31 -0
  967. package/dist/server/builders/analysis-utils.d.ts +106 -0
  968. package/dist/server/builders/comparison-query-builder.d.ts +70 -0
  969. package/dist/server/builders/cte-builder.d.ts +108 -0
  970. package/dist/server/builders/date-time-builder.d.ts +34 -0
  971. package/dist/server/builders/date-time-helpers.d.ts +34 -0
  972. package/dist/server/builders/filter-builder.d.ts +25 -0
  973. package/dist/server/builders/filter-operators.d.ts +23 -0
  974. package/dist/server/builders/flow-query-builder.d.ts +136 -0
  975. package/dist/server/builders/funnel-query-builder.d.ts +145 -0
  976. package/dist/server/builders/group-by-builder.d.ts +38 -0
  977. package/dist/server/builders/index.d.ts +13 -0
  978. package/dist/server/builders/measure-builder.d.ts +185 -0
  979. package/dist/server/builders/retention-query-builder.d.ts +98 -0
  980. package/dist/server/cache-providers/index.d.ts +5 -0
  981. package/dist/server/cache-providers/memory.d.ts +105 -0
  982. package/dist/server/cache-utils.d.ts +85 -0
  983. package/dist/server/compiler-metadata.d.ts +11 -0
  984. package/dist/server/compiler.d.ts +212 -0
  985. package/dist/server/cube-utils.d.ts +158 -0
  986. package/dist/server/database-utils.d.ts +18 -0
  987. package/dist/server/execution/annotation-builder.d.ts +12 -0
  988. package/dist/server/execution/filter-cache-preloader.d.ts +19 -0
  989. package/dist/server/execution/mode-router.d.ts +25 -0
  990. package/dist/server/execution/query-result-cache.d.ts +21 -0
  991. package/dist/server/execution/result-post-processor.d.ts +10 -0
  992. package/dist/server/executor.d.ts +186 -0
  993. package/dist/server/executors/base-executor.d.ts +16 -0
  994. package/dist/server/executors/databend-executor.d.ts +33 -0
  995. package/dist/server/executors/duckdb-executor.d.ts +33 -0
  996. package/dist/server/executors/explain-utils.d.ts +28 -0
  997. package/dist/server/executors/index.d.ts +21 -0
  998. package/dist/server/executors/mysql-executor.d.ts +27 -0
  999. package/dist/server/executors/postgres-executor.d.ts +27 -0
  1000. package/dist/server/executors/singlestore-executor.d.ts +9 -0
  1001. package/dist/server/executors/snowflake-executor.d.ts +33 -0
  1002. package/dist/server/executors/sqlite-executor.d.ts +28 -0
  1003. package/dist/server/explain/databend-parser.d.ts +16 -0
  1004. package/dist/server/explain/duckdb-parser.d.ts +28 -0
  1005. package/dist/server/explain/explain-tree.d.ts +20 -0
  1006. package/dist/server/explain/index.d.ts +9 -0
  1007. package/dist/server/explain/mysql-parser.d.ts +38 -0
  1008. package/dist/server/explain/postgres-parser.d.ts +18 -0
  1009. package/dist/server/explain/snowflake-parser.d.ts +17 -0
  1010. package/dist/server/explain/sqlite-parser.d.ts +23 -0
  1011. package/dist/server/filter-cache.d.ts +73 -0
  1012. package/dist/server/gap-filler.d.ts +48 -0
  1013. package/dist/server/index.cjs +1 -1
  1014. package/dist/server/index.d.ts +38 -2
  1015. package/dist/server/index.js +1 -1
  1016. package/dist/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  1017. package/dist/server/logical-plan/cte-planner.d.ts +104 -0
  1018. package/dist/server/logical-plan/filter-propagation.d.ts +44 -0
  1019. package/dist/server/logical-plan/index.d.ts +19 -0
  1020. package/dist/server/logical-plan/join-planner.d.ts +27 -0
  1021. package/dist/server/logical-plan/logical-plan-builder.d.ts +58 -0
  1022. package/dist/server/logical-plan/logical-planner.d.ts +39 -0
  1023. package/dist/server/logical-plan/optimiser.d.ts +34 -0
  1024. package/dist/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  1025. package/dist/server/logical-plan/planner-utils.d.ts +20 -0
  1026. package/dist/server/logical-plan/types.d.ts +199 -0
  1027. package/dist/server/measure-classification.d.ts +40 -0
  1028. package/dist/server/{openai-B5jEiqiB.js → openai-CmVRIbUg.js} +18 -2
  1029. package/dist/server/{openai-cDlFSTk6.js → openai-CtXqeznO.js} +1 -1
  1030. package/dist/{adapters/openai-D0musiYP.cjs → server/openai-D-6l1Y8h.cjs} +3 -3
  1031. package/dist/server/{openai-vXvLni8v.cjs → openai-DTSTMiXL.cjs} +1 -1
  1032. package/dist/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  1033. package/dist/server/physical-plan/drizzle-sql-builder.d.ts +118 -0
  1034. package/dist/server/physical-plan/index.d.ts +2 -0
  1035. package/dist/server/physical-plan/processors/cte-processor.d.ts +6 -0
  1036. package/dist/server/physical-plan/processors/index.d.ts +8 -0
  1037. package/dist/server/physical-plan/processors/joins-processor.d.ts +6 -0
  1038. package/dist/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  1039. package/dist/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  1040. package/dist/server/physical-plan/processors/predicates-processor.d.ts +6 -0
  1041. package/dist/server/physical-plan/processors/selection-processor.d.ts +6 -0
  1042. package/dist/server/physical-plan/processors/shared.d.ts +38 -0
  1043. package/dist/server/physical-plan/processors/window-processor.d.ts +6 -0
  1044. package/dist/server/prompts/explain-analysis-prompt.d.ts +47 -0
  1045. package/dist/server/prompts/index.d.ts +27 -0
  1046. package/dist/server/prompts/single-step-prompt.d.ts +31 -0
  1047. package/dist/server/prompts/step0-validation-prompt.d.ts +39 -0
  1048. package/dist/server/prompts/step1-shape-prompt.d.ts +29 -0
  1049. package/dist/server/prompts/step2-complete-prompt.d.ts +19 -0
  1050. package/dist/server/prompts/types.d.ts +37 -0
  1051. package/dist/server/query-handlers.d.ts +79 -0
  1052. package/dist/server/query-modes.d.ts +28 -0
  1053. package/dist/server/query-validator.d.ts +9 -0
  1054. package/dist/server/resolvers/calculated-measure-resolver.d.ts +98 -0
  1055. package/dist/server/resolvers/index.d.ts +6 -0
  1056. package/dist/server/resolvers/join-path-resolver.d.ts +158 -0
  1057. package/dist/server/sql-format.d.ts +11 -0
  1058. package/dist/server/template-substitution.d.ts +57 -0
  1059. package/dist/server/types/analysis.d.ts +189 -0
  1060. package/dist/server/types/cache.d.ts +132 -0
  1061. package/dist/server/types/core.d.ts +164 -0
  1062. package/dist/server/types/cube.d.ts +544 -0
  1063. package/dist/server/types/executor.d.ts +156 -0
  1064. package/dist/server/types/flow.d.ts +144 -0
  1065. package/dist/server/types/funnel.d.ts +118 -0
  1066. package/dist/server/types/index.d.ts +11 -0
  1067. package/dist/server/types/metadata.d.ts +113 -0
  1068. package/dist/server/types/query.d.ts +153 -0
  1069. package/dist/server/types/retention.d.ts +141 -0
  1070. package/dist/server/types/utils.d.ts +11 -0
  1071. package/dist/server/types/validation.d.ts +14 -0
  1072. package/package.json +83 -29
  1073. package/dist/adapters/mcp-transport-Chiaj4ll.cjs +0 -40
  1074. package/dist/adapters/mcp-transport-H96VG3WY.js +0 -591
  1075. package/dist/server/server/agent/index.d.ts +0 -11
  1076. package/dist/server/server/agent/providers/index.d.ts +0 -6
  1077. package/dist/server/server/builders/index.d.ts +0 -13
  1078. package/dist/server/server/cache-providers/index.d.ts +0 -5
  1079. package/dist/server/server/explain/index.d.ts +0 -9
  1080. package/dist/server/server/physical-plan/index.d.ts +0 -2
  1081. package/dist/server/server/physical-plan/processors/index.d.ts +0 -8
  1082. package/dist/server/server/types/index.d.ts +0 -11
  1083. /package/dist/{server → cjs}/server/agent/chart-validation.d.ts +0 -0
  1084. /package/dist/{server → cjs}/server/agent/providers/types.d.ts +0 -0
  1085. /package/dist/{server → cjs}/server/ai/mcp-prompts.d.ts +0 -0
  1086. /package/dist/{server → cjs}/server/ai/query-schema.d.ts +0 -0
  1087. /package/dist/{server → cjs}/server/ai/schemas.d.ts +0 -0
  1088. /package/dist/{server → cjs}/server/executors/explain-utils.d.ts +0 -0
  1089. /package/dist/{server → cjs}/server/prompts/explain-analysis-prompt.d.ts +0 -0
  1090. /package/dist/{server → cjs}/server/prompts/index.d.ts +0 -0
  1091. /package/dist/{server → cjs}/server/prompts/single-step-prompt.d.ts +0 -0
  1092. /package/dist/{server → cjs}/server/prompts/step0-validation-prompt.d.ts +0 -0
  1093. /package/dist/{server → cjs}/server/prompts/step1-shape-prompt.d.ts +0 -0
  1094. /package/dist/{server → cjs}/server/prompts/step2-complete-prompt.d.ts +0 -0
  1095. /package/dist/{server → cjs}/server/prompts/types.d.ts +0 -0
  1096. /package/dist/{server → cjs}/server/sql-format.d.ts +0 -0
  1097. /package/dist/{server → cjs}/server/types/analysis.d.ts +0 -0
  1098. /package/dist/{server → cjs}/server/types/core.d.ts +0 -0
  1099. /package/dist/{server → cjs}/server/types/validation.d.ts +0 -0
@@ -0,0 +1,73 @@
1
+ import { SQL } from 'drizzle-orm';
2
+ import { Filter, FilterCondition, FilterCache } from './types/index.js';
3
+ /**
4
+ * Generates a deterministic cache key for a filter
5
+ * Keys are based on filter content (member, operator, values) not object identity
6
+ */
7
+ export declare function getFilterKey(filter: Filter): string;
8
+ /**
9
+ * Generates a cache key for time dimension date range filters
10
+ */
11
+ export declare function getTimeDimensionFilterKey(dimension: string, dateRange: string | string[]): string;
12
+ /**
13
+ * Cache statistics for debugging and monitoring
14
+ */
15
+ export interface FilterCacheStats {
16
+ hits: number;
17
+ misses: number;
18
+ cacheSize: number;
19
+ }
20
+ /**
21
+ * Manages filter SQL caching for a single query execution
22
+ *
23
+ * Design principles:
24
+ * - Immutable SQL: Once cached, SQL objects are never modified
25
+ * - Cache lifetime: Created at query start, discarded after query execution
26
+ * - Key by content: Filters with same member/operator/values share SQL
27
+ * - Thread-safe: No shared mutable state between queries
28
+ */
29
+ export declare class FilterCacheManager implements FilterCache {
30
+ private cache;
31
+ private stats;
32
+ /**
33
+ * Get cached SQL or build and cache it
34
+ *
35
+ * @param key - The cache key (use getFilterKey or getTimeDimensionFilterKey)
36
+ * @param builder - Function to build the SQL if not cached
37
+ * @returns The cached or freshly built SQL, or null if builder returns null
38
+ */
39
+ getOrBuild(key: string, builder: () => SQL | null): SQL | null;
40
+ /**
41
+ * Check if a key exists in the cache without affecting stats
42
+ */
43
+ has(key: string): boolean;
44
+ /**
45
+ * Get cached SQL without building (returns undefined if not cached)
46
+ */
47
+ get(key: string): SQL | undefined;
48
+ /**
49
+ * Pre-populate cache with multiple filters
50
+ * Useful for batch initialization at query start
51
+ */
52
+ preload(entries: Array<{
53
+ key: string;
54
+ sql: SQL;
55
+ }>): void;
56
+ /**
57
+ * Store a single entry in the cache
58
+ */
59
+ set(key: string, sql: SQL): void;
60
+ /**
61
+ * Get cache statistics for debugging
62
+ */
63
+ getStats(): FilterCacheStats;
64
+ /**
65
+ * Clear the cache (normally not needed as cache is per-query)
66
+ */
67
+ clear(): void;
68
+ }
69
+ /**
70
+ * Flatten nested AND/OR filters into individual filter conditions
71
+ * Useful for pre-building all filters at query start
72
+ */
73
+ export declare function flattenFilters(filters: Filter[]): FilterCondition[];
@@ -0,0 +1,48 @@
1
+ import { SemanticQuery } from './types/query.js';
2
+ import { TimeGranularity } from './types/core.js';
3
+ /**
4
+ * Maximum number of time buckets gap filling will generate. Beyond this, gap
5
+ * filling is skipped entirely (data is returned unmodified) to avoid both
6
+ * runaway memory use and silent truncation of real rows.
7
+ */
8
+ export declare const MAX_GAP_FILL_BUCKETS = 10000;
9
+ export interface GapFillerConfig {
10
+ /** The time dimension key (e.g., 'Sales.date') */
11
+ timeDimensionKey: string;
12
+ /** Time granularity for bucket generation */
13
+ granularity: TimeGranularity;
14
+ /** Date range [start, end] */
15
+ dateRange: [Date, Date];
16
+ /** Value to fill for missing measures (default: 0) */
17
+ fillValue: number | null;
18
+ /** List of measure keys in the data */
19
+ measures: string[];
20
+ /** List of dimension keys in the data (excluding time dimensions) */
21
+ dimensions: string[];
22
+ }
23
+ /**
24
+ * Generate all time buckets for a given date range and granularity
25
+ */
26
+ export declare function generateTimeBuckets(startDate: Date, endDate: Date, granularity: TimeGranularity): Date[];
27
+ /**
28
+ * Fill time series gaps in query result data
29
+ *
30
+ * @param data - Original query result data
31
+ * @param config - Gap filling configuration
32
+ * @returns Data with gaps filled
33
+ */
34
+ export declare function fillTimeSeriesGaps(data: Record<string, unknown>[], config: GapFillerConfig): Record<string, unknown>[];
35
+ /**
36
+ * Parse date range from query time dimension
37
+ * Handles both array format ['2024-01-01', '2024-01-31'] and string format
38
+ */
39
+ export declare function parseDateRange(dateRange: string | string[] | undefined): [Date, Date] | null;
40
+ /**
41
+ * Apply gap filling to query result data based on query configuration
42
+ *
43
+ * @param data - Original query result data
44
+ * @param query - The semantic query
45
+ * @param measures - List of measure names in the result
46
+ * @returns Data with gaps filled (if applicable)
47
+ */
48
+ export declare function applyGapFilling(data: Record<string, unknown>[], query: SemanticQuery, measures: string[]): Record<string, unknown>[];
@@ -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;
@@ -1,2 +1,38 @@
1
- export * from './server/index.js'
2
- export {}
1
+ import { DrizzleDatabase } from './types/index.js';
2
+ import { SemanticLayerCompiler } from './compiler.js';
3
+ /**
4
+ * Drizzle Cube - Semantic Layer for Drizzle ORM
5
+ * Drizzle ORM-first semantic layer with Cube.js compatibility
6
+ */
7
+ export { SemanticLayerCompiler } from './compiler.js';
8
+ export { QueryExecutor } from './executor.js';
9
+ export { detectQueryMode, detectQueryModes, getActiveQueryModes, hasComparisonMode, hasFunnelMode, hasFlowMode, hasRetentionMode } from './query-modes.js';
10
+ export type { QueryMode, QueryModeFlags } from './query-modes.js';
11
+ export { LogicalPlanner } from './logical-plan/index.js';
12
+ export { DrizzleSqlBuilder } from './physical-plan/index.js';
13
+ export { CTEBuilder, ComparisonQueryBuilder, FunnelQueryBuilder, FlowQueryBuilder, RetentionQueryBuilder } from './builders/index.js';
14
+ export { CalculatedMeasureResolver, JoinPathResolver } from './resolvers/index.js';
15
+ export { LogicalPlanBuilder, IdentityOptimiser, OptimiserPipeline } from './logical-plan/index.js';
16
+ export type { LogicalNode, QueryNode, SimpleSource, CTEPreAggregate, CubeRef, MeasureRef, DimensionRef, LogicalPlanWithAnalysis, PlanOptimiser, OptimiserContext } from './logical-plan/index.js';
17
+ export { DrizzlePlanBuilder } from './physical-plan/index.js';
18
+ export { createDatabaseExecutor, createPostgresExecutor, createSQLiteExecutor, createMySQLExecutor, createDuckDBExecutor, createDatabendExecutor, createSnowflakeExecutor, BaseDatabaseExecutor, PostgresExecutor, SQLiteExecutor, MySQLExecutor, DuckDBExecutor, DatabendExecutor, SnowflakeExecutor } from './executors/index.js';
19
+ export { resolveSqlExpression, createMultiCubeContext, resolveCubeReference, getJoinType } from './cube-utils.js';
20
+ export { defineCube } from './cube-utils.js';
21
+ export { generateCacheKey, normalizeQuery, fnv1aHash, strongHash, getCubeInvalidationPattern } from './cache-utils.js';
22
+ export { MemoryCacheProvider } from './cache-providers/index.js';
23
+ export { STEP0_VALIDATION_PROMPT, SYSTEM_PROMPT_TEMPLATE, STEP1_SYSTEM_PROMPT, STEP2_SYSTEM_PROMPT, buildStep0Prompt, buildSystemPrompt, buildStep1Prompt, buildStep2Prompt, EXPLAIN_ANALYSIS_PROMPT, buildExplainAnalysisPrompt, formatCubeSchemaForExplain, formatExistingIndexes } from './prompts/index.js';
24
+ export type { Step0Result, PromptContext, DimensionValues, Step1Result } from './prompts/index.js';
25
+ export { handleAgentChat, getToolDefinitions, createToolExecutor, buildAgentSystemPrompt } from './agent/index.js';
26
+ export type { AgentChatRequest, AgentConfig, AgentObservabilityHooks, AgentSSEEvent, PortletBlockData, MarkdownBlockData, ToolExecutionResult } from './agent/index.js';
27
+ export { discoverCubes, findBestFieldMatch, suggestQuery, validateQuery as aiValidateQuery } from './ai/index.js';
28
+ export type { CubeDiscoveryResult, DiscoveryOptions, QuerySuggestion, ValidationResult as AIValidationResult, ValidationError as AIValidationError, ValidationWarning as AIValidationWarning } from './ai/index.js';
29
+ export type * from './types/index.js';
30
+ export type { SQL } from 'drizzle-orm';
31
+ /**
32
+ * Create a new semantic layer instance with Drizzle integration
33
+ * Use this when you need multiple isolated instances
34
+ */
35
+ export declare function createDrizzleSemanticLayer(options: {
36
+ drizzle: DrizzleDatabase;
37
+ schema?: any;
38
+ }): SemanticLayerCompiler;
@@ -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": {
@@ -0,0 +1,37 @@
1
+ import { Cube, CubeJoin, SemanticQuery } from '../types/index.js';
2
+ /** A resolved CTE join key (column names plus the underlying column objects). */
3
+ export interface CTEJoinKey {
4
+ sourceColumn: string;
5
+ targetColumn: string;
6
+ sourceColumnObj: any;
7
+ targetColumnObj: any;
8
+ }
9
+ /** A join definition located relative to a primary/target cube pair. */
10
+ export interface FoundJoinInfo {
11
+ sourceCube: Cube;
12
+ joinDef: CubeJoin;
13
+ reversed?: boolean;
14
+ }
15
+ /**
16
+ * Derive the CTE join keys for a located join definition, handling
17
+ * belongsToMany junctions and reversed (belongsTo-back-to-primary) joins.
18
+ */
19
+ export declare function deriveCTEJoinKeys(joinInfo: FoundJoinInfo, primaryCube: Cube): CTEJoinKey[];
20
+ /**
21
+ * Derive the join keys connecting a downstream dimension cube through the CTE
22
+ * cube, handling belongsToMany (via junction sourceKey) and regular joins.
23
+ */
24
+ export declare function deriveDownstreamJoinKeys(joinDef: CubeJoin): CTEJoinKey[];
25
+ /**
26
+ * Find join information for a target cube, searching (in priority order):
27
+ * 1. The primary cube's direct join to the target.
28
+ * 2. The target cube's join back to the primary (reverse lookup → reversed).
29
+ * 3. Any other registered cube's join to the target.
30
+ */
31
+ export declare function findJoinInfoForCube(cubes: Map<string, Cube>, primaryCube: Cube, targetCubeName: string): FoundJoinInfo | null;
32
+ /**
33
+ * Collect the names of cubes (other than the CTE cube) that contribute
34
+ * dimensions, time dimensions, or filter members to the query. These are the
35
+ * candidate downstream cubes that may need to join through the CTE.
36
+ */
37
+ export declare function collectDimensionCubeNames(query: SemanticQuery, cteCubeName: string): Set<string>;
@@ -0,0 +1,104 @@
1
+ import { Cube, QueryContext, PhysicalQueryPlan, SemanticQuery } from '../types/index.js';
2
+ import { ResolverCache } from './planner-utils.js';
3
+ import { FilterPropagation } from './filter-propagation.js';
4
+ import { JoinRef } from './types.js';
5
+ export declare class CTEPlanner {
6
+ private readonly resolverCache;
7
+ private readonly filterPropagation;
8
+ constructor(resolverCache: ResolverCache, filterPropagation: FilterPropagation);
9
+ /**
10
+ * Plan pre-aggregation CTEs for hasMany relationships to prevent fan-out
11
+ * Note: belongsToMany relationships handle fan-out differently through their junction table structure
12
+ * and don't require CTEs - the two-hop join with the junction table provides natural grouping
13
+ *
14
+ * CRITICAL FAN-OUT PREVENTION LOGIC:
15
+ * When a query contains ANY hasMany relationship in the join graph, ALL cubes with measures
16
+ * that could be affected by row multiplication need CTEs. This includes:
17
+ *
18
+ * 1. Cubes with direct hasMany FROM primary (existing logic)
19
+ * 2. Cubes with measures that would be multiplied due to hasMany elsewhere in the query
20
+ * - Example: Query has Departments.totalBudget + Productivity.recordCount
21
+ * - Employees hasMany → Productivity causes row multiplication
22
+ * - Departments.totalBudget would be inflated without CTE pre-aggregation
23
+ */
24
+ planPreAggregationCTEs(cubes: Map<string, Cube>, primaryCube: Cube, joinCubes: JoinRef[], query: SemanticQuery, _ctx: QueryContext): PhysicalQueryPlan['preAggregationCTEs'];
25
+ /**
26
+ * Build a single pre-aggregation CTE for one join-cube entry, or return null
27
+ * when the cube contributes no aggregate measures / has no resolvable join.
28
+ */
29
+ private buildCTEForJoinCube;
30
+ /**
31
+ * Resolve the join keys (and any intermediate joins to absorb) for a CTE cube.
32
+ *
33
+ * Analyses the path from primary to the CTE cube: if an intermediate hasMany
34
+ * exists, returns the corrected keys plus intermediate joins; otherwise locates
35
+ * the join definition and derives keys from it.
36
+ */
37
+ private resolveCTEJoinKeys;
38
+ /**
39
+ * Locate the join definition for a CTE cube, preferring the final step of the
40
+ * analysed path and falling back to a primary/reverse/any-cube search.
41
+ */
42
+ private locateJoinInfo;
43
+ /**
44
+ * Analyze the join path from primary cube to a target CTE cube.
45
+ * Detects if there are intermediate hasMany relationships that would cause fan-out.
46
+ *
47
+ * Returns information about:
48
+ * - The full join path
49
+ * - Whether there are hasMany relationships ON the path (not just at the end)
50
+ * - Which intermediate tables need to be absorbed into the CTE
51
+ * - The correct join key to use (from primary cube's connection point)
52
+ *
53
+ * @param cubes Map of all registered cubes
54
+ * @param primaryCube The primary cube (FROM clause)
55
+ * @param targetCubeName The CTE cube we're analyzing the path to
56
+ * @param query The semantic query (drives query-aware path selection)
57
+ */
58
+ private analyzeJoinPathToPrimary;
59
+ /**
60
+ * Compute CTE reasons from the actual join plan entries.
61
+ *
62
+ * Instead of scanning all registered cubes (which causes false positives when
63
+ * unrelated hasMany relationships exist), this walks only the planned joins
64
+ * using the `relationship` field now stored on each JoinCubePlanEntry.
65
+ *
66
+ * Algorithm:
67
+ * 1. Scan join plan entries for hasMany/belongsToMany relationships
68
+ * 2. If none found → return empty map (no CTEs needed)
69
+ * 3. hasMany/belongsToMany targets with measures → 'hasMany'
70
+ * 4. Other join cubes with measures (not hasMany source) → 'fanOutPrevention'
71
+ */
72
+ private computeCTEReasons;
73
+ /**
74
+ * Find downstream cubes that need join keys included in the CTE.
75
+ *
76
+ * When a query has dimensions from a cube (e.g., Teams.name) and measures from
77
+ * a junction cube (e.g., EmployeeTeams.count), the junction CTE needs to include
78
+ * the join key to the dimension cube (team_id) so the dimension cube can be
79
+ * joined through the CTE instead of via an alternative path.
80
+ *
81
+ * @param cteCube The cube being converted to a CTE (e.g., EmployeeTeams)
82
+ * @param query The semantic query with dimensions and measures
83
+ * @param allCubes Map of all registered cubes
84
+ * @returns Array of downstream join key info for cubes needing join through this CTE
85
+ */
86
+ private findDownstreamJoinKeys;
87
+ /**
88
+ * Expand calculated measures to include their dependencies
89
+ */
90
+ private expandCalculatedMeasureDependencies;
91
+ /**
92
+ * Extract measure references from calculatedSql template
93
+ */
94
+ private extractDependenciesFromTemplate;
95
+ /**
96
+ * Extract measures referenced in filters (for CTE inclusion)
97
+ */
98
+ private extractMeasuresFromFilters;
99
+ /**
100
+ * Recursively extract measures from filters for a specific cube
101
+ * Only includes filter members that are actually measures (not dimensions)
102
+ */
103
+ private extractMeasuresFromFilter;
104
+ }
@@ -0,0 +1,44 @@
1
+ import { Cube, SemanticQuery, PropagatingFilter, Filter } from '../types/index.js';
2
+ export declare class FilterPropagation {
3
+ /**
4
+ * Find filters that need to propagate from related cubes to a CTE cube.
5
+ * When cube A has filters and a hasMany relationship to cube B (the CTE cube),
6
+ * A's filters should propagate into B's CTE via a subquery.
7
+ *
8
+ * Example: Employees.createdAt filter should propagate to Productivity CTE
9
+ * via: employee_id IN (SELECT id FROM employees WHERE created_at >= $date)
10
+ */
11
+ findPropagatingFilters(query: SemanticQuery, cteCube: Cube, allCubes: Map<string, Cube>): PropagatingFilter[];
12
+ /**
13
+ * Collect cube names referenced by filters and by time-dimension date ranges.
14
+ */
15
+ private collectFilterCubeNames;
16
+ /**
17
+ * Build a single PropagatingFilter for a filterCube → cteCube hasMany edge,
18
+ * or null when the cube contributes no filters / the join has no keys.
19
+ */
20
+ private buildPropagatingFilter;
21
+ /**
22
+ * Extract cube names from filters into a Set (helper for findPropagatingFilters)
23
+ */
24
+ extractFilterCubeNamesToSet(filters: Filter[], cubesSet: Set<string>): void;
25
+ /**
26
+ * Extract filters for a specific cube from the filter array
27
+ *
28
+ * Logic for preserving filter semantics:
29
+ * - AND: Safe to extract only matching branches (AND of fewer conditions is more permissive)
30
+ * - OR: Must include ALL branches or skip entirely (partial OR changes semantics)
31
+ * If any branch belongs to another cube, skip the entire OR to be safe
32
+ * since we can't evaluate the other cube's conditions
33
+ */
34
+ extractFiltersForCube(filters: Filter[], targetCubeName: string): Filter[];
35
+ /**
36
+ * Check if all simple filters in a filter array belong to the specified cube
37
+ * Recursively checks nested AND/OR filters
38
+ */
39
+ allFiltersFromCube(filters: Filter[], targetCubeName: string): boolean;
40
+ /**
41
+ * Extract time dimension date range filters as regular filters for a specific cube
42
+ */
43
+ extractTimeDimensionFiltersForCube(query: SemanticQuery, targetCubeName: string): Filter[];
44
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Logical Plan module — multi-stage query pipeline.
3
+ *
4
+ * Exports:
5
+ * - Types: LogicalNode tree types
6
+ * - LogicalPlanBuilder: SemanticQuery → LogicalNode tree
7
+ * - Optimisers: PlanOptimiser interface and built-in passes
8
+ */
9
+ export type { LogicalNode, LogicalNodeType, LogicalNodeBase, QueryNode, SimpleSource, FullKeyAggregate, CTEPreAggregate, KeysDeduplication, MultiFactMerge, CubeRef, MeasureRef, DimensionRef, TimeDimensionRef, ColumnRef, OrderByRef, JoinRef, LogicalSchema } from './types.js';
10
+ export { LogicalPlanner } from './logical-planner.js';
11
+ export { LogicalPlanBuilder } from './logical-plan-builder.js';
12
+ export type { LogicalPlanWithAnalysis } from './logical-plan-builder.js';
13
+ export { JoinPlanner } from './join-planner.js';
14
+ export { CTEPlanner } from './cte-planner.js';
15
+ export { FilterPropagation } from './filter-propagation.js';
16
+ export { PlanAnalysisReporter } from './plan-analysis-reporter.js';
17
+ export { ResolverCache, analyzeCubeUsage, extractCubeNamesFromFilter } from './planner-utils.js';
18
+ export type { PlanOptimiser, OptimiserContext, OptimiserEngineType } from './optimiser.js';
19
+ export { IdentityOptimiser, OptimiserPipeline } from './optimiser.js';
@@ -0,0 +1,27 @@
1
+ import { Cube, CubeJoin, SemanticQuery } from '../types/index.js';
2
+ import { ResolverCache } from './planner-utils.js';
3
+ import { JoinRef } from './types.js';
4
+ export declare class JoinPlanner {
5
+ private readonly resolverCache;
6
+ constructor(resolverCache: ResolverCache);
7
+ /**
8
+ * Build join plan for multi-cube query
9
+ * Supports both direct joins and transitive joins through intermediate cubes
10
+ *
11
+ * Uses query-aware path selection to prefer joining through cubes that have
12
+ * measures in the query (e.g., joining Teams through EmployeeTeams when
13
+ * EmployeeTeams.count is a measure)
14
+ */
15
+ buildJoinPlan(cubes: Map<string, Cube>, primaryCube: Cube, cubeNames: string[], _ctx: unknown, query: SemanticQuery): JoinRef[];
16
+ /**
17
+ * Build a single symbolic JoinRef for a join-path step. Handles belongsToMany
18
+ * (junction-table) joins and regular (belongsTo/hasOne/hasMany) joins. The join
19
+ * conditions and security WHERE are materialized later by DrizzlePlanBuilder;
20
+ * only the join type is resolved here (it depends on the effective relationship).
21
+ */
22
+ private buildJoinRef;
23
+ /**
24
+ * Find hasMany join definition from primary cube to target cube
25
+ */
26
+ findHasManyJoinDef(primaryCube: Cube, targetCubeName: string, cubes?: Map<string, Cube>): CubeJoin | null;
27
+ }
@@ -0,0 +1,58 @@
1
+ import { Cube, QueryContext } from '../types/index.js';
2
+ import { QueryAnalysis } from '../types/analysis.js';
3
+ import { SemanticQuery } from '../types/query.js';
4
+ import { LogicalPlanner } from './logical-planner.js';
5
+ import { QueryNode } from './types.js';
6
+ export interface LogicalPlanWithAnalysis {
7
+ plan: QueryNode;
8
+ analysis: QueryAnalysis;
9
+ }
10
+ export declare class LogicalPlanBuilder {
11
+ private readonly queryPlanner;
12
+ constructor(queryPlanner: LogicalPlanner);
13
+ /**
14
+ * Build a logical plan from a semantic query.
15
+ */
16
+ plan(cubes: Map<string, Cube>, query: SemanticQuery, ctx: QueryContext): QueryNode;
17
+ /**
18
+ * Build a logical plan and an explicit decision trace for dry-run/explain.
19
+ * The analysis is produced from the same phase outputs used to build the plan.
20
+ */
21
+ planWithAnalysis(cubes: Map<string, Cube>, query: SemanticQuery, ctx: QueryContext): LogicalPlanWithAnalysis;
22
+ private buildSourceFromPhases;
23
+ private buildSimpleSourceFromPhases;
24
+ /**
25
+ * Detect and build multi-fact merge for star-schema style queries where:
26
+ * - measures come from 2+ cubes
27
+ * - all grouping dimensions/timeDimensions come from one shared dimension cube
28
+ * - each measure cube directly belongsTo/hasOne that shared cube
29
+ */
30
+ private tryBuildMultiFactMergeSource;
31
+ private hasDirectJoinToSharedDimension;
32
+ private buildGroupQueryNode;
33
+ private projectFiltersToAllowedCubes;
34
+ private projectFilterNodeToAllowedCubes;
35
+ private classifyMeasuresForStrategy;
36
+ private selectMeasureStrategy;
37
+ /**
38
+ * Initial execution scope for keys deduplication:
39
+ * - exactly one multiplied cube
40
+ * - all query measures belong to that cube
41
+ * - only additive measure types currently handled by the physical keys path
42
+ * - no measure filters (HAVING) in the query
43
+ */
44
+ private isKeysDeduplicationExecutionSupported;
45
+ private queryHasMeasureFilter;
46
+ private buildKeysDeduplicationSource;
47
+ private isDeduplicationSafeMeasure;
48
+ private getPrimaryKeyColumns;
49
+ private deduplicateColumnRefs;
50
+ private buildQueryNode;
51
+ private buildPreAggregationAnalysis;
52
+ private buildMeasureRefs;
53
+ private buildDimensionRefs;
54
+ private buildTimeDimensionRefs;
55
+ private buildOrderByRefs;
56
+ private toCubeRef;
57
+ private buildCTESchema;
58
+ }
@@ -0,0 +1,39 @@
1
+ import { Cube, QueryContext, PhysicalQueryPlan, SemanticQuery, PrimaryCubeAnalysis, JoinPathAnalysis, QueryWarning } from '../types/index.js';
2
+ import { JoinRef } from './types.js';
3
+ export declare class LogicalPlanner {
4
+ private readonly resolverCache;
5
+ private readonly joinPlanner;
6
+ private readonly ctePlanner;
7
+ private readonly reporter;
8
+ /**
9
+ * Analyze a semantic query to determine which cubes are involved
10
+ */
11
+ analyzeCubeUsage(query: SemanticQuery): Set<string>;
12
+ /**
13
+ * Analyze primary cube selection with candidate details.
14
+ * Exposed for LogicalPlanBuilder so dry-run/analyze can report
15
+ * exactly which selection rule was used.
16
+ */
17
+ analyzePrimaryCube(cubeNames: string[], query: SemanticQuery, cubes: Map<string, Cube>): PrimaryCubeAnalysis;
18
+ /**
19
+ * Analyze join path for a specific target cube.
20
+ * Exposed for LogicalPlanBuilder to provide join decision trace.
21
+ */
22
+ analyzeJoinPathForTarget(cubes: Map<string, Cube>, fromCube: string, toCube: string, query?: SemanticQuery): JoinPathAnalysis;
23
+ /**
24
+ * Build join plan for a known primary cube.
25
+ * Exposed for LogicalPlanBuilder so logical planning can compose
26
+ * planner phases directly.
27
+ */
28
+ buildJoinPlanForPrimary(cubes: Map<string, Cube>, primaryCube: Cube, cubeNames: string[], ctx: QueryContext, query: SemanticQuery): JoinRef[];
29
+ /**
30
+ * Build pre-aggregation CTE plan from a primary cube and join plan.
31
+ * Exposed for LogicalPlanBuilder phase composition.
32
+ */
33
+ buildPreAggregationCTEs(cubes: Map<string, Cube>, primaryCube: Cube, joinCubes: JoinRef[], query: SemanticQuery, ctx: QueryContext): PhysicalQueryPlan['preAggregationCTEs'];
34
+ /**
35
+ * Generate query warnings from pre-aggregation analysis.
36
+ * Exposed for LogicalPlanBuilder phase composition.
37
+ */
38
+ buildWarnings(query: SemanticQuery, preAggregationCTEs?: PhysicalQueryPlan['preAggregationCTEs']): QueryWarning[];
39
+ }