drizzle-cube 0.5.8 → 0.6.1

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 (725) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/express/index.cjs +1 -1
  3. package/dist/adapters/{adapters/express → express}/index.d.ts +3 -3
  4. package/dist/adapters/express/index.js +50 -50
  5. package/dist/adapters/fastify/index.cjs +1 -1
  6. package/dist/adapters/{adapters/fastify → fastify}/index.d.ts +3 -3
  7. package/dist/adapters/fastify/index.js +78 -78
  8. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  9. package/dist/{server/google-CFYljAOF.js → adapters/google-CvKM9yVM.js} +83 -71
  10. package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
  11. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  12. package/dist/adapters/hono/agent-handler.d.ts +9 -0
  13. package/dist/adapters/hono/index.cjs +2 -2
  14. package/dist/adapters/{adapters/hono → hono}/index.d.ts +4 -4
  15. package/dist/adapters/hono/index.js +205 -175
  16. package/dist/adapters/hono/mcp-handler.d.ts +37 -0
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/{adapters/locale.d.ts → locale.d.ts} +1 -1
  20. package/dist/adapters/mcp-tools-handlers.d.ts +18 -0
  21. package/dist/adapters/mcp-tools.cjs +1 -1
  22. package/dist/adapters/{adapters/mcp-tools.d.ts → mcp-tools.d.ts} +5 -5
  23. package/dist/adapters/mcp-tools.js +49 -38
  24. package/dist/adapters/mcp-transport-B7ddET3M.cjs +40 -0
  25. package/dist/adapters/mcp-transport-Dfuj4j4q.js +591 -0
  26. package/dist/adapters/{adapters/mcp-transport.d.ts → mcp-transport.d.ts} +3 -3
  27. package/dist/adapters/nextjs/index.cjs +1 -1
  28. package/dist/adapters/{adapters/nextjs → nextjs}/index.d.ts +3 -3
  29. package/dist/adapters/nextjs/index.js +190 -197
  30. package/dist/adapters/nextjs/mcp-handler.d.ts +36 -0
  31. package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  32. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  33. package/dist/adapters/{adapters/types.d.ts → types.d.ts} +1 -1
  34. package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
  35. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  36. package/dist/adapters/utils.cjs +1 -1
  37. package/dist/adapters/{adapters/utils.d.ts → utils.d.ts} +17 -92
  38. package/dist/adapters/utils.js +2 -2
  39. package/dist/cli/index.cjs +2 -2
  40. package/dist/client/adapters/adapterRegistry.d.ts +2 -2
  41. package/dist/client/adapters/flowModeAdapter.d.ts +2 -2
  42. package/dist/client/adapters/funnelModeAdapter.d.ts +2 -2
  43. package/dist/client/adapters/index.d.ts +9 -9
  44. package/dist/client/adapters/modeAdapter.d.ts +1 -1
  45. package/dist/client/adapters/queryModeAdapter.d.ts +3 -3
  46. package/dist/client/adapters/retentionModeAdapter.d.ts +2 -2
  47. package/dist/client/charts/ChartLoader.d.ts +3 -17
  48. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  49. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  50. package/dist/client/charts/chartConfigRegistry.d.ts +1 -1
  51. package/dist/client/charts/chartPlugin.d.ts +3 -3
  52. package/dist/client/charts/lazyChartConfigRegistry.d.ts +2 -2
  53. package/dist/client/charts.d.ts +8 -8
  54. package/dist/client/charts.js +14 -13
  55. package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
  56. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  57. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  58. package/dist/client/chunks/RetentionCombinedChart-BgbDhsPz.js.map +1 -0
  59. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  60. package/dist/client/chunks/RetentionHeatmap-DjXZaTPq.js.map +1 -0
  61. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  62. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  63. package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  64. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  65. package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
  66. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  67. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  68. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  69. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  70. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  71. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
  72. package/dist/client/chunks/chart-box-plot-kkBixZ27.js.map +1 -0
  73. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  74. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  75. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
  76. package/dist/client/chunks/chart-candlestick-DZp19Tzh.js.map +1 -0
  77. package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.js.map +1 -1
  78. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  79. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  80. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  81. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  82. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  83. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  84. package/dist/client/chunks/chart-config-bubble-gIoqVyjZ.js.map +1 -1
  85. package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +1 -1
  86. package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +1 -1
  87. package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +1 -1
  88. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  89. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  90. package/dist/client/chunks/chart-config-heat-map-CfRnRNcw.js.map +1 -1
  91. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  92. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  93. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  94. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  95. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  96. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  97. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  98. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  99. package/dist/client/chunks/chart-config-markdown-BtRIe8JN.js.map +1 -1
  100. package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +1 -1
  101. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  102. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  103. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  104. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  105. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  106. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  107. package/dist/client/chunks/chart-config-sankey-BTnWA7EW.js.map +1 -1
  108. package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +1 -1
  109. package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +1 -1
  110. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  111. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  112. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  113. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  114. package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
  115. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  116. package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
  117. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  118. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  119. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  120. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  121. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  122. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  123. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  124. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  125. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  126. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  127. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  128. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  129. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  130. package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
  131. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +1 -0
  132. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  133. package/dist/client/chunks/chart-measure-profile-Ket8fJyf.js.map +1 -0
  134. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  135. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  136. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  137. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  138. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  139. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  140. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
  141. package/dist/client/chunks/chart-sankey-DjrvKw6K.js.map +1 -0
  142. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  143. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  144. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
  145. package/dist/client/chunks/chart-sunburst-leGpuDj7.js.map +1 -0
  146. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  147. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  148. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
  149. package/dist/client/chunks/chart-waterfall-DyvQReN5.js.map +1 -0
  150. package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
  151. package/dist/client/chunks/charts-core-DaXSt1Dd.js.map +1 -0
  152. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  153. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  154. package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
  155. package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  156. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  157. package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  158. package/dist/client/chunks/schema-visualization-Cb_E9_Gd.js.map +1 -0
  159. package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  160. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  161. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
  162. package/dist/client/chunks/useExplainAI-evnZkjCY.js.map +1 -0
  163. package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
  164. package/dist/client/chunks/utils-3P6z1vz5.js.map +1 -0
  165. package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
  166. package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
  167. package/dist/client/client/BatchCoordinator.d.ts +1 -1
  168. package/dist/client/client/CubeClient.d.ts +1 -1
  169. package/dist/client/components/AIAssistant/index.d.ts +3 -3
  170. package/dist/client/components/AIAssistant/utils.d.ts +1 -1
  171. package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
  172. package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +1 -1
  173. package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
  174. package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +2 -2
  175. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  176. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  177. package/dist/client/components/AgenticNotebook/index.d.ts +2 -2
  178. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  179. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  180. package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
  181. package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +4 -4
  182. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
  183. package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +2 -2
  184. package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +2 -2
  185. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +2 -2
  186. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
  187. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
  188. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  189. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  190. package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
  191. package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
  192. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  193. package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
  194. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  195. package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
  196. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  197. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
  198. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  199. package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +1 -1
  200. package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
  201. package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
  202. package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
  203. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  204. package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -2
  205. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  206. package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
  207. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  208. package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +3 -3
  209. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  210. package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
  211. package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
  212. package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +2 -2
  213. package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
  214. package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
  215. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  216. package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
  217. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  218. package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
  219. package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
  220. package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +3 -3
  221. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  222. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  223. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  224. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  225. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  226. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  227. package/dist/client/components/AnalysisBuilder/index.d.ts +1 -1
  228. package/dist/client/components/AnalysisBuilder/types.d.ts +28 -28
  229. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  230. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  231. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +7 -2
  232. package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +1 -1
  233. package/dist/client/components/AnalysisBuilder/utils/index.d.ts +6 -6
  234. package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +2 -2
  235. package/dist/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +2 -2
  236. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  237. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  238. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  239. package/dist/client/components/AnalysisBuilder/utils/storageUtils.d.ts +2 -2
  240. package/dist/client/components/AnalysisBuilderLazy.d.ts +1 -1
  241. package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
  242. package/dist/client/components/AnalyticsPortlet.d.ts +1 -1
  243. package/dist/client/components/ChartTypeSelector.d.ts +2 -2
  244. package/dist/client/components/DashboardFilterPanel.d.ts +1 -1
  245. package/dist/client/components/DashboardFilters/CompactFilterBar.d.ts +1 -1
  246. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  247. package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +2 -2
  248. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  249. package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +2 -2
  250. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  251. package/dist/client/components/DashboardFilters/EditModeFilterList.d.ts +1 -1
  252. package/dist/client/components/DashboardFilters/FilterChip.d.ts +1 -1
  253. package/dist/client/components/DashboardFilters/FilterEditModal.d.ts +2 -2
  254. package/dist/client/components/DashboardFilters/FilterValuePopover.d.ts +1 -1
  255. package/dist/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +2 -2
  256. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  257. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  258. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  259. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  260. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  261. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  262. package/dist/client/components/DashboardGrid.d.ts +2 -2
  263. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  264. package/dist/client/components/DebugModal.d.ts +2 -2
  265. package/dist/client/components/DrillBreadcrumb.d.ts +1 -1
  266. package/dist/client/components/DrillMenu.d.ts +1 -1
  267. package/dist/client/components/FloatingEditToolbar.d.ts +1 -1
  268. package/dist/client/components/MobileStackedLayout.d.ts +2 -2
  269. package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
  270. package/dist/client/components/PortletContainer.d.ts +1 -1
  271. package/dist/client/components/PortletFilterConfigModal.d.ts +1 -1
  272. package/dist/client/components/RowManagedLayout.d.ts +1 -1
  273. package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
  274. package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
  275. package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
  276. package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
  277. package/dist/client/components/TextPortletModal.d.ts +2 -2
  278. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  279. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  280. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  281. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  282. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  283. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  284. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  285. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  286. package/dist/client/components/charts/ActivityGridChart.config.d.ts +1 -1
  287. package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
  288. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  289. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  290. package/dist/client/components/charts/AreaChart.config.d.ts +1 -1
  291. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  292. package/dist/client/components/charts/AxisFormatControls.d.ts +4 -2
  293. package/dist/client/components/charts/BarChart.config.d.ts +1 -1
  294. package/dist/client/components/charts/BarChart.d.ts +1 -1
  295. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  296. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  297. package/dist/client/components/charts/BoxPlotChart.config.d.ts +1 -1
  298. package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
  299. package/dist/client/components/charts/BubbleChart.config.d.ts +1 -1
  300. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  301. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  302. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  303. package/dist/client/components/charts/CandlestickChart.config.d.ts +1 -1
  304. package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
  305. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  306. package/dist/client/components/charts/DataTable.config.d.ts +1 -1
  307. package/dist/client/components/charts/DataTable.d.ts +1 -1
  308. package/dist/client/components/charts/FunnelChart.config.d.ts +1 -1
  309. package/dist/client/components/charts/FunnelChart.d.ts +1 -1
  310. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  311. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  312. package/dist/client/components/charts/GaugeChart.config.d.ts +1 -1
  313. package/dist/client/components/charts/GaugeChart.d.ts +1 -1
  314. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  315. package/dist/client/components/charts/HeatMapChart.config.d.ts +1 -1
  316. package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
  317. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  318. package/dist/client/components/charts/KpiDelta.config.d.ts +1 -1
  319. package/dist/client/components/charts/KpiDelta.d.ts +1 -1
  320. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  321. package/dist/client/components/charts/KpiNumber.config.d.ts +1 -1
  322. package/dist/client/components/charts/KpiNumber.d.ts +1 -1
  323. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  324. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  325. package/dist/client/components/charts/KpiText.config.d.ts +1 -1
  326. package/dist/client/components/charts/KpiText.d.ts +1 -1
  327. package/dist/client/components/charts/LineChart.config.d.ts +1 -1
  328. package/dist/client/components/charts/LineChart.d.ts +1 -1
  329. package/dist/client/components/charts/MarkdownChart.config.d.ts +1 -1
  330. package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
  331. package/dist/client/components/charts/MeasureProfileChart.config.d.ts +1 -1
  332. package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
  333. package/dist/client/components/charts/PieChart.config.d.ts +1 -1
  334. package/dist/client/components/charts/PieChart.d.ts +1 -1
  335. package/dist/client/components/charts/RadarChart.config.d.ts +1 -1
  336. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  337. package/dist/client/components/charts/RadialBarChart.config.d.ts +1 -1
  338. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  339. package/dist/client/components/charts/RetentionCombinedChart.config.d.ts +1 -1
  340. package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
  341. package/dist/client/components/charts/RetentionHeatmap.config.d.ts +1 -1
  342. package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
  343. package/dist/client/components/charts/SankeyChart.config.d.ts +1 -1
  344. package/dist/client/components/charts/SankeyChart.d.ts +1 -1
  345. package/dist/client/components/charts/ScatterChart.config.d.ts +1 -1
  346. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  347. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  348. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  349. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  350. package/dist/client/components/charts/SunburstChart.config.d.ts +1 -1
  351. package/dist/client/components/charts/SunburstChart.d.ts +1 -1
  352. package/dist/client/components/charts/TreeMapChart.config.d.ts +1 -1
  353. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  354. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  355. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  356. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  357. package/dist/client/components/charts/WaterfallChart.config.d.ts +1 -1
  358. package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
  359. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  360. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  361. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  362. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  363. package/dist/client/components/charts/index.d.ts +21 -21
  364. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  365. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  366. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  367. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  368. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  369. package/dist/client/components/dashboard/DashboardContext.d.ts +6 -6
  370. package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
  371. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  372. package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
  373. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  374. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
  375. package/dist/client/components/dashboard/index.d.ts +7 -7
  376. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  377. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  378. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  379. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  380. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  381. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  382. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  383. package/dist/client/components/shared/DateRangeFilter.d.ts +1 -1
  384. package/dist/client/components/shared/FilterBuilder.d.ts +1 -1
  385. package/dist/client/components/shared/FilterGroup.d.ts +1 -1
  386. package/dist/client/components/shared/FilterItem.d.ts +1 -1
  387. package/dist/client/components/shared/FilterValueSelector.d.ts +1 -1
  388. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  389. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  390. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  391. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  392. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  393. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  394. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  395. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  396. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  397. package/dist/client/components/shared/types.d.ts +8 -8
  398. package/dist/client/components/shared/utils.d.ts +7 -46
  399. package/dist/client/components.d.ts +11 -11
  400. package/dist/client/components.js +3 -3
  401. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  402. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  403. package/dist/client/hooks/dashboard/layoutUtils.d.ts +1 -1
  404. package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
  405. package/dist/client/hooks/dashboard/useGridLayoutEngine.d.ts +1 -1
  406. package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +1 -1
  407. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  408. package/dist/client/hooks/queries/index.d.ts +9 -9
  409. package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +2 -2
  410. package/dist/client/hooks/queries/useCubeMetaQuery.d.ts +2 -2
  411. package/dist/client/hooks/queries/useDryRunQuery.d.ts +2 -2
  412. package/dist/client/hooks/queries/useExplainAI.d.ts +1 -1
  413. package/dist/client/hooks/queries/useExplainQuery.d.ts +1 -1
  414. package/dist/client/hooks/queries/useFlowQuery.d.ts +1 -1
  415. package/dist/client/hooks/queries/useFunnelQuery.d.ts +1 -1
  416. package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +1 -1
  417. package/dist/client/hooks/queries/useRetentionQuery.d.ts +1 -1
  418. package/dist/client/hooks/useAgentChat.d.ts +1 -1
  419. package/dist/client/hooks/useAnalysisAI.d.ts +4 -4
  420. package/dist/client/hooks/useAnalysisBuilderHook.d.ts +27 -27
  421. package/dist/client/hooks/useAnalysisChartDefaults.d.ts +4 -4
  422. package/dist/client/hooks/useAnalysisCombinedFields.d.ts +2 -2
  423. package/dist/client/hooks/useAnalysisInitialization.d.ts +1 -1
  424. package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +3 -3
  425. package/dist/client/hooks/useAnalysisQueryExecution.d.ts +7 -7
  426. package/dist/client/hooks/useAnalysisShare.d.ts +1 -1
  427. package/dist/client/hooks/useAnalysisUIState.d.ts +2 -2
  428. package/dist/client/hooks/useDashboardHook.d.ts +2 -2
  429. package/dist/client/hooks/useDataBrowser.d.ts +5 -5
  430. package/dist/client/hooks/useDrillInteraction.d.ts +1 -1
  431. package/dist/client/hooks/useTheme.d.ts +1 -1
  432. package/dist/client/hooks/useTranslation.d.ts +1 -1
  433. package/dist/client/hooks.d.ts +11 -11
  434. package/dist/client/hooks.js +3 -3
  435. package/dist/client/icons/defaultIcons.d.ts +1 -1
  436. package/dist/client/icons/index.d.ts +3 -3
  437. package/dist/client/icons/registry.d.ts +1 -1
  438. package/dist/client/icons.js +2 -2
  439. package/dist/client/index.d.ts +74 -74
  440. package/dist/client/index.js +816 -669
  441. package/dist/client/index.js.map +1 -1
  442. package/dist/client/providers/CubeApiProvider.d.ts +3 -3
  443. package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
  444. package/dist/client/providers/CubeMetaContext.d.ts +1 -1
  445. package/dist/client/providers/CubeProvider.d.ts +7 -7
  446. package/dist/client/providers/I18nProvider.d.ts +1 -1
  447. package/dist/client/providers.d.ts +4 -4
  448. package/dist/client/providers.js +3 -3
  449. package/dist/client/schema.d.ts +2 -2
  450. package/dist/client/schema.js +1 -1
  451. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  452. package/dist/client/shared/chartDefaults.d.ts +4 -4
  453. package/dist/client/shared/components/QueryAnalysisPanel.d.ts +1 -1
  454. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  455. package/dist/client/shared/index.d.ts +7 -7
  456. package/dist/client/shared/queryTransforms.d.ts +20 -0
  457. package/dist/client/shared/types.d.ts +1 -1
  458. package/dist/client/shared/utils.d.ts +4 -6
  459. package/dist/client/stores/analysisBuilderStore.d.ts +9 -9
  460. package/dist/client/stores/dashboardStore.d.ts +3 -3
  461. package/dist/client/stores/dataBrowserStore.d.ts +1 -1
  462. package/dist/client/stores/notebookStore.d.ts +1 -1
  463. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  464. package/dist/client/stores/slices/coreSlice.d.ts +3 -3
  465. package/dist/client/stores/slices/flowSlice.d.ts +3 -3
  466. package/dist/client/stores/slices/funnelSlice.d.ts +3 -3
  467. package/dist/client/stores/slices/index.d.ts +7 -7
  468. package/dist/client/stores/slices/querySlice.d.ts +3 -3
  469. package/dist/client/stores/slices/retentionSlice.d.ts +3 -3
  470. package/dist/client/stores/slices/uiSlice.d.ts +2 -2
  471. package/dist/client/styles.css +1 -1
  472. package/dist/client/types/analysisConfig.d.ts +4 -4
  473. package/dist/client/types/drill.d.ts +5 -5
  474. package/dist/client/types/flow.d.ts +2 -2
  475. package/dist/client/types/funnel.d.ts +1 -1
  476. package/dist/client/types/retention.d.ts +2 -2
  477. package/dist/client/types.d.ts +12 -12
  478. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  479. package/dist/client/utils/chartUtils.d.ts +1 -1
  480. package/dist/client/utils/configMigration.d.ts +2 -2
  481. package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
  482. package/dist/client/utils/exportXlsx.d.ts +2 -2
  483. package/dist/client/utils/filterUtils.d.ts +1 -1
  484. package/dist/client/utils/funnelExecution.d.ts +2 -2
  485. package/dist/client/utils/funnelValidation.d.ts +2 -2
  486. package/dist/client/utils/index.d.ts +10 -10
  487. package/dist/client/utils/joinReachability.d.ts +1 -1
  488. package/dist/client/utils/multiQueryUtils.d.ts +1 -1
  489. package/dist/client/utils/multiQueryValidation.d.ts +1 -1
  490. package/dist/client/utils/pivotUtils.d.ts +1 -1
  491. package/dist/client/utils/shareUtils.d.ts +1 -1
  492. package/dist/client/utils/thumbnail.d.ts +1 -1
  493. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  494. package/dist/client/utils.d.ts +2 -2
  495. package/dist/client/utils.js +6 -6
  496. package/dist/client-bundle-stats.html +1 -1
  497. package/dist/mcp-app/mcp-app.html +55 -55
  498. package/dist/server/{server/adapters → adapters}/base-adapter.d.ts +81 -36
  499. package/dist/server/adapters/databend-adapter.d.ts +63 -0
  500. package/dist/server/{server/adapters → adapters}/duckdb-adapter.d.ts +6 -60
  501. package/dist/server/adapters/mysql-adapter.d.ts +65 -0
  502. package/dist/server/adapters/postgres-adapter.d.ts +55 -0
  503. package/dist/server/{server/adapters → adapters}/singlestore-adapter.d.ts +1 -1
  504. package/dist/server/adapters/snowflake-adapter.d.ts +53 -0
  505. package/dist/server/{server/adapters → adapters}/sqlite-adapter.d.ts +13 -33
  506. package/dist/server/adapters/window-function-builder.d.ts +11 -0
  507. package/dist/server/{server/agent → agent}/chart-validation.d.ts +0 -5
  508. package/dist/server/agent/handler-steps.d.ts +37 -0
  509. package/dist/server/{server/agent → agent}/handler.d.ts +3 -3
  510. package/dist/server/agent/index.d.ts +11 -0
  511. package/dist/server/{server/agent → agent}/providers/anthropic.d.ts +1 -1
  512. package/dist/server/{server/agent → agent}/providers/factory.d.ts +1 -1
  513. package/dist/server/{server/agent → agent}/providers/google.d.ts +1 -1
  514. package/dist/server/agent/providers/index.d.ts +6 -0
  515. package/dist/server/{server/agent → agent}/providers/openai.d.ts +1 -1
  516. package/dist/server/{server/agent → agent}/system-prompt.d.ts +1 -1
  517. package/dist/server/{server/agent → agent}/tools.d.ts +4 -4
  518. package/dist/server/{server/agent → agent}/types.d.ts +1 -1
  519. package/dist/server/ai/discovery-helpers.d.ts +29 -0
  520. package/dist/server/{server/ai → ai}/discovery.d.ts +6 -2
  521. package/dist/server/{server/ai → ai}/index.d.ts +6 -6
  522. package/dist/server/ai/suggestion-helpers.d.ts +33 -0
  523. package/dist/server/{server/ai → ai}/suggestion.d.ts +2 -5
  524. package/dist/server/ai/validation-helpers.d.ts +21 -0
  525. package/dist/server/{server/ai → ai}/validation.d.ts +2 -5
  526. package/dist/server/builders/analysis-utils.d.ts +106 -0
  527. package/dist/server/{server/builders → builders}/comparison-query-builder.d.ts +2 -2
  528. package/dist/server/{server/builders → builders}/cte-builder.d.ts +48 -2
  529. package/dist/server/{server/builders → builders}/date-time-builder.d.ts +7 -2
  530. package/dist/server/builders/date-time-helpers.d.ts +34 -0
  531. package/dist/server/{server/builders → builders}/filter-builder.d.ts +5 -3
  532. package/dist/server/builders/filter-operators.d.ts +23 -0
  533. package/dist/server/builders/flow-query-builder.d.ts +136 -0
  534. package/dist/server/{server/builders → builders}/funnel-query-builder.d.ts +18 -7
  535. package/dist/server/{server/builders → builders}/group-by-builder.d.ts +13 -2
  536. package/dist/server/builders/index.d.ts +13 -0
  537. package/dist/server/{server/builders → builders}/measure-builder.d.ts +46 -3
  538. package/dist/server/{server/builders → builders}/retention-query-builder.d.ts +14 -16
  539. package/dist/server/cache-providers/index.d.ts +5 -0
  540. package/dist/server/{server/cache-providers → cache-providers}/memory.d.ts +1 -1
  541. package/dist/server/{server/cache-utils.d.ts → cache-utils.d.ts} +26 -6
  542. package/dist/server/compiler-metadata.d.ts +11 -0
  543. package/dist/server/{server/compiler.d.ts → compiler.d.ts} +9 -15
  544. package/dist/server/{server/cube-utils.d.ts → cube-utils.d.ts} +29 -4
  545. package/dist/server/{server/database-utils.d.ts → database-utils.d.ts} +1 -1
  546. package/dist/server/execution/annotation-builder.d.ts +12 -0
  547. package/dist/server/execution/filter-cache-preloader.d.ts +19 -0
  548. package/dist/server/execution/mode-router.d.ts +25 -0
  549. package/dist/server/execution/query-result-cache.d.ts +21 -0
  550. package/dist/server/execution/result-post-processor.d.ts +10 -0
  551. package/dist/server/{server/executor.d.ts → executor.d.ts} +35 -32
  552. package/dist/server/{server/executors → executors}/base-executor.d.ts +2 -2
  553. package/dist/server/{server/executors → executors}/databend-executor.d.ts +2 -2
  554. package/dist/server/{server/executors → executors}/duckdb-executor.d.ts +2 -2
  555. package/dist/server/executors/explain-utils.d.ts +28 -0
  556. package/dist/server/{server/executors → executors}/index.d.ts +9 -9
  557. package/dist/server/{server/executors → executors}/mysql-executor.d.ts +2 -2
  558. package/dist/server/{server/executors → executors}/postgres-executor.d.ts +2 -2
  559. package/dist/server/{server/executors → executors}/singlestore-executor.d.ts +2 -2
  560. package/dist/server/{server/executors → executors}/snowflake-executor.d.ts +2 -2
  561. package/dist/server/{server/executors → executors}/sqlite-executor.d.ts +2 -2
  562. package/dist/server/{server/explain → explain}/databend-parser.d.ts +1 -1
  563. package/dist/server/{server/explain → explain}/duckdb-parser.d.ts +1 -1
  564. package/dist/server/explain/explain-tree.d.ts +20 -0
  565. package/dist/server/explain/index.d.ts +9 -0
  566. package/dist/server/{server/explain → explain}/mysql-parser.d.ts +1 -1
  567. package/dist/server/{server/explain → explain}/postgres-parser.d.ts +1 -1
  568. package/dist/server/{server/explain → explain}/snowflake-parser.d.ts +1 -1
  569. package/dist/server/{server/explain → explain}/sqlite-parser.d.ts +1 -1
  570. package/dist/server/{server/filter-cache.d.ts → filter-cache.d.ts} +2 -2
  571. package/dist/server/{server/gap-filler.d.ts → gap-filler.d.ts} +8 -2
  572. package/dist/server/google-BOnRIN1w.cjs +2 -0
  573. package/dist/{adapters/google-CFYljAOF.js → server/google-CvKM9yVM.js} +83 -71
  574. package/dist/server/index.cjs +179 -211
  575. package/dist/server/index.d.ts +38 -2
  576. package/dist/server/index.js +6330 -6458
  577. package/dist/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  578. package/dist/server/logical-plan/cte-planner.d.ts +104 -0
  579. package/dist/server/logical-plan/filter-propagation.d.ts +44 -0
  580. package/dist/server/{server/logical-plan → logical-plan}/index.d.ts +11 -6
  581. package/dist/server/logical-plan/join-planner.d.ts +27 -0
  582. package/dist/server/{server/logical-plan → logical-plan}/logical-plan-builder.d.ts +5 -5
  583. package/dist/server/logical-plan/logical-planner.d.ts +39 -0
  584. package/dist/server/{server/logical-plan → logical-plan}/optimiser.d.ts +4 -2
  585. package/dist/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  586. package/dist/server/logical-plan/planner-utils.d.ts +20 -0
  587. package/dist/server/{server/logical-plan → logical-plan}/types.d.ts +18 -10
  588. package/dist/server/measure-classification.d.ts +40 -0
  589. package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  590. package/dist/server/openai-vXvLni8v.cjs +1 -0
  591. package/dist/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  592. package/dist/server/{server/physical-plan → physical-plan}/drizzle-sql-builder.d.ts +14 -3
  593. package/dist/server/physical-plan/index.d.ts +2 -0
  594. package/dist/server/{server/physical-plan → physical-plan}/processors/cte-processor.d.ts +2 -2
  595. package/dist/server/physical-plan/processors/index.d.ts +8 -0
  596. package/dist/server/{server/physical-plan → physical-plan}/processors/joins-processor.d.ts +2 -2
  597. package/dist/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  598. package/dist/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  599. package/dist/server/{server/physical-plan → physical-plan}/processors/predicates-processor.d.ts +2 -2
  600. package/dist/server/{server/physical-plan → physical-plan}/processors/selection-processor.d.ts +2 -2
  601. package/dist/server/{server/physical-plan → physical-plan}/processors/shared.d.ts +9 -4
  602. package/dist/server/{server/physical-plan → physical-plan}/processors/window-processor.d.ts +2 -2
  603. package/dist/server/query-handlers.d.ts +79 -0
  604. package/dist/server/query-modes.d.ts +28 -0
  605. package/dist/server/query-validator.d.ts +9 -0
  606. package/dist/server/{server/resolvers → resolvers}/calculated-measure-resolver.d.ts +6 -1
  607. package/dist/server/{server/resolvers → resolvers}/index.d.ts +2 -2
  608. package/dist/server/{server/resolvers → resolvers}/join-path-resolver.d.ts +7 -1
  609. package/dist/server/sql-format.d.ts +11 -0
  610. package/dist/server/{server/template-substitution.d.ts → template-substitution.d.ts} +1 -1
  611. package/dist/server/{server/types → types}/cache.d.ts +1 -1
  612. package/dist/server/{server/types → types}/cube.d.ts +22 -8
  613. package/dist/server/{server/types → types}/executor.d.ts +2 -2
  614. package/dist/server/{server/types → types}/flow.d.ts +7 -6
  615. package/dist/server/{server/types → types}/funnel.d.ts +1 -1
  616. package/dist/server/types/index.d.ts +11 -0
  617. package/dist/server/{server/types → types}/metadata.d.ts +1 -1
  618. package/dist/server/{server/types → types}/query.d.ts +4 -4
  619. package/dist/server/{server/types → types}/retention.d.ts +1 -1
  620. package/dist/server/{server/types → types}/utils.d.ts +1 -1
  621. package/dist/server/types/validation.d.ts +14 -0
  622. package/package.json +22 -7
  623. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  624. package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
  625. package/dist/adapters/locale-BPB7flIG.js +0 -8249
  626. package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
  627. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
  628. package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
  629. package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
  630. package/dist/adapters/utils-KV37IBIv.cjs +0 -128
  631. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
  632. package/dist/client/chunks/RetentionCombinedChart-BPkfcTa8.js.map +0 -1
  633. package/dist/client/chunks/RetentionHeatmap-DGzLzr7h.js.map +0 -1
  634. package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
  635. package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
  636. package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
  637. package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
  638. package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
  639. package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
  640. package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
  641. package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
  642. package/dist/client/chunks/chart-box-plot-DYKfyOI8.js.map +0 -1
  643. package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
  644. package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
  645. package/dist/client/chunks/chart-candlestick-Dwc92Mrj.js.map +0 -1
  646. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  647. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  648. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  649. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  650. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  651. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  652. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  653. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  654. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  655. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  656. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  657. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  658. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  659. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  660. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  661. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
  662. package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
  663. package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
  664. package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
  665. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
  666. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
  667. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
  668. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
  669. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
  670. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
  671. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
  672. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
  673. package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
  674. package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
  675. package/dist/client/chunks/chart-markdown-dgUetjyM.js.map +0 -1
  676. package/dist/client/chunks/chart-measure-profile-ClfpLs4q.js.map +0 -1
  677. package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
  678. package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
  679. package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
  680. package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
  681. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
  682. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
  683. package/dist/client/chunks/chart-sankey-M3XpO_ah.js.map +0 -1
  684. package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
  685. package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
  686. package/dist/client/chunks/chart-sunburst-A_u6lqlS.js.map +0 -1
  687. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
  688. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
  689. package/dist/client/chunks/chart-waterfall-BuhMoagf.js.map +0 -1
  690. package/dist/client/chunks/charts-core-jRtb0S2M.js.map +0 -1
  691. package/dist/client/chunks/schema-visualization-DE09kQE3.js.map +0 -1
  692. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
  693. package/dist/client/chunks/useExplainAI-DlnXWdmz.js.map +0 -1
  694. package/dist/client/chunks/utils-CTKNaXS8.js.map +0 -1
  695. package/dist/server/google-DUlXeeDA.cjs +0 -2
  696. package/dist/server/openai-D_U4V0kT.cjs +0 -1
  697. package/dist/server/server/adapters/databend-adapter.d.ts +0 -114
  698. package/dist/server/server/adapters/mysql-adapter.d.ts +0 -122
  699. package/dist/server/server/adapters/postgres-adapter.d.ts +0 -119
  700. package/dist/server/server/adapters/snowflake-adapter.d.ts +0 -116
  701. package/dist/server/server/agent/index.d.ts +0 -11
  702. package/dist/server/server/agent/providers/index.d.ts +0 -6
  703. package/dist/server/server/builders/flow-query-builder.d.ts +0 -109
  704. package/dist/server/server/builders/index.d.ts +0 -13
  705. package/dist/server/server/cache-providers/index.d.ts +0 -5
  706. package/dist/server/server/explain/index.d.ts +0 -9
  707. package/dist/server/server/index.d.ts +0 -36
  708. package/dist/server/server/logical-plan/logical-planner.d.ts +0 -232
  709. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +0 -50
  710. package/dist/server/server/physical-plan/index.d.ts +0 -2
  711. package/dist/server/server/physical-plan/processors/index.d.ts +0 -6
  712. package/dist/server/server/types/index.d.ts +0 -11
  713. /package/dist/server/{server/agent → agent}/providers/types.d.ts +0 -0
  714. /package/dist/server/{server/ai → ai}/mcp-prompts.d.ts +0 -0
  715. /package/dist/server/{server/ai → ai}/query-schema.d.ts +0 -0
  716. /package/dist/server/{server/ai → ai}/schemas.d.ts +0 -0
  717. /package/dist/server/{server/prompts → prompts}/explain-analysis-prompt.d.ts +0 -0
  718. /package/dist/server/{server/prompts → prompts}/index.d.ts +0 -0
  719. /package/dist/server/{server/prompts → prompts}/single-step-prompt.d.ts +0 -0
  720. /package/dist/server/{server/prompts → prompts}/step0-validation-prompt.d.ts +0 -0
  721. /package/dist/server/{server/prompts → prompts}/step1-shape-prompt.d.ts +0 -0
  722. /package/dist/server/{server/prompts → prompts}/step2-complete-prompt.d.ts +0 -0
  723. /package/dist/server/{server/prompts → prompts}/types.d.ts +0 -0
  724. /package/dist/server/{server/types → types}/analysis.d.ts +0 -0
  725. /package/dist/server/{server/types → types}/core.d.ts +0 -0
