drizzle-cube 0.5.7 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
  3. package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
  4. package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
  5. package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
  6. package/dist/adapters/{utils.d.ts → adapters/utils.d.ts} +6 -81
  7. package/dist/adapters/express/index.cjs +1 -1
  8. package/dist/adapters/express/index.js +50 -50
  9. package/dist/adapters/fastify/index.cjs +1 -1
  10. package/dist/adapters/fastify/index.js +78 -78
  11. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  12. package/dist/{server/google-CFYljAOF.js → adapters/google-CvKM9yVM.js} +83 -71
  13. package/dist/adapters/{handler-Dz1F4iwf.js → handler-CfgE0JSL.js} +515 -578
  14. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  15. package/dist/adapters/hono/index.cjs +2 -2
  16. package/dist/adapters/hono/index.js +208 -178
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/mcp-tools.cjs +1 -1
  20. package/dist/adapters/mcp-tools.js +49 -38
  21. package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
  22. package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
  23. package/dist/adapters/nextjs/index.cjs +1 -1
  24. package/dist/adapters/nextjs/index.js +190 -197
  25. package/dist/{server/openai-y7GhJNdn.js → adapters/openai-B5jEiqiB.js} +776 -719
  26. package/dist/adapters/openai-D0musiYP.cjs +17 -0
  27. package/dist/{server/openai-DiVskd89.js → adapters/openai-cDlFSTk6.js} +61 -59
  28. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  29. package/dist/adapters/{utils-DosuoabY.js → utils-BPWZsX7k.js} +1285 -1220
  30. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  31. package/dist/adapters/utils.cjs +1 -1
  32. package/dist/adapters/utils.js +2 -2
  33. package/dist/client/charts/ChartLoader.d.ts +3 -17
  34. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  35. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  36. package/dist/client/charts.js +14 -13
  37. package/dist/client/chunks/{DashboardEditModal-6KRE36mm.js → DashboardEditModal-okVfH8ZK.js} +5446 -4486
  38. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  39. package/dist/client/chunks/{RetentionCombinedChart-CCpu0C-s.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  40. package/dist/client/chunks/{RetentionCombinedChart-CCpu0C-s.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
  41. package/dist/client/chunks/{RetentionHeatmap-B24PiIfr.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  42. package/dist/client/chunks/{RetentionHeatmap-B24PiIfr.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
  43. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  44. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  45. package/dist/client/chunks/{analysis-builder-shared-x576-O5p.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  46. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  47. package/dist/client/chunks/{chart-activity-grid-CiHrLH6Y.js → chart-activity-grid-DX0SJbxs.js} +642 -494
  48. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  49. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  50. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  51. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  52. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  53. package/dist/client/chunks/{chart-box-plot-Bu9hy-17.js → chart-box-plot-kkBixZ27.js} +2 -2
  54. package/dist/client/chunks/{chart-box-plot-Bu9hy-17.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
  55. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  56. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  57. package/dist/client/chunks/{chart-candlestick-Dau5AF4E.js → chart-candlestick-DZp19Tzh.js} +2 -2
  58. package/dist/client/chunks/{chart-candlestick-Dau5AF4E.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
  59. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  60. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  61. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  62. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  63. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  64. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  65. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  66. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  67. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  68. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  69. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  70. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  71. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  72. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  73. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  74. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  75. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  76. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  77. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  78. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  79. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  80. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  81. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  82. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  83. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  84. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  85. package/dist/client/chunks/{chart-data-table-Cm5jrpaw.js → chart-data-table-CKauQXme.js} +1046 -1121
  86. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  87. package/dist/client/chunks/{chart-funnel-Eke8IPtG.js → chart-funnel-CToKSBaL.js} +184 -222
  88. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  89. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  90. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  91. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  92. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  93. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  94. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  95. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  96. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  97. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  98. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  99. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  100. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  101. package/dist/client/chunks/{chart-markdown-BPW-EAm9.js → chart-markdown-CV75S_zL.js} +1359 -1240
  102. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +1 -0
  103. package/dist/client/chunks/{chart-measure-profile-BI3kADCp.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  104. package/dist/client/chunks/{chart-measure-profile-BI3kADCp.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
  105. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  106. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  107. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  108. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  109. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  110. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  111. package/dist/client/chunks/{chart-sankey-CFzjGvZX.js → chart-sankey-DjrvKw6K.js} +36 -39
  112. package/dist/client/chunks/{chart-sankey-CFzjGvZX.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
  113. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  114. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  115. package/dist/client/chunks/{chart-sunburst-91Q2tzaB.js → chart-sunburst-leGpuDj7.js} +3 -3
  116. package/dist/client/chunks/{chart-sunburst-91Q2tzaB.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
  117. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  118. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  119. package/dist/client/chunks/{chart-waterfall-DcHbbPaG.js → chart-waterfall-DyvQReN5.js} +7 -7
  120. package/dist/client/chunks/{chart-waterfall-DcHbbPaG.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
  121. package/dist/client/chunks/{charts-core-CrBDYN6N.js → charts-core-DaXSt1Dd.js} +2 -2
  122. package/dist/client/chunks/{charts-core-CrBDYN6N.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
  123. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  124. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  125. package/dist/client/chunks/{core-DsAWNRRv.js → core-D7vPfUIe.js} +2 -2
  126. package/dist/client/chunks/{core-DsAWNRRv.js.map → core-D7vPfUIe.js.map} +1 -1
  127. package/dist/client/chunks/{nl-NL-oyr2wENY.js → nl-NL-2zTAWTej.js} +8 -2
  128. package/dist/client/chunks/{nl-NL-oyr2wENY.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  129. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  130. package/dist/client/chunks/{schema-visualization-BszcrmZX.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  131. package/dist/client/chunks/{schema-visualization-BszcrmZX.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
  132. package/dist/client/chunks/{useDirtyStateTracking-B5wCDJSj.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  133. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  134. package/dist/client/chunks/{useExplainAI-CCeCYzDm.js → useExplainAI-evnZkjCY.js} +14 -14
  135. package/dist/client/chunks/{useExplainAI-CCeCYzDm.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
  136. package/dist/client/chunks/{utils-kqa-JIMg.js → utils-3P6z1vz5.js} +3 -3
  137. package/dist/client/chunks/{utils-kqa-JIMg.js.map → utils-3P6z1vz5.js.map} +1 -1
  138. package/dist/client/chunks/{vendor-0hJNlZXQ.js → vendor-DSpR0IW6.js} +43 -43
  139. package/dist/client/chunks/{vendor-0hJNlZXQ.js.map → vendor-DSpR0IW6.js.map} +1 -1
  140. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  141. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  142. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  143. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  144. package/dist/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +1 -1
  145. package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
  146. package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +1 -1
  147. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
  148. package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +1 -1
  149. package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +1 -1
  150. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +1 -1
  151. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
  152. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  153. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  154. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  155. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  156. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  157. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  158. package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +2 -1
  159. package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
  160. package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
  161. package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
  162. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  163. package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -1
  164. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  165. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  166. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  167. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  168. package/dist/client/components/AnalysisBuilder/LimitSection.d.ts +1 -1
  169. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  170. package/dist/client/components/AnalysisBuilder/SectionHeading.d.ts +1 -1
  171. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  172. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  173. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  174. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  175. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  176. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  177. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  178. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  179. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
  180. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  181. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  182. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  183. package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
  184. package/dist/client/components/AnalyticsPage.d.ts +1 -1
  185. package/dist/client/components/ChartErrorBoundary.d.ts +1 -1
  186. package/dist/client/components/ChartTypeSelector.d.ts +1 -1
  187. package/dist/client/components/ColorPaletteSelector.d.ts +1 -1
  188. package/dist/client/components/DashboardEditModal.d.ts +2 -1
  189. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  190. package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +1 -1
  191. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  192. package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +1 -1
  193. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  194. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  195. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  196. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  197. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  198. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  199. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  200. package/dist/client/components/DashboardGrid.d.ts +1 -1
  201. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  202. package/dist/client/components/DashboardThumbnailPlaceholder.d.ts +1 -1
  203. package/dist/client/components/DataBrowser/DataBrowserSidebar.d.ts +1 -1
  204. package/dist/client/components/DataBrowser/DataBrowserToolbar.d.ts +1 -1
  205. package/dist/client/components/DataBrowser/index.d.ts +1 -1
  206. package/dist/client/components/DataHistogram.d.ts +1 -1
  207. package/dist/client/components/DebugModal.d.ts +1 -1
  208. package/dist/client/components/DrillBreadcrumb.d.ts +2 -1
  209. package/dist/client/components/LoadingIndicator.d.ts +1 -1
  210. package/dist/client/components/MobileStackedLayout.d.ts +1 -1
  211. package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
  212. package/dist/client/components/PortletContainer.d.ts +1 -1
  213. package/dist/client/components/PortletFilterConfigModal.d.ts +6 -4
  214. package/dist/client/components/RowManagedLayout.d.ts +1 -1
  215. package/dist/client/components/ScaledGridWrapper.d.ts +1 -1
  216. package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
  217. package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
  218. package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
  219. package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
  220. package/dist/client/components/SchemaVisualization/index.d.ts +1 -1
  221. package/dist/client/components/TextPortletModal.d.ts +1 -1
  222. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  223. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  224. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  225. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  226. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  227. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  228. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  229. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  230. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  231. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  232. package/dist/client/components/charts/AxisFormatControls.d.ts +5 -3
  233. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  234. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  235. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  236. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  237. package/dist/client/components/charts/ChartContainer.d.ts +1 -1
  238. package/dist/client/components/charts/ChartLegend.d.ts +1 -1
  239. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  240. package/dist/client/components/charts/ChartTooltip.d.ts +1 -1
  241. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  242. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  243. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  244. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  245. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  246. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  247. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  248. package/dist/client/components/charts/MissingDependencyFallback.d.ts +1 -1
  249. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  250. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  251. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  252. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  253. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  254. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  255. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  256. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  257. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  258. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  259. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  260. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  261. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  262. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  263. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  264. package/dist/client/components/dashboard/DashboardContext.d.ts +2 -2
  265. package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
  266. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  267. package/dist/client/components/dashboard/DashboardFilterBar.d.ts +1 -1
  268. package/dist/client/components/dashboard/DashboardGridSurface.d.ts +1 -1
  269. package/dist/client/components/dashboard/DashboardModals.d.ts +1 -1
  270. package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
  271. package/dist/client/components/dashboard/DashboardToolbar.d.ts +1 -1
  272. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  273. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
  274. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  275. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  276. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  277. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  278. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  279. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  280. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  281. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  282. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  283. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  284. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  285. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  286. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  287. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  288. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  289. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  290. package/dist/client/components/shared/utils.d.ts +4 -43
  291. package/dist/client/components.js +3 -3
  292. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  293. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  294. package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
  295. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  296. package/dist/client/hooks/useDashboardHook.d.ts +2 -2
  297. package/dist/client/hooks.js +3 -3
  298. package/dist/client/icons.d.ts +1 -1
  299. package/dist/client/icons.js +2 -2
  300. package/dist/client/index.js +816 -669
  301. package/dist/client/index.js.map +1 -1
  302. package/dist/client/providers/CubeApiProvider.d.ts +1 -1
  303. package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
  304. package/dist/client/providers/CubeMetaProvider.d.ts +1 -1
  305. package/dist/client/providers/CubeProvider.d.ts +1 -1
  306. package/dist/client/providers/I18nProvider.d.ts +1 -1
  307. package/dist/client/providers.js +3 -3
  308. package/dist/client/schema.js +1 -1
  309. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  310. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  311. package/dist/client/shared/queryTransforms.d.ts +20 -0
  312. package/dist/client/shared/utils.d.ts +2 -4
  313. package/dist/client/stores/analysisBuilderStore.d.ts +1 -1
  314. package/dist/client/stores/dashboardStore.d.ts +1 -1
  315. package/dist/client/stores/dataBrowserStore.d.ts +1 -1
  316. package/dist/client/stores/notebookStore.d.ts +1 -1
  317. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  318. package/dist/client/styles.css +1 -1
  319. package/dist/client/types/drill.d.ts +1 -1
  320. package/dist/client/types.d.ts +7 -2
  321. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  322. package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
  323. package/dist/client/utils/filterUtils.d.ts +33 -5
  324. package/dist/client/utils/joinReachability.d.ts +27 -0
  325. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  326. package/dist/client/utils.js +6 -6
  327. package/dist/client-bundle-stats.html +1 -1
  328. package/dist/mcp-app/mcp-app.html +55 -55
  329. package/dist/server/google-BOnRIN1w.cjs +2 -0
  330. package/dist/{adapters/google-CFYljAOF.js → server/google-CvKM9yVM.js} +83 -71
  331. package/dist/server/index.cjs +179 -211
  332. package/dist/server/index.d.ts +2 -5050
  333. package/dist/server/index.js +6360 -6462
  334. package/dist/{adapters/openai-y7GhJNdn.js → server/openai-B5jEiqiB.js} +776 -719
  335. package/dist/server/openai-D0musiYP.cjs +17 -0
  336. package/dist/{adapters/openai-DiVskd89.js → server/openai-cDlFSTk6.js} +61 -59
  337. package/dist/server/openai-vXvLni8v.cjs +1 -0
  338. package/dist/server/server/adapters/base-adapter.d.ts +332 -0
  339. package/dist/server/server/adapters/databend-adapter.d.ts +63 -0
  340. package/dist/server/server/adapters/duckdb-adapter.d.ts +68 -0
  341. package/dist/server/server/adapters/mysql-adapter.d.ts +65 -0
  342. package/dist/server/server/adapters/postgres-adapter.d.ts +55 -0
  343. package/dist/server/server/adapters/singlestore-adapter.d.ts +4 -0
  344. package/dist/server/server/adapters/snowflake-adapter.d.ts +53 -0
  345. package/dist/server/server/adapters/sqlite-adapter.d.ts +120 -0
  346. package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
  347. package/dist/server/server/agent/chart-validation.d.ts +22 -0
  348. package/dist/server/server/agent/handler-steps.d.ts +37 -0
  349. package/dist/server/server/agent/handler.d.ts +25 -0
  350. package/dist/server/server/agent/index.d.ts +11 -0
  351. package/dist/server/server/agent/providers/anthropic.d.ts +24 -0
  352. package/dist/server/server/agent/providers/factory.d.ts +12 -0
  353. package/dist/server/server/agent/providers/google.d.ts +23 -0
  354. package/dist/server/server/agent/providers/index.d.ts +6 -0
  355. package/dist/server/server/agent/providers/openai.d.ts +26 -0
  356. package/dist/server/server/agent/providers/types.d.ts +95 -0
  357. package/dist/server/server/agent/system-prompt.d.ts +5 -0
  358. package/dist/server/server/agent/tools.d.ts +28 -0
  359. package/dist/server/server/agent/types.d.ts +192 -0
  360. package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
  361. package/dist/server/server/ai/discovery.d.ts +66 -0
  362. package/dist/server/server/ai/index.d.ts +10 -0
  363. package/dist/server/server/ai/mcp-prompts.d.ts +83 -0
  364. package/dist/server/server/ai/query-schema.d.ts +258 -0
  365. package/dist/server/server/ai/schemas.d.ts +63 -0
  366. package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
  367. package/dist/server/server/ai/suggestion.d.ts +16 -0
  368. package/dist/server/server/ai/validation-helpers.d.ts +21 -0
  369. package/dist/server/server/ai/validation.d.ts +31 -0
  370. package/dist/server/server/builders/analysis-utils.d.ts +106 -0
  371. package/dist/server/server/builders/comparison-query-builder.d.ts +70 -0
  372. package/dist/server/server/builders/cte-builder.d.ts +108 -0
  373. package/dist/server/server/builders/date-time-builder.d.ts +34 -0
  374. package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
  375. package/dist/server/server/builders/filter-builder.d.ts +25 -0
  376. package/dist/server/server/builders/filter-operators.d.ts +23 -0
  377. package/dist/server/server/builders/flow-query-builder.d.ts +136 -0
  378. package/dist/server/server/builders/funnel-query-builder.d.ts +145 -0
  379. package/dist/server/server/builders/group-by-builder.d.ts +38 -0
  380. package/dist/server/server/builders/index.d.ts +13 -0
  381. package/dist/server/server/builders/measure-builder.d.ts +185 -0
  382. package/dist/server/server/builders/retention-query-builder.d.ts +98 -0
  383. package/dist/server/server/cache-providers/index.d.ts +5 -0
  384. package/dist/server/server/cache-providers/memory.d.ts +105 -0
  385. package/dist/server/server/cache-utils.d.ts +85 -0
  386. package/dist/server/server/compiler-metadata.d.ts +11 -0
  387. package/dist/server/server/compiler.d.ts +212 -0
  388. package/dist/server/server/cube-utils.d.ts +158 -0
  389. package/dist/server/server/database-utils.d.ts +18 -0
  390. package/dist/server/server/execution/annotation-builder.d.ts +12 -0
  391. package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
  392. package/dist/server/server/execution/mode-router.d.ts +25 -0
  393. package/dist/server/server/execution/query-result-cache.d.ts +21 -0
  394. package/dist/server/server/execution/result-post-processor.d.ts +10 -0
  395. package/dist/server/server/executor.d.ts +186 -0
  396. package/dist/server/server/executors/base-executor.d.ts +16 -0
  397. package/dist/server/server/executors/databend-executor.d.ts +33 -0
  398. package/dist/server/server/executors/duckdb-executor.d.ts +33 -0
  399. package/dist/server/server/executors/explain-utils.d.ts +28 -0
  400. package/dist/server/server/executors/index.d.ts +21 -0
  401. package/dist/server/server/executors/mysql-executor.d.ts +27 -0
  402. package/dist/server/server/executors/postgres-executor.d.ts +27 -0
  403. package/dist/server/server/executors/singlestore-executor.d.ts +9 -0
  404. package/dist/server/server/executors/snowflake-executor.d.ts +33 -0
  405. package/dist/server/server/executors/sqlite-executor.d.ts +28 -0
  406. package/dist/server/server/explain/databend-parser.d.ts +16 -0
  407. package/dist/server/server/explain/duckdb-parser.d.ts +28 -0
  408. package/dist/server/server/explain/explain-tree.d.ts +20 -0
  409. package/dist/server/server/explain/index.d.ts +9 -0
  410. package/dist/server/server/explain/mysql-parser.d.ts +38 -0
  411. package/dist/server/server/explain/postgres-parser.d.ts +18 -0
  412. package/dist/server/server/explain/snowflake-parser.d.ts +17 -0
  413. package/dist/server/server/explain/sqlite-parser.d.ts +23 -0
  414. package/dist/server/server/filter-cache.d.ts +73 -0
  415. package/dist/server/server/gap-filler.d.ts +48 -0
  416. package/dist/server/server/index.d.ts +38 -0
  417. package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  418. package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
  419. package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
  420. package/dist/server/server/logical-plan/index.d.ts +19 -0
  421. package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
  422. package/dist/server/server/logical-plan/logical-plan-builder.d.ts +58 -0
  423. package/dist/server/server/logical-plan/logical-planner.d.ts +39 -0
  424. package/dist/server/server/logical-plan/optimiser.d.ts +34 -0
  425. package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  426. package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
  427. package/dist/server/server/logical-plan/types.d.ts +199 -0
  428. package/dist/server/server/measure-classification.d.ts +40 -0
  429. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  430. package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +118 -0
  431. package/dist/server/server/physical-plan/index.d.ts +2 -0
  432. package/dist/server/server/physical-plan/processors/cte-processor.d.ts +6 -0
  433. package/dist/server/server/physical-plan/processors/index.d.ts +8 -0
  434. package/dist/server/server/physical-plan/processors/joins-processor.d.ts +6 -0
  435. package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  436. package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  437. package/dist/server/server/physical-plan/processors/predicates-processor.d.ts +6 -0
  438. package/dist/server/server/physical-plan/processors/selection-processor.d.ts +6 -0
  439. package/dist/server/server/physical-plan/processors/shared.d.ts +38 -0
  440. package/dist/server/server/physical-plan/processors/window-processor.d.ts +6 -0
  441. package/dist/server/server/prompts/explain-analysis-prompt.d.ts +47 -0
  442. package/dist/server/server/prompts/index.d.ts +27 -0
  443. package/dist/server/server/prompts/single-step-prompt.d.ts +31 -0
  444. package/dist/server/server/prompts/step0-validation-prompt.d.ts +39 -0
  445. package/dist/server/server/prompts/step1-shape-prompt.d.ts +29 -0
  446. package/dist/server/server/prompts/step2-complete-prompt.d.ts +19 -0
  447. package/dist/server/server/prompts/types.d.ts +37 -0
  448. package/dist/server/server/query-handlers.d.ts +79 -0
  449. package/dist/server/server/query-modes.d.ts +28 -0
  450. package/dist/server/server/query-validator.d.ts +9 -0
  451. package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +98 -0
  452. package/dist/server/server/resolvers/index.d.ts +6 -0
  453. package/dist/server/server/resolvers/join-path-resolver.d.ts +158 -0
  454. package/dist/server/server/sql-format.d.ts +11 -0
  455. package/dist/server/server/template-substitution.d.ts +57 -0
  456. package/dist/server/server/types/analysis.d.ts +189 -0
  457. package/dist/server/server/types/cache.d.ts +132 -0
  458. package/dist/server/server/types/core.d.ts +164 -0
  459. package/dist/server/server/types/cube.d.ts +544 -0
  460. package/dist/server/server/types/executor.d.ts +156 -0
  461. package/dist/server/server/types/flow.d.ts +144 -0
  462. package/dist/server/server/types/funnel.d.ts +118 -0
  463. package/dist/server/server/types/index.d.ts +11 -0
  464. package/dist/server/server/types/metadata.d.ts +113 -0
  465. package/dist/server/server/types/query.d.ts +153 -0
  466. package/dist/server/server/types/retention.d.ts +141 -0
  467. package/dist/server/server/types/utils.d.ts +11 -0
  468. package/dist/server/server/types/validation.d.ts +14 -0
  469. package/package.json +15 -8
  470. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  471. package/dist/adapters/handler-C63rJUUK.cjs +0 -25
  472. package/dist/adapters/locale-CTNwPVZI.cjs +0 -198
  473. package/dist/adapters/locale-gU_d1Wja.js +0 -8249
  474. package/dist/adapters/mcp-transport-C4J4SAcn.cjs +0 -40
  475. package/dist/adapters/mcp-transport-CVUiifEc.js +0 -579
  476. package/dist/adapters/openai-6wrBvAnv.cjs +0 -1
  477. package/dist/adapters/openai-BDwb2u7y.cjs +0 -17
  478. package/dist/adapters/utils-CkEkU8Bo.cjs +0 -128
  479. package/dist/client/chunks/DashboardEditModal-6KRE36mm.js.map +0 -1
  480. package/dist/client/chunks/analysis-builder-shared-x576-O5p.js.map +0 -1
  481. package/dist/client/chunks/analysis-builder-zd48FVJO.js +0 -5367
  482. package/dist/client/chunks/analysis-builder-zd48FVJO.js.map +0 -1
  483. package/dist/client/chunks/chart-activity-grid-CiHrLH6Y.js.map +0 -1
  484. package/dist/client/chunks/chart-area-CXFK-Grv.js +0 -450
  485. package/dist/client/chunks/chart-area-CXFK-Grv.js.map +0 -1
  486. package/dist/client/chunks/chart-bar-DKXfLoGG.js +0 -271
  487. package/dist/client/chunks/chart-bar-DKXfLoGG.js.map +0 -1
  488. package/dist/client/chunks/chart-bubble-DGkTQlxM.js +0 -273
  489. package/dist/client/chunks/chart-bubble-DGkTQlxM.js.map +0 -1
  490. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  491. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  492. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  493. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  494. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  495. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  496. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  497. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  498. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  499. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  500. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  501. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  502. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  503. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  504. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  505. package/dist/client/chunks/chart-data-table-Cm5jrpaw.js.map +0 -1
  506. package/dist/client/chunks/chart-funnel-Eke8IPtG.js.map +0 -1
  507. package/dist/client/chunks/chart-gauge-DeRZNsyl.js +0 -424
  508. package/dist/client/chunks/chart-gauge-DeRZNsyl.js.map +0 -1
  509. package/dist/client/chunks/chart-heat-map-C86thSJ4.js +0 -231
  510. package/dist/client/chunks/chart-heat-map-C86thSJ4.js.map +0 -1
  511. package/dist/client/chunks/chart-kpi-delta-CxOYD2f1.js +0 -343
  512. package/dist/client/chunks/chart-kpi-delta-CxOYD2f1.js.map +0 -1
  513. package/dist/client/chunks/chart-kpi-number-C6gWz-x4.js +0 -322
  514. package/dist/client/chunks/chart-kpi-number-C6gWz-x4.js.map +0 -1
  515. package/dist/client/chunks/chart-kpi-text-dDONrhS-.js +0 -149
  516. package/dist/client/chunks/chart-kpi-text-dDONrhS-.js.map +0 -1
  517. package/dist/client/chunks/chart-line-r4iWevKZ.js +0 -433
  518. package/dist/client/chunks/chart-line-r4iWevKZ.js.map +0 -1
  519. package/dist/client/chunks/chart-markdown-BPW-EAm9.js.map +0 -1
  520. package/dist/client/chunks/chart-pie-yqH2YVEI.js +0 -172
  521. package/dist/client/chunks/chart-pie-yqH2YVEI.js.map +0 -1
  522. package/dist/client/chunks/chart-radar-B-_3v-rE.js +0 -154
  523. package/dist/client/chunks/chart-radar-B-_3v-rE.js.map +0 -1
  524. package/dist/client/chunks/chart-radial-bar-C0EgzfAF.js +0 -148
  525. package/dist/client/chunks/chart-radial-bar-C0EgzfAF.js.map +0 -1
  526. package/dist/client/chunks/chart-scatter-DZPirzwX.js +0 -255
  527. package/dist/client/chunks/chart-scatter-DZPirzwX.js.map +0 -1
  528. package/dist/client/chunks/chart-tree-map-Bi4axCvh.js +0 -298
  529. package/dist/client/chunks/chart-tree-map-Bi4axCvh.js.map +0 -1
  530. package/dist/client/chunks/useDirtyStateTracking-B5wCDJSj.js.map +0 -1
  531. package/dist/server/google-DUlXeeDA.cjs +0 -2
  532. package/dist/server/openai-6wrBvAnv.cjs +0 -1
  533. package/dist/server/openai-BDwb2u7y.cjs +0 -17
  534. /package/dist/adapters/{express → adapters/express}/index.d.ts +0 -0
  535. /package/dist/adapters/{fastify → adapters/fastify}/index.d.ts +0 -0
  536. /package/dist/adapters/{hono → adapters/hono}/index.d.ts +0 -0
  537. /package/dist/adapters/{locale.d.ts → adapters/locale.d.ts} +0 -0
  538. /package/dist/adapters/{mcp-tools.d.ts → adapters/mcp-tools.d.ts} +0 -0
  539. /package/dist/adapters/{mcp-transport.d.ts → adapters/mcp-transport.d.ts} +0 -0
  540. /package/dist/adapters/{nextjs → adapters/nextjs}/index.d.ts +0 -0
  541. /package/dist/adapters/{types.d.ts → adapters/types.d.ts} +0 -0
@@ -0,0 +1,29 @@
1
+ import { CubeMetadata } from '../types/metadata';
2
+ /** A measure or dimension as carried in cube metadata. */
3
+ type Field = CubeMetadata['measures'][number] | CubeMetadata['dimensions'][number];
4
+ /** Scoring callbacks shared with discovery.ts (avoids a circular import). */
5
+ export interface ScoreFns {
6
+ fuzzyMatchScore: (query: string, target: string) => number;
7
+ matchAgainstArray: (query: string, targets: string[]) => number;
8
+ }
9
+ /**
10
+ * Score a single field (measure or dimension) against a keyword.
11
+ * Returns the best score across name, title, description and synonyms.
12
+ */
13
+ export declare function scoreField(keyword: string, field: Field, fns: ScoreFns): number;
14
+ /**
15
+ * Accumulate field scores for a keyword into a running totals map.
16
+ * Adds to `totalScore` (returned) and records the per-field best score when the
17
+ * field clears the relevance threshold, mutating `scores` and `matchedOn`.
18
+ */
19
+ export declare function accumulateFieldScores(keyword: string, fields: Field[], fns: ScoreFns, scores: Map<string, number>, matchedOn: {
20
+ hit: boolean;
21
+ }): number;
22
+ /** Return the top-N field names from a score map, highest score first. */
23
+ export declare function topScoredFields(scores: Map<string, number>, limit: number): string[];
24
+ /**
25
+ * Score a single field as a best-match candidate (used by findBestFieldMatch).
26
+ * Returns the best score across name, title and synonyms (no description match).
27
+ */
28
+ export declare function scoreFieldForBestMatch(fieldName: string, field: Field, fns: ScoreFns): number;
29
+ export {};
@@ -0,0 +1,66 @@
1
+ import { CubeMetadata } from '../types/metadata';
2
+ import { QUERY_SCHEMAS } from './schemas';
3
+ /**
4
+ * Discovery result for a cube
5
+ */
6
+ export interface CubeDiscoveryResult {
7
+ cube: string;
8
+ title: string;
9
+ description?: string;
10
+ relevanceScore: number;
11
+ matchedOn: ('name' | 'title' | 'description' | 'exampleQuestions' | 'measures' | 'dimensions')[];
12
+ suggestedMeasures: string[];
13
+ suggestedDimensions: string[];
14
+ capabilities: {
15
+ query: true;
16
+ funnel: boolean;
17
+ flow: boolean;
18
+ retention: boolean;
19
+ };
20
+ analysisConfig?: {
21
+ candidateBindingKeys: Array<{
22
+ dimension: string;
23
+ description?: string;
24
+ }>;
25
+ candidateTimeDimensions: Array<{
26
+ dimension: string;
27
+ description?: string;
28
+ }>;
29
+ candidateEventDimensions: Array<{
30
+ dimension: string;
31
+ description?: string;
32
+ }>;
33
+ };
34
+ hints?: string[];
35
+ querySchemas?: typeof QUERY_SCHEMAS;
36
+ }
37
+ /**
38
+ * Discovery request options
39
+ */
40
+ export interface DiscoveryOptions {
41
+ /** Topic or intent to search for */
42
+ topic?: string;
43
+ /** Natural language intent */
44
+ intent?: string;
45
+ /** Maximum number of results */
46
+ limit?: number;
47
+ /** Minimum relevance score (0-1) */
48
+ minScore?: number;
49
+ }
50
+ /**
51
+ * Calculate Levenshtein distance between two strings
52
+ */
53
+ export declare function levenshteinDistance(a: string, b: string): number;
54
+ /**
55
+ * Discover relevant cubes based on topic or intent
56
+ */
57
+ export declare function discoverCubes(metadata: CubeMetadata[], options?: DiscoveryOptions): CubeDiscoveryResult[];
58
+ /**
59
+ * Find the best matching field across all cubes
60
+ */
61
+ export declare function findBestFieldMatch(metadata: CubeMetadata[], fieldName: string, fieldType?: 'measure' | 'dimension'): {
62
+ field: string;
63
+ cube: string;
64
+ score: number;
65
+ type: 'measure' | 'dimension';
66
+ } | null;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * AI-Ready Data Layer Utilities
3
+ * Schema-aware intelligence for AI agents - no server-side LLM required
4
+ */
5
+ export { discoverCubes, findBestFieldMatch, type CubeDiscoveryResult, type DiscoveryOptions } from './discovery';
6
+ export { suggestQuery, type QuerySuggestion } from './suggestion';
7
+ export { validateQuery, type ValidationResult, type ValidationError, type ValidationWarning } from './validation';
8
+ export { QUERY_SCHEMAS, type QuerySchemas } from './schemas';
9
+ export { QUERY_PARAMS_SCHEMA, QUERY_LANGUAGE_REFERENCE } from './query-schema';
10
+ export { MCP_PROMPTS, MCP_GUIDE_PROMPT, QUERY_LANGUAGE_PROMPT, QUERY_RULES_PROMPT, QUERY_BUILDING_PROMPT, DATE_FILTERING_PROMPT, DEFAULT_MCP_INSTRUCTIONS, getDefaultMCPPrompts, getDefaultMcpInstructions, type MCPPrompt } from './mcp-prompts';
@@ -0,0 +1,83 @@
1
+ /**
2
+ * MCP Prompts for AI Agents
3
+ *
4
+ * These prompts provide guidance for AI agents using the Drizzle Cube MCP server.
5
+ * They help prevent common query mistakes and ensure correct query construction.
6
+ *
7
+ * Structure: 3 focused prompts (down from 4 redundant ones):
8
+ * - MCP_GUIDE_PROMPT: Workflow (discover -> validate -> load) + cross-cube joins
9
+ * - QUERY_LANGUAGE_PROMPT: TS DSL reference (single source of truth from query-schema.ts)
10
+ * - DATE_FILTERING_PROMPT: Decision tree for the #1 mistake
11
+ *
12
+ * QUERY_RULES_PROMPT and QUERY_BUILDING_PROMPT are kept as backward-compatible aliases.
13
+ */
14
+ export interface MCPPrompt {
15
+ name: string;
16
+ description: string;
17
+ messages: Array<{
18
+ role: 'user' | 'assistant';
19
+ content: {
20
+ type: 'text';
21
+ text: string;
22
+ };
23
+ }>;
24
+ }
25
+ /**
26
+ * Main workflow guide for using drizzle-cube MCP tools
27
+ */
28
+ export declare const MCP_GUIDE_PROMPT: MCPPrompt;
29
+ /**
30
+ * Query language reference — imports the TypeScript DSL from query-schema.ts
31
+ * Replaces both QUERY_RULES_PROMPT and QUERY_BUILDING_PROMPT
32
+ */
33
+ export declare const QUERY_LANGUAGE_PROMPT: MCPPrompt;
34
+ /**
35
+ * Critical guide specifically for date filtering vs time grouping — the #1 mistake
36
+ */
37
+ export declare const DATE_FILTERING_PROMPT: MCPPrompt;
38
+ /**
39
+ * Backward-compatible alias — now references the unified query language prompt
40
+ */
41
+ export declare const QUERY_RULES_PROMPT: MCPPrompt;
42
+ /**
43
+ * Backward-compatible alias — now references the unified query language prompt
44
+ */
45
+ export declare const QUERY_BUILDING_PROMPT: MCPPrompt;
46
+ /**
47
+ * All MCP prompts for the Drizzle Cube server
48
+ */
49
+ export declare const MCP_PROMPTS: MCPPrompt[];
50
+ /**
51
+ * Get all default MCP prompts
52
+ */
53
+ export declare function getDefaultMCPPrompts(): MCPPrompt[];
54
+ /**
55
+ * Default instructions returned in the MCP `initialize` result.
56
+ *
57
+ * Per the MCP spec (InitializeResult.instructions), this string is the only
58
+ * server-authored guidance that clients are expected to surface to the model
59
+ * (e.g. by adding it to the system prompt). `prompts/*` and `resources/*` are
60
+ * pull-based and are usually invoked by the *user* (slash commands) — not by
61
+ * the model — so we cannot rely on them for correctness.
62
+ *
63
+ * The instructions therefore:
64
+ * 1. Mandate the discover → (validate) → load workflow.
65
+ * 2. Tell the model that the `discover` tool response itself contains the
66
+ * full query language reference (`queryLanguageReference`) and the date
67
+ * filtering decision tree (`dateFilteringGuide`). The model MUST read
68
+ * those fields before constructing any query — they are the source of
69
+ * truth for syntax, operators, and analysis modes.
70
+ * 3. Inline the single most-violated rule (aggregated totals vs time
71
+ * series) so that even a model that ignores the discover payload still
72
+ * sees it once in its system prompt.
73
+ *
74
+ * Keep this body short (< ~2 KB) — long instructions get truncated or
75
+ * deprioritised by some clients.
76
+ */
77
+ export declare const DEFAULT_MCP_INSTRUCTIONS: string;
78
+ /**
79
+ * Get the default MCP instructions string returned in the `initialize` result.
80
+ * Exposed as a function (not just a const) so consumers can wrap or extend it
81
+ * via the `instructions` resolver in `MCPOptions`.
82
+ */
83
+ export declare function getDefaultMcpInstructions(): string;
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Unified Query Schema — Single Source of Truth
3
+ *
4
+ * This module defines the canonical query parameter schema used by BOTH:
5
+ * - MCP `load` tool (mcp-transport.ts)
6
+ * - Agent `execute_query` tool (agent/tools.ts)
7
+ *
8
+ * It also exports a TypeScript DSL reference string used in prompts.
9
+ */
10
+ /**
11
+ * JSON Schema for query parameters shared across MCP and Agent tools.
12
+ * Covers regular queries (measures/dimensions/filters/timeDimensions/order/limit/offset/ungrouped)
13
+ * and analysis modes (funnel/flow/retention).
14
+ */
15
+ export declare const QUERY_PARAMS_SCHEMA: {
16
+ readonly measures: {
17
+ readonly type: "array";
18
+ readonly items: {
19
+ readonly type: "string";
20
+ readonly pattern: "^[A-Z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*$";
21
+ };
22
+ readonly description: "Aggregation measures — EXACTLY \"CubeName.measureName\" (two parts, one dot). Copy field names verbatim from discover results. WRONG: \"Sales.Sales.count\" (double-prefixed). RIGHT: \"Sales.count\".";
23
+ };
24
+ readonly dimensions: {
25
+ readonly type: "array";
26
+ readonly items: {
27
+ readonly type: "string";
28
+ readonly pattern: "^[A-Z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*$";
29
+ };
30
+ readonly description: "Grouping dimensions — EXACTLY \"CubeName.dimensionName\" (two parts, one dot). Copy from discover results. Can include dimensions from RELATED cubes via joins. WRONG: \"Teams.Teams.name\". RIGHT: \"Teams.name\".";
31
+ };
32
+ readonly filters: {
33
+ readonly type: "array";
34
+ readonly items: {
35
+ readonly type: "object";
36
+ readonly properties: {
37
+ readonly member: {
38
+ readonly type: "string";
39
+ readonly description: "\"CubeName.fieldName\"";
40
+ };
41
+ readonly operator: {
42
+ readonly type: "string";
43
+ readonly enum: readonly ["equals", "notEquals", "contains", "notContains", "startsWith", "notStartsWith", "endsWith", "notEndsWith", "gt", "gte", "lt", "lte", "between", "notBetween", "in", "notIn", "like", "notLike", "ilike", "regex", "notRegex", "set", "notSet", "isEmpty", "isNotEmpty", "inDateRange", "beforeDate", "afterDate", "arrayContains", "arrayOverlaps", "arrayContained"];
44
+ };
45
+ readonly values: {
46
+ readonly type: "array";
47
+ readonly items: {};
48
+ readonly description: "Filter values. Omit for set/notSet/isEmpty/isNotEmpty.";
49
+ };
50
+ };
51
+ readonly required: readonly ["member", "operator"];
52
+ };
53
+ readonly description: "Filter conditions. Flat array — for AND/OR logic use { \"and\": [...] } or { \"or\": [...] } wrappers.";
54
+ };
55
+ readonly timeDimensions: {
56
+ readonly type: "array";
57
+ readonly items: {
58
+ readonly type: "object";
59
+ readonly properties: {
60
+ readonly dimension: {
61
+ readonly type: "string";
62
+ readonly description: "\"CubeName.timeDimension\"";
63
+ };
64
+ readonly granularity: {
65
+ readonly type: "string";
66
+ readonly enum: readonly ["second", "minute", "hour", "day", "week", "month", "quarter", "year"];
67
+ readonly description: "Time bucket size. REQUIRED for time series; omit only for date range filtering.";
68
+ };
69
+ readonly dateRange: {
70
+ readonly description: "Relative string (\"last 7 days\", \"this month\", \"last quarter\") or absolute tuple [\"YYYY-MM-DD\", \"YYYY-MM-DD\"]";
71
+ };
72
+ readonly fillMissingDates: {
73
+ readonly type: "boolean";
74
+ readonly description: "Fill gaps in time series with fillMissingDatesValue (default: true). Requires granularity + dateRange.";
75
+ };
76
+ readonly compareDateRange: {
77
+ readonly type: "array";
78
+ readonly items: {};
79
+ readonly description: "Period-over-period comparison. Array of date ranges: [\"last 30 days\", [\"2024-01-01\", \"2024-01-30\"]]";
80
+ };
81
+ };
82
+ readonly required: readonly ["dimension"];
83
+ };
84
+ readonly description: "Time dimensions with optional granularity for time series. Use filters with inDateRange for aggregated totals instead.";
85
+ };
86
+ readonly order: {
87
+ readonly type: "object";
88
+ readonly description: "Sort order. Keys MUST be a measure or dimension already in this query, in \"CubeName.fieldName\" format. Values: \"asc\" or \"desc\". Example: {\"Sales.revenue\": \"desc\"}";
89
+ };
90
+ readonly limit: {
91
+ readonly type: "number";
92
+ readonly description: "Maximum rows to return";
93
+ };
94
+ readonly offset: {
95
+ readonly type: "number";
96
+ readonly description: "Number of rows to skip (for pagination)";
97
+ };
98
+ readonly ungrouped: {
99
+ readonly type: "boolean";
100
+ readonly description: "When true, returns raw row-level data without GROUP BY. Requires at least one dimension. Incompatible with count/countDistinct measures and analysis modes.";
101
+ };
102
+ readonly funnel: {
103
+ readonly type: "object";
104
+ readonly properties: {
105
+ readonly bindingKey: {
106
+ readonly type: "string";
107
+ readonly description: "Entity identifier dimension (e.g., \"Events.userId\")";
108
+ };
109
+ readonly timeDimension: {
110
+ readonly type: "string";
111
+ readonly description: "Time ordering dimension (e.g., \"Events.timestamp\")";
112
+ };
113
+ readonly steps: {
114
+ readonly type: "array";
115
+ readonly items: {
116
+ readonly type: "object";
117
+ readonly properties: {
118
+ readonly name: {
119
+ readonly type: "string";
120
+ readonly description: "Human-readable step name";
121
+ };
122
+ readonly filter: {
123
+ readonly description: "Filter or array of filters for this step";
124
+ };
125
+ readonly timeToConvert: {
126
+ readonly type: "string";
127
+ readonly description: "ISO 8601 duration — max time from previous step (e.g., \"P7D\" for 7 days, \"PT1H\" for 1 hour)";
128
+ };
129
+ };
130
+ readonly required: readonly ["name"];
131
+ };
132
+ readonly description: "Ordered funnel steps (minimum 2). Put inDateRange time filter ONLY on step 0.";
133
+ };
134
+ readonly includeTimeMetrics: {
135
+ readonly type: "boolean";
136
+ readonly description: "Include avg/median/p90 time-to-convert per step";
137
+ };
138
+ readonly globalTimeWindow: {
139
+ readonly type: "string";
140
+ readonly description: "ISO 8601 duration — all steps must complete within this window from step 0";
141
+ };
142
+ };
143
+ readonly required: readonly ["bindingKey", "timeDimension", "steps"];
144
+ readonly description: "Funnel analysis. When provided, measures/dimensions are ignored.";
145
+ };
146
+ readonly flow: {
147
+ readonly type: "object";
148
+ readonly properties: {
149
+ readonly bindingKey: {
150
+ readonly type: "string";
151
+ readonly description: "Entity identifier dimension (e.g., \"Events.userId\")";
152
+ };
153
+ readonly timeDimension: {
154
+ readonly type: "string";
155
+ readonly description: "Time ordering dimension (e.g., \"Events.timestamp\")";
156
+ };
157
+ readonly eventDimension: {
158
+ readonly type: "string";
159
+ readonly description: "Dimension whose values become node labels (e.g., \"Events.eventType\")";
160
+ };
161
+ readonly startingStep: {
162
+ readonly type: "object";
163
+ readonly properties: {
164
+ readonly name: {
165
+ readonly type: "string";
166
+ readonly description: "Display name for the starting step";
167
+ };
168
+ readonly filter: {
169
+ readonly description: "Filter(s) identifying the starting event";
170
+ };
171
+ };
172
+ readonly required: readonly ["name"];
173
+ readonly description: "The anchor point — an object with { name, filter }, NOT a plain string.";
174
+ };
175
+ readonly stepsBefore: {
176
+ readonly type: "number";
177
+ readonly description: "Steps to explore before starting step (0-5)";
178
+ };
179
+ readonly stepsAfter: {
180
+ readonly type: "number";
181
+ readonly description: "Steps to explore after starting step (0-5)";
182
+ };
183
+ readonly entityLimit: {
184
+ readonly type: "number";
185
+ readonly description: "Max entities to process (performance tuning)";
186
+ };
187
+ readonly outputMode: {
188
+ readonly type: "string";
189
+ readonly enum: readonly ["sankey", "sunburst"];
190
+ readonly description: "Visualization mode (default: sankey)";
191
+ };
192
+ };
193
+ readonly required: readonly ["bindingKey", "timeDimension", "eventDimension", "startingStep"];
194
+ readonly description: "Flow (path) analysis. When provided, measures/dimensions are ignored.";
195
+ };
196
+ readonly retention: {
197
+ readonly type: "object";
198
+ readonly properties: {
199
+ readonly timeDimension: {
200
+ readonly type: "string";
201
+ readonly description: "Timestamp dimension (e.g., \"Events.timestamp\")";
202
+ };
203
+ readonly bindingKey: {
204
+ readonly type: "string";
205
+ readonly description: "Entity identifier (e.g., \"Events.userId\")";
206
+ };
207
+ readonly dateRange: {
208
+ readonly type: "object";
209
+ readonly properties: {
210
+ readonly start: {
211
+ readonly type: "string";
212
+ readonly description: "YYYY-MM-DD";
213
+ };
214
+ readonly end: {
215
+ readonly type: "string";
216
+ readonly description: "YYYY-MM-DD";
217
+ };
218
+ };
219
+ readonly required: readonly ["start", "end"];
220
+ readonly description: "Cohort date range — MUST be an object { start, end }, NOT an array or string.";
221
+ };
222
+ readonly granularity: {
223
+ readonly type: "string";
224
+ readonly enum: readonly ["day", "week", "month"];
225
+ readonly description: "Period size for retention buckets";
226
+ };
227
+ readonly periods: {
228
+ readonly type: "number";
229
+ readonly description: "Number of retention periods to calculate";
230
+ };
231
+ readonly retentionType: {
232
+ readonly type: "string";
233
+ readonly enum: readonly ["classic", "rolling"];
234
+ readonly description: "classic = returned in period N exactly; rolling = returned in period N or later";
235
+ };
236
+ readonly cohortFilters: {
237
+ readonly description: "Optional filters on cohort entry events";
238
+ };
239
+ readonly activityFilters: {
240
+ readonly description: "Optional filters on return activity events";
241
+ };
242
+ readonly breakdownDimensions: {
243
+ readonly type: "array";
244
+ readonly items: {
245
+ readonly type: "string";
246
+ };
247
+ readonly description: "Segment retention by these dimensions (e.g., [\"Events.country\"])";
248
+ };
249
+ };
250
+ readonly required: readonly ["timeDimension", "bindingKey", "dateRange", "granularity", "periods"];
251
+ readonly description: "Retention (cohort) analysis. When provided, measures/dimensions are ignored.";
252
+ };
253
+ };
254
+ /**
255
+ * TypeScript DSL reference for query construction.
256
+ * Used in MCP prompts and agent system prompt as the authoritative query language spec.
257
+ */
258
+ export declare const QUERY_LANGUAGE_REFERENCE: string;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Generic query schemas for AI agents
3
+ * Teaches AI how to construct analysis queries
4
+ *
5
+ * These schemas are returned by the `discover` tool to help LLMs
6
+ * understand the correct query shape for each analysis mode.
7
+ */
8
+ export declare const QUERY_SCHEMAS: {
9
+ readonly funnel: {
10
+ readonly description: "Track conversion through sequential steps. Entities (identified by bindingKey) move through ordered steps.";
11
+ readonly structure: {
12
+ readonly funnel: {
13
+ readonly bindingKey: "Cube.dimension - identifies entities moving through funnel";
14
+ readonly timeDimension: "Cube.dimension - time field for ordering events";
15
+ readonly steps: readonly [{
16
+ readonly name: "string - human readable step name";
17
+ readonly filter: "{ member, operator, values } or array of filters. Put inDateRange ONLY on step 0.";
18
+ readonly timeToConvert: "optional - ISO 8601 duration e.g. \"P7D\" for 7 days, \"PT1H\" for 1 hour";
19
+ }];
20
+ readonly includeTimeMetrics: "optional boolean - include avg/median/p90 time-to-convert";
21
+ readonly globalTimeWindow: "optional - ISO 8601 duration, all steps must complete within this window";
22
+ };
23
+ };
24
+ };
25
+ readonly flow: {
26
+ readonly description: "Analyze paths users take before/after a specific event. Shows event sequences as Sankey/sunburst.";
27
+ readonly structure: {
28
+ readonly flow: {
29
+ readonly bindingKey: "Cube.dimension - identifies entities";
30
+ readonly timeDimension: "Cube.dimension - time field for ordering";
31
+ readonly eventDimension: "Cube.dimension - the event type field (values become node labels)";
32
+ readonly startingStep: {
33
+ readonly name: "string - display name for the starting step";
34
+ readonly filter: "{ member, operator, values } - filter identifying the starting event";
35
+ };
36
+ readonly stepsBefore: "number (0-5) - how many steps to show before starting step";
37
+ readonly stepsAfter: "number (0-5) - how many steps to show after starting step";
38
+ readonly entityLimit: "optional number - max entities to process (performance)";
39
+ readonly outputMode: "optional \"sankey\" | \"sunburst\" (default: sankey)";
40
+ };
41
+ };
42
+ };
43
+ readonly retention: {
44
+ readonly description: "Measure how many users return over time periods after initial activity.";
45
+ readonly structure: {
46
+ readonly retention: {
47
+ readonly timeDimension: "Cube.dimension - time field for cohort assignment";
48
+ readonly bindingKey: "Cube.dimension - identifies entities";
49
+ readonly dateRange: {
50
+ readonly start: "YYYY-MM-DD - cohort start date";
51
+ readonly end: "YYYY-MM-DD - cohort end date";
52
+ };
53
+ readonly granularity: "day | week | month - period size";
54
+ readonly periods: "number - how many periods to analyze";
55
+ readonly retentionType: "\"classic\" (returned in period N) | \"rolling\" (returned in N or later)";
56
+ readonly cohortFilters: "optional - filters on cohort entry events";
57
+ readonly activityFilters: "optional - filters on return activity events";
58
+ readonly breakdownDimensions: "optional string[] - segment by these dimensions";
59
+ };
60
+ };
61
+ };
62
+ };
63
+ export type QuerySchemas = typeof QUERY_SCHEMAS;
@@ -0,0 +1,33 @@
1
+ import { CubeMetadata } from '../types/metadata';
2
+ /** Format a Date as a YYYY-MM-DD string (UTC). */
3
+ export declare function formatDate(d: Date): string;
4
+ /** Resolve a numeric "last N days/weeks/months" expression. */
5
+ export declare function parseRelativeNExpression(n: number, lowerText: string): {
6
+ dateRange: [string, string];
7
+ granularity?: string;
8
+ } | null;
9
+ /** Resolve a "Q1".."Q4" quarter expression for the current year. */
10
+ export declare function parseQuarterExpression(quarterMatch: string): {
11
+ dateRange: [string, string];
12
+ granularity?: string;
13
+ };
14
+ /**
15
+ * Match measures in the primary cube against keywords in the text.
16
+ * Mutates `measures`/`reasoning` and returns the confidence delta to apply.
17
+ */
18
+ export declare function matchMeasuresInText(primaryCube: CubeMetadata, lowerText: string, measures: string[], reasoning: string[]): number;
19
+ /** Aggregation intent shape produced by detectAggregationIntent. */
20
+ export interface AggregationIntent {
21
+ type: 'sum' | 'count' | 'avg' | 'max' | 'min';
22
+ confidence: number;
23
+ }
24
+ /**
25
+ * Backfill measures when none matched directly, using the aggregation intent.
26
+ * Mutates `measures`/`reasoning`.
27
+ */
28
+ export declare function applyAggregationFallback(primaryCube: CubeMetadata, aggregationIntent: AggregationIntent, measures: string[], reasoning: string[]): void;
29
+ /**
30
+ * Resolve grouping dimensions from grouping keywords and explicit "by/per X" text.
31
+ * Mutates `dimensions`/`reasoning` and returns the confidence delta to apply.
32
+ */
33
+ export declare function matchDimensions(relevantCubes: CubeMetadata[], groupingKeywords: string[], lowerText: string, dimensions: string[], reasoning: string[]): number;
@@ -0,0 +1,16 @@
1
+ import { CubeMetadata } from '../types/metadata';
2
+ import { SemanticQuery } from '../types/query';
3
+ /**
4
+ * Suggested query result
5
+ */
6
+ export interface QuerySuggestion {
7
+ query: Partial<SemanticQuery>;
8
+ confidence: number;
9
+ reasoning: string[];
10
+ warnings?: string[];
11
+ /** Detected analysis mode */
12
+ analysisMode: 'query' | 'funnel' | 'flow' | 'retention';
13
+ /** Next steps when mode != 'query' */
14
+ nextSteps?: string[];
15
+ }
16
+ export declare function suggestQuery(metadata: CubeMetadata[], naturalLanguage: string, targetCube?: string): QuerySuggestion;
@@ -0,0 +1,21 @@
1
+ import { TranslationKey } from '../../i18n/types';
2
+ import { CubeMetadata } from '../types/metadata';
3
+ import { SemanticQuery, Filter } from '../types/query';
4
+ import { ValidationError, ValidationWarning } from './validation';
5
+ /** Validate that a required event-stream field is present and (if a string) a valid dimension. */
6
+ export declare function validateRequiredDimensionField(value: unknown, missingMessageKey: TranslationKey, validateDimension: (dimension: string, errors: ValidationError[]) => void, errors: ValidationError[]): void;
7
+ /** Apply field-name corrections to a measures/dimensions string array. */
8
+ export declare function applyCorrectionsToList(list: string[], corrections: Map<string, string>): string[];
9
+ /** Build the corrected query by applying field corrections (returns undefined if none). */
10
+ export declare function buildCorrectedQuery(query: SemanticQuery, corrections: Map<string, string>): SemanticQuery | undefined;
11
+ /** Push performance/best-practice warnings for an oversized standard query. */
12
+ export declare function collectPerformanceWarnings(query: SemanticQuery, warnings: ValidationWarning[]): void;
13
+ /** Warn when a declared time dimension is not actually of time type. */
14
+ export declare function checkTimeDimensionType(dimensionRef: string, metadata: CubeMetadata[], warnings: ValidationWarning[]): void;
15
+ /** Validate a single member-style filter (cube + field existence). */
16
+ export declare function validateMemberFilter(filter: Extract<Filter, {
17
+ member: string;
18
+ }>, metadata: CubeMetadata[], errors: ValidationError[], corrections: Map<string, string>, findClosestField: (fieldName: string, available: string[]) => {
19
+ field: string;
20
+ distance: number;
21
+ } | null): void;
@@ -0,0 +1,31 @@
1
+ import { CubeMetadata } from '../types/metadata';
2
+ import { SemanticQuery } from '../types/query';
3
+ /**
4
+ * Validation result with corrections
5
+ */
6
+ export interface ValidationResult {
7
+ isValid: boolean;
8
+ errors: ValidationError[];
9
+ warnings: ValidationWarning[];
10
+ correctedQuery?: SemanticQuery;
11
+ }
12
+ /**
13
+ * Validation error with optional correction
14
+ */
15
+ export interface ValidationError {
16
+ type: 'cube_not_found' | 'measure_not_found' | 'dimension_not_found' | 'invalid_filter' | 'invalid_time_dimension' | 'syntax_error';
17
+ message: string;
18
+ field?: string;
19
+ suggestion?: string;
20
+ correctedValue?: string;
21
+ }
22
+ /**
23
+ * Validation warning (query will work but may have issues)
24
+ */
25
+ export interface ValidationWarning {
26
+ type: 'ambiguous_field' | 'performance' | 'best_practice';
27
+ message: string;
28
+ field?: string;
29
+ suggestion?: string;
30
+ }
31
+ export declare function validateQuery(query: SemanticQuery, metadata: CubeMetadata[]): ValidationResult;