drizzle-cube 0.6.2 → 0.6.3

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 (302) hide show
  1. package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +2 -0
  3. package/dist/adapters/AreaChart.config-1B8iQnfn.js +2 -0
  4. package/dist/adapters/AreaChart.config-hnncyQL4.cjs +1 -0
  5. package/dist/adapters/BarChart.config-C-QCf1rL.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CFelK1qP.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-B_M4hzzV.js +2 -0
  10. package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-fuhyFvob.js +2 -0
  13. package/dist/adapters/DataTable.config-q2gqBi6t.cjs +1 -0
  14. package/dist/adapters/DataTable.config-wIQnHX5R.js +2 -0
  15. package/dist/adapters/FunnelChart.config-Dz710ssx.js +2 -0
  16. package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +1 -0
  17. package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +1 -0
  18. package/dist/adapters/GaugeChart.config-CgwniXkd.js +2 -0
  19. package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +2 -0
  21. package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +1 -0
  22. package/dist/adapters/KpiDelta.config-C_dYM64q.js +2 -0
  23. package/dist/adapters/KpiNumber.config-CXg6toZG.js +2 -0
  24. package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +1 -0
  25. package/dist/adapters/KpiText.config-BY-SJvAF.js +2 -0
  26. package/dist/adapters/KpiText.config-GSIxy0CE.cjs +1 -0
  27. package/dist/adapters/LineChart.config-CJtF8SOu.js +2 -0
  28. package/dist/adapters/LineChart.config-d0y60gw9.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +2 -0
  33. package/dist/adapters/PieChart.config-CDxfXCIt.cjs +1 -0
  34. package/dist/adapters/PieChart.config-CuZxQc5m.js +2 -0
  35. package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +1 -0
  36. package/dist/adapters/RadarChart.config-KrxwaaGu.js +2 -0
  37. package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +2 -0
  38. package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +1 -0
  39. package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +1 -0
  40. package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +2 -0
  41. package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +2 -0
  42. package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +1 -0
  43. package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +1 -0
  44. package/dist/adapters/SankeyChart.config-kzAnW0C7.js +2 -0
  45. package/dist/adapters/ScatterChart.config-4Okvn27v.js +2 -0
  46. package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +1 -0
  47. package/dist/adapters/SunburstChart.config-BsUQkIM_.js +2 -0
  48. package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +1 -0
  49. package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +2 -0
  50. package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +1 -0
  51. package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +1 -0
  52. package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +2 -0
  53. package/dist/adapters/chartConfigHelpers-CcvqrIWF.js +72 -0
  54. package/dist/adapters/chartConfigHelpers-DHQB-_v5.cjs +1 -0
  55. package/dist/adapters/{locale-ZLUUNUxr.cjs → compiler-ChGO4ZLU.cjs} +1 -1
  56. package/dist/adapters/{locale-DDvZDFVn.js → compiler-LKTN9PTt.js} +2 -21
  57. package/dist/adapters/core/cube-http-handler.d.ts +27 -0
  58. package/dist/adapters/core/http-port.d.ts +39 -0
  59. package/dist/adapters/core/index.cjs +1 -0
  60. package/dist/adapters/core/index.d.ts +11 -0
  61. package/dist/adapters/core/index.js +2 -0
  62. package/dist/adapters/core/mcp-handler.d.ts +13 -0
  63. package/dist/adapters/core/rest-handlers.d.ts +14 -0
  64. package/dist/adapters/core/security-context.d.ts +17 -0
  65. package/dist/adapters/core-Bbchr0ui.js +244 -0
  66. package/dist/adapters/core-F1pCQPde.cjs +1 -0
  67. package/dist/adapters/express/index.cjs +2 -2
  68. package/dist/adapters/express/index.js +93 -201
  69. package/dist/adapters/fastify/index.cjs +2 -2
  70. package/dist/adapters/fastify/index.js +79 -217
  71. package/dist/adapters/handler-DRZb2ip6.cjs +25 -0
  72. package/dist/adapters/{handler-CtaSua-i.js → handler-u8FyzPBT.js} +1572 -1500
  73. package/dist/adapters/hono/index.cjs +2 -2
  74. package/dist/adapters/hono/index.js +69 -225
  75. package/dist/adapters/mcp-tools.cjs +1 -1
  76. package/dist/adapters/mcp-tools.js +1 -1
  77. package/dist/adapters/mcp-transport-Bw_zqky2.js +591 -0
  78. package/dist/adapters/mcp-transport-CNIPoe1i.cjs +40 -0
  79. package/dist/adapters/nextjs/index.cjs +1 -1
  80. package/dist/adapters/nextjs/index.d.ts +8 -9
  81. package/dist/adapters/nextjs/index.js +181 -288
  82. package/dist/adapters/nextjs/mcp-handler.d.ts +0 -28
  83. package/dist/adapters/{openai-D-6l1Y8h.cjs → openai-B4kAJTSD.cjs} +1 -1
  84. package/dist/adapters/{openai-DTSTMiXL.cjs → openai-Cdf2wWZA.cjs} +1 -1
  85. package/dist/adapters/{openai-CmVRIbUg.js → openai-CmMzrs1Y.js} +1 -1
  86. package/dist/adapters/{openai-CtXqeznO.js → openai-DhzGY9R4.js} +1 -1
  87. package/dist/cjs/adapters/core/cube-http-handler.d.ts +27 -0
  88. package/dist/cjs/adapters/core/http-port.d.ts +39 -0
  89. package/dist/cjs/adapters/core/index.d.ts +11 -0
  90. package/dist/cjs/adapters/core/mcp-handler.d.ts +13 -0
  91. package/dist/cjs/adapters/core/rest-handlers.d.ts +14 -0
  92. package/dist/cjs/adapters/core/security-context.d.ts +17 -0
  93. package/dist/cjs/adapters/nextjs/index.d.ts +8 -9
  94. package/dist/cjs/adapters/nextjs/mcp-handler.d.ts +0 -28
  95. package/dist/cjs/client/charts/chartComponentRegistry.d.ts +1 -9
  96. package/dist/cjs/client/charts/chartConfigRegistry.d.ts +5 -1
  97. package/dist/cjs/client/charts/chartPlugin.d.ts +1 -2
  98. package/dist/cjs/client/charts/chartRegistry.d.ts +73 -0
  99. package/dist/cjs/client/components/AIAssistant/index.d.ts +2 -2
  100. package/dist/cjs/client/components/charts/ActivityGridChart.config.d.ts +6 -1
  101. package/dist/cjs/client/components/charts/AreaChart.config.d.ts +6 -1
  102. package/dist/cjs/client/components/charts/BarChart.config.d.ts +6 -1
  103. package/dist/cjs/client/components/charts/BoxPlotChart.config.d.ts +6 -1
  104. package/dist/cjs/client/components/charts/BubbleChart.config.d.ts +6 -1
  105. package/dist/cjs/client/components/charts/CandlestickChart.config.d.ts +6 -1
  106. package/dist/cjs/client/components/charts/DataTable.config.d.ts +6 -1
  107. package/dist/cjs/client/components/charts/FunnelChart.config.d.ts +5 -0
  108. package/dist/cjs/client/components/charts/GaugeChart.config.d.ts +6 -1
  109. package/dist/cjs/client/components/charts/HeatMapChart.config.d.ts +6 -1
  110. package/dist/cjs/client/components/charts/KpiDelta.config.d.ts +6 -1
  111. package/dist/cjs/client/components/charts/KpiNumber.config.d.ts +6 -1
  112. package/dist/cjs/client/components/charts/KpiText.config.d.ts +6 -1
  113. package/dist/cjs/client/components/charts/LineChart.config.d.ts +6 -1
  114. package/dist/cjs/client/components/charts/MarkdownChart.config.d.ts +6 -1
  115. package/dist/cjs/client/components/charts/MeasureProfileChart.config.d.ts +6 -1
  116. package/dist/cjs/client/components/charts/PieChart.config.d.ts +6 -1
  117. package/dist/cjs/client/components/charts/RadarChart.config.d.ts +6 -1
  118. package/dist/cjs/client/components/charts/RadialBarChart.config.d.ts +6 -1
  119. package/dist/cjs/client/components/charts/SankeyChart.config.d.ts +5 -0
  120. package/dist/cjs/client/components/charts/ScatterChart.config.d.ts +6 -1
  121. package/dist/cjs/client/components/charts/SunburstChart.config.d.ts +5 -0
  122. package/dist/cjs/client/components/charts/TreeMapChart.config.d.ts +6 -1
  123. package/dist/cjs/client/components/charts/WaterfallChart.config.d.ts +6 -1
  124. package/dist/cjs/client/hooks/analysisQueryExecutionModes.d.ts +1 -1
  125. package/dist/cjs/client/hooks/useAnalysisEffects.d.ts +33 -0
  126. package/dist/{client/hooks/useAnalysisQueryExecution.d.ts → cjs/client/hooks/useAnalysisQuery.d.ts} +3 -3
  127. package/dist/cjs/client/hooks/useAnalysisState.d.ts +165 -0
  128. package/dist/cjs/client/icons/registry.d.ts +0 -6
  129. package/dist/cjs/client/icons/types.d.ts +5 -0
  130. package/dist/client/charts/chartComponentRegistry.d.ts +1 -9
  131. package/dist/client/charts/chartConfigRegistry.d.ts +5 -1
  132. package/dist/client/charts/chartPlugin.d.ts +1 -2
  133. package/dist/client/charts/chartRegistry.d.ts +73 -0
  134. package/dist/client/charts.js +3 -3
  135. package/dist/client/chunks/{DashboardEditModal-okVfH8ZK.js → DashboardEditModal-CWurUU2B.js} +7 -7
  136. package/dist/client/chunks/{DashboardEditModal-okVfH8ZK.js.map → DashboardEditModal-CWurUU2B.js.map} +1 -1
  137. package/dist/client/chunks/{analysis-builder-DB88FojM.js → analysis-builder-Uj_Fxv0-.js} +1588 -1857
  138. package/dist/client/chunks/analysis-builder-Uj_Fxv0-.js.map +1 -0
  139. package/dist/client/chunks/{analysis-builder-shared-BVK4TYfR.js → analysis-builder-shared-AdAYIfj_.js} +1531 -1266
  140. package/dist/client/chunks/analysis-builder-shared-AdAYIfj_.js.map +1 -0
  141. package/dist/client/chunks/{chart-config-activity-grid-D_UX4NHC.js → chart-config-activity-grid-BU_bkvER.js} +1 -11
  142. package/dist/client/chunks/chart-config-activity-grid-BU_bkvER.js.map +1 -0
  143. package/dist/client/chunks/{chart-config-area-BNigHUy8.js → chart-config-area-DxwIZ4Uf.js} +1 -5
  144. package/dist/client/chunks/{chart-config-area-BNigHUy8.js.map → chart-config-area-DxwIZ4Uf.js.map} +1 -1
  145. package/dist/client/chunks/{chart-config-bar-DSO_LRTx.js → chart-config-bar-Cc8GY9aQ.js} +5 -9
  146. package/dist/client/chunks/chart-config-bar-Cc8GY9aQ.js.map +1 -0
  147. package/dist/client/chunks/{chart-config-box-plot-oW8axV2q.js → chart-config-box-plot-Bs8ovYvV.js} +3 -8
  148. package/dist/client/chunks/chart-config-box-plot-Bs8ovYvV.js.map +1 -0
  149. package/dist/client/chunks/{chart-config-bubble-gIoqVyjZ.js → chart-config-bubble-BfgY7pt8.js} +1 -11
  150. package/dist/client/chunks/chart-config-bubble-BfgY7pt8.js.map +1 -0
  151. package/dist/client/chunks/{chart-config-candlestick-N6DchAA3.js → chart-config-candlestick-jaeNNEtC.js} +1 -11
  152. package/dist/client/chunks/chart-config-candlestick-jaeNNEtC.js.map +1 -0
  153. package/dist/client/chunks/{chart-config-data-table-d7VBY-y_.js → chart-config-data-table-CRk0C0rW.js} +1 -4
  154. package/dist/client/chunks/chart-config-data-table-CRk0C0rW.js.map +1 -0
  155. package/dist/client/chunks/{chart-config-funnel-DEYMcxsD.js → chart-config-funnel-boT_LNfl.js} +1 -4
  156. package/dist/client/chunks/chart-config-funnel-boT_LNfl.js.map +1 -0
  157. package/dist/client/chunks/{chart-config-gauge-Dq-_H9UN.js → chart-config-gauge-C5uJEr97.js} +3 -8
  158. package/dist/client/chunks/chart-config-gauge-C5uJEr97.js.map +1 -0
  159. package/dist/client/chunks/{chart-config-heat-map-CfRnRNcw.js → chart-config-heat-map-CCarP44-.js} +1 -11
  160. package/dist/client/chunks/chart-config-heat-map-CCarP44-.js.map +1 -0
  161. package/dist/client/chunks/{chart-config-kpi-delta-DSQbvqu_.js → chart-config-kpi-delta-DYopvwyG.js} +3 -8
  162. package/dist/client/chunks/chart-config-kpi-delta-DYopvwyG.js.map +1 -0
  163. package/dist/client/chunks/{chart-config-kpi-number-EFSWY1We.js → chart-config-kpi-number-BhMdoArB.js} +3 -8
  164. package/dist/client/chunks/chart-config-kpi-number-BhMdoArB.js.map +1 -0
  165. package/dist/client/chunks/{chart-config-kpi-text-KM3V5X2u.js → chart-config-kpi-text-DE6Zdi53.js} +3 -8
  166. package/dist/client/chunks/chart-config-kpi-text-DE6Zdi53.js.map +1 -0
  167. package/dist/client/chunks/{chart-config-line-D6jG8PCH.js → chart-config-line-CBfM0Rds.js} +6 -10
  168. package/dist/client/chunks/chart-config-line-CBfM0Rds.js.map +1 -0
  169. package/dist/client/chunks/{chart-config-markdown-BtRIe8JN.js → chart-config-markdown-BCDyBI8K.js} +1 -4
  170. package/dist/client/chunks/chart-config-markdown-BCDyBI8K.js.map +1 -0
  171. package/dist/client/chunks/{chart-config-measure-profile-DxRGa-zf.js → chart-config-measure-profile-BgQIH1u2.js} +1 -8
  172. package/dist/client/chunks/chart-config-measure-profile-BgQIH1u2.js.map +1 -0
  173. package/dist/client/chunks/{chart-config-pie-BhzW-fdn.js → chart-config-pie-ChfFz6DV.js} +5 -9
  174. package/dist/client/chunks/chart-config-pie-ChfFz6DV.js.map +1 -0
  175. package/dist/client/chunks/{chart-config-radar-D7REP1q_.js → chart-config-radar-BlAIGnww.js} +5 -9
  176. package/dist/client/chunks/chart-config-radar-BlAIGnww.js.map +1 -0
  177. package/dist/client/chunks/{chart-config-radial-bar-Byx6qOPU.js → chart-config-radial-bar-VFerwbCO.js} +5 -9
  178. package/dist/client/chunks/chart-config-radial-bar-VFerwbCO.js.map +1 -0
  179. package/dist/client/chunks/{chart-config-sankey-BTnWA7EW.js → chart-config-sankey-BhrDxIgj.js} +1 -4
  180. package/dist/client/chunks/chart-config-sankey-BhrDxIgj.js.map +1 -0
  181. package/dist/client/chunks/{chart-config-scatter-DSYTjwRb.js → chart-config-scatter-q_olh54e.js} +1 -11
  182. package/dist/client/chunks/chart-config-scatter-q_olh54e.js.map +1 -0
  183. package/dist/client/chunks/{chart-config-sunburst-Bwjtdf7X.js → chart-config-sunburst-BOmkOnKn.js} +1 -4
  184. package/dist/client/chunks/chart-config-sunburst-BOmkOnKn.js.map +1 -0
  185. package/dist/client/chunks/{chart-config-tree-map-DVrvf3yQ.js → chart-config-tree-map-BjX88YBY.js} +5 -9
  186. package/dist/client/chunks/chart-config-tree-map-BjX88YBY.js.map +1 -0
  187. package/dist/client/chunks/{chart-config-waterfall-DmFeQdIk.js → chart-config-waterfall-QsWXVSoF.js} +3 -8
  188. package/dist/client/chunks/chart-config-waterfall-QsWXVSoF.js.map +1 -0
  189. package/dist/client/chunks/{chart-data-table-CKauQXme.js → chart-data-table-D4g5_jfF.js} +1277 -1094
  190. package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +1 -0
  191. package/dist/client/chunks/{chart-kpi-delta-Dn-jjO-2.js → chart-kpi-delta-BvWOt8-D.js} +2 -2
  192. package/dist/client/chunks/{chart-kpi-delta-Dn-jjO-2.js.map → chart-kpi-delta-BvWOt8-D.js.map} +1 -1
  193. package/dist/client/chunks/{chart-kpi-number-P_WBiO5S.js → chart-kpi-number-xgZmMiQY.js} +3 -3
  194. package/dist/client/chunks/{chart-kpi-number-P_WBiO5S.js.map → chart-kpi-number-xgZmMiQY.js.map} +1 -1
  195. package/dist/client/chunks/{chart-kpi-text-C-Y4eb5H.js → chart-kpi-text-ZO3eFi7t.js} +2 -2
  196. package/dist/client/chunks/{chart-kpi-text-C-Y4eb5H.js.map → chart-kpi-text-ZO3eFi7t.js.map} +1 -1
  197. package/dist/client/chunks/{charts-loader-DdTeCeNo.js → charts-loader-B0DOQMFH.js} +6 -6
  198. package/dist/client/chunks/{charts-loader-DdTeCeNo.js.map → charts-loader-B0DOQMFH.js.map} +1 -1
  199. package/dist/client/chunks/{schema-visualization-Cb_E9_Gd.js → schema-visualization-DJPTktM6.js} +2 -2
  200. package/dist/client/chunks/{schema-visualization-Cb_E9_Gd.js.map → schema-visualization-DJPTktM6.js.map} +1 -1
  201. package/dist/client/chunks/{useDirtyStateTracking-MbpxH_v6.js → useDirtyStateTracking-BY_IIG1n.js} +2 -2
  202. package/dist/client/chunks/{useDirtyStateTracking-MbpxH_v6.js.map → useDirtyStateTracking-BY_IIG1n.js.map} +1 -1
  203. package/dist/client/chunks/{useExplainAI-evnZkjCY.js → useExplainAI-PjMBmj2p.js} +4 -4
  204. package/dist/client/chunks/{useExplainAI-evnZkjCY.js.map → useExplainAI-PjMBmj2p.js.map} +1 -1
  205. package/dist/client/chunks/{utils-3P6z1vz5.js → utils-Cq-j5E5I.js} +2 -2
  206. package/dist/client/chunks/{utils-3P6z1vz5.js.map → utils-Cq-j5E5I.js.map} +1 -1
  207. package/dist/client/chunks/{vendor-DSpR0IW6.js → vendor-D4jADu8t.js} +2 -2
  208. package/dist/client/chunks/{vendor-DSpR0IW6.js.map → vendor-D4jADu8t.js.map} +1 -1
  209. package/dist/client/components/AIAssistant/index.d.ts +2 -2
  210. package/dist/client/components/charts/ActivityGridChart.config.d.ts +6 -1
  211. package/dist/client/components/charts/AreaChart.config.d.ts +6 -1
  212. package/dist/client/components/charts/BarChart.config.d.ts +6 -1
  213. package/dist/client/components/charts/BoxPlotChart.config.d.ts +6 -1
  214. package/dist/client/components/charts/BubbleChart.config.d.ts +6 -1
  215. package/dist/client/components/charts/CandlestickChart.config.d.ts +6 -1
  216. package/dist/client/components/charts/DataTable.config.d.ts +6 -1
  217. package/dist/client/components/charts/FunnelChart.config.d.ts +5 -0
  218. package/dist/client/components/charts/GaugeChart.config.d.ts +6 -1
  219. package/dist/client/components/charts/HeatMapChart.config.d.ts +6 -1
  220. package/dist/client/components/charts/KpiDelta.config.d.ts +6 -1
  221. package/dist/client/components/charts/KpiNumber.config.d.ts +6 -1
  222. package/dist/client/components/charts/KpiText.config.d.ts +6 -1
  223. package/dist/client/components/charts/LineChart.config.d.ts +6 -1
  224. package/dist/client/components/charts/MarkdownChart.config.d.ts +6 -1
  225. package/dist/client/components/charts/MeasureProfileChart.config.d.ts +6 -1
  226. package/dist/client/components/charts/PieChart.config.d.ts +6 -1
  227. package/dist/client/components/charts/RadarChart.config.d.ts +6 -1
  228. package/dist/client/components/charts/RadialBarChart.config.d.ts +6 -1
  229. package/dist/client/components/charts/SankeyChart.config.d.ts +5 -0
  230. package/dist/client/components/charts/ScatterChart.config.d.ts +6 -1
  231. package/dist/client/components/charts/SunburstChart.config.d.ts +5 -0
  232. package/dist/client/components/charts/TreeMapChart.config.d.ts +6 -1
  233. package/dist/client/components/charts/WaterfallChart.config.d.ts +6 -1
  234. package/dist/client/components.js +2 -2
  235. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +1 -1
  236. package/dist/client/hooks/useAnalysisEffects.d.ts +33 -0
  237. package/dist/{cjs/client/hooks/useAnalysisQueryExecution.d.ts → client/hooks/useAnalysisQuery.d.ts} +3 -3
  238. package/dist/client/hooks/useAnalysisState.d.ts +165 -0
  239. package/dist/client/hooks.js +3 -3
  240. package/dist/client/icons/registry.d.ts +0 -6
  241. package/dist/client/icons/types.d.ts +5 -0
  242. package/dist/client/icons.js +1 -1
  243. package/dist/client/index.js +9 -9
  244. package/dist/client/providers.js +1 -1
  245. package/dist/client/schema.js +1 -1
  246. package/dist/client/utils.js +3 -3
  247. package/dist/client-bundle-stats.html +1 -1
  248. package/dist/mcp-app/mcp-app.html +34 -34
  249. package/dist/server/chartConfigHelpers-CcvqrIWF.js +72 -0
  250. package/dist/server/chartConfigHelpers-DHQB-_v5.cjs +1 -0
  251. package/dist/server/index.cjs +68 -68
  252. package/dist/server/index.js +3800 -3728
  253. package/dist/server/{openai-D-6l1Y8h.cjs → openai-B4kAJTSD.cjs} +1 -1
  254. package/dist/server/{openai-DTSTMiXL.cjs → openai-Cdf2wWZA.cjs} +1 -1
  255. package/dist/server/{openai-CmVRIbUg.js → openai-CmMzrs1Y.js} +1 -1
  256. package/dist/server/{openai-CtXqeznO.js → openai-DhzGY9R4.js} +1 -1
  257. package/package.json +12 -2
  258. package/dist/adapters/handler-OwxSBJH8.cjs +0 -25
  259. package/dist/adapters/hono/mcp-handler.d.ts +0 -37
  260. package/dist/adapters/mcp-transport-B7ddET3M.cjs +0 -40
  261. package/dist/adapters/mcp-transport-Dfuj4j4q.js +0 -591
  262. package/dist/cjs/adapters/hono/mcp-handler.d.ts +0 -37
  263. package/dist/cjs/client/hooks/useAnalysisAI.d.ts +0 -56
  264. package/dist/cjs/client/hooks/useAnalysisChartDefaults.d.ts +0 -35
  265. package/dist/cjs/client/hooks/useAnalysisCombinedFields.d.ts +0 -18
  266. package/dist/cjs/client/hooks/useAnalysisInitialization.d.ts +0 -25
  267. package/dist/cjs/client/hooks/useAnalysisQueryBuilder.d.ts +0 -32
  268. package/dist/cjs/client/hooks/useAnalysisShare.d.ts +0 -18
  269. package/dist/cjs/client/hooks/useAnalysisUIState.d.ts +0 -24
  270. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +0 -1
  271. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +0 -1
  272. package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.js.map +0 -1
  273. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +0 -1
  274. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +0 -1
  275. package/dist/client/chunks/chart-config-bubble-gIoqVyjZ.js.map +0 -1
  276. package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +0 -1
  277. package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +0 -1
  278. package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +0 -1
  279. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +0 -1
  280. package/dist/client/chunks/chart-config-heat-map-CfRnRNcw.js.map +0 -1
  281. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +0 -1
  282. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +0 -1
  283. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +0 -1
  284. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +0 -1
  285. package/dist/client/chunks/chart-config-markdown-BtRIe8JN.js.map +0 -1
  286. package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +0 -1
  287. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +0 -1
  288. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +0 -1
  289. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +0 -1
  290. package/dist/client/chunks/chart-config-sankey-BTnWA7EW.js.map +0 -1
  291. package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +0 -1
  292. package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +0 -1
  293. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +0 -1
  294. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +0 -1
  295. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +0 -1
  296. package/dist/client/hooks/useAnalysisAI.d.ts +0 -56
  297. package/dist/client/hooks/useAnalysisChartDefaults.d.ts +0 -35
  298. package/dist/client/hooks/useAnalysisCombinedFields.d.ts +0 -18
  299. package/dist/client/hooks/useAnalysisInitialization.d.ts +0 -25
  300. package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +0 -32
  301. package/dist/client/hooks/useAnalysisShare.d.ts +0 -18
  302. package/dist/client/hooks/useAnalysisUIState.d.ts +0 -24
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../locale-ZLUUNUxr.cjs"),n=require("../mcp-transport-B7ddET3M.cjs");let r=require("hono");var i=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){t.origin!==`*`&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),t.origin!==`*`&&e.header(`Vary`,`Origin`,{append:!0})}};async function a(e,t){if(t.resourceMetadataUrl&&!n.u(e.req.header(`authorization`)))return e.header(`WWW-Authenticate`,n.c(t.resourceMetadataUrl)),{response:e.json({error:`Bearer token required`},401)};let r=n.S(e.req.header(`origin`),t.allowedOrigins?{allowedOrigins:t.allowedOrigins}:{});if(!r.valid)return{response:e.json(n.i(null,-32600,r.reason),403)};let i=e.req.header(`accept`);if(!n.x(i))return{response:e.json(n.i(null,-32600,`Accept header must include both application/json and text/event-stream`),400)};let a=n.h(e.req.header());if(!a.ok)return{response:e.json({error:`Unsupported MCP protocol version`,supported:a.supported},426)};let o=n.g(await e.req.json().catch(()=>null));return o?{rpcRequest:o,acceptHeader:i,negotiatedProtocol:a.negotiated}:{response:e.json(n.i(null,-32600,`Invalid JSON-RPC 2.0 request`),400)}}function o(e,t){let r=new TextEncoder,i=n._(),a=new ReadableStream({start(t){t.enqueue(r.encode(`id: ${i}\n\n`)),t.enqueue(r.encode(n.b(e,i))),t.close()}});return new Response(a,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...t}})}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){return n.C(e)}function u(e,t,r,i){if(n.m(t))return e.body(null,202);let a=n.a(t.id??null,r),c=s(t.method===`initialize`,r,n.r);return i?o(a,c):e.json(a,200,c)}function d(e,t,r,i){if(n.m(t))return console.error(`MCP notification processing error:`,r),e.body(null,202);console.error(`MCP RPC error:`,r);let a=c(r,t.id);return i?o(a):e.json(a,200)}async function f(e,t,r,i){try{return u(e,t,await n.l(t.method,t.params,i),r)}catch(n){return d(e,t,n,r)}}function p(e,t){let n=(t.apiKey||``).trim();if(t.allowClientApiKey){let t=e.req.header(`x-agent-api-key`);t&&(n=t.trim())}return n}function m(e,t){return t.allowClientApiKey?{providerOverride:e.req.header(`x-agent-provider`),modelOverride:e.req.header(`x-agent-model`),baseURLOverride:e.req.header(`x-agent-provider-endpoint`)}:{}}function h(e){let t=new TextEncoder,n=new ReadableStream({async start(n){try{for await(let r of e)n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`))}catch(e){let r={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`))}finally{n.close()}}});return new Response(n,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}async function g(e,t,n,r){try{let{handleAgentChat:i}=await Promise.resolve().then(()=>require("../handler-OwxSBJH8.cjs")),{message:a,sessionId:o,history:s}=await e.req.json();if(!a||typeof a!=`string`)return e.json({error:`message is required and must be a string`},400);let c=p(e,t);if(!c)return e.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},401);let{providerOverride:l,modelOverride:u,baseURLOverride:d}=m(e,t),f=await r(e),g=t.buildSystemContext?.(f);return h(i({message:a,sessionId:o,history:s,semanticLayer:n,securityContext:f,agentConfig:t,apiKey:c,systemContext:g,providerOverride:l,modelOverride:u,baseURLOverride:d}))}catch(t){return console.error(`Agent chat error:`,t),e.json({error:t instanceof Error?t.message:`Agent chat failed`},500)}}function _(o){let{cubes:s,drizzle:c,schema:u,extractSecurityContext:d,engineType:p,cors:m,basePath:h=`/cubejs-api/v1`,cache:_,mcp:v={enabled:!0},agent:y}=o;if(!o.semanticLayer&&(!s||s.length===0))throw Error(`Either semanticLayer or a non-empty cubes array must be provided`);let b=new r.Hono,x=async e=>t.r(await d(e),t.n(t=>e.req.header(t)));if(m){let e={...m,allowHeaders:t.t(m.allowHeaders)};b.use(`/*`,i(e))}let S=o.semanticLayer??new t.i({drizzle:c,schema:u,engineType:p,cache:_,rlsSetup:o.rlsSetup});if(!o.semanticLayer&&s&&s.forEach(e=>{S.registerCube(e)}),b.post(`${h}/load`,async t=>{try{let n=await t.req.json(),r=n.query||n,i=await x(t),a=S.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await S.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,S))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),b.get(`${h}/load`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r;try{r=JSON.parse(n)}catch{return t.json({error:`Invalid JSON in query parameter`},400)}let i=await x(t),a=S.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=t.req.header(`x-cache-control`)===`no-cache`,s=await S.executeMultiCubeQuery(r,i,{skipCache:o});return t.json(e.r(r,s,S))}catch(e){return console.error(`Query execution error:`,e),t.json({error:e instanceof Error?e.message:`Query execution failed`},500)}}),b.post(`${h}/batch`,async t=>{try{let{queries:n}=await t.req.json();if(!n||!Array.isArray(n))return t.json({error:`Request body must contain a "queries" array`},400);if(n.length===0)return t.json({error:`Queries array cannot be empty`},400);let r=await e.l(n,await x(t),S,{skipCache:t.req.header(`x-cache-control`)===`no-cache`});return t.json(r)}catch(e){return console.error(`Batch execution error:`,e),t.json({error:e instanceof Error?e.message:`Batch execution failed`},500)}}),b.get(`${h}/meta`,t=>{try{let n=S.getMetadata();return t.json(e.a(n))}catch(e){return console.error(`Metadata error:`,e),t.json({error:e instanceof Error?e.message:`Failed to fetch metadata`},500)}}),b.post(`${h}/sql`,async t=>{try{let n=await t.req.json(),r=await x(t),i=S.validateQuery(n);if(!i.isValid)return t.json({error:`Query validation failed: ${i.errors.join(`, `)}`},400);let a=n.measures?.[0]||n.dimensions?.[0];if(!a)return t.json({error:`No measures or dimensions specified`},400);let o=a.split(`.`)[0],s=await S.generateSQL(o,n,r);return t.json(e.o(n,s))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),b.get(`${h}/sql`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`},400);let r=JSON.parse(n),i=await x(t),a=S.validateQuery(r);if(!a.isValid)return t.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=r.measures?.[0]||r.dimensions?.[0];if(!o)return t.json({error:`No measures or dimensions specified`},400);let s=o.split(`.`)[0],c=await S.generateSQL(s,r,i);return t.json(e.o(r,c))}catch(e){return console.error(`SQL generation error:`,e),t.json({error:e instanceof Error?e.message:`SQL generation failed`},500)}}),b.post(`${h}/dry-run`,async t=>{try{let n=await t.req.json(),r=await e.u(n.query||n,await x(t),S);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),b.get(`${h}/dry-run`,async t=>{try{let n=t.req.query(`query`);if(!n)return t.json({error:`Query parameter is required`,valid:!1},400);let r=await e.u(JSON.parse(n),await x(t),S);return t.json(r)}catch(e){return console.error(`Dry-run error:`,e),t.json({error:e instanceof Error?e.message:`Dry-run validation failed`,valid:!1},400)}}),b.post(`${h}/explain`,async e=>{try{let t=await e.req.json(),n=t.query||t,r=t.options||{},i=await x(e),a=S.validateQuery(n);if(!a.isValid)return e.json({error:`Query validation failed: ${a.errors.join(`, `)}`},400);let o=await S.explainQuery(n,i,r);return e.json(o)}catch(t){return console.error(`Explain error:`,t),e.json({error:t instanceof Error?t.message:`Explain query failed`},500)}}),y&&b.post(`${h}/agent/chat`,e=>g(e,y,S,x)),v.enabled!==!1){let e=n.o(S,v.resources),t=n.y(v.prompts),r=n.v(v.instructions),i=v.basePath??`/mcp`;b.post(`${i}`,async n=>{let i=await a(n,v);if(i.response)return i.response;let o=i.rpcRequest;return f(n,o,l(i.acceptHeader),{semanticLayer:S,extractSecurityContext:(e,t)=>x(e),rawRequest:n,rawResponse:null,negotiatedProtocol:i.negotiatedProtocol,resources:e,prompts:t,instructions:r,appEnabled:!!v.app,appConfig:typeof v.app==`object`?v.app:void 0,serverName:v.serverName})}),b.delete(`${i}`,e=>v.resourceMetadataUrl&&!n.u(e.req.header(`authorization`))?(e.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),e.json({error:`Bearer token required`},401)):e.json({error:`Session termination not supported`},405)),b.get(`${i}`,e=>{if(v.resourceMetadataUrl&&!n.u(e.req.header(`authorization`)))return e.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),e.json({error:`Bearer token required`},401);let t=new TextEncoder,r=n._(),i,a=new ReadableStream({start(e){e.enqueue(t.encode(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3))),i=setInterval(()=>{e.enqueue(t.encode(`: keep-alive
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../compiler-ChGO4ZLU.cjs"),t=require("../mcp-transport-CNIPoe1i.cjs"),n=require("../core-F1pCQPde.cjs");let r=require("hono");var i=e=>{let t={origin:`*`,allowMethods:[`GET`,`HEAD`,`PUT`,`POST`,`DELETE`,`PATCH`],allowHeaders:[],exposeHeaders:[],...e},n=(e=>typeof e==`string`?e===`*`?()=>e:t=>e===t?t:null:typeof e==`function`?e:t=>e.includes(t)?t:null)(t.origin),r=(e=>typeof e==`function`?e:Array.isArray(e)?()=>e:()=>[])(t.allowMethods);return async function(e,i){function a(t,n){e.res.headers.set(t,n)}let o=await n(e.req.header(`origin`)||``,e);if(o&&a(`Access-Control-Allow-Origin`,o),t.credentials&&a(`Access-Control-Allow-Credentials`,`true`),t.exposeHeaders?.length&&a(`Access-Control-Expose-Headers`,t.exposeHeaders.join(`,`)),e.req.method===`OPTIONS`){t.origin!==`*`&&a(`Vary`,`Origin`),t.maxAge!=null&&a(`Access-Control-Max-Age`,t.maxAge.toString());let n=await r(e.req.header(`origin`)||``,e);n.length&&a(`Access-Control-Allow-Methods`,n.join(`,`));let i=t.allowHeaders;if(!i?.length){let t=e.req.header(`Access-Control-Request-Headers`);t&&(i=t.split(/\s*,\s*/))}return i?.length&&(a(`Access-Control-Allow-Headers`,i.join(`,`)),e.res.headers.append(`Vary`,`Access-Control-Request-Headers`)),e.res.headers.delete(`Content-Length`),e.res.headers.delete(`Content-Type`),new Response(null,{headers:e.res.headers,status:204,statusText:`No Content`})}await i(),t.origin!==`*`&&e.header(`Vary`,`Origin`,{append:!0})}};function a(e,t){let n=(t.apiKey||``).trim();if(t.allowClientApiKey){let t=e.req.header(`x-agent-api-key`);t&&(n=t.trim())}return n}function o(e,t){return t.allowClientApiKey?{providerOverride:e.req.header(`x-agent-provider`),modelOverride:e.req.header(`x-agent-model`),baseURLOverride:e.req.header(`x-agent-provider-endpoint`)}:{}}function s(e){let t=new TextEncoder,n=new ReadableStream({async start(n){try{for await(let r of e)n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`))}catch(e){let r={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`))}finally{n.close()}}});return new Response(n,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})}async function c(e,t,n,r){try{let{handleAgentChat:i}=await Promise.resolve().then(()=>require("../handler-DRZb2ip6.cjs")),{message:c,sessionId:l,history:u}=await e.req.json();if(!c||typeof c!=`string`)return e.json({error:`message is required and must be a string`},400);let d=a(e,t);if(!d)return e.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},401);let{providerOverride:f,modelOverride:p,baseURLOverride:m}=o(e,t),h=await r(e),g=t.buildSystemContext?.(h);return s(i({message:c,sessionId:l,history:u,semanticLayer:n,securityContext:h,agentConfig:t,apiKey:d,systemContext:g,providerOverride:f,modelOverride:p,baseURLOverride:m}))}catch(t){return console.error(`Agent chat error:`,t),e.json({error:t instanceof Error?t.message:`Agent chat failed`},500)}}function l(e){return{getHeader:t=>e.req.header(t),getBody:async()=>{try{return await e.req.json()}catch{return null}},getQueryParam:t=>e.req.query(t),send:(t,n)=>e.json(n,t),setHeader:(t,n)=>{e.header(t,n)},sendEmpty:t=>e.body(null,t),sendSse:(t,n)=>(e.header(`Content-Type`,`text/event-stream`),e.header(`Cache-Control`,`no-cache`),e.header(`Connection`,`keep-alive`),e.body(n,t))}}function u(a){let{cubes:o,drizzle:s,schema:u,extractSecurityContext:d,engineType:f,cors:p,basePath:m=`/cubejs-api/v1`,cache:h,mcp:g={enabled:!0},agent:_}=a;if(!a.semanticLayer&&(!o||o.length===0))throw Error(`Either semanticLayer or a non-empty cubes array must be provided`);let v=new r.Hono;if(p){let e={...p,allowHeaders:n.i(p.allowHeaders)};v.use(`/*`,i(e))}let y=a.semanticLayer??new e.t({drizzle:s,schema:u,engineType:f,cache:h,rlsSetup:a.rlsSetup});!a.semanticLayer&&o&&o.forEach(e=>{y.registerCube(e)});let b=n.t({semanticLayer:y,onError:e=>console.error(`Query execution error:`,e),mcp:g}),x=e=>()=>d(e);if(v.post(`${m}/load`,e=>b.handleLoadPost(l(e),x(e))),v.get(`${m}/load`,e=>b.handleLoadGet(l(e),x(e))),v.post(`${m}/batch`,e=>b.handleBatchPost(l(e),x(e))),v.get(`${m}/meta`,e=>b.handleMetaGet(l(e))),v.post(`${m}/sql`,e=>b.handleSqlPost(l(e),x(e))),v.get(`${m}/sql`,e=>b.handleSqlGet(l(e),x(e))),v.post(`${m}/dry-run`,e=>b.handleDryRunPost(l(e),x(e))),v.get(`${m}/dry-run`,e=>b.handleDryRunGet(l(e),x(e))),v.post(`${m}/explain`,e=>b.handleExplainPost(l(e),x(e))),_&&v.post(`${m}/agent/chat`,e=>c(e,_,y,e=>Promise.resolve(d(e)).then(t=>n.r(t,t=>e.req.header(t))))),g.enabled!==!1){let e=g.basePath??`/mcp`;v.post(`${e}`,e=>b.handleMcpPost(l(e),x(e))),v.delete(`${e}`,e=>g.resourceMetadataUrl&&!t.u(e.req.header(`authorization`))?(e.header(`WWW-Authenticate`,t.c(g.resourceMetadataUrl)),e.json({error:`Bearer token required`},401)):e.json({error:`Session termination not supported`},405)),v.get(`${e}`,e=>{if(g.resourceMetadataUrl&&!t.u(e.req.header(`authorization`)))return e.header(`WWW-Authenticate`,t.c(g.resourceMetadataUrl)),e.json({error:`Bearer token required`},401);let n=new TextEncoder,r=t._(),i,a=new ReadableStream({start(e){e.enqueue(n.encode(t.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3))),i=setInterval(()=>{e.enqueue(n.encode(`: keep-alive
2
2
 
