drizzle-cube 0.5.8 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
  3. package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
  4. package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
  5. package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
  6. package/dist/adapters/adapters/utils.d.ts +6 -81
  7. package/dist/adapters/express/index.cjs +1 -1
  8. package/dist/adapters/express/index.js +50 -50
  9. package/dist/adapters/fastify/index.cjs +1 -1
  10. package/dist/adapters/fastify/index.js +78 -78
  11. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  12. package/dist/adapters/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  13. package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
  14. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  15. package/dist/adapters/hono/index.cjs +2 -2
  16. package/dist/adapters/hono/index.js +205 -175
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/mcp-tools.cjs +1 -1
  20. package/dist/adapters/mcp-tools.js +49 -38
  21. package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
  22. package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
  23. package/dist/adapters/nextjs/index.cjs +1 -1
  24. package/dist/adapters/nextjs/index.js +190 -197
  25. package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  26. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  27. package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
  28. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  29. package/dist/adapters/utils.cjs +1 -1
  30. package/dist/adapters/utils.js +2 -2
  31. package/dist/client/charts/ChartLoader.d.ts +2 -16
  32. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  33. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  34. package/dist/client/charts.js +14 -13
  35. package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
  36. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  37. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  38. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
  39. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  40. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
  41. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  42. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  43. package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  44. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  45. package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
  46. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  47. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  48. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  49. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  50. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  51. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
  52. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
  53. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  54. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  55. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
  56. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
  57. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  58. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  59. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  60. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  61. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  62. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  63. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  64. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  65. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  66. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  67. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  68. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  69. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  70. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  71. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  72. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  73. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  74. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  75. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  76. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  77. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  78. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  79. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  80. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  81. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  82. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  83. package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
  84. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  85. package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
  86. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  87. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  88. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  89. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  90. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  91. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  92. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  93. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  94. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  95. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  96. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  97. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  98. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  99. package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
  100. package/dist/client/chunks/{chart-markdown-dgUetjyM.js.map → chart-markdown-CV75S_zL.js.map} +1 -1
  101. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  102. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
  103. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  104. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  105. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  106. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  107. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  108. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  109. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
  110. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
  111. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  112. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  113. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
  114. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
  115. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  116. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  117. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
  118. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
  119. package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
  120. package/dist/client/chunks/{charts-core-jRtb0S2M.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
  121. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  122. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  123. package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
  124. package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  125. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  126. package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  127. package/dist/client/chunks/{schema-visualization-DE09kQE3.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
  128. package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  129. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  130. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
  131. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
  132. package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
  133. package/dist/client/chunks/{utils-CTKNaXS8.js.map → utils-3P6z1vz5.js.map} +1 -1
  134. package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
  135. package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
  136. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  137. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  138. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  139. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  140. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  141. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  142. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  143. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  144. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  145. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  146. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  147. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  148. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  149. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  150. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  151. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  152. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  153. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  154. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  155. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  156. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  157. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  158. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  159. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  160. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
  161. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  162. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  163. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  164. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  165. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  166. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  167. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  168. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  169. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  170. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  171. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  172. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  173. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  174. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  175. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  176. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  177. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  178. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  179. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  180. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  181. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  182. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  183. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  184. package/dist/client/components/charts/AxisFormatControls.d.ts +3 -1
  185. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  186. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  187. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  188. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  189. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  190. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  191. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  192. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  193. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  194. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  195. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  196. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  197. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  198. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  199. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  200. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  201. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  202. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  203. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  204. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  205. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  206. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  207. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  208. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  209. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  210. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  211. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  212. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  213. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  214. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  215. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  216. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  217. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  218. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  219. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  220. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  221. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  222. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  223. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  224. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  225. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  226. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  227. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  228. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  229. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  230. package/dist/client/components/shared/utils.d.ts +4 -43
  231. package/dist/client/components.js +3 -3
  232. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  233. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  234. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  235. package/dist/client/hooks.js +3 -3
  236. package/dist/client/icons.js +2 -2
  237. package/dist/client/index.js +816 -669
  238. package/dist/client/index.js.map +1 -1
  239. package/dist/client/providers.js +3 -3
  240. package/dist/client/schema.js +1 -1
  241. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  242. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  243. package/dist/client/shared/queryTransforms.d.ts +20 -0
  244. package/dist/client/shared/utils.d.ts +2 -4
  245. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  246. package/dist/client/styles.css +1 -1
  247. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  248. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  249. package/dist/client/utils.js +6 -6
  250. package/dist/client-bundle-stats.html +1 -1
  251. package/dist/mcp-app/mcp-app.html +55 -55
  252. package/dist/server/google-BOnRIN1w.cjs +2 -0
  253. package/dist/server/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  254. package/dist/server/index.cjs +179 -211
  255. package/dist/server/index.js +6330 -6458
  256. package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  257. package/dist/server/openai-vXvLni8v.cjs +1 -0
  258. package/dist/server/server/adapters/base-adapter.d.ts +80 -35
  259. package/dist/server/server/adapters/databend-adapter.d.ts +8 -59
  260. package/dist/server/server/adapters/duckdb-adapter.d.ts +5 -59
  261. package/dist/server/server/adapters/mysql-adapter.d.ts +13 -70
  262. package/dist/server/server/adapters/postgres-adapter.d.ts +1 -65
  263. package/dist/server/server/adapters/snowflake-adapter.d.ts +5 -68
  264. package/dist/server/server/adapters/sqlite-adapter.d.ts +12 -32
  265. package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
  266. package/dist/server/server/agent/chart-validation.d.ts +0 -5
  267. package/dist/server/server/agent/handler-steps.d.ts +37 -0
  268. package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
  269. package/dist/server/server/ai/discovery.d.ts +4 -0
  270. package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
  271. package/dist/server/server/ai/suggestion.d.ts +0 -3
  272. package/dist/server/server/ai/validation-helpers.d.ts +21 -0
  273. package/dist/server/server/ai/validation.d.ts +0 -3
  274. package/dist/server/server/builders/analysis-utils.d.ts +106 -0
  275. package/dist/server/server/builders/cte-builder.d.ts +46 -0
  276. package/dist/server/server/builders/date-time-builder.d.ts +5 -0
  277. package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
  278. package/dist/server/server/builders/filter-builder.d.ts +2 -0
  279. package/dist/server/server/builders/filter-operators.d.ts +23 -0
  280. package/dist/server/server/builders/flow-query-builder.d.ts +46 -19
  281. package/dist/server/server/builders/funnel-query-builder.d.ts +16 -5
  282. package/dist/server/server/builders/group-by-builder.d.ts +11 -0
  283. package/dist/server/server/builders/measure-builder.d.ts +43 -0
  284. package/dist/server/server/builders/retention-query-builder.d.ts +12 -14
  285. package/dist/server/server/cache-utils.d.ts +25 -5
  286. package/dist/server/server/compiler-metadata.d.ts +11 -0
  287. package/dist/server/server/compiler.d.ts +8 -14
  288. package/dist/server/server/cube-utils.d.ts +29 -4
  289. package/dist/server/server/execution/annotation-builder.d.ts +12 -0
  290. package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
  291. package/dist/server/server/execution/mode-router.d.ts +25 -0
  292. package/dist/server/server/execution/query-result-cache.d.ts +21 -0
  293. package/dist/server/server/execution/result-post-processor.d.ts +10 -0
  294. package/dist/server/server/executor.d.ts +33 -30
  295. package/dist/server/server/executors/explain-utils.d.ts +28 -0
  296. package/dist/server/server/explain/explain-tree.d.ts +20 -0
  297. package/dist/server/server/filter-cache.d.ts +2 -2
  298. package/dist/server/server/gap-filler.d.ts +6 -0
  299. package/dist/server/server/index.d.ts +3 -1
  300. package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  301. package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
  302. package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
  303. package/dist/server/server/logical-plan/index.d.ts +6 -1
  304. package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
  305. package/dist/server/server/logical-plan/logical-planner.d.ts +7 -200
  306. package/dist/server/server/logical-plan/optimiser.d.ts +3 -1
  307. package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  308. package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
  309. package/dist/server/server/logical-plan/types.d.ts +17 -9
  310. package/dist/server/server/measure-classification.d.ts +40 -0
  311. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +21 -21
  312. package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +11 -0
  313. package/dist/server/server/physical-plan/processors/index.d.ts +2 -0
  314. package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  315. package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  316. package/dist/server/server/physical-plan/processors/shared.d.ts +5 -0
  317. package/dist/server/server/query-handlers.d.ts +79 -0
  318. package/dist/server/server/query-modes.d.ts +28 -0
  319. package/dist/server/server/query-validator.d.ts +9 -0
  320. package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +5 -0
  321. package/dist/server/server/resolvers/join-path-resolver.d.ts +6 -0
  322. package/dist/server/server/sql-format.d.ts +11 -0
  323. package/dist/server/server/types/cube.d.ts +18 -4
  324. package/dist/server/server/types/flow.d.ts +6 -5
  325. package/dist/server/server/types/index.d.ts +1 -1
  326. package/dist/server/server/types/validation.d.ts +14 -0
  327. package/package.json +11 -4
  328. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  329. package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
  330. package/dist/adapters/locale-BPB7flIG.js +0 -8249
  331. package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
  332. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
  333. package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
  334. package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
  335. package/dist/adapters/utils-KV37IBIv.cjs +0 -128
  336. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
  337. package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
  338. package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
  339. package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
  340. package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
  341. package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
  342. package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
  343. package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
  344. package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
  345. package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
  346. package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
  347. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  348. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  349. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  350. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  351. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  352. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  353. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  354. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  355. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  356. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  357. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  358. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  359. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  360. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  361. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  362. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
  363. package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
  364. package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
  365. package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
  366. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
  367. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
  368. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
  369. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
  370. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
  371. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
  372. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
  373. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
  374. package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
  375. package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
  376. package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
  377. package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
  378. package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
  379. package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
  380. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
  381. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
  382. package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
  383. package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
  384. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
  385. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
  386. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
  387. package/dist/server/google-DUlXeeDA.cjs +0 -2
  388. package/dist/server/openai-D_U4V0kT.cjs +0 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-KV37IBIv.cjs"),t=require("../locale-tIMrNcCr.cjs"),n=require("../mcp-transport-C2QzXm6h.cjs");let r=require("next/server");function i(e){let{cubes:n,drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s}=e;if(!n||n.length===0)throw Error(`At least one cube must be provided in the cubes array`);let c=new t.i({drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s});return n.forEach(e=>{c.registerCube(e)}),c}function a(e){return{extractSecurityContext:async(n,r)=>t.r(await e.extractSecurityContext(n,r),t.n(e=>n.headers.get(e))),cors:e.cors?{...e.cors,allowedHeaders:t.t(e.cors.allowedHeaders)}:void 0}}function o(e,t){let n=e.headers.get(`origin`),r={};return t.origin&&(typeof t.origin==`string`?r[`Access-Control-Allow-Origin`]=t.origin:Array.isArray(t.origin)?n&&t.origin.includes(n)&&(r[`Access-Control-Allow-Origin`]=n):typeof t.origin==`function`&&n&&t.origin(n)&&(r[`Access-Control-Allow-Origin`]=n)),t.methods&&(r[`Access-Control-Allow-Methods`]=t.methods.join(`, `)),t.allowedHeaders&&(r[`Access-Control-Allow-Headers`]=t.allowedHeaders.join(`, `)),t.credentials&&(r[`Access-Control-Allow-Credentials`]=`true`),r}function s(e){return async function(n){let r=o(n,{...e,allowedHeaders:t.t(e.allowedHeaders)});return new Response(null,{status:200,headers:r})}}function c(t){let{extractSecurityContext:n,cors:s}=a(t),c=i(t);return async function(t,i){try{let a;if(t.method===`POST`){let e=await t.json();a=e.query||e}else if(t.method===`GET`){let n=t.nextUrl.searchParams.get(`query`);if(!n)return r.NextResponse.json(e.i(`Query parameter is required`,400),{status:400});try{a=JSON.parse(n)}catch{return r.NextResponse.json(e.i(`Invalid JSON in query parameter`,400),{status:400})}}else return r.NextResponse.json(e.i(`Method not allowed`,405),{status:405});let l=await n(t,i),u=c.validateQuery(a);if(!u.isValid)return r.NextResponse.json(e.i(`Query validation failed: ${u.errors.join(`, `)}`,400),{status:400});let d=t.headers.get(`x-cache-control`)===`no-cache`,f=await c.executeMultiCubeQuery(a,l,{skipCache:d}),p=e.r(a,f,c);return r.NextResponse.json(p,{headers:s?o(t,s):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js load handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function l(t){let{cors:n}=a(t),s=i(t);return async function(t,i){try{let i=e.a(s.getMetadata());return r.NextResponse.json(i,{headers:n?o(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js meta handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Failed to fetch metadata`,500),{status:500})}}}function u(t){let{extractSecurityContext:n,cors:s}=a(t),c=i(t);return async function(t,i){try{let a;if(t.method===`POST`){let e=await t.json();a=e.query||e}else if(t.method===`GET`){let n=t.nextUrl.searchParams.get(`query`);if(!n)return r.NextResponse.json(e.i(`Query parameter is required`,400),{status:400});try{a=JSON.parse(n)}catch{return r.NextResponse.json(e.i(`Invalid JSON in query parameter`,400),{status:400})}}else return r.NextResponse.json(e.i(`Method not allowed`,405),{status:405});let l=await n(t,i),u=c.validateQuery(a);if(!u.isValid)return r.NextResponse.json(e.i(`Query validation failed: ${u.errors.join(`, `)}`,400),{status:400});let d=a.measures?.[0]||a.dimensions?.[0];if(!d)return r.NextResponse.json(e.i(`No measures or dimensions specified`,400),{status:400});let f=d.split(`.`)[0],p=await c.generateSQL(f,a,l),m=e.o(a,p);return r.NextResponse.json(m,{headers:s?o(t,s):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js SQL handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`SQL generation failed`,500),{status:500})}}}function d(t){let{extractSecurityContext:n,cors:s}=a(t),c=i(t);return async function(t,i){try{let a;if(t.method===`POST`){let e=await t.json();a=e.query||e}else if(t.method===`GET`){let e=t.nextUrl.searchParams.get(`query`);if(!e)return r.NextResponse.json({error:`Query parameter is required`,valid:!1},{status:400});try{a=JSON.parse(e)}catch{return r.NextResponse.json({error:`Invalid JSON in query parameter`,valid:!1},{status:400})}}else return r.NextResponse.json({error:`Method not allowed`,valid:!1},{status:405});let l=await n(t,i),u=await e.f(a,l,c);return r.NextResponse.json(u,{headers:s?o(t,s):{}})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js dry-run handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},{status:400})}}}function f(t){let{extractSecurityContext:n,cors:s}=a(t),c=i(t);return async function(t,i){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let{queries:a}=await t.json();if(!a||!Array.isArray(a))return r.NextResponse.json(e.i(`Request body must contain a "queries" array`,400),{status:400});if(a.length===0)return r.NextResponse.json(e.i(`Queries array cannot be empty`,400),{status:400});let l=await e.u(a,await n(t,i),c,{skipCache:t.headers.get(`x-cache-control`)===`no-cache`});return r.NextResponse.json(l,{headers:s?o(t,s):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js batch handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Batch execution failed`,500),{status:500})}}}function p(e){let{extractSecurityContext:t,cors:n}=a(e),s=i(e);return async function(e,i){try{if(e.method!==`POST`)return r.NextResponse.json({error:`Method not allowed`},{status:405});let a=await e.json(),c=a.query||a,l=a.options||{},u=await t(e,i),d=s.validateQuery(c);if(!d.isValid)return r.NextResponse.json({error:`Query validation failed: ${d.errors.join(`, `)}`},{status:400});let f=await s.explainQuery(c,u,l);return r.NextResponse.json(f,{headers:n?o(e,n):{}})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js explain handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Explain query failed`},{status:500})}}}function m(t){let{cors:n}=a(t),s=i(t);return async function(t,i){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let i=await e.d(s,await t.json());return r.NextResponse.json(i,{headers:n?o(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js discover handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Discovery failed`,500),{status:500})}}}function h(t){let{cors:n}=a(t),s=i(t);return async function(t,i){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let i=await t.json();if(!i.naturalLanguage)return r.NextResponse.json(e.i(`naturalLanguage field is required`,400),{status:400});let a=await e.m(s,i);return r.NextResponse.json(a,{headers:n?o(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js suggest handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query suggestion failed`,500),{status:500})}}}function g(t){let{cors:n}=a(t),s=i(t);return async function(t,i){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let i=await t.json();if(!i.query)return r.NextResponse.json(e.i(`query field is required`,400),{status:400});let a=await e.h(s,i);return r.NextResponse.json(a,{headers:n?o(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js validate handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query validation failed`,500),{status:500})}}}function _(t){let{extractSecurityContext:n,cors:s}=a(t),c=i(t);return async function(t,i){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json();if(!a.query)return r.NextResponse.json(e.i(`query field is required`,400),{status:400});let l=await e.p(c,await n(t,i),a);return r.NextResponse.json(l,{headers:s?o(t,s):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP load handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function v(t){let{extractSecurityContext:s,cors:c}=a(t),{mcp:l={enabled:!0}}=t,u=i(t),d=n.o(u,l.resources),f=n.y(l.prompts),p=n.v(l.instructions);return async function(t){if(l.resourceMetadataUrl&&!n.u(t.headers.get(`authorization`)))return r.NextResponse.json({error:`Bearer token required`},{status:401,headers:{"WWW-Authenticate":n.c(l.resourceMetadataUrl)}});if(t.method===`DELETE`)return r.NextResponse.json({error:`Session termination not supported`},{status:405});if(t.method===`GET`){let e=new TextEncoder,i=n._(),a=new ReadableStream({start(t){t.enqueue(e.encode(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},i,15e3)))}}),s=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(c){let e=o(t,c);Object.entries(e).forEach(([e,t])=>s.set(e,t))}return new r.NextResponse(a,{status:200,headers:s})}if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let i=n.S(t.headers.get(`origin`),l.allowedOrigins?{allowedOrigins:l.allowedOrigins}:{});if(!i.valid)return r.NextResponse.json(n.i(null,-32600,i.reason),{status:403});let a=t.headers.get(`accept`);if(!n.x(a))return r.NextResponse.json(n.i(null,-32600,`Accept header must include both application/json and text/event-stream`),{status:400});let m=n.h(Object.fromEntries(t.headers.entries()));if(!m.ok)return r.NextResponse.json({error:`Unsupported MCP protocol version`,supported:m.supported},{status:426});let h;try{h=await t.json()}catch{h=null}let g=n.g(h);if(!g)return r.NextResponse.json(n.i(null,-32600,`Invalid JSON-RPC 2.0 request`),{status:400});let _=n.C(a),v=g.method===`initialize`,y=(e,n=200,i={})=>r.NextResponse.json(e,{status:n,headers:{...c?o(t,c):{},...i}});try{let e=await n.l(g.method,g.params,{semanticLayer:u,extractSecurityContext:e=>s(e),rawRequest:t,rawResponse:null,resources:d,prompts:f,instructions:p,appEnabled:!!l.app,appConfig:typeof l.app==`object`?l.app:void 0,serverName:l.serverName});if(n.m(g))return new r.NextResponse(null,{status:202});let i=v&&e&&typeof e==`object`&&`sessionId`in e?e.sessionId:void 0,a={};i&&(a[n.r]=i);let m=n.a(g.id??null,e);if(_){let e=new TextEncoder,i=n._(),s=new ReadableStream({start(t){t.enqueue(e.encode(`id: ${i}\n\n`)),t.enqueue(e.encode(n.b(m,i))),t.close()}}),l=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...a});if(c){let e=o(t,c);Object.entries(e).forEach(([e,t])=>l.set(e,t))}return new r.NextResponse(s,{status:200,headers:l})}return y(m,200,a)}catch(e){if(n.m(g))return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP notification processing error:`,e),new r.NextResponse(null,{status:202});process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP RPC handler error:`,e);let i=e?.code??-32603,a=e?.data,s=e.message||`MCP request failed`,l=n.i(g.id??null,i,s,a);if(_){let e=new TextEncoder,i=n._(),a=new ReadableStream({start(t){t.enqueue(e.encode(`id: ${i}\n\n`)),t.enqueue(e.encode(n.b(l,i))),t.close()}}),s=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(c){let e=o(t,c);Object.entries(e).forEach(([e,t])=>s.set(e,t))}return new r.NextResponse(a,{status:200,headers:s})}return y(l,200)}}}function y(e){let{extractSecurityContext:t,cors:n}=a(e),{agent:s}=e;if(!s)throw Error(`agent config is required for createAgentChatHandler`);let c=i(e);return async function(e,i){try{if(e.method!==`POST`)return r.NextResponse.json({error:`Method not allowed - use POST`},{status:405});let{handleAgentChat:a}=await Promise.resolve().then(()=>require("../handler-CzbCuS6_.cjs")),{message:l,sessionId:u,history:d}=await e.json();if(!l||typeof l!=`string`)return r.NextResponse.json({error:`message is required and must be a string`},{status:400});let f=(s.apiKey||``).trim();if(s.allowClientApiKey){let t=e.headers.get(`x-agent-api-key`);t&&(f=t.trim())}if(!f)return r.NextResponse.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},{status:401});let p=s.allowClientApiKey&&e.headers.get(`x-agent-provider`)||void 0,m=s.allowClientApiKey&&e.headers.get(`x-agent-model`)||void 0,h=s.allowClientApiKey&&e.headers.get(`x-agent-provider-endpoint`)||void 0,g=await t(e,i),_=s.buildSystemContext?.(g),v=new TextEncoder,y=new ReadableStream({async start(e){try{let t=a({message:l,sessionId:u,history:d,semanticLayer:c,securityContext:g,agentConfig:s,apiKey:f,systemContext:_,providerOverride:p,modelOverride:m,baseURLOverride:h});for await(let n of t){let t=`data: ${JSON.stringify(n)}\n\n`;e.enqueue(v.encode(t))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(v.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}}),b=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(n){let t=o(e,n);Object.entries(t).forEach(([e,t])=>b.set(e,t))}return new Response(y,{status:200,headers:b})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js agent chat handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Agent chat failed`},{status:500})}}}function b(e){let{mcp:t={enabled:!0}}=e,n={load:c(e),meta:l(e),sql:u(e),dryRun:d(e),batch:f(e),explain:p(e)};return t.enabled!==!1&&(n.mcpRpc=v(e)),e.agent&&(n.agentChat=y(e)),n}exports.createAgentChatHandler=y,exports.createBatchHandler=f,exports.createCubeHandlers=b,exports.createDiscoverHandler=m,exports.createDryRunHandler=d,exports.createExplainHandler=p,exports.createLoadHandler=c,exports.createMcpLoadHandler=_,exports.createMcpRpcHandler=v,exports.createMetaHandler=l,exports.createOptionsHandler=s,exports.createSqlHandler=u,exports.createSuggestHandler=h,exports.createValidateHandler=g;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../locale-ZLUUNUxr.cjs"),n=require("../mcp-transport-Chiaj4ll.cjs");let r=require("next/server");function i(e,t){let i=new TextEncoder,a=n._(),o=new ReadableStream({start(e){e.enqueue(i.encode(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},a,15e3)))}}),s=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});return t(e,s),new r.NextResponse(o,{status:200,headers:s})}async function a(e,t){let i=n.S(e.headers.get(`origin`),t.allowedOrigins?{allowedOrigins:t.allowedOrigins}:{});if(!i.valid)return{response:r.NextResponse.json(n.i(null,-32600,i.reason),{status:403})};let a=e.headers.get(`accept`);if(!n.x(a))return{response:r.NextResponse.json(n.i(null,-32600,`Accept header must include both application/json and text/event-stream`),{status:400})};let o=n.h(Object.fromEntries(e.headers.entries()));if(!o.ok)return{response:r.NextResponse.json({error:`Unsupported MCP protocol version`,supported:o.supported},{status:426})};let s;try{s=await e.json()}catch{s=null}let c=n.g(s);return c?{rpcRequest:c,acceptHeader:a}:{response:r.NextResponse.json(n.i(null,-32600,`Invalid JSON-RPC 2.0 request`),{status:400})}}function o(e,t,i,a={}){let o=new TextEncoder,s=n._(),c=new ReadableStream({start(e){e.enqueue(o.encode(`id: ${s}\n\n`)),e.enqueue(o.encode(n.b(t,s))),e.close()}}),l=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...a});return i(e,l),new r.NextResponse(c,{status:200,headers:l})}function s(e,t,n){let r=e&&t&&typeof t==`object`&&`sessionId`in t?t.sessionId:void 0;return r?{[n]:r}:{}}function c(e,t){let r=e?.code??-32603,i=e?.data,a=e.message||`MCP request failed`;return n.i(t??null,r,a,i)}function l(e){let{cubes:n,drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s}=e;if(!n||n.length===0)throw Error(`At least one cube must be provided in the cubes array`);let c=new t.i({drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s});return n.forEach(e=>{c.registerCube(e)}),c}function u(e){return{extractSecurityContext:async(n,r)=>t.r(await e.extractSecurityContext(n,r),t.n(e=>n.headers.get(e))),cors:e.cors?{...e.cors,allowedHeaders:t.t(e.cors.allowedHeaders)}:void 0}}function d(e,t){let n=e.headers.get(`origin`),r={};return t.origin&&(typeof t.origin==`string`?r[`Access-Control-Allow-Origin`]=t.origin:Array.isArray(t.origin)?n&&t.origin.includes(n)&&(r[`Access-Control-Allow-Origin`]=n):typeof t.origin==`function`&&n&&t.origin(n)&&(r[`Access-Control-Allow-Origin`]=n)),t.methods&&(r[`Access-Control-Allow-Methods`]=t.methods.join(`, `)),t.allowedHeaders&&(r[`Access-Control-Allow-Headers`]=t.allowedHeaders.join(`, `)),t.credentials&&(r[`Access-Control-Allow-Credentials`]=`true`),r}function f(e){return async function(n){let r=d(n,{...e,allowedHeaders:t.t(e.allowedHeaders)});return new Response(null,{status:200,headers:r})}}function p(t){let{extractSecurityContext:n,cors:i}=u(t),a=l(t);return async function(t,o){try{let s;if(t.method===`POST`){let e=await t.json();s=e.query||e}else if(t.method===`GET`){let n=t.nextUrl.searchParams.get(`query`);if(!n)return r.NextResponse.json(e.i(`Query parameter is required`,400),{status:400});try{s=JSON.parse(n)}catch{return r.NextResponse.json(e.i(`Invalid JSON in query parameter`,400),{status:400})}}else return r.NextResponse.json(e.i(`Method not allowed`,405),{status:405});let c=await n(t,o),l=a.validateQuery(s);if(!l.isValid)return r.NextResponse.json(e.i(`Query validation failed: ${l.errors.join(`, `)}`,400),{status:400});let u=t.headers.get(`x-cache-control`)===`no-cache`,f=await a.executeMultiCubeQuery(s,c,{skipCache:u}),p=e.r(s,f,a);return r.NextResponse.json(p,{headers:i?d(t,i):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js load handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function m(t){let{cors:n}=u(t),i=l(t);return async function(t,a){try{let a=e.a(i.getMetadata());return r.NextResponse.json(a,{headers:n?d(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js meta handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Failed to fetch metadata`,500),{status:500})}}}function h(t){let{extractSecurityContext:n,cors:i}=u(t),a=l(t);return async function(t,o){try{let s;if(t.method===`POST`){let e=await t.json();s=e.query||e}else if(t.method===`GET`){let n=t.nextUrl.searchParams.get(`query`);if(!n)return r.NextResponse.json(e.i(`Query parameter is required`,400),{status:400});try{s=JSON.parse(n)}catch{return r.NextResponse.json(e.i(`Invalid JSON in query parameter`,400),{status:400})}}else return r.NextResponse.json(e.i(`Method not allowed`,405),{status:405});let c=await n(t,o),l=a.validateQuery(s);if(!l.isValid)return r.NextResponse.json(e.i(`Query validation failed: ${l.errors.join(`, `)}`,400),{status:400});let u=s.measures?.[0]||s.dimensions?.[0];if(!u)return r.NextResponse.json(e.i(`No measures or dimensions specified`,400),{status:400});let f=u.split(`.`)[0],p=await a.generateSQL(f,s,c),m=e.o(s,p);return r.NextResponse.json(m,{headers:i?d(t,i):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js SQL handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`SQL generation failed`,500),{status:500})}}}function g(t){let{extractSecurityContext:n,cors:i}=u(t),a=l(t);return async function(t,o){try{let s;if(t.method===`POST`){let e=await t.json();s=e.query||e}else if(t.method===`GET`){let e=t.nextUrl.searchParams.get(`query`);if(!e)return r.NextResponse.json({error:`Query parameter is required`,valid:!1},{status:400});try{s=JSON.parse(e)}catch{return r.NextResponse.json({error:`Invalid JSON in query parameter`,valid:!1},{status:400})}}else return r.NextResponse.json({error:`Method not allowed`,valid:!1},{status:405});let c=await n(t,o),l=await e.u(s,c,a);return r.NextResponse.json(l,{headers:i?d(t,i):{}})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js dry-run handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},{status:400})}}}function _(t){let{extractSecurityContext:n,cors:i}=u(t),a=l(t);return async function(t,o){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let{queries:s}=await t.json();if(!s||!Array.isArray(s))return r.NextResponse.json(e.i(`Request body must contain a "queries" array`,400),{status:400});if(s.length===0)return r.NextResponse.json(e.i(`Queries array cannot be empty`,400),{status:400});let c=await e.l(s,await n(t,o),a,{skipCache:t.headers.get(`x-cache-control`)===`no-cache`});return r.NextResponse.json(c,{headers:i?d(t,i):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js batch handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Batch execution failed`,500),{status:500})}}}function v(e){let{extractSecurityContext:t,cors:n}=u(e),i=l(e);return async function(e,a){try{if(e.method!==`POST`)return r.NextResponse.json({error:`Method not allowed`},{status:405});let o=await e.json(),s=o.query||o,c=o.options||{},l=await t(e,a),u=i.validateQuery(s);if(!u.isValid)return r.NextResponse.json({error:`Query validation failed: ${u.errors.join(`, `)}`},{status:400});let f=await i.explainQuery(s,l,c);return r.NextResponse.json(f,{headers:n?d(e,n):{}})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js explain handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Explain query failed`},{status:500})}}}function y(t){let{cors:n}=u(t),i=l(t);return async function(t,a){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await e.p(i,await t.json());return r.NextResponse.json(a,{headers:n?d(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js discover handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Discovery failed`,500),{status:500})}}}function b(t){let{cors:n}=u(t),i=l(t);return async function(t,a){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json();if(!a.naturalLanguage)return r.NextResponse.json(e.i(`naturalLanguage field is required`,400),{status:400});let o=await e.d(i,a);return r.NextResponse.json(o,{headers:n?d(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js suggest handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query suggestion failed`,500),{status:500})}}}function x(t){let{cors:n}=u(t),i=l(t);return async function(t,a){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json();if(!a.query)return r.NextResponse.json(e.i(`query field is required`,400),{status:400});let o=await e.f(i,a);return r.NextResponse.json(o,{headers:n?d(t,n):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js validate handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query validation failed`,500),{status:500})}}}function S(t){let{extractSecurityContext:n,cors:i}=u(t),a=l(t);return async function(t,o){try{if(t.method!==`POST`)return r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.query)return r.NextResponse.json(e.i(`query field is required`,400),{status:400});let c=await e.m(a,await n(t,o),s);return r.NextResponse.json(c,{headers:i?d(t,i):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP load handler error:`,t),r.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function C(t){let{extractSecurityContext:f,cors:p}=u(t),{mcp:m={enabled:!0}}=t,h=l(t),g=n.o(h,m.resources),_=n.y(m.prompts),v=n.v(m.instructions),y=(e,t)=>{if(!p)return;let n=d(e,p);Object.entries(n).forEach(([e,n])=>t.set(e,n))},b=async e=>{let t=await a(e,m);if(t.response)return t.response;let i=t.rpcRequest,l=n.C(t.acceptHeader),u=i.method===`initialize`,b=(t,n=200,i={})=>r.NextResponse.json(t,{status:n,headers:{...p?d(e,p):{},...i}});try{let t=await n.l(i.method,i.params,{semanticLayer:h,extractSecurityContext:e=>f(e),rawRequest:e,rawResponse:null,resources:g,prompts:_,instructions:v,appEnabled:!!m.app,appConfig:typeof m.app==`object`?m.app:void 0,serverName:m.serverName});if(n.m(i))return new r.NextResponse(null,{status:202});let a=s(u,t,n.r),c=n.a(i.id??null,t);return l?o(e,c,y,a):b(c,200,a)}catch(t){if(n.m(i))return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP notification processing error:`,t),new r.NextResponse(null,{status:202});process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP RPC handler error:`,t);let a=c(t,i.id);return l?o(e,a,y):b(a,200)}};return async function(t){return m.resourceMetadataUrl&&!n.u(t.headers.get(`authorization`))?r.NextResponse.json({error:`Bearer token required`},{status:401,headers:{"WWW-Authenticate":n.c(m.resourceMetadataUrl)}}):t.method===`DELETE`?r.NextResponse.json({error:`Session termination not supported`},{status:405}):t.method===`GET`?i(t,y):t.method===`POST`?b(t):r.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405})}}function w(e){let{extractSecurityContext:t,cors:n}=u(e),{agent:i}=e;if(!i)throw Error(`agent config is required for createAgentChatHandler`);let a=l(e);return async function(e,o){try{if(e.method!==`POST`)return r.NextResponse.json({error:`Method not allowed - use POST`},{status:405});let{handleAgentChat:s}=await Promise.resolve().then(()=>require("../handler-Cn0dOctE.cjs")),{message:c,sessionId:l,history:u}=await e.json();if(!c||typeof c!=`string`)return r.NextResponse.json({error:`message is required and must be a string`},{status:400});let f=(i.apiKey||``).trim();if(i.allowClientApiKey){let t=e.headers.get(`x-agent-api-key`);t&&(f=t.trim())}if(!f)return r.NextResponse.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},{status:401});let p=i.allowClientApiKey&&e.headers.get(`x-agent-provider`)||void 0,m=i.allowClientApiKey&&e.headers.get(`x-agent-model`)||void 0,h=i.allowClientApiKey&&e.headers.get(`x-agent-provider-endpoint`)||void 0,g=await t(e,o),_=i.buildSystemContext?.(g),v=new TextEncoder,y=new ReadableStream({async start(e){try{let t=s({message:c,sessionId:l,history:u,semanticLayer:a,securityContext:g,agentConfig:i,apiKey:f,systemContext:_,providerOverride:p,modelOverride:m,baseURLOverride:h});for await(let n of t){let t=`data: ${JSON.stringify(n)}\n\n`;e.enqueue(v.encode(t))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(v.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}}),b=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(n){let t=d(e,n);Object.entries(t).forEach(([e,t])=>b.set(e,t))}return new Response(y,{status:200,headers:b})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js agent chat handler error:`,e),r.NextResponse.json({error:e instanceof Error?e.message:`Agent chat failed`},{status:500})}}}function T(e){let{mcp:t={enabled:!0}}=e,n={load:p(e),meta:m(e),sql:h(e),dryRun:g(e),batch:_(e),explain:v(e)};return t.enabled!==!1&&(n.mcpRpc=C(e)),e.agent&&(n.agentChat=w(e)),n}exports.createAgentChatHandler=w,exports.createBatchHandler=_,exports.createCubeHandlers=T,exports.createDiscoverHandler=y,exports.createDryRunHandler=g,exports.createExplainHandler=v,exports.createLoadHandler=p,exports.createMcpLoadHandler=S,exports.createMcpRpcHandler=C,exports.createMetaHandler=m,exports.createOptionsHandler=f,exports.createSqlHandler=h,exports.createSuggestHandler=b,exports.createValidateHandler=x;
@@ -1,9 +1,72 @@
1
- import { a as e, d as t, f as n, h as r, i, m as a, o, p as s, r as c, u as l } from "../utils-D9JPLmfl.js";
2
- import { i as u, n as d, r as f, t as p } from "../locale-BPB7flIG.js";
3
- import { C as m, S as h, _ as g, a as _, b as v, c as y, g as b, h as x, i as S, l as C, m as w, o as T, r as E, u as D, v as O, x as k, y as A } from "../mcp-transport-D0B3S1tB.js";
1
+ import { a as e, d as t, f as n, i as r, l as i, m as a, o, p as s, r as c, u as l } from "../utils-BPWZsX7k.js";
2
+ import { i as u, n as d, r as f, t as p } from "../locale-DDvZDFVn.js";
3
+ import { C as m, S as h, _ as g, a as _, b as v, c as y, g as b, h as x, i as S, l as C, m as w, o as T, r as E, u as D, v as O, x as k, y as A } from "../mcp-transport-H96VG3WY.js";
4
4
  import { NextResponse as j } from "next/server";
5
+ //#region src/adapters/nextjs/mcp-handler.ts
6
+ function M(e, t) {
7
+ let n = new TextEncoder(), r = g(), i = new ReadableStream({ start(e) {
8
+ e.enqueue(n.encode(v({
9
+ jsonrpc: "2.0",
10
+ method: "mcp/ready",
11
+ params: { protocol: "streamable-http" }
12
+ }, r, 15e3)));
13
+ } }), a = new Headers({
14
+ "Content-Type": "text/event-stream",
15
+ "Cache-Control": "no-cache",
16
+ Connection: "keep-alive"
17
+ });
18
+ return t(e, a), new j(i, {
19
+ status: 200,
20
+ headers: a
21
+ });
22
+ }
23
+ async function N(e, t) {
24
+ let n = h(e.headers.get("origin"), t.allowedOrigins ? { allowedOrigins: t.allowedOrigins } : {});
25
+ if (!n.valid) return { response: j.json(S(null, -32600, n.reason), { status: 403 }) };
26
+ let r = e.headers.get("accept");
27
+ if (!k(r)) return { response: j.json(S(null, -32600, "Accept header must include both application/json and text/event-stream"), { status: 400 }) };
28
+ let i = x(Object.fromEntries(e.headers.entries()));
29
+ if (!i.ok) return { response: j.json({
30
+ error: "Unsupported MCP protocol version",
31
+ supported: i.supported
32
+ }, { status: 426 }) };
33
+ let a;
34
+ try {
35
+ a = await e.json();
36
+ } catch {
37
+ a = null;
38
+ }
39
+ let o = b(a);
40
+ return o ? {
41
+ rpcRequest: o,
42
+ acceptHeader: r
43
+ } : { response: j.json(S(null, -32600, "Invalid JSON-RPC 2.0 request"), { status: 400 }) };
44
+ }
45
+ function P(e, t, n, r = {}) {
46
+ let i = new TextEncoder(), a = g(), o = new ReadableStream({ start(e) {
47
+ e.enqueue(i.encode(`id: ${a}\n\n`)), e.enqueue(i.encode(v(t, a))), e.close();
48
+ } }), s = new Headers({
49
+ "Content-Type": "text/event-stream",
50
+ "Cache-Control": "no-cache",
51
+ Connection: "keep-alive",
52
+ ...r
53
+ });
54
+ return n(e, s), new j(o, {
55
+ status: 200,
56
+ headers: s
57
+ });
58
+ }
59
+ function F(e, t, n) {
60
+ let r = e && t && typeof t == "object" && "sessionId" in t ? t.sessionId : void 0;
61
+ return r ? { [n]: r } : {};
62
+ }
63
+ function I(e, t) {
64
+ let n = e?.code ?? -32603, r = e?.data, i = e.message || "MCP request failed";
65
+ return S(t ?? null, n, i, r);
66
+ }
67
+ //#endregion
5
68
  //#region src/adapters/nextjs/index.ts
6
- function M(e) {
69
+ function L(e) {
7
70
  let { cubes: t, drizzle: n, schema: r, engineType: i, cache: a, rlsSetup: o } = e;
8
71
  if (!t || t.length === 0) throw Error("At least one cube must be provided in the cubes array");
9
72
  let s = new u({
@@ -17,7 +80,7 @@ function M(e) {
17
80
  s.registerCube(e);
18
81
  }), s;
19
82
  }
20
- function N(e) {
83
+ function R(e) {
21
84
  return {
22
85
  extractSecurityContext: async (t, n) => f(await e.extractSecurityContext(t, n), d((e) => t.headers.get(e))),
23
86
  cors: e.cors ? {
@@ -26,13 +89,13 @@ function N(e) {
26
89
  } : void 0
27
90
  };
28
91
  }
29
- function P(e, t) {
92
+ function z(e, t) {
30
93
  let n = e.headers.get("origin"), r = {};
31
94
  return t.origin && (typeof t.origin == "string" ? r["Access-Control-Allow-Origin"] = t.origin : Array.isArray(t.origin) ? n && t.origin.includes(n) && (r["Access-Control-Allow-Origin"] = n) : typeof t.origin == "function" && n && t.origin(n) && (r["Access-Control-Allow-Origin"] = n)), t.methods && (r["Access-Control-Allow-Methods"] = t.methods.join(", ")), t.allowedHeaders && (r["Access-Control-Allow-Headers"] = t.allowedHeaders.join(", ")), t.credentials && (r["Access-Control-Allow-Credentials"] = "true"), r;
32
95
  }
33
- function F(e) {
96
+ function B(e) {
34
97
  return async function(t) {
35
- let n = P(t, {
98
+ let n = z(t, {
36
99
  ...e,
37
100
  allowedHeaders: p(e.allowedHeaders)
38
101
  });
@@ -42,8 +105,8 @@ function F(e) {
42
105
  });
43
106
  };
44
107
  }
45
- function I(e) {
46
- let { extractSecurityContext: t, cors: n } = N(e), r = M(e);
108
+ function V(e) {
109
+ let { extractSecurityContext: t, cors: n } = R(e), i = L(e);
47
110
  return async function(e, a) {
48
111
  try {
49
112
  let o;
@@ -52,35 +115,35 @@ function I(e) {
52
115
  o = t.query || t;
53
116
  } else if (e.method === "GET") {
54
117
  let t = e.nextUrl.searchParams.get("query");
55
- if (!t) return j.json(i("Query parameter is required", 400), { status: 400 });
118
+ if (!t) return j.json(r("Query parameter is required", 400), { status: 400 });
56
119
  try {
57
120
  o = JSON.parse(t);
58
121
  } catch {
59
- return j.json(i("Invalid JSON in query parameter", 400), { status: 400 });
122
+ return j.json(r("Invalid JSON in query parameter", 400), { status: 400 });
60
123
  }
61
- } else return j.json(i("Method not allowed", 405), { status: 405 });
62
- let s = await t(e, a), l = r.validateQuery(o);
63
- if (!l.isValid) return j.json(i(`Query validation failed: ${l.errors.join(", ")}`, 400), { status: 400 });
64
- let u = e.headers.get("x-cache-control") === "no-cache", d = await r.executeMultiCubeQuery(o, s, { skipCache: u }), f = c(o, d, r);
65
- return j.json(f, { headers: n ? P(e, n) : {} });
124
+ } else return j.json(r("Method not allowed", 405), { status: 405 });
125
+ let s = await t(e, a), l = i.validateQuery(o);
126
+ if (!l.isValid) return j.json(r(`Query validation failed: ${l.errors.join(", ")}`, 400), { status: 400 });
127
+ let u = e.headers.get("x-cache-control") === "no-cache", d = await i.executeMultiCubeQuery(o, s, { skipCache: u }), f = c(o, d, i);
128
+ return j.json(f, { headers: n ? z(e, n) : {} });
66
129
  } catch (e) {
67
- return process.env.NODE_ENV !== "test" && console.error("Next.js load handler error:", e), j.json(i(e instanceof Error ? e.message : "Query execution failed", 500), { status: 500 });
130
+ return process.env.NODE_ENV !== "test" && console.error("Next.js load handler error:", e), j.json(r(e instanceof Error ? e.message : "Query execution failed", 500), { status: 500 });
68
131
  }
69
132
  };
70
133
  }
71
- function L(t) {
72
- let { cors: n } = N(t), r = M(t);
134
+ function H(t) {
135
+ let { cors: n } = R(t), i = L(t);
73
136
  return async function(t, a) {
74
137
  try {
75
- let i = e(r.getMetadata());
76
- return j.json(i, { headers: n ? P(t, n) : {} });
138
+ let r = e(i.getMetadata());
139
+ return j.json(r, { headers: n ? z(t, n) : {} });
77
140
  } catch (e) {
78
- return process.env.NODE_ENV !== "test" && console.error("Next.js meta handler error:", e), j.json(i(e instanceof Error ? e.message : "Failed to fetch metadata", 500), { status: 500 });
141
+ return process.env.NODE_ENV !== "test" && console.error("Next.js meta handler error:", e), j.json(r(e instanceof Error ? e.message : "Failed to fetch metadata", 500), { status: 500 });
79
142
  }
80
143
  };
81
144
  }
82
- function R(e) {
83
- let { extractSecurityContext: t, cors: n } = N(e), r = M(e);
145
+ function U(e) {
146
+ let { extractSecurityContext: t, cors: n } = R(e), i = L(e);
84
147
  return async function(e, a) {
85
148
  try {
86
149
  let s;
@@ -89,32 +152,32 @@ function R(e) {
89
152
  s = t.query || t;
90
153
  } else if (e.method === "GET") {
91
154
  let t = e.nextUrl.searchParams.get("query");
92
- if (!t) return j.json(i("Query parameter is required", 400), { status: 400 });
155
+ if (!t) return j.json(r("Query parameter is required", 400), { status: 400 });
93
156
  try {
94
157
  s = JSON.parse(t);
95
158
  } catch {
96
- return j.json(i("Invalid JSON in query parameter", 400), { status: 400 });
159
+ return j.json(r("Invalid JSON in query parameter", 400), { status: 400 });
97
160
  }
98
- } else return j.json(i("Method not allowed", 405), { status: 405 });
99
- let c = await t(e, a), l = r.validateQuery(s);
100
- if (!l.isValid) return j.json(i(`Query validation failed: ${l.errors.join(", ")}`, 400), { status: 400 });
161
+ } else return j.json(r("Method not allowed", 405), { status: 405 });
162
+ let c = await t(e, a), l = i.validateQuery(s);
163
+ if (!l.isValid) return j.json(r(`Query validation failed: ${l.errors.join(", ")}`, 400), { status: 400 });
101
164
  let u = s.measures?.[0] || s.dimensions?.[0];
102
- if (!u) return j.json(i("No measures or dimensions specified", 400), { status: 400 });
103
- let d = u.split(".")[0], f = await r.generateSQL(d, s, c), p = o(s, f);
104
- return j.json(p, { headers: n ? P(e, n) : {} });
165
+ if (!u) return j.json(r("No measures or dimensions specified", 400), { status: 400 });
166
+ let d = u.split(".")[0], f = await i.generateSQL(d, s, c), p = o(s, f);
167
+ return j.json(p, { headers: n ? z(e, n) : {} });
105
168
  } catch (e) {
106
- return process.env.NODE_ENV !== "test" && console.error("Next.js SQL handler error:", e), j.json(i(e instanceof Error ? e.message : "SQL generation failed", 500), { status: 500 });
169
+ return process.env.NODE_ENV !== "test" && console.error("Next.js SQL handler error:", e), j.json(r(e instanceof Error ? e.message : "SQL generation failed", 500), { status: 500 });
107
170
  }
108
171
  };
109
172
  }
110
- function z(e) {
111
- let { extractSecurityContext: t, cors: r } = N(e), i = M(e);
112
- return async function(e, a) {
173
+ function W(e) {
174
+ let { extractSecurityContext: t, cors: n } = R(e), r = L(e);
175
+ return async function(e, i) {
113
176
  try {
114
- let o;
177
+ let a;
115
178
  if (e.method === "POST") {
116
179
  let t = await e.json();
117
- o = t.query || t;
180
+ a = t.query || t;
118
181
  } else if (e.method === "GET") {
119
182
  let t = e.nextUrl.searchParams.get("query");
120
183
  if (!t) return j.json({
@@ -122,7 +185,7 @@ function z(e) {
122
185
  valid: !1
123
186
  }, { status: 400 });
124
187
  try {
125
- o = JSON.parse(t);
188
+ a = JSON.parse(t);
126
189
  } catch {
127
190
  return j.json({
128
191
  error: "Invalid JSON in query parameter",
@@ -133,8 +196,8 @@ function z(e) {
133
196
  error: "Method not allowed",
134
197
  valid: !1
135
198
  }, { status: 405 });
136
- let s = await t(e, a), c = await n(o, s, i);
137
- return j.json(c, { headers: r ? P(e, r) : {} });
199
+ let o = await t(e, i), s = await l(a, o, r);
200
+ return j.json(s, { headers: n ? z(e, n) : {} });
138
201
  } catch (e) {
139
202
  return process.env.NODE_ENV !== "test" && console.error("Next.js dry-run handler error:", e), j.json({
140
203
  error: e instanceof Error ? e.message : "Dry-run validation failed",
@@ -143,145 +206,106 @@ function z(e) {
143
206
  }
144
207
  };
145
208
  }
146
- function B(e) {
147
- let { extractSecurityContext: t, cors: n } = N(e), r = M(e);
148
- return async function(e, a) {
209
+ function G(e) {
210
+ let { extractSecurityContext: t, cors: n } = R(e), a = L(e);
211
+ return async function(e, o) {
149
212
  try {
150
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
151
- let { queries: o } = await e.json();
152
- if (!o || !Array.isArray(o)) return j.json(i("Request body must contain a \"queries\" array", 400), { status: 400 });
153
- if (o.length === 0) return j.json(i("Queries array cannot be empty", 400), { status: 400 });
154
- let s = await l(o, await t(e, a), r, { skipCache: e.headers.get("x-cache-control") === "no-cache" });
155
- return j.json(s, { headers: n ? P(e, n) : {} });
213
+ if (e.method !== "POST") return j.json(r("Method not allowed - use POST", 405), { status: 405 });
214
+ let { queries: s } = await e.json();
215
+ if (!s || !Array.isArray(s)) return j.json(r("Request body must contain a \"queries\" array", 400), { status: 400 });
216
+ if (s.length === 0) return j.json(r("Queries array cannot be empty", 400), { status: 400 });
217
+ let c = await i(s, await t(e, o), a, { skipCache: e.headers.get("x-cache-control") === "no-cache" });
218
+ return j.json(c, { headers: n ? z(e, n) : {} });
156
219
  } catch (e) {
157
- return process.env.NODE_ENV !== "test" && console.error("Next.js batch handler error:", e), j.json(i(e instanceof Error ? e.message : "Batch execution failed", 500), { status: 500 });
220
+ return process.env.NODE_ENV !== "test" && console.error("Next.js batch handler error:", e), j.json(r(e instanceof Error ? e.message : "Batch execution failed", 500), { status: 500 });
158
221
  }
159
222
  };
160
223
  }
161
- function V(e) {
162
- let { extractSecurityContext: t, cors: n } = N(e), r = M(e);
224
+ function K(e) {
225
+ let { extractSecurityContext: t, cors: n } = R(e), r = L(e);
163
226
  return async function(e, i) {
164
227
  try {
165
228
  if (e.method !== "POST") return j.json({ error: "Method not allowed" }, { status: 405 });
166
229
  let a = await e.json(), o = a.query || a, s = a.options || {}, c = await t(e, i), l = r.validateQuery(o);
167
230
  if (!l.isValid) return j.json({ error: `Query validation failed: ${l.errors.join(", ")}` }, { status: 400 });
168
231
  let u = await r.explainQuery(o, c, s);
169
- return j.json(u, { headers: n ? P(e, n) : {} });
232
+ return j.json(u, { headers: n ? z(e, n) : {} });
170
233
  } catch (e) {
171
234
  return process.env.NODE_ENV !== "test" && console.error("Next.js explain handler error:", e), j.json({ error: e instanceof Error ? e.message : "Explain query failed" }, { status: 500 });
172
235
  }
173
236
  };
174
237
  }
175
- function H(e) {
176
- let { cors: n } = N(e), r = M(e);
177
- return async function(e, a) {
238
+ function q(e) {
239
+ let { cors: t } = R(e), n = L(e);
240
+ return async function(e, i) {
178
241
  try {
179
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
180
- let a = await t(r, await e.json());
181
- return j.json(a, { headers: n ? P(e, n) : {} });
242
+ if (e.method !== "POST") return j.json(r("Method not allowed - use POST", 405), { status: 405 });
243
+ let i = await s(n, await e.json());
244
+ return j.json(i, { headers: t ? z(e, t) : {} });
182
245
  } catch (e) {
183
- return process.env.NODE_ENV !== "test" && console.error("Next.js discover handler error:", e), j.json(i(e instanceof Error ? e.message : "Discovery failed", 500), { status: 500 });
246
+ return process.env.NODE_ENV !== "test" && console.error("Next.js discover handler error:", e), j.json(r(e instanceof Error ? e.message : "Discovery failed", 500), { status: 500 });
184
247
  }
185
248
  };
186
249
  }
187
- function U(e) {
188
- let { cors: t } = N(e), n = M(e);
189
- return async function(e, r) {
250
+ function J(e) {
251
+ let { cors: n } = R(e), i = L(e);
252
+ return async function(e, a) {
190
253
  try {
191
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
192
- let r = await e.json();
193
- if (!r.naturalLanguage) return j.json(i("naturalLanguage field is required", 400), { status: 400 });
194
- let o = await a(n, r);
195
- return j.json(o, { headers: t ? P(e, t) : {} });
254
+ if (e.method !== "POST") return j.json(r("Method not allowed - use POST", 405), { status: 405 });
255
+ let a = await e.json();
256
+ if (!a.naturalLanguage) return j.json(r("naturalLanguage field is required", 400), { status: 400 });
257
+ let o = await t(i, a);
258
+ return j.json(o, { headers: n ? z(e, n) : {} });
196
259
  } catch (e) {
197
- return process.env.NODE_ENV !== "test" && console.error("Next.js suggest handler error:", e), j.json(i(e instanceof Error ? e.message : "Query suggestion failed", 500), { status: 500 });
260
+ return process.env.NODE_ENV !== "test" && console.error("Next.js suggest handler error:", e), j.json(r(e instanceof Error ? e.message : "Query suggestion failed", 500), { status: 500 });
198
261
  }
199
262
  };
200
263
  }
201
- function W(e) {
202
- let { cors: t } = N(e), n = M(e);
264
+ function Y(e) {
265
+ let { cors: t } = R(e), i = L(e);
203
266
  return async function(e, a) {
204
267
  try {
205
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
268
+ if (e.method !== "POST") return j.json(r("Method not allowed - use POST", 405), { status: 405 });
206
269
  let a = await e.json();
207
- if (!a.query) return j.json(i("query field is required", 400), { status: 400 });
208
- let o = await r(n, a);
209
- return j.json(o, { headers: t ? P(e, t) : {} });
270
+ if (!a.query) return j.json(r("query field is required", 400), { status: 400 });
271
+ let o = await n(i, a);
272
+ return j.json(o, { headers: t ? z(e, t) : {} });
210
273
  } catch (e) {
211
- return process.env.NODE_ENV !== "test" && console.error("Next.js validate handler error:", e), j.json(i(e instanceof Error ? e.message : "Query validation failed", 500), { status: 500 });
274
+ return process.env.NODE_ENV !== "test" && console.error("Next.js validate handler error:", e), j.json(r(e instanceof Error ? e.message : "Query validation failed", 500), { status: 500 });
212
275
  }
213
276
  };
214
277
  }
215
- function G(e) {
216
- let { extractSecurityContext: t, cors: n } = N(e), r = M(e);
217
- return async function(e, a) {
278
+ function X(e) {
279
+ let { extractSecurityContext: t, cors: n } = R(e), i = L(e);
280
+ return async function(e, o) {
218
281
  try {
219
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
220
- let o = await e.json();
221
- if (!o.query) return j.json(i("query field is required", 400), { status: 400 });
222
- let c = await s(r, await t(e, a), o);
223
- return j.json(c, { headers: n ? P(e, n) : {} });
282
+ if (e.method !== "POST") return j.json(r("Method not allowed - use POST", 405), { status: 405 });
283
+ let s = await e.json();
284
+ if (!s.query) return j.json(r("query field is required", 400), { status: 400 });
285
+ let c = await a(i, await t(e, o), s);
286
+ return j.json(c, { headers: n ? z(e, n) : {} });
224
287
  } catch (e) {
225
- return process.env.NODE_ENV !== "test" && console.error("Next.js MCP load handler error:", e), j.json(i(e instanceof Error ? e.message : "Query execution failed", 500), { status: 500 });
288
+ return process.env.NODE_ENV !== "test" && console.error("Next.js MCP load handler error:", e), j.json(r(e instanceof Error ? e.message : "Query execution failed", 500), { status: 500 });
226
289
  }
227
290
  };
228
291
  }
229
- function K(e) {
230
- let { extractSecurityContext: t, cors: n } = N(e), { mcp: r = { enabled: !0 } } = e, a = M(e), o = T(a, r.resources), s = A(r.prompts), c = O(r.instructions);
231
- return async function(e) {
232
- if (r.resourceMetadataUrl && !D(e.headers.get("authorization"))) return j.json({ error: "Bearer token required" }, {
233
- status: 401,
234
- headers: { "WWW-Authenticate": y(r.resourceMetadataUrl) }
235
- });
236
- if (e.method === "DELETE") return j.json({ error: "Session termination not supported" }, { status: 405 });
237
- if (e.method === "GET") {
238
- let t = new TextEncoder(), r = g(), i = new ReadableStream({ start(e) {
239
- e.enqueue(t.encode(v({
240
- jsonrpc: "2.0",
241
- method: "mcp/ready",
242
- params: { protocol: "streamable-http" }
243
- }, r, 15e3)));
244
- } }), a = new Headers({
245
- "Content-Type": "text/event-stream",
246
- "Cache-Control": "no-cache",
247
- Connection: "keep-alive"
248
- });
249
- if (n) {
250
- let t = P(e, n);
251
- Object.entries(t).forEach(([e, t]) => a.set(e, t));
252
- }
253
- return new j(i, {
254
- status: 200,
255
- headers: a
256
- });
257
- }
258
- if (e.method !== "POST") return j.json(i("Method not allowed - use POST", 405), { status: 405 });
259
- let l = h(e.headers.get("origin"), r.allowedOrigins ? { allowedOrigins: r.allowedOrigins } : {});
260
- if (!l.valid) return j.json(S(null, -32600, l.reason), { status: 403 });
261
- let u = e.headers.get("accept");
262
- if (!k(u)) return j.json(S(null, -32600, "Accept header must include both application/json and text/event-stream"), { status: 400 });
263
- let d = x(Object.fromEntries(e.headers.entries()));
264
- if (!d.ok) return j.json({
265
- error: "Unsupported MCP protocol version",
266
- supported: d.supported
267
- }, { status: 426 });
268
- let f;
269
- try {
270
- f = await e.json();
271
- } catch {
272
- f = null;
273
- }
274
- let p = b(f);
275
- if (!p) return j.json(S(null, -32600, "Invalid JSON-RPC 2.0 request"), { status: 400 });
276
- let T = m(u), O = p.method === "initialize", A = (t, r = 200, i = {}) => j.json(t, {
292
+ function Z(e) {
293
+ let { extractSecurityContext: t, cors: n } = R(e), { mcp: i = { enabled: !0 } } = e, a = L(e), o = T(a, i.resources), s = A(i.prompts), c = O(i.instructions), l = (e, t) => {
294
+ if (!n) return;
295
+ let r = z(e, n);
296
+ Object.entries(r).forEach(([e, n]) => t.set(e, n));
297
+ }, u = async (e) => {
298
+ let r = await N(e, i);
299
+ if (r.response) return r.response;
300
+ let u = r.rpcRequest, d = m(r.acceptHeader), f = u.method === "initialize", p = (t, r = 200, i = {}) => j.json(t, {
277
301
  status: r,
278
302
  headers: {
279
- ...n ? P(e, n) : {},
303
+ ...n ? z(e, n) : {},
280
304
  ...i
281
305
  }
282
306
  });
283
307
  try {
284
- let i = await C(p.method, p.params, {
308
+ let n = await C(u.method, u.params, {
285
309
  semanticLayer: a,
286
310
  extractSecurityContext: (e) => t(e),
287
311
  rawRequest: e,
@@ -289,66 +313,35 @@ function K(e) {
289
313
  resources: o,
290
314
  prompts: s,
291
315
  instructions: c,
292
- appEnabled: !!r.app,
293
- appConfig: typeof r.app == "object" ? r.app : void 0,
294
- serverName: r.serverName
316
+ appEnabled: !!i.app,
317
+ appConfig: typeof i.app == "object" ? i.app : void 0,
318
+ serverName: i.serverName
295
319
  });
296
- if (w(p)) return new j(null, { status: 202 });
297
- let l = O && i && typeof i == "object" && "sessionId" in i ? i.sessionId : void 0, u = {};
298
- l && (u[E] = l);
299
- let d = _(p.id ?? null, i);
300
- if (T) {
301
- let t = new TextEncoder(), r = g(), i = new ReadableStream({ start(e) {
302
- e.enqueue(t.encode(`id: ${r}\n\n`)), e.enqueue(t.encode(v(d, r))), e.close();
303
- } }), a = new Headers({
304
- "Content-Type": "text/event-stream",
305
- "Cache-Control": "no-cache",
306
- Connection: "keep-alive",
307
- ...u
308
- });
309
- if (n) {
310
- let t = P(e, n);
311
- Object.entries(t).forEach(([e, t]) => a.set(e, t));
312
- }
313
- return new j(i, {
314
- status: 200,
315
- headers: a
316
- });
317
- }
318
- return A(d, 200, u);
320
+ if (w(u)) return new j(null, { status: 202 });
321
+ let r = F(f, n, E), m = _(u.id ?? null, n);
322
+ return d ? P(e, m, l, r) : p(m, 200, r);
319
323
  } catch (t) {
320
- if (w(p)) return process.env.NODE_ENV !== "test" && console.error("Next.js MCP notification processing error:", t), new j(null, { status: 202 });
324
+ if (w(u)) return process.env.NODE_ENV !== "test" && console.error("Next.js MCP notification processing error:", t), new j(null, { status: 202 });
321
325
  process.env.NODE_ENV !== "test" && console.error("Next.js MCP RPC handler error:", t);
322
- let r = t?.code ?? -32603, i = t?.data, a = t.message || "MCP request failed", o = S(p.id ?? null, r, a, i);
323
- if (T) {
324
- let t = new TextEncoder(), r = g(), i = new ReadableStream({ start(e) {
325
- e.enqueue(t.encode(`id: ${r}\n\n`)), e.enqueue(t.encode(v(o, r))), e.close();
326
- } }), a = new Headers({
327
- "Content-Type": "text/event-stream",
328
- "Cache-Control": "no-cache",
329
- Connection: "keep-alive"
330
- });
331
- if (n) {
332
- let t = P(e, n);
333
- Object.entries(t).forEach(([e, t]) => a.set(e, t));
334
- }
335
- return new j(i, {
336
- status: 200,
337
- headers: a
338
- });
339
- }
340
- return A(o, 200);
326
+ let n = I(t, u.id);
327
+ return d ? P(e, n, l) : p(n, 200);
341
328
  }
342
329
  };
330
+ return async function(e) {
331
+ return i.resourceMetadataUrl && !D(e.headers.get("authorization")) ? j.json({ error: "Bearer token required" }, {
332
+ status: 401,
333
+ headers: { "WWW-Authenticate": y(i.resourceMetadataUrl) }
334
+ }) : e.method === "DELETE" ? j.json({ error: "Session termination not supported" }, { status: 405 }) : e.method === "GET" ? M(e, l) : e.method === "POST" ? u(e) : j.json(r("Method not allowed - use POST", 405), { status: 405 });
335
+ };
343
336
  }
344
- function q(e) {
345
- let { extractSecurityContext: t, cors: n } = N(e), { agent: r } = e;
337
+ function Q(e) {
338
+ let { extractSecurityContext: t, cors: n } = R(e), { agent: r } = e;
346
339
  if (!r) throw Error("agent config is required for createAgentChatHandler");
347
- let i = M(e);
340
+ let i = L(e);
348
341
  return async function(e, a) {
349
342
  try {
350
343
  if (e.method !== "POST") return j.json({ error: "Method not allowed - use POST" }, { status: 405 });
351
- let { handleAgentChat: o } = await import("../handler-Cx8QYLk6.js"), { message: s, sessionId: c, history: l } = await e.json();
344
+ let { handleAgentChat: o } = await import("../handler-CfgE0JSL.js"), { message: s, sessionId: c, history: l } = await e.json();
352
345
  if (!s || typeof s != "string") return j.json({ error: "message is required and must be a string" }, { status: 400 });
353
346
  let u = (r.apiKey || "").trim();
354
347
  if (r.allowClientApiKey) {
@@ -390,7 +383,7 @@ function q(e) {
390
383
  Connection: "keep-alive"
391
384
  });
392
385
  if (n) {
393
- let t = P(e, n);
386
+ let t = z(e, n);
394
387
  Object.entries(t).forEach(([e, t]) => v.set(e, t));
395
388
  }
396
389
  return new Response(_, {
@@ -402,16 +395,16 @@ function q(e) {
402
395
  }
403
396
  };
404
397
  }
405
- function J(e) {
398
+ function $(e) {
406
399
  let { mcp: t = { enabled: !0 } } = e, n = {
407
- load: I(e),
408
- meta: L(e),
409
- sql: R(e),
410
- dryRun: z(e),
411
- batch: B(e),
412
- explain: V(e)
400
+ load: V(e),
401
+ meta: H(e),
402
+ sql: U(e),
403
+ dryRun: W(e),
404
+ batch: G(e),
405
+ explain: K(e)
413
406
  };
414
- return t.enabled !== !1 && (n.mcpRpc = K(e)), e.agent && (n.agentChat = q(e)), n;
407
+ return t.enabled !== !1 && (n.mcpRpc = Z(e)), e.agent && (n.agentChat = Q(e)), n;
415
408
  }
416
409
  //#endregion
417
- export { q as createAgentChatHandler, B as createBatchHandler, J as createCubeHandlers, H as createDiscoverHandler, z as createDryRunHandler, V as createExplainHandler, I as createLoadHandler, G as createMcpLoadHandler, K as createMcpRpcHandler, L as createMetaHandler, F as createOptionsHandler, R as createSqlHandler, U as createSuggestHandler, W as createValidateHandler };
410
+ export { Q as createAgentChatHandler, G as createBatchHandler, $ as createCubeHandlers, q as createDiscoverHandler, W as createDryRunHandler, K as createExplainHandler, V as createLoadHandler, X as createMcpLoadHandler, Z as createMcpRpcHandler, H as createMetaHandler, B as createOptionsHandler, U as createSqlHandler, J as createSuggestHandler, Y as createValidateHandler };