@@ -1,29 +1,30 @@
1
- import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-CPIYyeuD.js";
2
- import { A as a, B as o, C as s, D as c, E as l, F as u, G as d, H as f, J as p, K as m, M as h, N as g, O as _, P as v, R as y, S as b, T as x, V as S, X as C, Y as w, b as T, c as E, j as D, k as O, o as k, q as A, s as j, v as M, w as N, x as P, y as F, z as I } from "./chunks/chart-data-table-BO4sXsim.js";
3
- import { S as L, _ as R, b as z, c as ee, d as B, f as te, g as V, h as ne, l as re, m as ie, o as ae, p as oe, s as se, v as ce, y as le } from "./chunks/useDirtyStateTracking-CoeQbprt.js";
4
- import { a as ue, i as de, n as fe, o as pe, r as me, t as he } from "./chunks/useExplainAI-DlnXWdmz.js";
5
- import { a as ge, c as _e, i as ve, l as ye, o as be, r as xe, s as Se } from "./chunks/chart-funnel-DnWRsmnS.js";
6
- import { n as Ce, r as we } from "./chunks/chart-sankey-M3XpO_ah.js";
7
- import { n as Te, t as Ee } from "./chunks/providers-DwQCKdGW.js";
8
- import { P as De, _ as Oe, c as ke, d as Ae, f as je, g as Me, h as Ne, k as H, l as Pe, m as Fe, p as Ie, u as Le } from "./chunks/chart-activity-grid-DmruKPab.js";
9
- import { $ as Re, A as ze, B as Be, D as Ve, E as He, F as Ue, G as We, H as Ge, I as Ke, J as qe, K as Je, L as Ye, M as Xe, N as Ze, O as Qe, P as $e, R as et, S as tt, T as nt, U as rt, V as it, W as at, X as ot, Y as st, Z as ct, _t as lt, a as ut, at as dt, c as ft, ct as pt, dt as mt, et as ht, f as gt, ft as _t, g as vt, gt as yt, h as bt, ht as xt, i as St, it as Ct, j as wt, lt as Tt, m as Et, mt as Dt, n as Ot, nt as kt, o as At, ot as jt, p as Mt, pt as Nt, q as Pt, r as Ft, rt as It, st as Lt, t as Rt, tt as zt, ut as Bt, vt as Vt, w as Ht, z as Ut } from "./chunks/DashboardEditModal-CjCIAT-J.js";
10
- import { u as Wt } from "./chunks/chart-area-DHCPM4Em.js";
11
- import { f as Gt, i as Kt, t as qt } from "./chunks/utils-CTKNaXS8.js";
12
- import { A as Jt, D as Yt, E as Xt, F as Zt, I as Qt, M as $t, O as en, P as tn, S as nn, T as rn, _ as an, a as on, b as sn, c as cn, d as ln, f as un, g as dn, h as fn, i as pn, j as mn, k as hn, l as gn, n as _n, o as vn, p as yn, r as bn, s as xn, t as Sn, v as Cn, w as wn, x as Tn, y as En } from "./chunks/analysis-builder-shared-CYVwSPqt.js";
13
- import { r as Dn } from "./chunks/chart-markdown-dgUetjyM.js";
14
- import { t as On } from "./chunks/useNotebookLayout-Ck3Z3uzg.js";
15
- import { n as kn } from "./chunks/chart-bubble-CfqiB538.js";
16
- import U, { createContext as An, useCallback as W, useContext as jn, useEffect as G, useMemo as K, useRef as q, useState as J } from "react";
17
- import { Fragment as Y, jsx as X, jsxs as Z } from "react/jsx-runtime";
1
+ import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-DSpR0IW6.js";
2
+ import { n as a, t as o } from "./chunks/providers-DwQCKdGW.js";
3
+ import { A as s, B as c, C as l, E as u, I as d, L as f, M as p, N as m, R as h, S as g, T as _, V as v, _ as y, b, c as x, g as S, j as C, k as w, l as T, s as E, v as D, w as O, x as k, y as A, z as j } from "./chunks/chart-data-table-CKauQXme.js";
4
+ import { n as M, r as N } from "./chunks/chart-sankey-DjrvKw6K.js";
5
+ import { $ as P, B as F, C as I, D as L, E as ee, F as te, G as R, H as ne, I as re, J as ie, K as ae, L as oe, M as se, N as ce, O as le, P as ue, Q as de, R as fe, T as pe, U as me, V as he, W as ge, X as _e, Y as ve, Z as ye, _ as be, _t as xe, a as Se, at as Ce, c as we, ct as Te, dt as Ee, f as De, ft as Oe, gt as ke, h as Ae, ht as je, i as Me, it as Ne, j as Pe, k as Fe, lt as Ie, m as Le, mt as Re, n as ze, nt as Be, o as Ve, ot as He, p as Ue, pt as We, q as Ge, r as Ke, rt as qe, st as Je, t as Ye, tt as Xe, ut as Ze, vt as Qe, yt as $e, z as et } from "./chunks/DashboardEditModal-okVfH8ZK.js";
6
+ import { P as z, S as tt, _ as nt, b as rt, g as it, h as at, m as ot, p as st, v as ct, x as lt, y as ut, z as dt } from "./chunks/chart-activity-grid-DX0SJbxs.js";
7
+ import { S as ft, _ as pt, b as mt, c as ht, d as gt, f as _t, g as vt, h as yt, l as bt, m as xt, o as St, p as Ct, s as wt, v as Tt, y as Et } from "./chunks/useDirtyStateTracking-MbpxH_v6.js";
8
+ import { a as Dt, i as Ot, n as kt, o as At, r as jt, t as Mt } from "./chunks/useExplainAI-evnZkjCY.js";
9
+ import { a as Nt, c as Pt, i as Ft, l as It, o as Lt, r as Rt, s as zt } from "./chunks/chart-funnel-CToKSBaL.js";
10
+ import { a as Bt, i as Vt, n as Ht, o as Ut, r as Wt, s as Gt, t as Kt } from "./chunks/charts-loader-DdTeCeNo.js";
11
+ import { F as B } from "./chunks/chart-area-of01_62R.js";
12
+ import { f as qt, i as Jt, t as Yt } from "./chunks/utils-3P6z1vz5.js";
13
+ import { A as Xt, D as Zt, E as Qt, F as $t, I as en, M as tn, O as nn, P as rn, S as an, T as on, _ as sn, a as cn, b as ln, c as un, d as dn, f as fn, g as pn, h as mn, i as hn, j as gn, k as _n, l as vn, n as yn, o as bn, p as xn, r as Sn, s as Cn, t as wn, v as Tn, w as En, x as Dn, y as On } from "./chunks/analysis-builder-shared-BVK4TYfR.js";
14
+ import { r as kn } from "./chunks/chart-markdown-CV75S_zL.js";
15
+ import { t as An } from "./chunks/useNotebookLayout-Ck3Z3uzg.js";
16
+ import { n as jn } from "./chunks/chart-bubble-B2he1--4.js";
17
+ import V, { createContext as Mn, useCallback as H, useContext as Nn, useEffect as U, useMemo as W, useRef as G, useState as K } from "react";
18
+ import { Fragment as q, jsx as J, jsxs as Y } from "react/jsx-runtime";
18
19
  //#region src/client/stores/notebookStore.tsx