3
- `))},15e3)},cancel(){clearInterval(i)}});return new Response(a,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})})}return b}function v(e,t){let n=_(t);return e.route(`/`,n),e}function y(e){return v(new r.Hono,e)}exports.createCubeApp=y,exports.createCubeRoutes=_,exports.mountCubeRoutes=v;
3
+ `))},15e3)},cancel(){clearInterval(i)}});return new Response(a,{status:200,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}})})}return v}function d(e,t){let n=u(t);return e.route(`/`,n),e}function f(e){return d(new r.Hono,e)}exports.createCubeApp=f,exports.createCubeRoutes=u,exports.mountCubeRoutes=d;
@@ -1,9 +1,9 @@
1
- import { a as e, l as t, o as n, r, u as i } from "../utils-BPWZsX7k.js";
2
- import { i as a, n as o, r as s, t as c } from "../locale-DDvZDFVn.js";
3
- import { C as l, S as u, _ as d, a as f, b as p, c as m, g as h, h as g, i as _, l as v, m as y, o as b, r as x, u as S, v as C, x as w, y as T } from "../mcp-transport-Dfuj4j4q.js";
4
- import { Hono as E } from "hono";
1
+ import { t as e } from "../compiler-LKTN9PTt.js";
2
+ import { _ as t, b as n, c as r, u as i } from "../mcp-transport-Bw_zqky2.js";
3
+ import { i as a, r as o, t as s } from "../core-Bbchr0ui.js";
4
+ import { Hono as c } from "hono";
5
5
  //#region node_modules/hono/dist/middleware/cors/index.js
6
- var D = (e) => {
6
+ var l = (e) => {
7
7
  let t = {
8
8
  origin: "*",
9
9
  allowMethods: [
@@ -42,71 +42,8 @@ var D = (e) => {
42
42
  };
43
43
  };
44
44
  //#endregion
45
- //#region src/adapters/hono/mcp-handler.ts
46
- async function O(e, t) {
47
- if (t.resourceMetadataUrl && !S(e.req.header("authorization"))) return e.header("WWW-Authenticate", m(t.resourceMetadataUrl)), { response: e.json({ error: "Bearer token required" }, 401) };
48
- let n = u(e.req.header("origin"), t.allowedOrigins ? { allowedOrigins: t.allowedOrigins } : {});
49
- if (!n.valid) return { response: e.json(_(null, -32600, n.reason), 403) };
50
- let r = e.req.header("accept");
51
- if (!w(r)) return { response: e.json(_(null, -32600, "Accept header must include both application/json and text/event-stream"), 400) };
52
- let i = g(e.req.header());
53
- if (!i.ok) return { response: e.json({
54
- error: "Unsupported MCP protocol version",
55
- supported: i.supported
56
- }, 426) };
57
- let a = h(await e.req.json().catch(() => null));
58
- return a ? {
59
- rpcRequest: a,
60
- acceptHeader: r,
61
- negotiatedProtocol: i.negotiated
62
- } : { response: e.json(_(null, -32600, "Invalid JSON-RPC 2.0 request"), 400) };
63
- }
64
- function k(e, t) {
65
- let n = new TextEncoder(), r = d(), i = new ReadableStream({ start(t) {
66
- t.enqueue(n.encode(`id: ${r}\n\n`)), t.enqueue(n.encode(p(e, r))), t.close();
67
- } });
68
- return new Response(i, {
69
- status: 200,
70
- headers: {
71
- "Content-Type": "text/event-stream",
72
- "Cache-Control": "no-cache",
73
- Connection: "keep-alive",
74
- ...t
75
- }
76
- });
77
- }
78
- function A(e, t, n) {
79
- let r = e && t && typeof t == "object" && "sessionId" in t ? t.sessionId : void 0;
80
- return r ? { [n]: r } : {};
81
- }
82
- function j(e, t) {
83
- let n = e?.code ?? -32603, r = e?.data, i = e.message || "MCP request failed";
84
- return _(t ?? null, n, i, r);
85
- }
86
- function M(e) {
87
- return l(e);
88
- }
89
- function N(e, t, n, r) {
90
- if (y(t)) return e.body(null, 202);
91
- let i = f(t.id ?? null, n), a = A(t.method === "initialize", n, x);
92
- return r ? k(i, a) : e.json(i, 200, a);
93
- }
94
- function P(e, t, n, r) {
95
- if (y(t)) return console.error("MCP notification processing error:", n), e.body(null, 202);
96
- console.error("MCP RPC error:", n);
97
- let i = j(n, t.id);
98
- return r ? k(i) : e.json(i, 200);
99
- }
100
- async function F(e, t, n, r) {
101
- try {
102
- return N(e, t, await v(t.method, t.params, r), n);
103
- } catch (r) {
104
- return P(e, t, r, n);
105
- }
106
- }
107
- //#endregion
108
45
  //#region src/adapters/hono/agent-handler.ts
109
- function I(e, t) {
46
+ function u(e, t) {
110
47
  let n = (t.apiKey || "").trim();
111
48
  if (t.allowClientApiKey) {
112
49
  let t = e.req.header("x-agent-api-key");
@@ -114,14 +51,14 @@ function I(e, t) {
114
51
  }
115
52
  return n;
116
53
  }
117
- function L(e, t) {
54
+ function d(e, t) {
118
55
  return t.allowClientApiKey ? {
119
56
  providerOverride: e.req.header("x-agent-provider"),
120
57
  modelOverride: e.req.header("x-agent-model"),
121
58
  baseURLOverride: e.req.header("x-agent-provider-endpoint")
122
59
  } : {};
123
60
  }
124
- function R(e) {
61
+ function f(e) {
125
62
  let t = new TextEncoder(), n = new ReadableStream({ async start(n) {
126
63
  try {
127
64
  for await (let r of e) n.enqueue(t.encode(`data: ${JSON.stringify(r)}\n\n`));
@@ -144,25 +81,25 @@ function R(e) {
144
81
  }
145
82
  });
146
83
  }
147
- async function z(e, t, n, r) {
84
+ async function p(e, t, n, r) {
148
85
  try {
149
- let { handleAgentChat: i } = await import("../handler-CtaSua-i.js"), { message: a, sessionId: o, history: s } = await e.req.json();
86
+ let { handleAgentChat: i } = await import("../handler-u8FyzPBT.js"), { message: a, sessionId: o, history: s } = await e.req.json();
150
87
  if (!a || typeof a != "string") return e.json({ error: "message is required and must be a string" }, 400);
151
- let c = I(e, t);
88
+ let c = u(e, t);
152
89
  if (!c) return e.json({ error: "No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header." }, 401);
153
- let { providerOverride: l, modelOverride: u, baseURLOverride: d } = L(e, t), f = await r(e), p = t.buildSystemContext?.(f);
154
- return R(i({
90
+ let { providerOverride: l, modelOverride: p, baseURLOverride: m } = d(e, t), h = await r(e), g = t.buildSystemContext?.(h);
91
+ return f(i({
155
92
  message: a,
156
93
  sessionId: o,
157
94
  history: s,
158
95
  semanticLayer: n,
159
- securityContext: f,
96
+ securityContext: h,
160
97
  agentConfig: t,
161
98
  apiKey: c,
162
- systemContext: p,
99
+ systemContext: g,
163
100
  providerOverride: l,
164
- modelOverride: u,
165
- baseURLOverride: d
101
+ modelOverride: p,
102
+ baseURLOverride: m
166
103
  }));
167
104
  } catch (t) {
168
105
  return console.error("Agent chat error:", t), e.json({ error: t instanceof Error ? t.message : "Agent chat failed" }, 500);
@@ -170,163 +107,70 @@ async function z(e, t, n, r) {
170
107
  }
171
108
  //#endregion
172
109
  //#region src/adapters/hono/index.ts
173
- function B(l) {
174
- let { cubes: u, drizzle: f, schema: h, extractSecurityContext: g, engineType: _, cors: v, basePath: y = "/cubejs-api/v1", cache: x, mcp: w = { enabled: !0 }, agent: k } = l;
175
- if (!l.semanticLayer && (!u || u.length === 0)) throw Error("Either semanticLayer or a non-empty cubes array must be provided");
176
- let A = new E(), j = async (e) => s(await g(e), o((t) => e.req.header(t)));
110
+ function m(e) {
111
+ return {
112
+ getHeader: (t) => e.req.header(t),
113
+ getBody: async () => {
114
+ try {
115
+ return await e.req.json();
116
+ } catch {
117
+ return null;
118
+ }
119
+ },
120
+ getQueryParam: (t) => e.req.query(t),
121
+ send: (t, n) => e.json(n, t),
122
+ setHeader: (t, n) => {
123
+ e.header(t, n);
124
+ },
125
+ sendEmpty: (t) => e.body(null, t),
126
+ sendSse: (t, n) => (e.header("Content-Type", "text/event-stream"), e.header("Cache-Control", "no-cache"), e.header("Connection", "keep-alive"), e.body(n, t))
127
+ };
128
+ }
129
+ function h(u) {
130
+ let { cubes: d, drizzle: f, schema: h, extractSecurityContext: g, engineType: _, cors: v, basePath: y = "/cubejs-api/v1", cache: b, mcp: x = { enabled: !0 }, agent: S } = u;
131
+ if (!u.semanticLayer && (!d || d.length === 0)) throw Error("Either semanticLayer or a non-empty cubes array must be provided");
132
+ let C = new c();
177
133
  if (v) {
178
134
  let e = {
179
135
  ...v,
180
- allowHeaders: c(v.allowHeaders)
136
+ allowHeaders: a(v.allowHeaders)
181
137
  };
182
- A.use("/*", D(e));
138
+ C.use("/*", l(e));
183
139
  }
184
- let N = l.semanticLayer ?? new a({
140
+ let w = u.semanticLayer ?? new e({
185
141
  drizzle: f,
186
142
  schema: h,
187
143
  engineType: _,
188
- cache: x,
189
- rlsSetup: l.rlsSetup
144
+ cache: b,
145
+ rlsSetup: u.rlsSetup
190
146
  });
191
- if (!l.semanticLayer && u && u.forEach((e) => {
192
- N.registerCube(e);
193
- }), A.post(`${y}/load`, async (e) => {
194
- try {
195
- let t = await e.req.json(), n = t.query || t, i = await j(e), a = N.validateQuery(n);
196
- if (!a.isValid) return e.json({ error: `Query validation failed: ${a.errors.join(", ")}` }, 400);
197
- let o = e.req.header("x-cache-control") === "no-cache", s = await N.executeMultiCubeQuery(n, i, { skipCache: o });
198
- return e.json(r(n, s, N));
199
- } catch (t) {
200
- return console.error("Query execution error:", t), e.json({ error: t instanceof Error ? t.message : "Query execution failed" }, 500);
201
- }
202
- }), A.get(`${y}/load`, async (e) => {
203
- try {
204
- let t = e.req.query("query");
205
- if (!t) return e.json({ error: "Query parameter is required" }, 400);
206
- let n;
207
- try {
208
- n = JSON.parse(t);
209
- } catch {
210
- return e.json({ error: "Invalid JSON in query parameter" }, 400);
211
- }
212
- let i = await j(e), a = N.validateQuery(n);
213
- if (!a.isValid) return e.json({ error: `Query validation failed: ${a.errors.join(", ")}` }, 400);
214
- let o = e.req.header("x-cache-control") === "no-cache", s = await N.executeMultiCubeQuery(n, i, { skipCache: o });
215
- return e.json(r(n, s, N));
216
- } catch (t) {
217
- return console.error("Query execution error:", t), e.json({ error: t instanceof Error ? t.message : "Query execution failed" }, 500);
218
- }
219
- }), A.post(`${y}/batch`, async (e) => {
220
- try {
221
- let { queries: n } = await e.req.json();
222
- if (!n || !Array.isArray(n)) return e.json({ error: "Request body must contain a \"queries\" array" }, 400);
223
- if (n.length === 0) return e.json({ error: "Queries array cannot be empty" }, 400);
224
- let r = await t(n, await j(e), N, { skipCache: e.req.header("x-cache-control") === "no-cache" });
225
- return e.json(r);
226
- } catch (t) {
227
- return console.error("Batch execution error:", t), e.json({ error: t instanceof Error ? t.message : "Batch execution failed" }, 500);
228
- }
229
- }), A.get(`${y}/meta`, (t) => {
230
- try {
231
- let n = N.getMetadata();
232
- return t.json(e(n));
233
- } catch (e) {
234
- return console.error("Metadata error:", e), t.json({ error: e instanceof Error ? e.message : "Failed to fetch metadata" }, 500);
235
- }
236
- }), A.post(`${y}/sql`, async (e) => {
237
- try {
238
- let t = await e.req.json(), r = await j(e), i = N.validateQuery(t);
239
- if (!i.isValid) return e.json({ error: `Query validation failed: ${i.errors.join(", ")}` }, 400);
240
- let a = t.measures?.[0] || t.dimensions?.[0];
241
- if (!a) return e.json({ error: "No measures or dimensions specified" }, 400);
242
- let o = a.split(".")[0], s = await N.generateSQL(o, t, r);
243
- return e.json(n(t, s));
244
- } catch (t) {
245
- return console.error("SQL generation error:", t), e.json({ error: t instanceof Error ? t.message : "SQL generation failed" }, 500);
246
- }
247
- }), A.get(`${y}/sql`, async (e) => {
248
- try {
249
- let t = e.req.query("query");
250
- if (!t) return e.json({ error: "Query parameter is required" }, 400);
251
- let r = JSON.parse(t), i = await j(e), a = N.validateQuery(r);
252
- if (!a.isValid) return e.json({ error: `Query validation failed: ${a.errors.join(", ")}` }, 400);
253
- let o = r.measures?.[0] || r.dimensions?.[0];
254
- if (!o) return e.json({ error: "No measures or dimensions specified" }, 400);
255
- let s = o.split(".")[0], c = await N.generateSQL(s, r, i);
256
- return e.json(n(r, c));
257
- } catch (t) {
258
- return console.error("SQL generation error:", t), e.json({ error: t instanceof Error ? t.message : "SQL generation failed" }, 500);
259
- }
260
- }), A.post(`${y}/dry-run`, async (e) => {
261
- try {
262
- let t = await e.req.json(), n = await i(t.query || t, await j(e), N);
263
- return e.json(n);
264
- } catch (t) {
265
- return console.error("Dry-run error:", t), e.json({
266
- error: t instanceof Error ? t.message : "Dry-run validation failed",
267
- valid: !1
268
- }, 400);
269
- }
270
- }), A.get(`${y}/dry-run`, async (e) => {
271
- try {
272
- let t = e.req.query("query");
273
- if (!t) return e.json({
274
- error: "Query parameter is required",
275
- valid: !1
276
- }, 400);
277
- let n = await i(JSON.parse(t), await j(e), N);
278
- return e.json(n);
279
- } catch (t) {
280
- return console.error("Dry-run error:", t), e.json({
281
- error: t instanceof Error ? t.message : "Dry-run validation failed",
282
- valid: !1
283
- }, 400);
284
- }
285
- }), A.post(`${y}/explain`, async (e) => {
286
- try {
287
- let t = await e.req.json(), n = t.query || t, r = t.options || {}, i = await j(e), a = N.validateQuery(n);
288
- if (!a.isValid) return e.json({ error: `Query validation failed: ${a.errors.join(", ")}` }, 400);
289
- let o = await N.explainQuery(n, i, r);
290
- return e.json(o);
291
- } catch (t) {
292
- return console.error("Explain error:", t), e.json({ error: t instanceof Error ? t.message : "Explain query failed" }, 500);
293
- }
294
- }), k && A.post(`${y}/agent/chat`, (e) => z(e, k, N, j)), w.enabled !== !1) {
295
- let e = b(N, w.resources), t = T(w.prompts), n = C(w.instructions), r = w.basePath ?? "/mcp";
296
- A.post(`${r}`, async (r) => {
297
- let i = await O(r, w);
298
- if (i.response) return i.response;
299
- let a = i.rpcRequest;
300
- return F(r, a, M(i.acceptHeader), {
301
- semanticLayer: N,
302
- extractSecurityContext: (e, t) => j(e),
303
- rawRequest: r,
304
- rawResponse: null,
305
- negotiatedProtocol: i.negotiatedProtocol,
306
- resources: e,
307
- prompts: t,
308
- instructions: n,
309
- appEnabled: !!w.app,
310
- appConfig: typeof w.app == "object" ? w.app : void 0,
311
- serverName: w.serverName
312
- });
313
- }), A.delete(`${r}`, (e) => w.resourceMetadataUrl && !S(e.req.header("authorization")) ? (e.header("WWW-Authenticate", m(w.resourceMetadataUrl)), e.json({ error: "Bearer token required" }, 401)) : e.json({ error: "Session termination not supported" }, 405)), A.get(`${r}`, (e) => {
314
- if (w.resourceMetadataUrl && !S(e.req.header("authorization"))) return e.header("WWW-Authenticate", m(w.resourceMetadataUrl)), e.json({ error: "Bearer token required" }, 401);
315
- let t = new TextEncoder(), n = d(), r, i = new ReadableStream({
147
+ !u.semanticLayer && d && d.forEach((e) => {
148
+ w.registerCube(e);
149
+ });
150
+ let T = s({
151
+ semanticLayer: w,
152
+ onError: (e) => console.error("Query execution error:", e),
153
+ mcp: x
154
+ }), E = (e) => () => g(e);
155
+ if (C.post(`${y}/load`, (e) => T.handleLoadPost(m(e), E(e))), C.get(`${y}/load`, (e) => T.handleLoadGet(m(e), E(e))), C.post(`${y}/batch`, (e) => T.handleBatchPost(m(e), E(e))), C.get(`${y}/meta`, (e) => T.handleMetaGet(m(e))), C.post(`${y}/sql`, (e) => T.handleSqlPost(m(e), E(e))), C.get(`${y}/sql`, (e) => T.handleSqlGet(m(e), E(e))), C.post(`${y}/dry-run`, (e) => T.handleDryRunPost(m(e), E(e))), C.get(`${y}/dry-run`, (e) => T.handleDryRunGet(m(e), E(e))), C.post(`${y}/explain`, (e) => T.handleExplainPost(m(e), E(e))), S && C.post(`${y}/agent/chat`, (e) => p(e, S, w, (e) => Promise.resolve(g(e)).then((t) => o(t, (t) => e.req.header(t))))), x.enabled !== !1) {
156
+ let e = x.basePath ?? "/mcp";
157
+ C.post(`${e}`, (e) => T.handleMcpPost(m(e), E(e))), C.delete(`${e}`, (e) => x.resourceMetadataUrl && !i(e.req.header("authorization")) ? (e.header("WWW-Authenticate", r(x.resourceMetadataUrl)), e.json({ error: "Bearer token required" }, 401)) : e.json({ error: "Session termination not supported" }, 405)), C.get(`${e}`, (e) => {
158
+ if (x.resourceMetadataUrl && !i(e.req.header("authorization"))) return e.header("WWW-Authenticate", r(x.resourceMetadataUrl)), e.json({ error: "Bearer token required" }, 401);
159
+ let a = new TextEncoder(), o = t(), s, c = new ReadableStream({
316
160
  start(e) {
317
- e.enqueue(t.encode(p({
161
+ e.enqueue(a.encode(n({
318
162
  jsonrpc: "2.0",
319
163
  method: "mcp/ready",
320
164
  params: { protocol: "streamable-http" }
321
- }, n, 15e3))), r = setInterval(() => {
322
- e.enqueue(t.encode(": keep-alive\n\n"));
165
+ }, o, 15e3))), s = setInterval(() => {
166
+ e.enqueue(a.encode(": keep-alive\n\n"));
323
167
  }, 15e3);
324
168
  },
325
169
  cancel() {
326
- clearInterval(r);
170
+ clearInterval(s);
327
171
  }
328
172
  });
329
- return new Response(i, {
173
+ return new Response(c, {
330
174
  status: 200,
331
175
  headers: {
332
176
  "Content-Type": "text/event-stream",
@@ -336,14 +180,14 @@ function B(l) {
336
180
  });
337
181
  });
338
182
  }
339
- return A;
183
+ return C;
340
184
  }
341
- function V(e, t) {
342
- let n = B(t);
185
+ function g(e, t) {
186
+ let n = h(t);
343
187
  return e.route("/", n), e;
344
188
  }
345
- function H(e) {
346
- return V(new E(), e);
189
+ function _(e) {
190
+ return g(new c(), e);
347
191
  }
348
192
  //#endregion
349
- export { H as createCubeApp, B as createCubeRoutes, V as mountCubeRoutes };
193
+ export { _ as createCubeApp, h as createCubeRoutes, g as mountCubeRoutes };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-_whV4fXL.cjs"),t=require("./mcp-transport-B7ddET3M.cjs");function n(t,n){return e.p(t.semanticLayer,n||{}).then(t.wrapContent)}async function r(t,n,r){let i=n||{};if(!i.query)return t.wrapError(`query is required`);let a;try{a=await t.getSecurityContext(r)}catch{}return t.wrapContent(await e.f(t.semanticLayer,i,a))}async function i(t,n,r){let i=n||{};if(!i.query)return t.wrapError(`query is required`);let a=await t.getSecurityContext(r);return t.wrapContent(await e.m(t.semanticLayer,a,i))}function a(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function o(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function s(e){let{semanticLayer:s,getSecurityContext:l,toolPrefix:u=`drizzle_cube_`,tools:d=[`discover`,`validate`,`load`,`chart`],prompts:f=t.d(),resources:p,app:m=!1}=e,h=!!m,g=typeof m==`object`?m:void 0,_=p??t.f(),v=h?[..._,...c(g)]:_,y=t.s({appEnabled:h}),b=new Map(y.map(e=>[e.name,e])),x=d.filter(e=>b.has(e)).map(e=>{let t=b.get(e),n={name:`${u}${e}`,description:t.description,inputSchema:t.inputSchema},r=t._meta;return r&&(n._meta=r),n}),S=x.map(e=>e.name),C=new Set;for(let e of d)C.add(e),C.add(`${u}${e}`);function w(e){return C.has(e)}let T={semanticLayer:s,getSecurityContext:l,wrapContent:a,wrapError:o},E={discover:e=>n(T,e),validate:(e,t)=>r(T,e,t),load:(e,t)=>i(T,e,t),chart:(e,t)=>i(T,e,t)};async function D(e,t,n){let r=e.startsWith(u)?e.slice(u.length):e,i=d.includes(r)?E[r]:void 0;if(!i)return o(`Unknown tool: ${e}`);try{return await i(t,n)}catch(e){return o(e)}}return{definitions:x,handle:D,handles:w,prompts:f,resources:v,toolNames:S}}function c(e){let n=t.p(e);return n?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:n}]:[]}exports.getCubeTools=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-_whV4fXL.cjs"),t=require("./mcp-transport-CNIPoe1i.cjs");function n(t,n){return e.p(t.semanticLayer,n||{}).then(t.wrapContent)}async function r(t,n,r){let i=n||{};if(!i.query)return t.wrapError(`query is required`);let a;try{a=await t.getSecurityContext(r)}catch{}return t.wrapContent(await e.f(t.semanticLayer,i,a))}async function i(t,n,r){let i=n||{};if(!i.query)return t.wrapError(`query is required`);let a=await t.getSecurityContext(r);return t.wrapContent(await e.m(t.semanticLayer,a,i))}function a(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function o(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function s(e){let{semanticLayer:s,getSecurityContext:l,toolPrefix:u=`drizzle_cube_`,tools:d=[`discover`,`validate`,`load`,`chart`],prompts:f=t.d(),resources:p,app:m=!1}=e,h=!!m,g=typeof m==`object`?m:void 0,_=p??t.f(),v=h?[..._,...c(g)]:_,y=t.s({appEnabled:h}),b=new Map(y.map(e=>[e.name,e])),x=d.filter(e=>b.has(e)).map(e=>{let t=b.get(e),n={name:`${u}${e}`,description:t.description,inputSchema:t.inputSchema},r=t._meta;return r&&(n._meta=r),n}),S=x.map(e=>e.name),C=new Set;for(let e of d)C.add(e),C.add(`${u}${e}`);function w(e){return C.has(e)}let T={semanticLayer:s,getSecurityContext:l,wrapContent:a,wrapError:o},E={discover:e=>n(T,e),validate:(e,t)=>r(T,e,t),load:(e,t)=>i(T,e,t),chart:(e,t)=>i(T,e,t)};async function D(e,t,n){let r=e.startsWith(u)?e.slice(u.length):e,i=d.includes(r)?E[r]:void 0;if(!i)return o(`Unknown tool: ${e}`);try{return await i(t,n)}catch(e){return o(e)}}return{definitions:x,handle:D,handles:w,prompts:f,resources:v,toolNames:S}}function c(e){let n=t.p(e);return n?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:n}]:[]}exports.getCubeTools=s;
@@ -1,5 +1,5 @@
1
1
  import { f as e, m as t, p as n } from "./utils-BPWZsX7k.js";
2
- import { d as r, f as i, n as a, p as o, s, t as c } from "./mcp-transport-Dfuj4j4q.js";
2
+ import { d as r, f as i, n as a, p as o, s, t as c } from "./mcp-transport-Bw_zqky2.js";
3
3
  //#region src/adapters/mcp-tools-handlers.ts
4
4
  function l(e, t) {
5
5
  return n(e.semanticLayer, t || {}).then(e.wrapContent);