19
- var Mn = () => ({
20
+ var Pn = () => ({
20
21
  blocks: [],
21
22
  messages: [],
22
23
  isStreaming: !1,
23
24
  sessionId: null,
24
25
  inputValue: ""
25
26
  });
26
- function Nn(e, t) {
27
+ function Fn(e, t) {
27
28
  return {
28
29
  addBlock: (t) => e((e) => ({ blocks: [...e.blocks, t] })),
29
30
  removeBlock: (t) => e((e) => ({ blocks: e.blocks.filter((e) => e.id !== t) })),
@@ -87,38 +88,38 @@ function Nn(e, t) {
87
88
  blocks: t.blocks || [],
88
89
  messages: t.messages || []
89
90
  }),
90
- reset: () => e(Mn())
91
+ reset: () => e(Pn())
91
92
  };
92
93
  }
93
- function Pn() {
94
- let t = Mn();
94
+ function In() {
95
+ let t = Pn();
95
96
  return i()(r(e((e, n) => ({
96
97
  ...t,
97
- ...Nn(e, n)
98
+ ...Fn(e, n)
98
99
  })), { name: "NotebookStore" }));
99
100
  }
100
- var Fn = An(null);
101
- function In({ children: e, initialConfig: t }) {
102
- let n = q(null);
101
+ var Ln = Mn(null);
102
+ function Rn({ children: e, initialConfig: t }) {
103
+ let n = G(null);
103
104
  if (!n.current) {
104
- let e = Pn();
105
+ let e = In();
105
106
  t && e.getState().load(t), n.current = e;
106
107
  }
107
- return /* @__PURE__ */ X(Fn.Provider, {
108
+ return /* @__PURE__ */ J(Ln.Provider, {
108
109
  value: n.current,
109
110
  children: e
110
111
  });
111
112
  }
112
- function Q(e) {
113
- let t = jn(Fn);
113
+ function X(e) {
114
+ let t = Nn(Ln);
114
115
  if (!t) throw Error("useNotebookStore must be used within NotebookStoreProvider");
115
116
  return n(t, e);
116
117
  }
117
- var Ln = (e) => e.blocks, Rn = (e) => e.messages, zn = (e) => e.isStreaming, Bn = (e) => e.sessionId, Vn = (e) => e.inputValue, Hn = (e) => ({
118
+ var zn = (e) => e.blocks, Bn = (e) => e.messages, Vn = (e) => e.isStreaming, Hn = (e) => e.sessionId, Un = (e) => e.inputValue, Wn = (e) => ({
118
119
  messages: e.messages,
119
120
  isStreaming: e.isStreaming,
120
121
  inputValue: e.inputValue
121
- }), Un = (e) => ({
122
+ }), Gn = (e) => ({
122
123
  addMessage: e.addMessage,
123
124
  appendToLastAssistantMessage: e.appendToLastAssistantMessage,
124
125
  setLastAssistantError: e.setLastAssistantError,
@@ -127,29 +128,29 @@ var Ln = (e) => e.blocks, Rn = (e) => e.messages, zn = (e) => e.isStreaming, Bn
127
128
  setIsStreaming: e.setIsStreaming,
128
129
  setInputValue: e.setInputValue,
129
130
  setSessionId: e.setSessionId
130
- }), Wn = (e) => ({
131
+ }), Kn = (e) => ({
131
132
  addBlock: e.addBlock,
132
133
  removeBlock: e.removeBlock,
133
134
  moveBlock: e.moveBlock,
134
135
  updateBlock: e.updateBlock
135
- }), Gn = {
136
+ }), Z = {
136
137
  width: "16px",
137
138
  height: "16px",
138
139
  color: "currentColor"
139
- }, Kn = c("chevronUp"), qn = c("chevronDown"), Jn = c("edit"), Yn = c("delete"), Xn = U.memo(function({ block: e, colorPalette: t, onRemove: n, onMoveUp: r, onMoveDown: i, onEdit: a, isFirst: o, isLast: s }) {
140
- let [c, l] = J(null), u = W((e) => {
140
+ }, qn = D("chevronUp"), Jn = D("chevronDown"), Yn = D("edit"), Xn = D("delete"), Zn = V.memo(function({ block: e, colorPalette: t, onRemove: n, onMoveUp: r, onMoveDown: i, onEdit: a, isFirst: o, isLast: s }) {
141
+ let [c, l] = K(null), u = H((e) => {
141
142
  l(e);
142
143
  }, []);
143
- return /* @__PURE__ */ Z("div", {
144
+ return /* @__PURE__ */ Y("div", {
144
145
  className: "dc:relative dc:mb-4 bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
145
- children: [/* @__PURE__ */ Z("div", {
146
+ children: [/* @__PURE__ */ Y("div", {
146
147
  className: "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-1.5 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
147
- children: [/* @__PURE__ */ Z("div", {
148
+ children: [/* @__PURE__ */ Y("div", {
148
149
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-1 dc:min-w-0",
149
- children: [/* @__PURE__ */ X("h3", {
150
+ children: [/* @__PURE__ */ J("h3", {
150
151
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
151
152
  children: e.title || "Untitled"
152
- }), c && /* @__PURE__ */ X(Qe, {
153
+ }), c && /* @__PURE__ */ J(Fe, {
153
154
  chartConfig: c.chartConfig,
154
155
  displayConfig: c.displayConfig,
155
156
  queryObject: c.queryObject,
@@ -157,38 +158,38 @@ var Ln = (e) => e.blocks, Rn = (e) => e.messages, zn = (e) => e.isStreaming, Bn
157
158
  chartType: c.chartType,
158
159
  cacheInfo: c.cacheInfo ?? void 0
159
160
  })]
160
- }), /* @__PURE__ */ Z("div", {
161
+ }), /* @__PURE__ */ Y("div", {
161
162
  className: "dc:flex dc:items-center dc:gap-1 dc:shrink-0 dc:ml-4 dc:-mr-2",
162
163
  children: [
163
- !o && /* @__PURE__ */ X("button", {
164
+ !o && /* @__PURE__ */ J("button", {
164
165
  onClick: () => r(e.id),
165
166
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
166
167
  title: "Move up",
167
- children: /* @__PURE__ */ X(Kn, { style: Gn })
168
+ children: /* @__PURE__ */ J(qn, { style: Z })
168
169
  }),
169
- !s && /* @__PURE__ */ X("button", {
170
+ !s && /* @__PURE__ */ J("button", {
170
171
  onClick: () => i(e.id),
171
172
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
172
173
  title: "Move down",
173
- children: /* @__PURE__ */ X(qn, { style: Gn })
174
+ children: /* @__PURE__ */ J(Jn, { style: Z })
174
175
  }),
175
- /* @__PURE__ */ X("button", {
176
+ /* @__PURE__ */ J("button", {
176
177
  onClick: () => a(e),
177
178
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
178
179
  title: "Edit visualization",
179
- children: /* @__PURE__ */ X(Jn, { style: Gn })
180
+ children: /* @__PURE__ */ J(Yn, { style: Z })
180
181
  }),
181
- /* @__PURE__ */ X("button", {
182
+ /* @__PURE__ */ J("button", {
182
183
  onClick: () => n(e.id),
183
184
  className: "dc:p-1 dc:mr-0.5 dc:bg-transparent dc:border-none dc:rounded-sm dc:cursor-pointer dc:hover:bg-dc-danger-bg text-dc-danger dc:transition-colors",
184
185
  title: "Remove",
185
- children: /* @__PURE__ */ X(Yn, { style: Gn })
186
+ children: /* @__PURE__ */ J(Xn, { style: Z })
186
187
  })
187
188
  ]
188
189
  })]
189
- }), /* @__PURE__ */ X("div", {
190
+ }), /* @__PURE__ */ J("div", {
190
191
  className: "dc:flex-1 dc:min-h-0",
191
- children: /* @__PURE__ */ X(qe, {
192
+ children: /* @__PURE__ */ J(ve, {
192
193
  query: e.query,
193
194
  chartType: e.chartType,
194
195
  chartConfig: e.chartConfig,
@@ -200,15 +201,15 @@ var Ln = (e) => e.blocks, Rn = (e) => e.messages, zn = (e) => e.isStreaming, Bn
200
201
  })
201
202
  })]
202
203
  });
203
- }), Zn = {
204
+ }), Q = {
204
205
  width: "16px",
205
206
  height: "16px",
206
207
  color: "currentColor"
207
- }, Qn = c("documentText"), $n = c("chevronUp"), er = c("chevronDown"), tr = c("delete");
208
+ }, Qn = D("documentText"), $n = D("chevronUp"), er = D("chevronDown"), tr = D("delete");
208
209
  function nr({ children: e, ...t }) {
209
- return /* @__PURE__ */ X("div", {
210
+ return /* @__PURE__ */ J("div", {
210
211
  className: "dc:overflow-x-auto dc:my-2",
211
- children: /* @__PURE__ */ X("table", {
212
+ children: /* @__PURE__ */ J("table", {
212
213
  ...t,
213
214
  children: e
214
215
  })
@@ -240,86 +241,91 @@ var rr = { overrides: {
240
241
  th: { props: { className: "dc:px-3 dc:py-2 dc:text-left dc:font-semibold dc:text-xs text-dc-text-secondary dc:uppercase dc:tracking-wider border-dc-border dc:border-b" } },
241
242
  td: { props: { className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text border-dc-border dc:border-b" } },
242
243
  tr: { props: { className: "dc:hover:opacity-80" } }
243
- } }, ir = U.memo(function({ block: e, onRemove: t, onMoveUp: n, onMoveDown: r, isFirst: i, isLast: a }) {
244
- return /* @__PURE__ */ Z("div", {
244
+ } }, ir = V.memo(function({ block: e, onRemove: t, onMoveUp: n, onMoveDown: r, isFirst: i, isLast: a }) {
245
+ return /* @__PURE__ */ Y("div", {
245
246
  className: "dc:relative dc:mb-4 bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
246
- children: [/* @__PURE__ */ Z("div", {
247
+ children: [/* @__PURE__ */ Y("div", {
247
248
  className: "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-1.5 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
248
- children: [/* @__PURE__ */ Z("div", {
249
+ children: [/* @__PURE__ */ Y("div", {
249
250
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-1 dc:min-w-0",
250
- children: [/* @__PURE__ */ X(Qn, { style: Zn }), /* @__PURE__ */ X("h3", {
251
+ children: [/* @__PURE__ */ J(Qn, { style: Q }), /* @__PURE__ */ J("h3", {
251
252
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
252
253
  children: e.title || "Markdown"
253
254
  })]
254
- }), /* @__PURE__ */ Z("div", {
255
+ }), /* @__PURE__ */ Y("div", {
255
256
  className: "dc:flex dc:items-center dc:gap-1 dc:shrink-0 dc:ml-4 dc:-mr-2",
256
257
  children: [
257
- !i && /* @__PURE__ */ X("button", {
258
+ !i && /* @__PURE__ */ J("button", {
258
259
  onClick: () => n(e.id),
259
260
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
260
261
  title: "Move up",
261
- children: /* @__PURE__ */ X($n, { style: Zn })
262
+ children: /* @__PURE__ */ J($n, { style: Q })
262
263
  }),
263
- !a && /* @__PURE__ */ X("button", {
264
+ !a && /* @__PURE__ */ J("button", {
264
265
  onClick: () => r(e.id),
265
266
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
266
267
  title: "Move down",
267
- children: /* @__PURE__ */ X(er, { style: Zn })
268
+ children: /* @__PURE__ */ J(er, { style: Q })
268
269
  }),
269
- /* @__PURE__ */ X("button", {
270
+ /* @__PURE__ */ J("button", {
270
271
  onClick: () => t(e.id),
271
272
  className: "dc:p-1 dc:mr-0.5 dc:bg-transparent dc:border-none dc:rounded-sm dc:cursor-pointer dc:hover:bg-dc-danger-bg text-dc-danger dc:transition-colors",
272
273
  title: "Remove",
273
- children: /* @__PURE__ */ X(tr, { style: Zn })
274
+ children: /* @__PURE__ */ J(tr, { style: Q })
274
275
  })
275
276
  ]
276
277
  })]
277
- }), /* @__PURE__ */ X("div", {
278
+ }), /* @__PURE__ */ J("div", {
278
279
  className: "dc:p-4 dc:min-w-0 dc:overflow-hidden",
279
- children: /* @__PURE__ */ X(Dn, {
280
+ children: /* @__PURE__ */ J(kn, {
280
281
  options: rr,
281
282
  children: e.content
282
283
  })
283
284
  })]
284
285
  });
285
- }), ar = U.memo(function({ colorPalette: e }) {
286
- let { t: n } = H(), r = e ?? Ht(), i = Q(Ln), { removeBlock: a, moveBlock: o, updateBlock: s } = Q(t(Wn)), c = q(null), [l, u] = J(null), d = q(i.length);
287
- G(() => {
286
+ });
287
+ //#endregion
288
+ //#region src/client/components/AgenticNotebook/NotebookCanvas.tsx
289
+ function ar(e) {
290
+ let { analysisConfig: t } = Xe(e);
291
+ if (!t) return null;
292
+ let n = t.charts[t.analysisType];
293
+ return {
294
+ title: e.title,
295
+ query: JSON.stringify(t.query),
296
+ chartType: n?.chartType || "bar",
297
+ chartConfig: n?.chartConfig,
298
+ displayConfig: n?.displayConfig
299
+ };
300
+ }
301
+ var or = V.memo(function({ colorPalette: e }) {
302
+ let { t: n } = z(), r = e ?? pe(), i = X(zn), { removeBlock: a, moveBlock: o, updateBlock: s } = X(t(Kn)), c = G(null), [l, u] = K(null), d = G(i.length);
303
+ U(() => {
288
304
  i.length > d.current && c.current?.scrollIntoView({ behavior: "smooth" }), d.current = i.length;
289
305
  }, [i.length]);
290
- let f = W((e) => a(e), [a]), p = W((e) => o(e, "up"), [o]), m = W((e) => o(e, "down"), [o]), h = W((e) => u(e), []), g = W((e) => {
306
+ let f = H((e) => a(e), [a]), p = H((e) => o(e, "up"), [o]), m = H((e) => o(e, "down"), [o]), h = H((e) => u(e), []), g = H((e) => {
291
307
  if (!l) return;
292
- let { analysisConfig: t } = Re(e);
293
- if (t) {
294
- let n = t.charts[t.analysisType];
295
- s(l.id, {
296
- title: e.title,
297
- query: JSON.stringify(t.query),
298
- chartType: n?.chartType || "bar",
299
- chartConfig: n?.chartConfig,
300
- displayConfig: n?.displayConfig
301
- });
302
- }
303
- u(null);
308
+ let t = ar(e);
309
+ t && s(l.id, t), u(null);
304
310
  }, [l, s]);
305
- return i.length === 0 ? /* @__PURE__ */ X("div", {
311
+ return i.length === 0 ? /* @__PURE__ */ J("div", {
306
312
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
307
- children: /* @__PURE__ */ Z("div", {
313
+ children: /* @__PURE__ */ Y("div", {
308
314
  className: "dc:text-center dc:max-w-sm dc:px-6",
309
- children: [/* @__PURE__ */ X("h3", {
315
+ children: [/* @__PURE__ */ J("h3", {
310
316
  className: "dc:text-base dc:font-semibold text-dc-text dc:mb-2",
311
317
  children: n("notebook.canvas.emptyTitle")
312
- }), /* @__PURE__ */ X("p", {
318
+ }), /* @__PURE__ */ J("p", {
313
319
  className: "dc:text-sm text-dc-text-secondary",
314
320
  children: n("notebook.canvas.emptyDescription")
315
321
  })]
316
322
  })
317
- }) : /* @__PURE__ */ Z("div", {
323
+ }) : /* @__PURE__ */ Y("div", {
318
324
  className: "dc:h-full dc:overflow-y-auto dc:p-4",
319
325
  children: [
320
326
  i.map((e, t) => {
321
327
  let n = t === 0, a = t === i.length - 1;
322
- return e.type === "portlet" ? /* @__PURE__ */ X(Xn, {
328
+ return e.type === "portlet" ? /* @__PURE__ */ J(Zn, {
323
329
  block: e,
324
330
  colorPalette: r,
325
331
  onRemove: f,
@@ -328,7 +334,7 @@ var rr = { overrides: {
328
334
  onEdit: h,
329
335
  isFirst: n,
330
336
  isLast: a
331
- }, e.id) : e.type === "markdown" ? /* @__PURE__ */ X(ir, {
337
+ }, e.id) : e.type === "markdown" ? /* @__PURE__ */ J(ir, {
332
338
  block: e,
333
339
  onRemove: f,
334
340
  onMoveUp: p,
@@ -337,8 +343,8 @@ var rr = { overrides: {
337
343
  isLast: a
338
344
  }, e.id) : null;
339
345
  }),
340
- /* @__PURE__ */ X("div", { ref: c }),
341
- /* @__PURE__ */ X(ft, {
346
+ /* @__PURE__ */ J("div", { ref: c }),
347
+ /* @__PURE__ */ J(we, {
342
348
  isOpen: !!l,
343
349
  onClose: () => u(null),
344
350
  onSave: g,
@@ -362,143 +368,14 @@ var rr = { overrides: {
362
368
  });
363
369
  });
364
370
  //#endregion
365
- //#region src/client/hooks/useAgentChat.ts
366
- function or(e) {
367
- if (e.startsWith("{") || e.includes("\"type\":\"error\"")) try {
368
- let t = JSON.parse(e.replace(/^Error:\s*/, ""));
369
- return {
370
- overloaded_error: "The AI service is temporarily busy. Please try again in a moment.",
371
- rate_limit_error: "Too many requests. Please wait a moment and try again.",
372
- api_error: "The AI service encountered an error. Please try again.",
373
- authentication_error: "Authentication failed. Please check your configuration."
374
- }[t.error?.type || t.type || ""] || "The AI service encountered an error. Please try again.";
375
- } catch {
376
- return "The AI service encountered an error. Please try again.";
377
- }
378
- if (e.startsWith("Agent request failed:")) {
379
- let t = e.match(/\d+/)?.[0];
380
- return t === "429" ? "Too many requests. Please wait a moment and try again." : t === "503" || t === "529" ? "The AI service is temporarily busy. Please try again in a moment." : "The AI service is temporarily unavailable. Please try again.";
381
- }
382
- return e;
383
- }
371
+ //#region src/client/components/AgenticNotebook/chatMessageParts.tsx
384
372
  function sr(e) {
385
- let { agentEndpoint: t, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a } = e, { cubeApi: o } = p(), s = q(null), [c, l] = J(!1), u = q(e);
386
- return u.current = e, {
387
- sendMessage: W(async (e, c, d) => {
388
- function f(e) {
389
- let t = u.current;
390
- switch (e.type) {
391
- case "text_delta":
392
- t.onTextDelta(e.data);
393
- break;
394
- case "tool_use_start":
395
- t.onToolStart(e.data.id, e.data.name, e.data.input);
396
- break;
397
- case "tool_use_result":
398
- t.onToolResult(e.data.id, e.data.name, e.data.result, e.data.isError);
399
- break;
400
- case "add_portlet":
401
- t.onAddPortlet({
402
- ...e.data,
403
- type: "portlet"
404
- });
405
- break;
406
- case "add_markdown":
407
- t.onAddMarkdown({
408
- ...e.data,
409
- type: "markdown"
410
- });
411
- break;
412
- case "dashboard_saved":
413
- t.onDashboardSaved?.(e.data);
414
- break;
415
- case "turn_complete":
416
- t.onTurnComplete?.();
417
- break;
418
- case "done":
419
- t.onDone(e.data.sessionId, e.data.traceId);
420
- break;
421
- case "error":
422
- t.onError(e.data.message);
423
- break;
424
- }
425
- }
426
- s.current && s.current.abort();
427
- let p = new AbortController();
428
- s.current = p, l(!0);
429
- try {
430
- let s = t || `${o.apiUrl || "/cubejs-api/v1"}/agent/chat`, l = {
431
- "Content-Type": "application/json",
432
- ...o.headers
433
- };
434
- n && (l["X-Agent-Api-Key"] = n), r && (l["X-Agent-Provider"] = r), i && (l["X-Agent-Model"] = i), a && (l["X-Agent-Provider-Endpoint"] = a);
435
- let u = await fetch(s, {
436
- method: "POST",
437
- headers: l,
438
- credentials: o.credentials ?? "include",
439
- body: JSON.stringify({
440
- message: e,
441
- ...c ? { sessionId: c } : {},
442
- ...d && d.length > 0 ? { history: d } : {}
443
- }),
444
- signal: p.signal
445
- });
446
- if (!u.ok) {
447
- let e = await u.json().catch(() => ({}));
448
- throw Error(e.error || `Agent request failed: ${u.status}`);
449
- }
450
- if (!u.body) throw Error("No response body received");
451
- let m = u.body.getReader(), h = new TextDecoder(), g = "";
452
- for (;;) {
453
- let { done: e, value: t } = await m.read();
454
- if (e) break;
455
- g += h.decode(t, { stream: !0 });
456
- let n = g.split("\n\n");
457
- g = n.pop() || "";
458
- for (let e of n) {
459
- let t = e.trim().split("\n");
460
- for (let e of t) if (e.startsWith("data: ")) try {
461
- f(JSON.parse(e.slice(6)));
462
- } catch {}
463
- }
464
- }
465
- if (g.trim()) {
466
- let e = g.trim().split("\n");
467
- for (let t of e) if (t.startsWith("data: ")) try {
468
- f(JSON.parse(t.slice(6)));
469
- } catch {}
470
- }
471
- } catch (e) {
472
- if (e.name !== "AbortError") {
473
- let t = e instanceof Error ? e.message : "Stream failed";
474
- u.current.onError(or(t));
475
- }
476
- } finally {
477
- l(!1), s.current = null;
478
- }
479
- }, [
480
- o,
481
- t,
482
- n,
483
- r,
484
- i,
485
- a
486
- ]),
487
- isStreaming: c,
488
- abort: W(() => {
489
- s.current && (s.current.abort(), s.current = null, l(!1));
490
- }, [])
491
- };
492
- }
493
- //#endregion
494
- //#region src/client/components/AgenticNotebook/ChatMessage.tsx
495
- function cr(e) {
496
373
  let t = [], n = e, r = 0;
497
374
  for (; n;) {
498
375
  let e = n.match(/^(.*?)`([^`]+)`(.*)$/);
499
376
  if (e) {
500
377
  let [, i, a, o] = e;
501
- i && t.push(/* @__PURE__ */ X("span", { children: i }, r++)), t.push(/* @__PURE__ */ X("code", {
378
+ i && t.push(/* @__PURE__ */ J("span", { children: i }, r++)), t.push(/* @__PURE__ */ J("code", {
502
379
  className: "dc:px-1 dc:py-0.5 dc:rounded dc:text-xs bg-dc-surface dc:font-mono",
503
380
  children: a
504
381
  }, r++)), n = o;
@@ -507,95 +384,146 @@ function cr(e) {
507
384
  let i = n.match(/^(.*?)\*\*([^*]+)\*\*(.*)$/);
508
385
  if (i) {
509
386
  let [, e, a, o] = i;
510
- e && t.push(/* @__PURE__ */ X("span", { children: e }, r++)), t.push(/* @__PURE__ */ X("strong", {
387
+ e && t.push(/* @__PURE__ */ J("span", { children: e }, r++)), t.push(/* @__PURE__ */ J("strong", {
511
388
  className: "dc:font-semibold",
512
389
  children: a
513
390
  }, r++)), n = o;
514
391
  continue;
515
392
  }
516
- t.push(/* @__PURE__ */ X("span", { children: n }, r));
393
+ t.push(/* @__PURE__ */ J("span", { children: n }, r));
517
394
  break;
518
395
  }
519
396
  return t;
520
397
  }
521
- var lr = {
398
+ var cr = {
522
399
  discover_cubes: "Discovering cubes",
523
400
  get_cube_metadata: "Reading metadata",
524
401
  execute_query: "Executing query",
525
402
  add_portlet: "Adding visualization",
526
403
  add_markdown: "Adding explanation"
527
404
  };
405
+ function lr(e, t, n) {
406
+ return e ? "bg-dc-accent text-dc-accent-text dc:rounded-br-sm" : t && !n ? "bg-dc-warning-bg text-dc-text dc:rounded-bl-sm" : "bg-dc-surface-secondary text-dc-text dc:rounded-bl-sm";
407
+ }
528
408
  function ur({ toolCall: e, loadingComponent: t }) {
529
- let [n, r] = J(!1), i = lr[e.name] || e.name, a = e.status === "running";
530
- return /* @__PURE__ */ Z("div", {
409
+ return e.status === "running" ? t ? /* @__PURE__ */ J("span", {
410
+ className: "dc:inline-flex dc:items-center dc:justify-center dc:h-3 dc:w-3",
411
+ children: t
412
+ }) : /* @__PURE__ */ J(B, { size: "xs" }) : /* @__PURE__ */ J("span", {
413
+ className: "dc:text-xs",
414
+ children: e.status === "error" ? "✗" : "✓"
415
+ });
416
+ }
417
+ function dr(e) {
418
+ return typeof e == "string" ? e : JSON.stringify(e, null, 2);
419
+ }
420
+ function fr({ result: e }) {
421
+ return e == null ? null : /* @__PURE__ */ J("pre", {
422
+ className: "dc:mt-1 dc:p-2 dc:rounded dc:text-[11px] dc:overflow-x-auto dc:max-h-32 dc:overflow-y-auto bg-dc-surface-secondary text-dc-text-secondary",
423
+ children: dr(e)
424
+ });
425
+ }
426
+ function pr({ toolCall: e, loadingComponent: t }) {
427
+ let [n, r] = K(!1), i = cr[e.name] || e.name, a = e.status === "running";
428
+ return /* @__PURE__ */ Y("div", {
531
429
  className: "dc:my-1 dc:text-xs",
532
- children: [/* @__PURE__ */ Z("button", {
430
+ children: [/* @__PURE__ */ Y("button", {
533
431
  onClick: () => r(!n),
534
432
  className: "dc:flex dc:items-center dc:gap-1.5 text-dc-text-secondary dc:hover:opacity-80 dc:transition-opacity",
535
433
  children: [
536
- a ? t ? /* @__PURE__ */ X("span", {
537
- className: "dc:inline-flex dc:items-center dc:justify-center dc:h-3 dc:w-3",
538
- children: t
539
- }) : /* @__PURE__ */ X(Wt, { size: "xs" }) : /* @__PURE__ */ X("span", {
540
- className: "dc:text-xs",
541
- children: e.status === "error" ? "✗" : "✓"
434
+ /* @__PURE__ */ J(ur, {
435
+ toolCall: e,
436
+ loadingComponent: t
542
437
  }),
543
- /* @__PURE__ */ Z("span", { children: [i, a ? "..." : ""] }),
544
- !a && /* @__PURE__ */ X("span", {
438
+ /* @__PURE__ */ Y("span", { children: [i, a ? "..." : ""] }),
439
+ !a && /* @__PURE__ */ J("span", {
545
440
  className: "dc:text-[10px] dc:opacity-60",
546
441
  children: n ? "▲" : "▼"
547
442
  })
548
443
  ]
549
- }), n && e.result != null && /* @__PURE__ */ X("pre", {
550
- className: "dc:mt-1 dc:p-2 dc:rounded dc:text-[11px] dc:overflow-x-auto dc:max-h-32 dc:overflow-y-auto bg-dc-surface-secondary text-dc-text-secondary",
551
- children: typeof e.result == "string" ? e.result : JSON.stringify(e.result, null, 2)
444
+ }), n && /* @__PURE__ */ J(fr, { result: e.result })]
445
+ });
446
+ }
447
+ function mr({ error: e, hasContent: t }) {
448
+ return /* @__PURE__ */ Y("div", {
449
+ className: `dc:flex dc:items-start dc:gap-2 ${t ? "dc:mt-2 dc:pt-2 dc:border-t dc:border-current dc:border-opacity-10" : ""}`,
450
+ children: [/* @__PURE__ */ J("span", {
451
+ className: "dc:text-base dc:leading-none dc:mt-0.5 text-dc-warning dc:flex-shrink-0",
452
+ children: "⚠"
453
+ }), /* @__PURE__ */ J("span", {
454
+ className: "text-dc-text-secondary",
455
+ children: e
552
456
  })]
553
457
  });
554
458
  }
555
- var dr = { animation: "dc-msg-in 100ms ease-out" }, fr = U.memo(function({ message: e, loadingComponent: t }) {
556
- let n = e.role === "user", r = !!e.content?.trim(), i = !!e.error, a = e.toolCalls && e.toolCalls.length > 0;
557
- return !n && !r && !i && !a ? null : /* @__PURE__ */ X("div", {
558
- className: `dc:flex dc:mb-3 ${n ? "dc:justify-end" : "dc:justify-start"}`,
559
- style: dr,
560
- children: /* @__PURE__ */ Z("div", {
561
- className: `dc:max-w-[85%] dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm ${n ? "bg-dc-accent text-dc-accent-text dc:rounded-br-sm" : i && !r ? "bg-dc-warning-bg text-dc-text dc:rounded-bl-sm" : "bg-dc-surface-secondary text-dc-text dc:rounded-bl-sm"}`,
562
- children: [
563
- r && /* @__PURE__ */ X("div", {
564
- className: "dc:whitespace-pre-wrap dc:break-words",
565
- children: n ? e.content : cr(e.content)
566
- }),
567
- i && /* @__PURE__ */ Z("div", {
568
- className: `dc:flex dc:items-start dc:gap-2 ${r ? "dc:mt-2 dc:pt-2 dc:border-t dc:border-current dc:border-opacity-10" : ""}`,
569
- children: [/* @__PURE__ */ X("span", {
570
- className: "dc:text-base dc:leading-none dc:mt-0.5 text-dc-warning dc:flex-shrink-0",
571
- children: "⚠"
572
- }), /* @__PURE__ */ X("span", {
573
- className: "text-dc-text-secondary",
574
- children: e.error
575
- })]
576
- }),
577
- a && /* @__PURE__ */ X("div", {
578
- className: r || i ? "dc:mt-1 dc:border-t dc:border-current dc:border-opacity-10 dc:pt-1" : "",
579
- children: e.toolCalls.map((e, n) => /* @__PURE__ */ X(ur, {
580
- toolCall: e,
581
- loadingComponent: t
582
- }, e.id || n))
583
- })
584
- ]
459
+ function hr(e) {
460
+ let t = e.role === "user", n = !!e.content?.trim(), r = !!e.error, i = e.toolCalls ?? [], a = i.length > 0;
461
+ return {
462
+ isUser: t,
463
+ hasContent: n,
464
+ hasError: r,
465
+ hasToolCalls: a,
466
+ toolCalls: i,
467
+ shouldRender: t || n || r || a
468
+ };
469
+ }
470
+ function gr({ message: e, flags: t, loadingComponent: n }) {
471
+ let { isUser: r, hasContent: i, hasError: a, hasToolCalls: o, toolCalls: s } = t;
472
+ return /* @__PURE__ */ Y(q, { children: [
473
+ i && /* @__PURE__ */ J("div", {
474
+ className: "dc:whitespace-pre-wrap dc:break-words",
475
+ children: r ? e.content : sr(e.content)
476
+ }),
477
+ a && /* @__PURE__ */ J(mr, {
478
+ error: e.error,
479
+ hasContent: i
480
+ }),
481
+ o && /* @__PURE__ */ J(_r, {
482
+ toolCalls: s,
483
+ loadingComponent: n,
484
+ separated: i || a
485
+ })
486
+ ] });
487
+ }
488
+ function _r({ toolCalls: e, loadingComponent: t, separated: n }) {
489
+ return /* @__PURE__ */ J("div", {
490
+ className: n ? "dc:mt-1 dc:border-t dc:border-current dc:border-opacity-10 dc:pt-1" : "",
491
+ children: e.map((e, n) => /* @__PURE__ */ J(pr, {
492
+ toolCall: e,
493
+ loadingComponent: t
494
+ }, e.id || n))
495
+ });
496
+ }
497
+ //#endregion
498
+ //#region src/client/components/AgenticNotebook/ChatMessage.tsx
499
+ var vr = { animation: "dc-msg-in 100ms ease-out" }, yr = V.memo(function({ message: e, loadingComponent: t }) {
500
+ let n = hr(e);
501
+ if (!n.shouldRender) return null;
502
+ let { isUser: r, hasContent: i, hasError: a } = n;
503
+ return /* @__PURE__ */ J("div", {
504
+ className: `dc:flex dc:mb-3 ${r ? "dc:justify-end" : "dc:justify-start"}`,
505
+ style: vr,
506
+ children: /* @__PURE__ */ J("div", {
507
+ className: `dc:max-w-[85%] dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm ${lr(r, a, i)}`,
508
+ children: /* @__PURE__ */ J(gr, {
509
+ message: e,
510
+ flags: n,
511
+ loadingComponent: t
512
+ })
585
513
  })
586
514
  });
587
- }), pr = U.memo(function({ value: e, onChange: t, onSend: n, onStop: r, onContinue: i, isStreaming: a = !1, showContinue: o = !1, disabled: s = !1, placeholder: c }) {
588
- let { t: l } = H(), u = c ?? l("notebook.chatInput.placeholder"), d = q(null);
589
- return G(() => {
515
+ }), br = V.memo(function({ value: e, onChange: t, onSend: n, onStop: r, onContinue: i, isStreaming: a = !1, showContinue: o = !1, disabled: s = !1, placeholder: c }) {
516
+ let { t: l } = z(), u = c ?? l("notebook.chatInput.placeholder"), d = G(null);
517
+ return U(() => {
590
518
  let e = d.current;
591
519
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 150)}px`);
592
- }, [e]), /* @__PURE__ */ Z("div", {
520
+ }, [e]), /* @__PURE__ */ Y("div", {
593
521
  className: "dc:flex dc:gap-2 dc:items-end dc:p-3 border-dc-border dc:border-t",
594
- children: [/* @__PURE__ */ X("textarea", {
522
+ children: [/* @__PURE__ */ J("textarea", {
595
523
  ref: d,
596
524
  value: e,
597
525
  onChange: (e) => t(e.target.value),
598
- onKeyDown: W((t) => {
526
+ onKeyDown: H((t) => {
599
527
  t.key === "Enter" && !t.shiftKey && (t.preventDefault(), !s && e.trim() && n());
600
528
  }, [
601
529
  s,
@@ -606,253 +534,356 @@ var dr = { animation: "dc-msg-in 100ms ease-out" }, fr = U.memo(function({ messa
606
534
  disabled: s,
607
535
  rows: 1,
608
536
  className: "dc:flex-1 dc:resize-none dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm bg-dc-surface-secondary text-dc-text border-dc-border dc:border dc:outline-none dc:focus:ring-1 focus:ring-dc-accent dc:disabled:opacity-50"
609
- }), a ? /* @__PURE__ */ X("button", {
537
+ }), a ? /* @__PURE__ */ J("button", {
610
538
  onClick: r,
611
539
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors text-dc-error border-dc-border dc:border dc:hover:opacity-80 dc:shrink-0",
612
540
  children: l("notebook.chatInput.stop")
613
- }) : /* @__PURE__ */ Z(Y, { children: [o && !e.trim() && /* @__PURE__ */ X("button", {
541
+ }) : /* @__PURE__ */ Y(q, { children: [o && !e.trim() && /* @__PURE__ */ J("button", {
614
542
  onClick: () => {
615
543
  i?.(), d.current?.focus();
616
544
  },
617
545
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors border-dc-border dc:border text-dc-text-secondary dc:hover:opacity-80 dc:shrink-0",
618
546
  children: l("notebook.chatInput.continue")
619
- }), /* @__PURE__ */ X("button", {
547
+ }), /* @__PURE__ */ J("button", {
620
548
  onClick: n,
621
549
  disabled: s || !e.trim(),
622
550
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors bg-dc-accent text-dc-accent-text dc:hover:opacity-90 dc:disabled:opacity-40 dc:disabled:cursor-not-allowed dc:shrink-0",
623
551
  children: l("notebook.chatInput.send")
624
552
  })] })]
625
553
  });
626
- }), mr = c("thumbUp"), hr = c("thumbDown"), gr = U.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onClear: o, onDashboardSaved: s, onScore: c, loadingComponent: l, initialPrompt: u }) {
627
- let { t: d } = H(), f = q(null), p = q(!1), [m, h] = J(null), [g, _] = J(/* @__PURE__ */ new Set()), [v, y] = J(!1), b = q(!1), { messages: x, isStreaming: S, inputValue: C } = Q(t(Hn)), { addMessage: w, appendToLastAssistantMessage: T, setLastAssistantError: E, addToolCallToLastAssistant: D, updateLastToolCall: O, setIsStreaming: k, setInputValue: A, setSessionId: j } = Q(t(Un)), M = Q((e) => e.sessionId), N = Q((e) => e.addBlock), P = Q((e) => e.reset), F = Q((e) => e.blocks.filter((e) => e.type === "portlet").length), I = q(x);
628
- I.current = x;
629
- let L = q(S);
630
- L.current = S;
631
- let R = q(M);
632
- R.current = M;
633
- let z = W(() => {
634
- b.current && (b.current = !1, w({
554
+ });
555
+ //#endregion
556
+ //#region src/client/hooks/agentChatStream.ts
557
+ function xr(e) {
558
+ if (e.startsWith("{") || e.includes("\"type\":\"error\"")) try {
559
+ let t = JSON.parse(e.replace(/^Error:\s*/, ""));
560
+ return {
561
+ overloaded_error: "The AI service is temporarily busy. Please try again in a moment.",
562
+ rate_limit_error: "Too many requests. Please wait a moment and try again.",
563
+ api_error: "The AI service encountered an error. Please try again.",
564
+ authentication_error: "Authentication failed. Please check your configuration."
565
+ }[t.error?.type || t.type || ""] || "The AI service encountered an error. Please try again.";
566
+ } catch {
567
+ return "The AI service encountered an error. Please try again.";
568
+ }
569
+ if (e.startsWith("Agent request failed:")) {
570
+ let t = e.match(/\d+/)?.[0];
571
+ return t === "429" ? "Too many requests. Please wait a moment and try again." : t === "503" || t === "529" ? "The AI service is temporarily busy. Please try again in a moment." : "The AI service is temporarily unavailable. Please try again.";
572
+ }
573
+ return e;
574
+ }
575
+ function Sr(e, t) {
576
+ switch (e.type) {
577
+ case "text_delta":
578
+ t.onTextDelta(e.data);
579
+ break;
580
+ case "tool_use_start":
581
+ t.onToolStart(e.data.id, e.data.name, e.data.input);
582
+ break;
583
+ case "tool_use_result":
584
+ t.onToolResult(e.data.id, e.data.name, e.data.result, e.data.isError);
585
+ break;
586
+ case "add_portlet":
587
+ t.onAddPortlet({
588
+ ...e.data,
589
+ type: "portlet"
590
+ });
591
+ break;
592
+ case "add_markdown":
593
+ t.onAddMarkdown({
594
+ ...e.data,
595
+ type: "markdown"
596
+ });
597
+ break;
598
+ case "dashboard_saved":
599
+ t.onDashboardSaved?.(e.data);
600
+ break;
601
+ case "turn_complete":
602
+ t.onTurnComplete?.();
603
+ break;
604
+ case "done":
605
+ t.onDone(e.data.sessionId, e.data.traceId);
606
+ break;
607
+ case "error":
608
+ t.onError(e.data.message);
609
+ break;
610
+ }
611
+ }
612
+ function Cr(e, t) {
613
+ let n = e.trim().split("\n");
614
+ for (let e of n) if (e.startsWith("data: ")) try {
615
+ t(JSON.parse(e.slice(6)));
616
+ } catch {}
617
+ }
618
+ function wr(e) {
619
+ let t = {
620
+ "Content-Type": "application/json",
621
+ ...e.baseHeaders
622
+ };
623
+ return e.agentApiKey && (t["X-Agent-Api-Key"] = e.agentApiKey), e.agentProvider && (t["X-Agent-Provider"] = e.agentProvider), e.agentModel && (t["X-Agent-Model"] = e.agentModel), e.agentProviderEndpoint && (t["X-Agent-Provider-Endpoint"] = e.agentProviderEndpoint), t;
624
+ }
625
+ //#endregion
626
+ //#region src/client/hooks/useAgentChat.ts
627
+ function Tr(e) {
628
+ let { agentEndpoint: t, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a } = e, { cubeApi: o } = j(), s = G(null), [c, l] = K(!1), u = G(e);
629
+ return u.current = e, {
630
+ sendMessage: H(async (e, c, d) => {
631
+ let f = (e) => Sr(e, u.current);
632
+ s.current && s.current.abort();
633
+ let p = new AbortController();
634
+ s.current = p, l(!0);
635
+ try {
636
+ let s = t || `${o.apiUrl || "/cubejs-api/v1"}/agent/chat`, l = wr({
637
+ baseHeaders: o.headers,
638
+ agentApiKey: n,
639
+ agentProvider: r,
640
+ agentModel: i,
641
+ agentProviderEndpoint: a
642
+ }), u = await fetch(s, {
643
+ method: "POST",
644
+ headers: l,
645
+ credentials: o.credentials ?? "include",
646
+ body: JSON.stringify({
647
+ message: e,
648
+ ...c ? { sessionId: c } : {},
649
+ ...d && d.length > 0 ? { history: d } : {}
650
+ }),
651
+ signal: p.signal
652
+ });
653
+ if (!u.ok) {
654
+ let e = await u.json().catch(() => ({}));
655
+ throw Error(e.error || `Agent request failed: ${u.status}`);
656
+ }
657
+ if (!u.body) throw Error("No response body received");
658
+ let m = u.body.getReader(), h = new TextDecoder(), g = "";
659
+ for (;;) {
660
+ let { done: e, value: t } = await m.read();
661
+ if (e) break;
662
+ g += h.decode(t, { stream: !0 });
663
+ let n = g.split("\n\n");
664
+ g = n.pop() || "";
665
+ for (let e of n) Cr(e, f);
666
+ }
667
+ g.trim() && Cr(g, f);
668
+ } catch (e) {
669
+ if (e.name !== "AbortError") {
670
+ let t = e instanceof Error ? e.message : "Stream failed";
671
+ u.current.onError(xr(t));
672
+ }
673
+ } finally {
674
+ l(!1), s.current = null;
675
+ }
676
+ }, [
677
+ o,
678
+ t,
679
+ n,
680
+ r,
681
+ i,
682
+ a
683
+ ]),
684
+ isStreaming: c,
685
+ abort: H(() => {
686
+ s.current && (s.current.abort(), s.current = null, l(!1));
687
+ }, [])
688
+ };
689
+ }
690
+ //#endregion
691
+ //#region src/client/components/AgenticNotebook/useAgentChatController.ts
692
+ function Er({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onDashboardSaved: o, messages: s, isStreaming: c }) {
693
+ let [l, u] = K(!1), [d, f] = K(null), p = G(!1), { addMessage: m, appendToLastAssistantMessage: h, setLastAssistantError: g, addToolCallToLastAssistant: _, updateLastToolCall: v, setIsStreaming: y, setInputValue: b, setSessionId: x } = X(t(Gn)), S = X((e) => e.sessionId), C = X((e) => e.addBlock), w = G(s);
694
+ w.current = s;
695
+ let T = G(c);
696
+ T.current = c;
697
+ let E = G(S);
698
+ E.current = S;
699
+ let D = H(() => {
700
+ p.current && (p.current = !1, m({
635
701
  id: `msg-${Date.now()}`,
636
702
  role: "assistant",
637
703
  content: "",
638
704
  toolCalls: [],
639
705
  timestamp: Date.now()
640
706
  }));
641
- }, [w]), ee = q(x.length);
642
- G(() => {
643
- x.length > ee.current && f.current?.scrollIntoView({ behavior: "smooth" }), ee.current = x.length;
644
- }, [x]), G(() => {
645
- v && f.current?.scrollIntoView({ behavior: "smooth" });
646
- }, [v]);
647
- let { sendMessage: B, abort: te } = sr({
707
+ }, [m]), { sendMessage: O, abort: k } = Tr({
648
708
  agentEndpoint: e,
649
709
  agentApiKey: n,
650
710
  agentProvider: r,
651
711
  agentModel: i,
652
712
  agentProviderEndpoint: a,
653
- onTextDelta: W((e) => {
654
- y(!1), z(), T(e);
655
- }, [z, T]),
656
- onToolStart: W((e, t, n) => {
657
- y(!1), z(), D({
713
+ onTextDelta: H((e) => {
714
+ u(!1), D(), h(e);
715
+ }, [D, h]),
716
+ onToolStart: H((e, t, n) => {
717
+ u(!1), D(), _({
658
718
  id: e,
659
719
  name: t,
660
720
  input: n,
661
721
  status: "running"
662
722
  });
663
- }, [z, D]),
664
- onToolResult: W((e, t, n, r) => {
665
- O({
723
+ }, [D, _]),
724
+ onToolResult: H((e, t, n, r) => {
725
+ v({
666
726
  id: e,
667
727
  status: r ? "error" : "complete",
668
728
  result: n
669
729
  });
670
- }, [O]),
671
- onAddPortlet: W((e) => {
672
- N(e);
673
- }, [N]),
674
- onAddMarkdown: W((e) => {
675
- N(e);
676
- }, [N]),
677
- onDashboardSaved: s,
678
- onTurnComplete: W(() => {
679
- b.current = !0, y(!0);
730
+ }, [v]),
731
+ onAddPortlet: H((e) => {
732
+ C(e);
733
+ }, [C]),
734
+ onAddMarkdown: H((e) => {
735
+ C(e);
736
+ }, [C]),
737
+ onDashboardSaved: o,
738
+ onTurnComplete: H(() => {
739
+ p.current = !0, u(!0);
680
740
  }, []),
681
- onDone: W((e, t) => {
682
- b.current = !1, j(e), k(!1), y(!1), t && h(t);
683
- }, [j, k]),
684
- onError: W((e) => {
685
- y(!1), z(), E(e), k(!1);
741
+ onDone: H((e, t) => {
742
+ p.current = !1, x(e), y(!1), u(!1), t && f(t);
743
+ }, [x, y]),
744
+ onError: H((e) => {
745
+ u(!1), D(), g(e), y(!1);
686
746
  }, [
687
- z,
688
- E,
689
- k
747
+ D,
748
+ g,
749
+ y
690
750
  ])
691
- }), V = W((e) => {
692
- if (!e || L.current) return;
693
- b.current = !1;
694
- let t = I.current.map((e) => ({
695
- role: e.role,
696
- content: e.content,
697
- ...e.toolCalls && e.toolCalls.length > 0 ? { toolCalls: e.toolCalls } : {}
698
- }));
699
- w({
700
- id: `msg-${Date.now()}`,
701
- role: "user",
702
- content: e,
703
- timestamp: Date.now()
704
- }), w({
705
- id: `msg-${Date.now() + 1}`,
706
- role: "assistant",
707
- content: "",
708
- toolCalls: [],
709
- timestamp: Date.now()
710
- }), A(""), k(!0), y(!0), B(e, R.current, t);
711
- }, [
712
- w,
713
- A,
714
- k,
715
- B
716
- ]);
717
- G(() => {
718
- if (u && !p.current && x.length === 0) {
719
- p.current = !0;
720
- let e = setTimeout(() => V(u), 100);
721
- return () => {
722
- clearTimeout(e), p.current = !1;
723
- };
724
- }
725
- }, [
726
- u,
727
- x.length,
728
- V
729
- ]);
730
- let ne = q(C);
731
- ne.current = C;
732
- let re = W(() => {
733
- V(ne.current.trim());
734
- }, [V]), ie = W(() => {
735
- te(), k(!1);
736
- }, [te, k]), ae = W(() => {
737
- A("");
738
- }, [A]), oe = W(() => {
739
- te(), k(!1), y(!1), P(), h(null), _(/* @__PURE__ */ new Set()), o?.();
740
- }, [
741
- te,
742
- k,
743
- P,
744
- o
745
- ]), se = W(() => {
746
- V(d("notebook.saveAsDashboardPrompt"));
747
- }, [V, d]), ce = W((e) => {
748
- !m || !c || (c({
749
- traceId: m,
750
- value: e
751
- }), _((e) => new Set(e).add(m)));
752
- }, [m, c]), le = !!s && !S && F > 0 && x.length > 0, ue = !!c && !S && m && x.length > 0 && !g.has(m), de = m ? g.has(m) : !1;
753
- return /* @__PURE__ */ Z("div", {
754
- className: "dc:flex dc:flex-col dc:h-full bg-dc-surface",
755
- children: [
756
- /* @__PURE__ */ Z("div", {
757
- className: "dc:flex dc:items-center dc:justify-between dc:px-4 dc:py-3 border-dc-border dc:border-b",
758
- children: [/* @__PURE__ */ X("h3", {
759
- className: "dc:text-sm dc:font-semibold text-dc-text",
760
- children: d("notebook.aiAssistant")
761
- }), /* @__PURE__ */ Z("div", {
762
- className: "dc:flex dc:items-center dc:gap-1",
763
- children: [le && /* @__PURE__ */ X("button", {
764
- onClick: se,
765
- className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded text-dc-accent dc:hover:opacity-80",
766
- title: d("notebook.saveAsDashboardTitle"),
767
- children: d("notebook.saveAsDashboard")
768
- }), x.length > 0 && /* @__PURE__ */ X("button", {
769
- onClick: oe,
770
- disabled: S,
771
- className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded text-dc-text-secondary dc:hover:opacity-80 dc:disabled:opacity-40",
772
- title: d("notebook.clearTitle"),
773
- children: d("common.actions.clear")
774
- })]
775
- })]
776
- }),
777
- /* @__PURE__ */ Z("div", {
778
- className: "dc:flex-1 dc:overflow-y-auto dc:px-4 dc:py-3",
779
- children: [
780
- x.length === 0 ? /* @__PURE__ */ X(vr, {}) : x.map((e) => /* @__PURE__ */ X(fr, {
781
- message: e,
782
- loadingComponent: l
783
- }, e.id)),
784
- v && /* @__PURE__ */ X(_r, { loadingComponent: l }),
785
- (ue || de) && /* @__PURE__ */ X("div", {
786
- className: "dc:flex dc:items-center dc:justify-center dc:gap-3 dc:py-4 dc:mt-2",
787
- children: de ? /* @__PURE__ */ X("span", {
788
- className: "dc:text-sm text-dc-text-secondary",
789
- children: d("notebook.feedbackThanks")
790
- }) : /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("span", {
791
- className: "dc:text-sm text-dc-text-secondary",
792
- children: d("notebook.feedbackQuestion")
793
- }), /* @__PURE__ */ Z("div", {
794
- className: "dc:flex dc:items-center dc:gap-2",
795
- children: [/* @__PURE__ */ Z("button", {
796
- onClick: () => ce(1),
797
- className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-success hover:bg-dc-success-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
798
- children: [/* @__PURE__ */ X(mr, { className: "dc:w-4 dc:h-4" }), d("notebook.feedbackYes")]
799
- }), /* @__PURE__ */ Z("button", {
800
- onClick: () => ce(0),
801
- className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-error hover:bg-dc-danger-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
802
- children: [/* @__PURE__ */ X(hr, { className: "dc:w-4 dc:h-4" }), d("notebook.feedbackNo")]
803
- })]
804
- })] })
805
- }),
806
- /* @__PURE__ */ X("div", { ref: f })
807
- ]
808
- }),
809
- /* @__PURE__ */ X(pr, {
810
- value: C,
811
- onChange: A,
812
- onSend: re,
813
- onStop: ie,
814
- onContinue: ae,
815
- isStreaming: S,
816
- showContinue: !S && x.length > 0
817
- })
818
- ]
819
751
  });
820
- });
821
- function _r({ loadingComponent: e }) {
822
- let { t } = H();
823
- return /* @__PURE__ */ X("div", {
752
+ return {
753
+ doSend: H((e) => {
754
+ if (!e || T.current) return;
755
+ p.current = !1;
756
+ let t = w.current.map((e) => ({
757
+ role: e.role,
758
+ content: e.content,
759
+ ...e.toolCalls && e.toolCalls.length > 0 ? { toolCalls: e.toolCalls } : {}
760
+ }));
761
+ m({
762
+ id: `msg-${Date.now()}`,
763
+ role: "user",
764
+ content: e,
765
+ timestamp: Date.now()
766
+ }), m({
767
+ id: `msg-${Date.now() + 1}`,
768
+ role: "assistant",
769
+ content: "",
770
+ toolCalls: [],
771
+ timestamp: Date.now()
772
+ }), b(""), y(!0), u(!0), O(e, E.current, t);
773
+ }, [
774
+ m,
775
+ b,
776
+ y,
777
+ O
778
+ ]),
779
+ handleStop: H(() => {
780
+ k(), y(!1);
781
+ }, [k, y]),
782
+ abort: k,
783
+ isThinking: l,
784
+ setIsThinking: u,
785
+ lastTraceId: d,
786
+ setLastTraceId: f
787
+ };
788
+ }
789
+ //#endregion
790
+ //#region src/client/components/AgenticNotebook/agentChatParts.tsx
791
+ var Dr = D("thumbUp"), Or = D("thumbDown");
792
+ function kr(...e) {
793
+ return e.every(Boolean);
794
+ }
795
+ function Ar(e) {
796
+ let t = kr(!e.isStreaming, e.messageCount > 0), n = e.lastTraceId ? e.scoredTraceIds.has(e.lastTraceId) : !1;
797
+ return {
798
+ showSaveAsDashboard: kr(t, e.onDashboardSaved, e.portletBlockCount > 0),
799
+ showClear: e.messageCount > 0,
800
+ showFeedback: kr(t, e.onScore, !!e.lastTraceId, !n),
801
+ lastScored: n
802
+ };
803
+ }
804
+ function jr({ showSaveAsDashboard: e, showClear: t, isStreaming: n, onSaveAsDashboard: r, onClear: i }) {
805
+ let { t: a } = z();
806
+ return /* @__PURE__ */ Y("div", {
807
+ className: "dc:flex dc:items-center dc:justify-between dc:px-4 dc:py-3 border-dc-border dc:border-b",
808
+ children: [/* @__PURE__ */ J("h3", {
809
+ className: "dc:text-sm dc:font-semibold text-dc-text",
810
+ children: a("notebook.aiAssistant")
811
+ }), /* @__PURE__ */ Y("div", {
812
+ className: "dc:flex dc:items-center dc:gap-1",
813
+ children: [e && /* @__PURE__ */ J("button", {
814
+ onClick: r,
815
+ className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded text-dc-accent dc:hover:opacity-80",
816
+ title: a("notebook.saveAsDashboardTitle"),
817
+ children: a("notebook.saveAsDashboard")
818
+ }), t && /* @__PURE__ */ J("button", {
819
+ onClick: i,
820
+ disabled: n,
821
+ className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded text-dc-text-secondary dc:hover:opacity-80 dc:disabled:opacity-40",
822
+ title: a("notebook.clearTitle"),
823
+ children: a("common.actions.clear")
824
+ })]
825
+ })]
826
+ });
827
+ }
828
+ function Mr({ scored: e, onScore: t }) {
829
+ let { t: n } = z();
830
+ return /* @__PURE__ */ J("div", {
831
+ className: "dc:flex dc:items-center dc:justify-center dc:gap-3 dc:py-4 dc:mt-2",
832
+ children: e ? /* @__PURE__ */ J("span", {
833
+ className: "dc:text-sm text-dc-text-secondary",
834
+ children: n("notebook.feedbackThanks")
835
+ }) : /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J("span", {
836
+ className: "dc:text-sm text-dc-text-secondary",
837
+ children: n("notebook.feedbackQuestion")
838
+ }), /* @__PURE__ */ Y("div", {
839
+ className: "dc:flex dc:items-center dc:gap-2",
840
+ children: [/* @__PURE__ */ Y("button", {
841
+ onClick: () => t(1),
842
+ className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-success hover:bg-dc-success-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
843
+ children: [/* @__PURE__ */ J(Dr, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackYes")]
844
+ }), /* @__PURE__ */ Y("button", {
845
+ onClick: () => t(0),
846
+ className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-error hover:bg-dc-danger-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
847
+ children: [/* @__PURE__ */ J(Or, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackNo")]
848
+ })]
849
+ })] })
850
+ });
851
+ }
852
+ function Nr({ loadingComponent: e }) {
853
+ let { t } = z();
854
+ return /* @__PURE__ */ J("div", {
824
855
  className: "dc:flex dc:mb-3 dc:justify-start",
825
856
  style: { animation: "dc-msg-in 100ms ease-out" },
826
- children: /* @__PURE__ */ Z("div", {
857
+ children: /* @__PURE__ */ Y("div", {
827
858
  className: "dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm bg-dc-surface-secondary text-dc-text-secondary dc:rounded-bl-sm dc:flex dc:items-center dc:gap-2",
828
- children: [e ? /* @__PURE__ */ X("span", {
859
+ children: [e ? /* @__PURE__ */ J("span", {
829
860
  className: "dc:inline-flex dc:items-center dc:justify-center dc:h-4 dc:w-4",
830
861
  children: e
831
- }) : /* @__PURE__ */ X(Wt, { size: "xs" }), /* @__PURE__ */ X("span", { children: t("notebook.thinking") })]
862
+ }) : /* @__PURE__ */ J(B, { size: "xs" }), /* @__PURE__ */ J("span", { children: t("notebook.thinking") })]
832
863
  })
833
864
  });
834
865
  }
835
- function vr() {
836
- let { t: e } = H();
837
- return /* @__PURE__ */ X("div", {
866
+ function Pr() {
867
+ let { t: e } = z();
868
+ return /* @__PURE__ */ J("div", {
838
869
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
839
- children: /* @__PURE__ */ Z("div", {
870
+ children: /* @__PURE__ */ Y("div", {
840
871
  className: "dc:text-center dc:max-w-xs",
841
872
  children: [
842
- /* @__PURE__ */ X("div", {
873
+ /* @__PURE__ */ J("div", {
843
874
  className: "dc:text-lg dc:font-semibold text-dc-text dc:mb-2",
844
875
  children: e("notebook.emptyState.title")
845
876
  }),
846
- /* @__PURE__ */ X("p", {
877
+ /* @__PURE__ */ J("p", {
847
878
  className: "dc:text-sm text-dc-text-secondary dc:mb-4",
848
879
  children: e("notebook.emptyState.description")
849
880
  }),
850
- /* @__PURE__ */ Z("div", {
881
+ /* @__PURE__ */ Y("div", {
851
882
  className: "dc:space-y-2 dc:text-xs text-dc-text-muted",
852
883
  children: [
853
- /* @__PURE__ */ X("p", { children: e("notebook.emptyState.example1") }),
854
- /* @__PURE__ */ X("p", { children: e("notebook.emptyState.example2") }),
855
- /* @__PURE__ */ X("p", { children: e("notebook.emptyState.example3") })
884
+ /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example1") }),
885
+ /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example2") }),
886
+ /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example3") })
856
887
  ]
857
888
  })
858
889
  ]
@@ -860,10 +891,154 @@ function vr() {
860
891
  });
861
892
  }
862
893
  //#endregion
894
+ //#region src/client/components/AgenticNotebook/AgentChatPanel.tsx
895
+ function Fr({ messages: e, loadingComponent: t }) {
896
+ return e.length === 0 ? /* @__PURE__ */ J(Pr, {}) : /* @__PURE__ */ J(q, { children: e.map((e) => /* @__PURE__ */ J(yr, {
897
+ message: e,
898
+ loadingComponent: t
899
+ }, e.id)) });
900
+ }
901
+ var Ir = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onClear: o, onDashboardSaved: s, onScore: c, loadingComponent: l, initialPrompt: u }) {
902
+ let { t: d } = z(), f = G(null), p = G(!1), [m, h] = K(/* @__PURE__ */ new Set()), { messages: g, isStreaming: _, inputValue: v } = X(t(Wn)), y = X((e) => e.setInputValue), b = X((e) => e.reset), x = X((e) => e.setIsStreaming), S = X((e) => e.blocks.filter((e) => e.type === "portlet").length), { doSend: C, handleStop: w, abort: T, isThinking: E, setIsThinking: D, lastTraceId: O, setLastTraceId: k } = Er({
903
+ agentEndpoint: e,
904
+ agentApiKey: n,
905
+ agentProvider: r,
906
+ agentModel: i,
907
+ agentProviderEndpoint: a,
908
+ onDashboardSaved: s,
909
+ messages: g,
910
+ isStreaming: _
911
+ }), A = G(g.length);
912
+ U(() => {
913
+ g.length > A.current && f.current?.scrollIntoView({ behavior: "smooth" }), A.current = g.length;
914
+ }, [g]), U(() => {
915
+ E && f.current?.scrollIntoView({ behavior: "smooth" });
916
+ }, [E]), U(() => {
917
+ if (u && !p.current && g.length === 0) {
918
+ p.current = !0;
919
+ let e = setTimeout(() => C(u), 100);
920
+ return () => {
921
+ clearTimeout(e), p.current = !1;
922
+ };
923
+ }
924
+ }, [
925
+ u,
926
+ g.length,
927
+ C
928
+ ]);
929
+ let j = G(v);
930
+ j.current = v;
931
+ let M = H(() => {
932
+ C(j.current.trim());
933
+ }, [C]), N = H(() => {
934
+ y("");
935
+ }, [y]), P = H(() => {
936
+ T(), x(!1), D(!1), b(), k(null), h(/* @__PURE__ */ new Set()), o?.();
937
+ }, [
938
+ T,
939
+ x,
940
+ D,
941
+ b,
942
+ k,
943
+ o
944
+ ]), F = H(() => {
945
+ C(d("notebook.saveAsDashboardPrompt"));
946
+ }, [C, d]), I = H((e) => {
947
+ !O || !c || (c({
948
+ traceId: O,
949
+ value: e
950
+ }), h((e) => new Set(e).add(O)));
951
+ }, [O, c]), { showSaveAsDashboard: L, showClear: ee, showFeedback: te, lastScored: R } = Ar({
952
+ onDashboardSaved: !!s,
953
+ onScore: !!c,
954
+ isStreaming: _,
955
+ portletBlockCount: S,
956
+ messageCount: g.length,
957
+ lastTraceId: O,
958
+ scoredTraceIds: m
959
+ });
960
+ return /* @__PURE__ */ Y("div", {
961
+ className: "dc:flex dc:flex-col dc:h-full bg-dc-surface",
962
+ children: [
963
+ /* @__PURE__ */ J(jr, {
964
+ showSaveAsDashboard: L,
965
+ showClear: ee,
966
+ isStreaming: _,
967
+ onSaveAsDashboard: F,
968
+ onClear: P
969
+ }),
970
+ /* @__PURE__ */ Y("div", {
971
+ className: "dc:flex-1 dc:overflow-y-auto dc:px-4 dc:py-3",
972
+ children: [
973
+ /* @__PURE__ */ J(Fr, {
974
+ messages: g,
975
+ loadingComponent: l
976
+ }),
977
+ E && /* @__PURE__ */ J(Nr, { loadingComponent: l }),
978
+ (te || R) && /* @__PURE__ */ J(Mr, {
979
+ scored: R,
980
+ onScore: I
981
+ }),
982
+ /* @__PURE__ */ J("div", { ref: f })
983
+ ]
984
+ }),
985
+ /* @__PURE__ */ J(br, {
986
+ value: v,
987
+ onChange: y,
988
+ onSend: M,
989
+ onStop: w,
990
+ onContinue: N,
991
+ isStreaming: _,
992
+ showContinue: !_ && g.length > 0
993
+ })
994
+ ]
995
+ });
996
+ });
997
+ //#endregion
998
+ //#region src/client/components/AgenticNotebook/useNotebookAutosave.ts
999
+ function Lr({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i }) {
1000
+ let a = G(), o = G(!1), s = G(i);
1001
+ s.current = i;
1002
+ let c = G(e > 0 || t > 0), l = H(() => {
1003
+ a.current && clearTimeout(a.current);
1004
+ }, []), u = H(() => {
1005
+ l(), a.current = setTimeout(() => {
1006
+ o.current = !1;
1007
+ let e = r();
1008
+ s.current?.(e);
1009
+ }, 1e3);
1010
+ }, [l, r]);
1011
+ (e > 0 || t > 0) && (c.current = !0);
1012
+ let d = !!s.current && c.current;
1013
+ return U(() => {
1014
+ if (d) {
1015
+ if (n) {
1016
+ o.current = !0, l();
1017
+ return;
1018
+ }
1019
+ return u(), l;
1020
+ }
1021
+ }, [
1022
+ d,
1023
+ e,
1024
+ t,
1025
+ n,
1026
+ l,
1027
+ u
1028
+ ]), U(() => {
1029
+ !n && o.current && s.current && c.current && u();
1030
+ }, [n, u]), { clearSave: H(() => {
1031
+ s.current && (l(), s.current({
1032
+ blocks: [],
1033
+ messages: []
1034
+ }));
1035
+ }, [l]) };
1036
+ }
1037
+ //#endregion
863
1038
  //#region src/client/components/AgenticNotebook/index.tsx
864
- function yr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
865
- let { t: i } = H(), a = c("bookOpen"), o = c("documentText");
866
- return /* @__PURE__ */ Z("button", {
1039
+ function Rr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
1040
+ let { t: i } = z(), a = D("bookOpen"), o = D("documentText");
1041
+ return /* @__PURE__ */ Y("button", {
867
1042
  type: "button",
868
1043
  onClick: r,
869
1044
  className: "dc:h-full dc:flex-shrink-0 dc:flex dc:flex-col dc:items-center dc:pt-3 dc:gap-2 bg-dc-surface border-dc-border dc:border-r dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
@@ -872,46 +1047,46 @@ function yr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
872
1047
  width: 48
873
1048
  } : { width: 48 },
874
1049
  title: i("notebook.collapsed.expandNotebook"),
875
- children: [/* @__PURE__ */ X(a, { className: "dc:w-5 dc:h-5 text-dc-text-muted" }), /* @__PURE__ */ X("div", {
1050
+ children: [/* @__PURE__ */ J(a, { className: "dc:w-5 dc:h-5 text-dc-text-muted" }), /* @__PURE__ */ J("div", {
876
1051
  className: "dc:flex dc:flex-col dc:items-center dc:gap-1.5 dc:flex-1 dc:overflow-y-auto dc:py-1",
877
1052
  style: { scrollbarWidth: "none" },
878
- children: e.length === 0 ? /* @__PURE__ */ X("span", {
1053
+ children: e.length === 0 ? /* @__PURE__ */ J("span", {
879
1054
  className: "dc:text-[9px] text-dc-text-disabled dc:writing-vertical-lr dc:mt-2",
880
1055
  style: { writingMode: "vertical-lr" },
881
1056
  children: i("notebook.collapsed.noBlocks")
882
1057
  }) : e.map((e) => {
883
1058
  let n = e.id === t, r;
884
- return r = e.type === "portlet" ? x(e.chartType) : o, /* @__PURE__ */ X("div", {
1059
+ return r = e.type === "portlet" ? S(e.chartType) : o, /* @__PURE__ */ J("div", {
885
1060
  className: "dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded",
886
1061
  style: n ? { animation: "dc-icon-pulse 0.6s ease-in-out 3" } : void 0,
887
1062
  title: e.type === "portlet" ? e.title : e.title || i("notebook.collapsed.markdown"),
888
- children: /* @__PURE__ */ X(r, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1063
+ children: /* @__PURE__ */ J(r, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
889
1064
  }, e.id);
890
1065
  })
891
1066
  })]
892
1067
  });
893
1068
  }
894
- function br({ onExpand: e }) {
895
- let { t } = H(), n = c("sparkles");
896
- return /* @__PURE__ */ Z("button", {
1069
+ function zr({ onExpand: e }) {
1070
+ let { t } = z(), n = D("sparkles");
1071
+ return /* @__PURE__ */ Y("button", {
897
1072
  type: "button",
898
1073
  onClick: e,
899
1074
  className: "dc:w-12 dc:h-full dc:flex-shrink-0 dc:flex dc:flex-col dc:items-center dc:pt-3 dc:gap-2 bg-dc-surface border-dc-border dc:border-l dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
900
1075
  title: t("notebook.collapsed.expandChat"),
901
- children: [/* @__PURE__ */ X(n, { className: "dc:w-5 dc:h-5 text-dc-accent" }), /* @__PURE__ */ X("span", {
1076
+ children: [/* @__PURE__ */ J(n, { className: "dc:w-5 dc:h-5 text-dc-accent" }), /* @__PURE__ */ J("span", {
902
1077
  className: "dc:text-[10px] dc:font-medium text-dc-text-muted",
903
1078
  style: { writingMode: "vertical-lr" },
904
1079
  children: t("notebook.collapsed.aiChat")
905
1080
  })]
906
1081
  });
907
1082
  }
908
- function xr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r, agentProviderEndpoint: i, onSave: a, onDirtyStateChange: o, onDashboardSaved: s, onScore: c, colorPalette: l, loadingComponent: u, className: d, initialPrompt: f }) {
909
- let [p, m] = J(60), h = q(null), g = q(!1), { containerRef: _, layoutMode: v } = On(), [y, b] = J("chat"), [x, S] = J(null), [C, w] = J(!1), T = q(v), E = Q((e) => e.blocks), D = E.length, O = Q((e) => e.messages.length), k = Q((e) => e.isStreaming), A = Q((e) => e.save);
910
- G(() => {
1083
+ function Br({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r, agentProviderEndpoint: i, onSave: a, onDirtyStateChange: o, onDashboardSaved: s, onScore: c, colorPalette: l, loadingComponent: u, className: d, initialPrompt: f }) {
1084
+ let [p, m] = K(60), h = G(null), g = G(!1), { containerRef: _, layoutMode: v } = An(), [y, b] = K("chat"), [x, S] = K(null), [C, w] = K(!1), T = G(v), E = X((e) => e.blocks), D = E.length, O = X((e) => e.messages.length), k = X((e) => e.isStreaming), A = X((e) => e.save);
1085
+ U(() => {
911
1086
  T.current === "narrow" && v === "wide" && b("chat"), T.current = v;
912
1087
  }, [v]);
913
- let j = q(D);
914
- G(() => {
1088
+ let j = G(D);
1089
+ U(() => {
915
1090
  if (v === "narrow" && y === "chat" && D > j.current) {
916
1091
  let e = E[E.length - 1];
917
1092
  if (e) {
@@ -927,8 +1102,8 @@ function xr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
927
1102
  v,
928
1103
  y
929
1104
  ]);
930
- let M = q(!1);
931
- G(() => {
1105
+ let M = G(!1);
1106
+ U(() => {
932
1107
  if (k) M.current = !0;
933
1108
  else if (M.current && v === "narrow" && y === "chat" && D > 0) {
934
1109
  M.current = !1, w(!0);
@@ -941,54 +1116,26 @@ function xr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
941
1116
  y,
942
1117
  D
943
1118
  ]);
944
- let N = W((e) => {
1119
+ let N = H((e) => {
945
1120
  _(e), h.current = e;
946
- }, [_]), P = q({
1121
+ }, [_]), P = G({
947
1122
  blockCount: D,
948
1123
  msgCount: O
949
1124
  });
950
- G(() => {
1125
+ U(() => {
951
1126
  o?.(D !== P.current.blockCount || O !== P.current.msgCount);
952
1127
  }, [
953
1128
  D,
954
1129
  O,
955
1130
  o
956
1131
  ]);
957
- let F = q(), I = q(!1), L = q(a);
958
- L.current = a;
959
- let R = q(D > 0 || O > 0);
960
- G(() => {
961
- if ((D > 0 || O > 0) && (R.current = !0), !(!L.current || !R.current)) {
962
- if (k) {
963
- I.current = !0, F.current && clearTimeout(F.current);
964
- return;
965
- }
966
- return F.current && clearTimeout(F.current), F.current = setTimeout(() => {
967
- I.current = !1;
968
- let e = A();
969
- L.current?.(e);
970
- }, 1e3), () => {
971
- F.current && clearTimeout(F.current);
972
- };
973
- }
974
- }, [
975
- D,
976
- O,
977
- k,
978
- A
979
- ]), G(() => {
980
- !k && I.current && L.current && R.current && (F.current && clearTimeout(F.current), F.current = setTimeout(() => {
981
- I.current = !1;
982
- let e = A();
983
- L.current?.(e);
984
- }, 1e3));
985
- }, [k, A]);
986
- let z = W(() => {
987
- L.current && (F.current && clearTimeout(F.current), L.current({
988
- blocks: [],
989
- messages: []
990
- }));
991
- }, []), ee = W((e) => {
1132
+ let { clearSave: F } = Lr({
1133
+ blockCount: D,
1134
+ messageCount: O,
1135
+ isStreaming: k,
1136
+ save: A,
1137
+ onSave: a
1138
+ }), I = H((e) => {
992
1139
  e.preventDefault(), g.current = !0;
993
1140
  let t = (e) => {
994
1141
  if (!g.current || !h.current) return;
@@ -998,58 +1145,58 @@ function xr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
998
1145
  g.current = !1, document.removeEventListener("mousemove", t), document.removeEventListener("mouseup", n);
999
1146
  };
1000
1147
  document.addEventListener("mousemove", t), document.addEventListener("mouseup", n);
1001
- }, []), B = /* @__PURE__ */ X(gr, {
1148
+ }, []), L = /* @__PURE__ */ J(Ir, {
1002
1149
  agentEndpoint: e,
1003
1150
  agentApiKey: t,
1004
1151
  agentProvider: n,
1005
1152
  agentModel: r,
1006
1153
  agentProviderEndpoint: i,
1007
- onClear: z,
1154
+ onClear: F,
1008
1155
  onDashboardSaved: s,
1009
1156
  onScore: c,
1010
1157
  loadingComponent: u,
1011
1158
  initialPrompt: f
1012
1159
  });
1013
- return v === "narrow" ? /* @__PURE__ */ X("div", {
1160
+ return v === "narrow" ? /* @__PURE__ */ J("div", {
1014
1161
  ref: N,
1015
1162
  className: `dc:flex dc:h-full dc:w-full dc:overflow-hidden bg-dc-surface-secondary ${d || ""}`,
1016
- children: y === "chat" ? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(yr, {
1163
+ children: y === "chat" ? /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(Rr, {
1017
1164
  blocks: E,
1018
1165
  pulsingBlockId: x,
1019
1166
  nudge: C,
1020
1167
  onExpand: () => b("notebook")
1021
- }), /* @__PURE__ */ X("div", {
1168
+ }), /* @__PURE__ */ J("div", {
1022
1169
  className: "dc:h-full dc:overflow-hidden dc:flex-1",
1023
- children: B
1024
- })] }) : /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
1170
+ children: L
1171
+ })] }) : /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J("div", {
1025
1172
  className: "dc:h-full dc:overflow-hidden dc:flex-1",
1026
- children: /* @__PURE__ */ X(ar, { colorPalette: l })
1027
- }), /* @__PURE__ */ X(br, { onExpand: () => b("chat") })] })
1028
- }) : /* @__PURE__ */ Z("div", {
1173
+ children: /* @__PURE__ */ J(or, { colorPalette: l })
1174
+ }), /* @__PURE__ */ J(zr, { onExpand: () => b("chat") })] })
1175
+ }) : /* @__PURE__ */ Y("div", {
1029
1176
  ref: N,
1030
1177
  className: `dc:flex dc:h-full dc:w-full dc:overflow-hidden bg-dc-surface-secondary ${d || ""}`,
1031
1178
  children: [
1032
- /* @__PURE__ */ X("div", {
1179
+ /* @__PURE__ */ J("div", {
1033
1180
  className: "dc:h-full dc:overflow-hidden",
1034
1181
  style: { width: `${p}%` },
1035
- children: /* @__PURE__ */ X(ar, { colorPalette: l })
1182
+ children: /* @__PURE__ */ J(or, { colorPalette: l })
1036
1183
  }),
1037
- /* @__PURE__ */ X("div", {
1184
+ /* @__PURE__ */ J("div", {
1038
1185
  className: "dc:w-1 dc:h-full dc:cursor-col-resize dc:flex-shrink-0 dc:transition-colors bg-dc-border dc:hover:bg-dc-accent",
1039
- onMouseDown: ee
1186
+ onMouseDown: I
1040
1187
  }),
1041
- /* @__PURE__ */ X("div", {
1188
+ /* @__PURE__ */ J("div", {
1042
1189
  className: "dc:h-full dc:overflow-hidden",
1043
1190
  style: { width: `${100 - p}%` },
1044
- children: B
1191
+ children: L
1045
1192
  })
1046
1193
  ]
1047
1194
  });
1048
1195
  }
1049
- var Sr = U.memo(function({ config: e, colorPalette: t, ...n }) {
1050
- return /* @__PURE__ */ X(In, {
1196
+ var Vr = V.memo(function({ config: e, colorPalette: t, ...n }) {
1197
+ return /* @__PURE__ */ J(Rn, {
1051
1198
  initialConfig: e,
1052
- children: /* @__PURE__ */ X(xr, {
1199
+ children: /* @__PURE__ */ J(Br, {
1053
1200
  ...n,
1054
1201
  colorPalette: t
1055
1202
  })
@@ -1057,28 +1204,28 @@ var Sr = U.memo(function({ config: e, colorPalette: t, ...n }) {
1057
1204
  });
1058
1205
  //#endregion
1059
1206
  //#region src/client/components/AnalyticsPage.tsx
1060
- function Cr() {
1061
- let { t: e } = H();
1062
- return /* @__PURE__ */ X("div", { children: e("analyticsPage.title") });
1207
+ function Hr() {
1208
+ let { t: e } = z();
1209
+ return /* @__PURE__ */ J("div", { children: e("analyticsPage.title") });
1063
1210
  }
1064
1211
  //#endregion
1065
1212
  //#region src/client/stores/dataBrowserStore.tsx
1066
- var wr = "dc-data-browser-column-widths";
1067
- function Tr(e) {
1213
+ var Ur = "dc-data-browser-column-widths";
1214
+ function Wr(e) {
1068
1215
  try {
1069
- let t = localStorage.getItem(wr);
1216
+ let t = localStorage.getItem(Ur);
1070
1217
  return t ? JSON.parse(t)[e] ?? {} : {};
1071
1218
  } catch {
1072
1219
  return {};
1073
1220
  }
1074
1221
  }
1075
- function Er(e, t) {
1222
+ function Gr(e, t) {
1076
1223
  try {
1077
- let n = localStorage.getItem(wr), r = n ? JSON.parse(n) : {};
1078
- r[e] = t, localStorage.setItem(wr, JSON.stringify(r));
1224
+ let n = localStorage.getItem(Ur), r = n ? JSON.parse(n) : {};
1225
+ r[e] = t, localStorage.setItem(Ur, JSON.stringify(r));
1079
1226
  } catch {}
1080
1227
  }
1081
- function Dr(e = {}) {
1228
+ function Kr(e = {}) {
1082
1229
  return i()((t, n) => ({
1083
1230
  selectedCube: e.defaultCube ?? null,
1084
1231
  visibleColumns: e.defaultColumns ?? [],
@@ -1089,7 +1236,7 @@ function Dr(e = {}) {
1089
1236
  filters: [],
1090
1237
  showFilterBar: !1,
1091
1238
  showColumnPicker: !1,
1092
- columnWidths: e.defaultCube ? Tr(e.defaultCube) : {},
1239
+ columnWidths: e.defaultCube ? Wr(e.defaultCube) : {},
1093
1240
  selectCube: (e, n) => t({
1094
1241
  selectedCube: e,
1095
1242
  visibleColumns: n,
@@ -1098,7 +1245,7 @@ function Dr(e = {}) {
1098
1245
  page: 0,
1099
1246
  filters: [],
1100
1247
  showFilterBar: !1,
1101
- columnWidths: Tr(e)
1248
+ columnWidths: Wr(e)
1102
1249
  }),
1103
1250
  setVisibleColumns: (e) => t({
1104
1251
  visibleColumns: e,
@@ -1145,39 +1292,39 @@ function Dr(e = {}) {
1145
1292
  ...t.columnWidths,
1146
1293
  [e]: n
1147
1294
  };
1148
- return t.selectedCube && Er(t.selectedCube, r), { columnWidths: r };
1295
+ return t.selectedCube && Gr(t.selectedCube, r), { columnWidths: r };
1149
1296
  }),
1150
1297
  setColumnWidths: (e) => {
1151
1298
  let r = n().selectedCube;
1152
- r && Er(r, e), t({ columnWidths: e });
1299
+ r && Gr(r, e), t({ columnWidths: e });
1153
1300
  }
1154
1301
  }));
1155
1302
  }
1156
- var Or = An(null);
1157
- function kr({ children: e, defaultPageSize: t, defaultCube: n, defaultColumns: r }) {
1158
- let i = q(null);
1159
- return i.current ||= Dr({
1303
+ var qr = Mn(null);
1304
+ function Jr({ children: e, defaultPageSize: t, defaultCube: n, defaultColumns: r }) {
1305
+ let i = G(null);
1306
+ return i.current ||= Kr({
1160
1307
  defaultPageSize: t,
1161
1308
  defaultCube: n,
1162
1309
  defaultColumns: r
1163
- }), /* @__PURE__ */ X(Or.Provider, {
1310
+ }), /* @__PURE__ */ J(qr.Provider, {
1164
1311
  value: i.current,
1165
1312
  children: e
1166
1313
  });
1167
1314
  }
1168
1315
  function $(e) {
1169
- let t = jn(Or);
1316
+ let t = Nn(qr);
1170
1317
  if (!t) throw Error("useDataBrowserStore must be used within DataBrowserStoreProvider");
1171
1318
  return n(t, e);
1172
1319
  }
1173
1320
  //#endregion
1174
1321
  //#region src/client/hooks/useDataBrowser.ts
1175
- function Ar(e, t) {
1322
+ function Yr(e, t) {
1176
1323
  if (!t) return !0;
1177
1324
  let [n, r] = e.split("."), i = t.cubes.find((e) => e.name === n);
1178
1325
  return i ? i.dimensions.some((e) => e.name === `${n}.${r}`) : !0;
1179
1326
  }
1180
- function jr(e, t) {
1327
+ function Xr(e, t) {
1181
1328
  if (!t) return "string";
1182
1329
  let [n] = e.split("."), r = t.cubes.find((e) => e.name === n);
1183
1330
  if (!r) return "string";
@@ -1186,7 +1333,7 @@ function jr(e, t) {
1186
1333
  let a = r.measures.find((t) => t.name === e);
1187
1334
  return a ? a.type : "string";
1188
1335
  }
1189
- function Mr(e, t) {
1336
+ function Zr(e, t) {
1190
1337
  if (!t) return {
1191
1338
  dimensions: [],
1192
1339
  measures: []
@@ -1208,7 +1355,7 @@ function Mr(e, t) {
1208
1355
  measures: n.measures.filter((e) => r.has(e.type)).map((e) => e.name)
1209
1356
  };
1210
1357
  }
1211
- function Nr() {
1358
+ function Qr() {
1212
1359
  let e = $((e) => e.selectedCube), n = $((e) => e.visibleColumns), r = $((e) => e.sortColumn), i = $((e) => e.sortDirection), a = $((e) => e.page), o = $((e) => e.pageSize), s = $((e) => e.filters), c = $((e) => e.showFilterBar), l = $((e) => e.showColumnPicker), u = $(t((e) => ({
1213
1360
  selectCube: e.selectCube,
1214
1361
  setVisibleColumns: e.setVisibleColumns,
@@ -1220,15 +1367,15 @@ function Nr() {
1220
1367
  setFilters: e.setFilters,
1221
1368
  toggleFilterBar: e.toggleFilterBar,
1222
1369
  setShowColumnPicker: e.setShowColumnPicker
1223
- }))), { meta: d, getFieldLabel: f } = De(), p = K(() => {
1370
+ }))), { meta: d, getFieldLabel: f } = dt(), p = W(() => {
1224
1371
  if (!d || !e) return null;
1225
1372
  let t = d.cubes.find((t) => t.name === e);
1226
1373
  if (!t) return null;
1227
1374
  let n = t.dimensions.find((e) => e.primaryKey);
1228
1375
  return n ? n.name : t.dimensions.length > 0 ? t.dimensions[0].name : null;
1229
- }, [d, e]), m = r ?? p, h = r ? i : "asc", g = K(() => {
1376
+ }, [d, e]), m = r ?? p, h = r ? i : "asc", g = W(() => {
1230
1377
  if (!e || n.length === 0) return null;
1231
- let t = n.filter((e) => Ar(e, d)), r = n.filter((e) => !Ar(e, d));
1378
+ let t = n.filter((e) => Yr(e, d)), r = n.filter((e) => !Yr(e, d));
1232
1379
  if (t.length === 0) return null;
1233
1380
  let i = {
1234
1381
  dimensions: t,
@@ -1246,7 +1393,7 @@ function Nr() {
1246
1393
  a,
1247
1394
  o,
1248
1395
  d
1249
- ]), { rawData: _, isLoading: v, isFetching: y, isDebouncing: b, error: x, refetch: S } = L(g, {
1396
+ ]), { rawData: _, isLoading: v, isFetching: y, isDebouncing: b, error: x, refetch: S } = ft(g, {
1250
1397
  skip: !g,
1251
1398
  debounceMs: 400,
1252
1399
  keepPreviousData: !0,
@@ -1282,24 +1429,24 @@ function Nr() {
1282
1429
  }
1283
1430
  //#endregion
1284
1431
  //#region src/client/components/DataBrowser/DataBrowserSidebar.tsx
1285
- var Pr = c("search"), Fr = c("cube");
1286
- function Ir({ cubes: e, selectedCube: t, onSelectCube: n }) {
1287
- let { t: r } = H(), [i, a] = J(""), o = K(() => {
1432
+ var $r = D("search"), ei = D("cube");
1433
+ function ti({ cubes: e, selectedCube: t, onSelectCube: n }) {
1434
+ let { t: r } = z(), [i, a] = K(""), o = W(() => {
1288
1435
  let t = [...e].sort((e, t) => (e.title || e.name).localeCompare(t.title || t.name));
1289
1436
  if (!i) return t;
1290
1437
  let n = i.toLowerCase();
1291
1438
  return t.filter((e) => e.name.toLowerCase().includes(n) || e.title.toLowerCase().includes(n));
1292
1439
  }, [e, i]);
1293
- return /* @__PURE__ */ Z("div", {
1440
+ return /* @__PURE__ */ Y("div", {
1294
1441
  className: "dc:flex dc:flex-col dc:h-full dc:border-r border-dc-border bg-dc-surface dc:w-60 dc:shrink-0",
1295
- children: [/* @__PURE__ */ Z("div", {
1442
+ children: [/* @__PURE__ */ Y("div", {
1296
1443
  className: "dc:px-3 dc:py-3 dc:border-b border-dc-border",
1297
- children: [/* @__PURE__ */ X("h2", {
1444
+ children: [/* @__PURE__ */ J("h2", {
1298
1445
  className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
1299
1446
  children: r("dataBrowser.sidebar.cubes")
1300
- }), /* @__PURE__ */ Z("div", {
1447
+ }), /* @__PURE__ */ Y("div", {
1301
1448
  className: "dc:relative",
1302
- children: [/* @__PURE__ */ X(Pr, { className: "dc:absolute dc:left-2 dc:top-1/2 dc:-translate-y-1/2 dc:w-3.5 dc:h-3.5 text-dc-text-muted" }), /* @__PURE__ */ X("input", {
1449
+ children: [/* @__PURE__ */ J($r, { className: "dc:absolute dc:left-2 dc:top-1/2 dc:-translate-y-1/2 dc:w-3.5 dc:h-3.5 text-dc-text-muted" }), /* @__PURE__ */ J("input", {
1303
1450
  type: "text",
1304
1451
  value: i,
1305
1452
  onChange: (e) => a(e.target.value),
@@ -1307,16 +1454,16 @@ function Ir({ cubes: e, selectedCube: t, onSelectCube: n }) {
1307
1454
  className: "dc:w-full dc:pl-7 dc:pr-2 dc:py-1.5 dc:text-xs dc:rounded border-dc-border dc:border bg-dc-surface text-dc-text dc:outline-none dc:focus:ring-1 focus:ring-dc-accent"
1308
1455
  })]
1309
1456
  })]
1310
- }), /* @__PURE__ */ Z("div", {
1457
+ }), /* @__PURE__ */ Y("div", {
1311
1458
  className: "dc:flex-1 dc:overflow-y-auto dc:py-1",
1312
- children: [o.map((e) => /* @__PURE__ */ Z("button", {
1459
+ children: [o.map((e) => /* @__PURE__ */ Y("button", {
1313
1460
  onClick: () => n(e.name),
1314
1461
  className: `dc:flex dc:items-center dc:gap-2 dc:w-full dc:px-3 dc:py-1.5 dc:text-left dc:text-sm dc:transition-colors ${t === e.name ? "bg-dc-accent-bg text-dc-accent dc:font-medium" : "text-dc-text dc:hover:bg-dc-surface-hover"}`,
1315
- children: [/* @__PURE__ */ X(Fr, { className: "dc:w-4 dc:h-4 dc:shrink-0 text-dc-text-muted" }), /* @__PURE__ */ X("span", {
1462
+ children: [/* @__PURE__ */ J(ei, { className: "dc:w-4 dc:h-4 dc:shrink-0 text-dc-text-muted" }), /* @__PURE__ */ J("span", {
1316
1463
  className: "dc:truncate",
1317
1464
  children: e.title || e.name
1318
1465
  })]
1319
- }, e.name)), o.length === 0 && /* @__PURE__ */ X("div", {
1466
+ }, e.name)), o.length === 0 && /* @__PURE__ */ J("div", {
1320
1467
  className: "dc:px-3 dc:py-4 dc:text-xs text-dc-text-muted dc:text-center",
1321
1468
  children: r("dataBrowser.sidebar.noCubes")
1322
1469
  })]
@@ -1325,77 +1472,77 @@ function Ir({ cubes: e, selectedCube: t, onSelectCube: n }) {
1325
1472
  }
1326
1473
  //#endregion
1327
1474
  //#region src/client/components/DataBrowser/DataBrowserToolbar.tsx
1328
- var Lr = c("filter"), Rr = c("settings"), zr = c("chevronLeft"), Br = c("chevronRight"), Vr = c("refresh");
1329
- function Hr({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleColumnPicker: r, page: i, pageSize: a, rowCount: o, hasNextPage: s, hasPrevPage: c, onPageChange: l, onPageSizeChange: u, isFetching: d, onRefresh: f }) {
1330
- let { t: p } = H();
1331
- return /* @__PURE__ */ Z("div", {
1475
+ var ni = D("filter"), ri = D("settings"), ii = D("chevronLeft"), ai = D("chevronRight"), oi = D("refresh");
1476
+ function si({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleColumnPicker: r, page: i, pageSize: a, rowCount: o, hasNextPage: s, hasPrevPage: c, onPageChange: l, onPageSizeChange: u, isFetching: d, onRefresh: f }) {
1477
+ let { t: p } = z();
1478
+ return /* @__PURE__ */ Y("div", {
1332
1479
  className: "dc:flex dc:items-center dc:gap-2 dc:px-3 dc:py-2 dc:border-b border-dc-border bg-dc-surface-secondary",
1333
1480
  children: [
1334
- /* @__PURE__ */ Z("button", {
1481
+ /* @__PURE__ */ Y("button", {
1335
1482
  onClick: n,
1336
1483
  className: `dc:flex dc:items-center dc:gap-1.5 dc:px-2.5 dc:py-1.5 dc:text-xs dc:font-medium dc:rounded dc:border dc:transition-colors ${e ? "border-dc-accent bg-dc-accent-bg text-dc-accent" : "border-dc-border bg-dc-surface text-dc-text dc:hover:bg-dc-surface-hover"}`,
1337
1484
  children: [
1338
- /* @__PURE__ */ X(Lr, { className: "dc:w-3.5 dc:h-3.5" }),
1485
+ /* @__PURE__ */ J(ni, { className: "dc:w-3.5 dc:h-3.5" }),
1339
1486
  p("dataBrowser.toolbar.filters"),
1340
- t > 0 && /* @__PURE__ */ X("span", {
1487
+ t > 0 && /* @__PURE__ */ J("span", {
1341
1488
  className: "dc:inline-flex dc:items-center dc:justify-center dc:w-4 dc:h-4 dc:text-[10px] dc:font-bold dc:rounded-full bg-dc-accent text-dc-surface",
1342
1489
  children: t
1343
1490
  })
1344
1491
  ]
1345
1492
  }),
1346
- /* @__PURE__ */ Z("button", {
1493
+ /* @__PURE__ */ Y("button", {
1347
1494
  onClick: r,
1348
1495
  className: "dc:flex dc:items-center dc:gap-1.5 dc:px-2.5 dc:py-1.5 dc:text-xs dc:font-medium dc:rounded dc:border border-dc-border bg-dc-surface text-dc-text dc:hover:bg-dc-surface-hover dc:transition-colors",
1349
- children: [/* @__PURE__ */ X(Rr, { className: "dc:w-3.5 dc:h-3.5" }), p("dataBrowser.toolbar.columns")]
1496
+ children: [/* @__PURE__ */ J(ri, { className: "dc:w-3.5 dc:h-3.5" }), p("dataBrowser.toolbar.columns")]
1350
1497
  }),
1351
- /* @__PURE__ */ X("div", { className: "dc:flex-1" }),
1352
- /* @__PURE__ */ X("span", {
1498
+ /* @__PURE__ */ J("div", { className: "dc:flex-1" }),
1499
+ /* @__PURE__ */ J("span", {
1353
1500
  className: "dc:text-xs text-dc-text-muted",
1354
1501
  children: p("dataBrowser.toolbar.rows", { count: o })
1355
1502
  }),
1356
- /* @__PURE__ */ X("button", {
1503
+ /* @__PURE__ */ J("button", {
1357
1504
  onClick: f,
1358
1505
  className: "dc:p-1 dc:rounded dc:hover:bg-dc-surface-hover dc:transition-colors",
1359
1506
  title: "Refresh",
1360
- children: /* @__PURE__ */ X(Vr, { className: `dc:w-3.5 dc:h-3.5 text-dc-text-muted ${d ? "dc:animate-spin" : ""}` })
1507
+ children: /* @__PURE__ */ J(oi, { className: `dc:w-3.5 dc:h-3.5 text-dc-text-muted ${d ? "dc:animate-spin" : ""}` })
1361
1508
  }),
1362
- /* @__PURE__ */ Z("select", {
1509
+ /* @__PURE__ */ Y("select", {
1363
1510
  value: a,
1364
1511
  onChange: (e) => u(Number(e.target.value)),
1365
1512
  className: "dc:text-xs dc:px-1.5 dc:py-1 dc:rounded dc:border border-dc-border bg-dc-surface text-dc-text dc:outline-none",
1366
1513
  children: [
1367
- /* @__PURE__ */ X("option", {
1514
+ /* @__PURE__ */ J("option", {
1368
1515
  value: 20,
1369
1516
  children: "20"
1370
1517
  }),
1371
- /* @__PURE__ */ X("option", {
1518
+ /* @__PURE__ */ J("option", {
1372
1519
  value: 50,
1373
1520
  children: "50"
1374
1521
  }),
1375
- /* @__PURE__ */ X("option", {
1522
+ /* @__PURE__ */ J("option", {
1376
1523
  value: 100,
1377
1524
  children: "100"
1378
1525
  })
1379
1526
  ]
1380
1527
  }),
1381
- /* @__PURE__ */ Z("div", {
1528
+ /* @__PURE__ */ Y("div", {
1382
1529
  className: "dc:flex dc:items-center dc:gap-1",
1383
1530
  children: [
1384
- /* @__PURE__ */ X("button", {
1531
+ /* @__PURE__ */ J("button", {
1385
1532
  onClick: () => l(i - 1),
1386
1533
  disabled: !c,
1387
1534
  className: "dc:p-1 dc:rounded dc:hover:bg-dc-surface-hover dc:disabled:opacity-30 dc:disabled:cursor-not-allowed dc:transition-colors",
1388
- children: /* @__PURE__ */ X(zr, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1535
+ children: /* @__PURE__ */ J(ii, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1389
1536
  }),
1390
- /* @__PURE__ */ X("span", {
1537
+ /* @__PURE__ */ J("span", {
1391
1538
  className: "dc:text-xs dc:font-medium text-dc-text dc:min-w-[2rem] dc:text-center",
1392
1539
  children: i + 1
1393
1540
  }),
1394
- /* @__PURE__ */ X("button", {
1541
+ /* @__PURE__ */ J("button", {
1395
1542
  onClick: () => l(i + 1),
1396
1543
  disabled: !s,
1397
1544
  className: "dc:p-1 dc:rounded dc:hover:bg-dc-surface-hover dc:disabled:opacity-30 dc:disabled:cursor-not-allowed dc:transition-colors",
1398
- children: /* @__PURE__ */ X(Br, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1545
+ children: /* @__PURE__ */ J(ai, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1399
1546
  })
1400
1547
  ]
1401
1548
  })
@@ -1404,9 +1551,9 @@ function Hr({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleCo
1404
1551
  }
1405
1552
  //#endregion
1406
1553
  //#region src/client/components/DataBrowser/DataBrowserTable.tsx
1407
- var Ur = c("chevronUp"), Wr = c("chevronDown");
1408
- function Gr(e, t) {
1409
- let n = jr(e, t);
1554
+ var ci = D("chevronUp"), li = D("chevronDown");
1555
+ function ui(e, t) {
1556
+ let n = Xr(e, t);
1410
1557
  return {
1411
1558
  string: "text",
1412
1559
  number: "num",
@@ -1418,14 +1565,14 @@ function Gr(e, t) {
1418
1565
  max: "num"
1419
1566
  }[n] || n;
1420
1567
  }
1421
- function Kr(e, t) {
1422
- return Gr(e, t) === "num";
1568
+ function di(e, t) {
1569
+ return ui(e, t) === "num";
1423
1570
  }
1424
- function qr(e) {
1571
+ function fi(e) {
1425
1572
  return e == null ? "" : typeof e == "number" ? e.toLocaleString() : typeof e == "boolean" ? e ? "true" : "false" : e instanceof Date ? e.toISOString() : String(e);
1426
1573
  }
1427
- var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n, sortDirection: r, onSort: i, getFieldLabel: a, meta: o, isLoading: s, isFetching: c, selectedCube: l, loadingComponent: u }) {
1428
- let { t: d } = H(), f = $((e) => e.columnWidths), p = $((e) => e.setColumnWidth), m = $((e) => e.setColumnWidths), h = q(null), g = q(!1), _ = W((e, n) => {
1574
+ var pi = 60, mi = 150, hi = V.memo(function({ data: e, columns: t, sortColumn: n, sortDirection: r, onSort: i, getFieldLabel: a, meta: o, isLoading: s, isFetching: c, selectedCube: l, loadingComponent: u }) {
1575
+ let { t: d } = z(), f = $((e) => e.columnWidths), p = $((e) => e.setColumnWidth), m = $((e) => e.setColumnWidths), h = G(null), g = G(!1), _ = H((e, n) => {
1429
1576
  e.preventDefault(), e.stopPropagation();
1430
1577
  let r = e.clientX;
1431
1578
  g.current = !1;
@@ -1437,9 +1584,9 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1437
1584
  i && (n[i] = e.getBoundingClientRect().width);
1438
1585
  }), m(n);
1439
1586
  }
1440
- let a = e.target.closest("th"), o = a ? a.getBoundingClientRect().width : Yr, s = (e) => {
1587
+ let a = e.target.closest("th"), o = a ? a.getBoundingClientRect().width : mi, s = (e) => {
1441
1588
  let t = e.clientX - r;
1442
- Math.abs(t) > 2 && (g.current = !0), p(n, Math.max(Jr, o + t));
1589
+ Math.abs(t) > 2 && (g.current = !0), p(n, Math.max(pi, o + t));
1443
1590
  }, c = () => {
1444
1591
  document.removeEventListener("mousemove", s), document.removeEventListener("mouseup", c), document.body.style.cursor = "", document.body.style.userSelect = "", requestAnimationFrame(() => {
1445
1592
  g.current = !1;
@@ -1450,24 +1597,24 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1450
1597
  t,
1451
1598
  p,
1452
1599
  m
1453
- ]), v = W((e) => {
1600
+ ]), v = H((e) => {
1454
1601
  g.current || i(e);
1455
- }, [i]), y = Object.keys(f).length > 0 ? t.reduce((e, t) => e + (f[t] ?? Yr), 0) : void 0;
1456
- return l ? e ? e.length === 0 && !s && !c ? /* @__PURE__ */ X("div", {
1602
+ }, [i]), y = Object.keys(f).length > 0 ? t.reduce((e, t) => e + (f[t] ?? mi), 0) : void 0;
1603
+ return l ? e ? e.length === 0 && !s && !c ? /* @__PURE__ */ J("div", {
1457
1604
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
1458
- children: /* @__PURE__ */ Z("div", {
1605
+ children: /* @__PURE__ */ Y("div", {
1459
1606
  className: "dc:text-center text-dc-text-muted",
1460
- children: [/* @__PURE__ */ X("div", {
1607
+ children: [/* @__PURE__ */ J("div", {
1461
1608
  className: "dc:text-sm dc:font-semibold dc:mb-1",
1462
1609
  children: d("dataBrowser.noData")
1463
- }), /* @__PURE__ */ X("div", {
1610
+ }), /* @__PURE__ */ J("div", {
1464
1611
  className: "dc:text-xs text-dc-text-secondary",
1465
1612
  children: d("dataBrowser.noRows")
1466
1613
  })]
1467
1614
  })
1468
- }) : /* @__PURE__ */ Z("div", {
1615
+ }) : /* @__PURE__ */ Y("div", {
1469
1616
  className: "dc:relative dc:flex-1 dc:overflow-auto",
1470
- children: [c && /* @__PURE__ */ X("div", { className: "dc:absolute dc:inset-0 bg-dc-surface dc:opacity-40 dc:z-10 dc:pointer-events-none" }), /* @__PURE__ */ Z("table", {
1617
+ children: [c && /* @__PURE__ */ J("div", { className: "dc:absolute dc:inset-0 bg-dc-surface dc:opacity-40 dc:z-10 dc:pointer-events-none" }), /* @__PURE__ */ Y("table", {
1471
1618
  ref: h,
1472
1619
  className: "dc:border-collapse",
1473
1620
  style: {
@@ -1476,31 +1623,31 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1476
1623
  minWidth: "100%"
1477
1624
  },
1478
1625
  children: [
1479
- /* @__PURE__ */ X("colgroup", { children: t.map((e) => /* @__PURE__ */ X("col", { style: { width: f[e] ?? Yr } }, e)) }),
1480
- /* @__PURE__ */ X("thead", {
1626
+ /* @__PURE__ */ J("colgroup", { children: t.map((e) => /* @__PURE__ */ J("col", { style: { width: f[e] ?? mi } }, e)) }),
1627
+ /* @__PURE__ */ J("thead", {
1481
1628
  className: "dc:sticky dc:top-0 dc:z-20",
1482
1629
  style: { backgroundColor: "var(--dc-surface-secondary)" },
1483
- children: /* @__PURE__ */ X("tr", { children: t.map((e, i) => {
1484
- let s = n === e, c = a(e), l = Gr(e, o), u = i === t.length - 1, d = Kr(e, o);
1485
- return /* @__PURE__ */ Z("th", {
1630
+ children: /* @__PURE__ */ J("tr", { children: t.map((e, i) => {
1631
+ let s = n === e, c = a(e), l = ui(e, o), u = i === t.length - 1, d = di(e, o);
1632
+ return /* @__PURE__ */ Y("th", {
1486
1633
  onClick: () => v(e),
1487
1634
  className: `dc:relative dc:px-3 dc:py-2 dc:text-xs dc:font-normal dc:cursor-pointer dc:select-none dc:border-b border-dc-border dc:transition-colors${u ? "" : " dc:border-r"}${d ? " dc:text-right" : " dc:text-left"}`,
1488
1635
  style: { color: "var(--dc-text-muted)" },
1489
- children: [/* @__PURE__ */ Z("div", {
1636
+ children: [/* @__PURE__ */ Y("div", {
1490
1637
  className: `dc:flex dc:items-center dc:gap-1.5 dc:overflow-hidden${d ? " dc:justify-end" : ""}`,
1491
1638
  children: [
1492
- /* @__PURE__ */ X("span", {
1639
+ /* @__PURE__ */ J("span", {
1493
1640
  className: "dc:font-medium dc:truncate",
1494
1641
  style: { color: "var(--dc-text)" },
1495
1642
  children: c
1496
1643
  }),
1497
- /* @__PURE__ */ X("span", {
1644
+ /* @__PURE__ */ J("span", {
1498
1645
  className: "dc:text-[10px] dc:opacity-50 dc:shrink-0",
1499
1646
  children: l
1500
1647
  }),
1501
- s && X(r === "asc" ? Ur : Wr, { className: "dc:w-3 dc:h-3 text-dc-accent dc:shrink-0" })
1648
+ s && J(r === "asc" ? ci : li, { className: "dc:w-3 dc:h-3 text-dc-accent dc:shrink-0" })
1502
1649
  ]
1503
- }), /* @__PURE__ */ X("div", {
1650
+ }), /* @__PURE__ */ J("div", {
1504
1651
  onMouseDown: (t) => _(t, e),
1505
1652
  className: "dc:absolute dc:top-0 dc:right-0 dc:w-1.5 dc:h-full dc:cursor-col-resize dc:hover:bg-dc-accent dc:opacity-0 dc:hover:opacity-100 dc:transition-opacity",
1506
1653
  style: { zIndex: 30 }
@@ -1508,7 +1655,7 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1508
1655
  }, e);
1509
1656
  }) })
1510
1657
  }),
1511
- /* @__PURE__ */ X("tbody", { children: e.map((e, n) => /* @__PURE__ */ X("tr", {
1658
+ /* @__PURE__ */ J("tbody", { children: e.map((e, n) => /* @__PURE__ */ J("tr", {
1512
1659
  className: "dc:border-b border-dc-border",
1513
1660
  style: { transition: "background-color 0.1s" },
1514
1661
  onMouseEnter: (e) => {
@@ -1518,30 +1665,30 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1518
1665
  e.currentTarget.style.backgroundColor = "";
1519
1666
  },
1520
1667
  children: t.map((n, r) => {
1521
- let i = r === t.length - 1, a = Kr(n, o);
1522
- return /* @__PURE__ */ X("td", {
1668
+ let i = r === t.length - 1, a = di(n, o);
1669
+ return /* @__PURE__ */ J("td", {
1523
1670
  className: `dc:px-3 dc:py-1.5 dc:text-sm dc:overflow-hidden dc:text-ellipsis dc:whitespace-nowrap${i ? "" : " dc:border-r border-dc-border"}${a ? " dc:text-right dc:tabular-nums" : ""}`,
1524
1671
  style: { color: "var(--dc-text)" },
1525
- children: qr(e[n])
1672
+ children: fi(e[n])
1526
1673
  }, n);
1527
1674
  })
1528
1675
  }, n)) })
1529
1676
  ]
1530
1677
  })]
1531
- }) : /* @__PURE__ */ X("div", {
1678
+ }) : /* @__PURE__ */ J("div", {
1532
1679
  className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:h-full dc:gap-3",
1533
- children: u ?? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X(Wt, { size: "md" }), /* @__PURE__ */ X("div", {
1680
+ children: u ?? /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(B, { size: "md" }), /* @__PURE__ */ J("div", {
1534
1681
  className: "dc:text-sm text-dc-text-muted",
1535
1682
  children: d("dataBrowser.loadingData")
1536
1683
  })] })
1537
- }) : /* @__PURE__ */ X("div", {
1684
+ }) : /* @__PURE__ */ J("div", {
1538
1685
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
1539
- children: /* @__PURE__ */ Z("div", {
1686
+ children: /* @__PURE__ */ Y("div", {
1540
1687
  className: "dc:text-center text-dc-text-muted",
1541
- children: [/* @__PURE__ */ X("div", {
1688
+ children: [/* @__PURE__ */ J("div", {
1542
1689
  className: "dc:text-base dc:font-semibold dc:mb-1",
1543
1690
  children: d("dataBrowser.selectCube")
1544
- }), /* @__PURE__ */ X("div", {
1691
+ }), /* @__PURE__ */ J("div", {
1545
1692
  className: "dc:text-sm text-dc-text-secondary",
1546
1693
  children: d("dataBrowser.selectCubeHint")
1547
1694
  })]
@@ -1550,41 +1697,41 @@ var Jr = 60, Yr = 150, Xr = U.memo(function({ data: e, columns: t, sortColumn: n
1550
1697
  });
1551
1698
  //#endregion
1552
1699
  //#region src/client/components/DataBrowser/index.tsx
1553
- function Zr({ className: e = "", maxHeight: t = "100vh", loadingComponent: n }) {
1554
- let { selectedCube: r, visibleColumns: i, sortColumn: a, sortDirection: o, page: s, pageSize: c, filters: l, showFilterBar: u, showColumnPicker: d, rawData: f, isLoading: p, isFetching: m, rowCount: h, hasNextPage: g, hasPrevPage: _, meta: v, getFieldLabel: y, selectCube: b, setSort: x, setPage: S, setPageSize: C, setFilters: w, toggleFilterBar: T, setShowColumnPicker: E, toggleColumn: D, refetch: O } = Nr(), k = K(() => v ? v.cubes.map((e) => ({
1700
+ function gi({ className: e = "", maxHeight: t = "100vh", loadingComponent: n }) {
1701
+ let { selectedCube: r, visibleColumns: i, sortColumn: a, sortDirection: o, page: s, pageSize: c, filters: l, showFilterBar: u, showColumnPicker: d, rawData: f, isLoading: p, isFetching: m, rowCount: h, hasNextPage: g, hasPrevPage: _, meta: v, getFieldLabel: y, selectCube: b, setSort: x, setPage: S, setPageSize: C, setFilters: w, toggleFilterBar: T, setShowColumnPicker: E, toggleColumn: D, refetch: O } = Qr(), k = W(() => v ? v.cubes.map((e) => ({
1555
1702
  name: e.name,
1556
1703
  title: e.title || e.name
1557
- })) : [], [v]), A = W((e) => {
1558
- let { dimensions: t } = Mr(e, v);
1704
+ })) : [], [v]), A = H((e) => {
1705
+ let { dimensions: t } = Zr(e, v);
1559
1706
  b(e, t);
1560
- }, [v, b]), j = K(() => {
1707
+ }, [v, b]), j = W(() => {
1561
1708
  function e(t) {
1562
1709
  return t.reduce((t, n) => "member" in n ? t + 1 : "type" in n && "filters" in n ? t + e(n.filters) : t, 0);
1563
1710
  }
1564
1711
  return e(l);
1565
- }, [l]), M = K(() => {
1712
+ }, [l]), M = W(() => {
1566
1713
  if (!v) return null;
1567
1714
  if (r) {
1568
1715
  let e = v.cubes.find((e) => e.name === r);
1569
1716
  return e ? { cubes: [e] } : null;
1570
1717
  }
1571
1718
  return v;
1572
- }, [v, r]), N = W((e, t, n, r) => {
1719
+ }, [v, r]), N = H((e, t, n, r) => {
1573
1720
  D(e.name);
1574
1721
  }, [D]);
1575
- return /* @__PURE__ */ Z("div", {
1722
+ return /* @__PURE__ */ Y("div", {
1576
1723
  className: `dc:flex dc:border border-dc-border dc:rounded-lg dc:overflow-hidden bg-dc-surface ${e}`,
1577
1724
  style: { height: t },
1578
1725
  children: [
1579
- /* @__PURE__ */ X(Ir, {
1726
+ /* @__PURE__ */ J(ti, {
1580
1727
  cubes: k,
1581
1728
  selectedCube: r,
1582
1729
  onSelectCube: A
1583
1730
  }),
1584
- /* @__PURE__ */ Z("div", {
1731
+ /* @__PURE__ */ Y("div", {
1585
1732
  className: "dc:flex dc:flex-col dc:flex-1 dc:min-w-0",
1586
1733
  children: [
1587
- r && /* @__PURE__ */ X(Hr, {
1734
+ r && /* @__PURE__ */ J(si, {
1588
1735
  showFilterBar: u,
1589
1736
  filterCount: j,
1590
1737
  onToggleFilterBar: T,
@@ -1599,15 +1746,15 @@ function Zr({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1599
1746
  isFetching: m,
1600
1747
  onRefresh: () => O()
1601
1748
  }),
1602
- r && u && /* @__PURE__ */ X("div", {
1749
+ r && u && /* @__PURE__ */ J("div", {
1603
1750
  className: "dc:px-3 dc:py-2 dc:border-b border-dc-border bg-dc-surface",
1604
- children: /* @__PURE__ */ X(Qt, {
1751
+ children: /* @__PURE__ */ J(en, {
1605
1752
  filters: l,
1606
1753
  schema: M,
1607
1754
  onFiltersChange: w
1608
1755
  })
1609
1756
  }),
1610
- /* @__PURE__ */ X(Xr, {
1757
+ /* @__PURE__ */ J(hi, {
1611
1758
  data: f,
1612
1759
  columns: i,
1613
1760
  sortColumn: a,
@@ -1622,7 +1769,7 @@ function Zr({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1622
1769
  })
1623
1770
  ]
1624
1771
  }),
1625
- d && M && /* @__PURE__ */ X(vt, {
1772
+ d && M && /* @__PURE__ */ J(be, {
1626
1773
  isOpen: d,
1627
1774
  onClose: () => E(!1),
1628
1775
  onSelect: N,
@@ -1633,11 +1780,11 @@ function Zr({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1633
1780
  ]
1634
1781
  });
1635
1782
  }
1636
- function Qr({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight: r, loadingComponent: i }) {
1637
- return /* @__PURE__ */ X(kr, {
1783
+ function _i({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight: r, loadingComponent: i }) {
1784
+ return /* @__PURE__ */ J(Jr, {
1638
1785
  defaultPageSize: n,
1639
1786
  defaultCube: t,
1640
- children: /* @__PURE__ */ X(Zr, {
1787
+ children: /* @__PURE__ */ J(gi, {
1641
1788
  className: e,
1642
1789
  maxHeight: r,
1643
1790
  loadingComponent: i
@@ -1646,13 +1793,13 @@ function Qr({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight:
1646
1793
  }
1647
1794
  //#endregion
1648
1795
  //#region src/client/components/DashboardThumbnailPlaceholder.tsx
1649
- var $r = c("segment");
1650
- function ei({ className: e = "" }) {
1651
- return /* @__PURE__ */ X("div", {
1796
+ var vi = D("segment");
1797
+ function yi({ className: e = "" }) {
1798
+ return /* @__PURE__ */ J("div", {
1652
1799
  className: `dc:flex dc:items-center dc:justify-center bg-dc-bg-secondary ${e}`,
1653
- children: /* @__PURE__ */ Z("div", {
1800
+ children: /* @__PURE__ */ Y("div", {
1654
1801
  className: "dc:text-center",
1655
- children: [/* @__PURE__ */ X($r, { className: "dc:w-8 dc:h-8 dc:mx-auto dc:mb-2 text-dc-text-muted dc:opacity-50" }), /* @__PURE__ */ X("span", {
1802
+ children: [/* @__PURE__ */ J(vi, { className: "dc:w-8 dc:h-8 dc:mx-auto dc:mb-2 text-dc-text-muted dc:opacity-50" }), /* @__PURE__ */ J("span", {
1656
1803
  className: "dc:text-xs text-dc-text-muted",
1657
1804
  children: "No preview"
1658
1805
  })]
@@ -1660,6 +1807,6 @@ function ei({ className: e = "" }) {
1660
1807
  });
1661
1808
  }
1662
1809
  //#endregion
1663
- export { Sr as AgenticNotebook, gt as AnalysisBuilder, Ft as AnalyticsDashboard, Cr as AnalyticsPage, qe as AnalyticsPortlet, Vt as ChartErrorBoundary, At as ConfirmModal, w as CubeClient, k as CubeProvider, u as DEFAULT_ICONS, Rt as DashboardEditModal, bt as DashboardFilterBar, St as DashboardGrid, Et as DashboardGridSurface, ut as DashboardModals, nt as DashboardProvider, Xe as DashboardStoreProvider, ei as DashboardThumbnailPlaceholder, tt as DashboardToolbar, Qr as DataBrowser, yt as DrillBreadcrumb, lt as DrillMenu, tn as ExecutionPlanPanel, Zt as ExplainAIPanel, M as LazyChart, Wt as LoadingIndicator, Mt as Modal, In as NotebookStoreProvider, ft as PortletAnalysisModal, Ot as PortletContainer, Ee as ScrollContainerProvider, ke as THEME_PRESETS, Pe as applyTheme, xe as buildFunnelConfigFromQueries, ve as buildServerFunnelQuery, f as captureThumbnail, E as chartPluginRegistry, gn as compressAndEncode, C as createCubeClient, qt as createDashboardLayout, Ze as createDashboardStore, kt as createDefaultConfig, It as createDefaultFlowConfig, Ct as createDefaultFunnelConfig, dt as createDefaultQueryConfig, jt as createDefaultRetentionConfig, Lt as createDefaultWorkspace, fe as createExplainQueryKey, ae as createFlowQueryKey, ee as createFunnelQueryKey, Pn as createNotebookStore, ln as decodeAndDecompress, dn as detectAsymmetricDateRanges, an as detectMeasureCollisions, I as exportPortletToXlsx, Kt as formatChartData, ge as formatDuration, te as generateQueryLabel, un as generateShareUrl, Sn as getAvailableBindingKeyDimensions, F as getAvailableChartTypes, be as getBindingKeyField, _n as getBindingKeyLabel, x as getChartTypeIcon, oe as getCombinedFields, Se as getCubeNameFromQuery, l as getFieldTypeIcon, c as getIcon, _ as getIconData, O as getIconRegistry, a as getIconsByCategory, D as getMeasureTypeIcon, ie as getQueryIndices, ne as getQueryLabels, Le as getTheme, Ae as getThemeVariable, T as getUnavailableChartTypes, Cn as getValidationSummary, Gt as highlightCodeBlocks, P as isChartTypeAvailable, je as isDarkMode, o as isExportAvailable, pt as isFlowConfig, Tt as isFunnelConfig, _e as isFunnelData, bn as isMinimumFunnelConfigValid, Bt as isMultiQuery, st as isMultiQueryConfig, V as isMultiQueryData, En as isMultiQueryValid, mt as isQueryConfig, _t as isRetentionConfig, Ce as isSankeyData, we as isServerFlowQuery, ot as isServerFunnelQuery, yn as isShareableSize, Nt as isSingleQuery, d as isThumbnailCaptureAvailable, Dt as isValidAnalysisConfig, xt as isValidAnalysisWorkspace, b as isValidChartType, R as mergeQueryResults, ce as mergeResultsByKey, le as mergeResultsConcat, ht as migrateConfig, zt as migrateLegacyPortlet, fn as parseShareUrl, s as preloadChart, N as preloadCharts, h as registerIcons, g as resetIcons, Ie as resetTheme, $e as selectAllActions, Wn as selectBlockActions, Ln as selectBlocks, wn as selectBreakdowns, rn as selectChartConfig, Un as selectChatActions, Hn as selectChatState, Xt as selectCurrentState, Ue as selectDebugData, Ke as selectDebugDataActions, Ye as selectEditModeActions, et as selectEditModeState, Yt as selectFilters, en as selectFunnelState, Vn as selectInputValue, zn as selectIsStreaming, Ut as selectLayoutActions, Be as selectLayoutState, Rn as selectMessages, hn as selectMetrics, it as selectModalActions, Ge as selectModalState, Jt as selectMultiQueryState, rt as selectPortletDebugData, Bn as selectSessionId, at as selectThumbnailDirty, mn as selectUIState, v as setIcon, Fe as setTheme, Ne as setThemeVariable, ye as transformServerFunnelResult, sr as useAgentChat, cn as useAnalysisBuilder, $t as useAnalysisBuilderStore, p as useCubeApi, j as useCubeContext, y as useCubeFeatures, Oe as useCubeFieldLabel, L as useCubeLoadQuery, L as useCubeQuery, De as useCubeMeta, A as useCubeMetaQuery, Ve as useDashboard, He as useDashboardContext, We as useDashboardStore, Je as useDashboardStoreApi, Pt as useDashboardStoreOptional, Nr as useDataBrowser, ct as useDrillInteraction, de as useDryRunQueries, ue as useDryRunQuery, ze as useElementVisibility, he as useExplainAI, me as useExplainQuery, se as useFlowQuery, re as useFunnelQuery, B as useMultiCubeLoadQuery, pe as useMultiDryRunQueries, Q as useNotebookStore, Te as useScrollContainer, wt as useScrollDetection, kn as useTheme, pn as validateBindingKeyExists, on as validateBindingKeyForSteps, vn as validateFunnelConfig, z as validateMergeKey, sn as validateMergeKeys, Tn as validateMultiQueryConfig, xn as validateStepQueries, nn as validateTimeDimensionAlignment, S as warnIfExcelJsMissing, m as warnIfScreenshotLibMissing, Me as watchThemeChanges };
1810
+ export { Vr as AgenticNotebook, De as AnalysisBuilder, Ke as AnalyticsDashboard, Hr as AnalyticsPage, ve as AnalyticsPortlet, de as ChartErrorBoundary, Ve as ConfirmModal, c as CubeClient, E as CubeProvider, u as DEFAULT_ICONS, Ye as DashboardEditModal, Ae as DashboardFilterBar, Me as DashboardGrid, Le as DashboardGridSurface, Se as DashboardModals, ee as DashboardProvider, ce as DashboardStoreProvider, yi as DashboardThumbnailPlaceholder, I as DashboardToolbar, _i as DataBrowser, _e as DrillBreadcrumb, ye as DrillMenu, rn as ExecutionPlanPanel, $t as ExplainAIPanel, Kt as LazyChart, B as LoadingIndicator, Ue as Modal, Rn as NotebookStoreProvider, we as PortletAnalysisModal, ze as PortletContainer, o as ScrollContainerProvider, st as THEME_PRESETS, ot as applyTheme, Rt as buildFunnelConfigFromQueries, Ft as buildServerFunnelQuery, m as captureThumbnail, T as chartPluginRegistry, vn as compressAndEncode, v as createCubeClient, Yt as createDashboardLayout, ue as createDashboardStore, Ne as createDefaultConfig, Ce as createDefaultFlowConfig, He as createDefaultFunnelConfig, Je as createDefaultQueryConfig, Te as createDefaultRetentionConfig, Ie as createDefaultWorkspace, kt as createExplainQueryKey, St as createFlowQueryKey, ht as createFunnelQueryKey, In as createNotebookStore, dn as decodeAndDecompress, pn as detectAsymmetricDateRanges, sn as detectMeasureCollisions, s as exportPortletToXlsx, Jt as formatChartData, Nt as formatDuration, _t as generateQueryLabel, fn as generateShareUrl, wn as getAvailableBindingKeyDimensions, Ht as getAvailableChartTypes, Lt as getBindingKeyField, yn as getBindingKeyLabel, S as getChartTypeIcon, Ct as getCombinedFields, zt as getCubeNameFromQuery, y as getFieldTypeIcon, D as getIcon, A as getIconData, b as getIconRegistry, k as getIconsByCategory, g as getMeasureTypeIcon, xt as getQueryIndices, yt as getQueryLabels, at as getTheme, it as getThemeVariable, Wt as getUnavailableChartTypes, Tn as getValidationSummary, qt as highlightCodeBlocks, Vt as isChartTypeAvailable, nt as isDarkMode, C as isExportAvailable, Ze as isFlowConfig, Ee as isFunnelConfig, Pt as isFunnelData, Sn as isMinimumFunnelConfigValid, Oe as isMultiQuery, Qe as isMultiQueryConfig, vt as isMultiQueryData, On as isMultiQueryValid, We as isQueryConfig, Re as isRetentionConfig, M as isSankeyData, N as isServerFlowQuery, $e as isServerFunnelQuery, xn as isShareableSize, je as isSingleQuery, d as isThumbnailCaptureAvailable, ke as isValidAnalysisConfig, xe as isValidAnalysisWorkspace, Bt as isValidChartType, pt as mergeQueryResults, Tt as mergeResultsByKey, Et as mergeResultsConcat, Be as migrateConfig, qe as migrateLegacyPortlet, mn as parseShareUrl, Ut as preloadChart, Gt as preloadCharts, l as registerIcons, O as resetIcons, ct as resetTheme, te as selectAllActions, Kn as selectBlockActions, zn as selectBlocks, En as selectBreakdowns, on as selectChartConfig, Gn as selectChatActions, Wn as selectChatState, Qt as selectCurrentState, re as selectDebugData, oe as selectDebugDataActions, fe as selectEditModeActions, et as selectEditModeState, Zt as selectFilters, nn as selectFunnelState, Un as selectInputValue, Vn as selectIsStreaming, F as selectLayoutActions, he as selectLayoutState, Bn as selectMessages, _n as selectMetrics, ne as selectModalActions, me as selectModalState, Xt as selectMultiQueryState, ge as selectPortletDebugData, Hn as selectSessionId, R as selectThumbnailDirty, gn as selectUIState, _ as setIcon, ut as setTheme, rt as setThemeVariable, It as transformServerFunnelResult, Tr as useAgentChat, un as useAnalysisBuilder, tn as useAnalysisBuilderStore, j as useCubeApi, x as useCubeContext, w as useCubeFeatures, tt as useCubeFieldLabel, ft as useCubeLoadQuery, ft as useCubeQuery, dt as useCubeMeta, h as useCubeMetaQuery, le as useDashboard, L as useDashboardContext, ae as useDashboardStore, Ge as useDashboardStoreApi, ie as useDashboardStoreOptional, Qr as useDataBrowser, P as useDrillInteraction, Ot as useDryRunQueries, Dt as useDryRunQuery, Pe as useElementVisibility, Mt as useExplainAI, jt as useExplainQuery, wt as useFlowQuery, bt as useFunnelQuery, gt as useMultiCubeLoadQuery, At as useMultiDryRunQueries, X as useNotebookStore, a as useScrollContainer, se as useScrollDetection, jn as useTheme, hn as validateBindingKeyExists, cn as validateBindingKeyForSteps, bn as validateFunnelConfig, mt as validateMergeKey, ln as validateMergeKeys, Dn as validateMultiQueryConfig, Cn as validateStepQueries, an as validateTimeDimensionAlignment, p as warnIfExcelJsMissing, f as warnIfScreenshotLibMissing, lt as watchThemeChanges };
1664
1811
 
1665
1812
  //# sourceMappingURL=index.js.map