drizzle-cube 0.6.4 → 0.6.5

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 (255) hide show
  1. package/dist/adapters/ActivityGridChart.config-Bvi50jl_.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-BwswifOD.js +2 -0
  3. package/dist/adapters/AreaChart.config-Cehf1Kjo.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-DC-gnmli.js +2 -0
  5. package/dist/adapters/BarChart.config-BY53r96T.cjs +1 -0
  6. package/dist/adapters/BarChart.config-DJN5Oqmw.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-9hLT3yMs.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-D9P4PMTf.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-CEVSsy7u.js +2 -0
  10. package/dist/adapters/BubbleChart.config-Cji0z0Tb.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-DPv76FmM.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-tcHTorLu.js +2 -0
  13. package/dist/adapters/DataTable.config-D4txBrlQ.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DrObkanI.js +2 -0
  15. package/dist/adapters/FunnelChart.config-BFYSkibE.js +2 -0
  16. package/dist/adapters/FunnelChart.config-BTSFeha-.cjs +1 -0
  17. package/dist/adapters/GaugeChart.config-BFz6NZfT.js +2 -0
  18. package/dist/adapters/GaugeChart.config-DJKD6oh8.cjs +1 -0
  19. package/dist/adapters/HeatMapChart.config-C3EZl9Sy.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-jUCb5NAE.js +2 -0
  21. package/dist/adapters/KpiDelta.config-DhuealNk.js +2 -0
  22. package/dist/adapters/KpiDelta.config-m6FEIeWo.cjs +1 -0
  23. package/dist/adapters/KpiNumber.config-Cmd7eHmg.cjs +1 -0
  24. package/dist/adapters/KpiNumber.config-KQdKrkK-.js +2 -0
  25. package/dist/adapters/KpiText.config-D_pU4jH3.cjs +1 -0
  26. package/dist/adapters/KpiText.config-V8SvhllA.js +2 -0
  27. package/dist/adapters/LineChart.config-BuWM0TJx.js +2 -0
  28. package/dist/adapters/LineChart.config-CsxJ3f5A.cjs +1 -0
  29. package/dist/adapters/MarkdownChart.config-CJdjenj7.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-oCWrAuom.js +2 -0
  31. package/dist/adapters/MeasureProfileChart.config-DBLnhtOk.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-DWg0jzxA.js +2 -0
  33. package/dist/adapters/PieChart.config-D3qI6nbM.cjs +1 -0
  34. package/dist/adapters/PieChart.config-R2rcul2D.js +2 -0
  35. package/dist/adapters/RadarChart.config-BlK8QuDi.js +2 -0
  36. package/dist/adapters/RadarChart.config-fH3ce10I.cjs +1 -0
  37. package/dist/adapters/RadialBarChart.config-CqCnb27I.js +2 -0
  38. package/dist/adapters/RadialBarChart.config-DQQHJOCs.cjs +1 -0
  39. package/dist/adapters/RetentionCombinedChart.config-BFJ8i-kp.js +2 -0
  40. package/dist/adapters/RetentionCombinedChart.config-B_Wd_YjX.cjs +1 -0
  41. package/dist/adapters/RetentionHeatmap.config-BLqu9-Ft.js +2 -0
  42. package/dist/adapters/RetentionHeatmap.config-MvOPw_Dd.cjs +1 -0
  43. package/dist/adapters/SankeyChart.config-C_4u9Xiq.js +2 -0
  44. package/dist/adapters/SankeyChart.config-EH6wsjPr.cjs +1 -0
  45. package/dist/adapters/ScatterChart.config-D-MlQ7mP.js +2 -0
  46. package/dist/adapters/ScatterChart.config-DmwiEBN-.cjs +1 -0
  47. package/dist/adapters/SunburstChart.config-BRr_as_L.js +2 -0
  48. package/dist/adapters/SunburstChart.config-CptDj8e4.cjs +1 -0
  49. package/dist/adapters/TreeMapChart.config-D5wX2xaT.cjs +1 -0
  50. package/dist/adapters/TreeMapChart.config-Dyhwpwq3.js +2 -0
  51. package/dist/adapters/WaterfallChart.config-B_LGJIov.js +2 -0
  52. package/dist/adapters/WaterfallChart.config-Q4Fv196W.cjs +1 -0
  53. package/dist/adapters/{compiler-DyyBaLry.cjs → compiler-D0v5KJhv.cjs} +2 -2
  54. package/dist/adapters/{compiler-lG6eNsoI.js → compiler-ZruQ85ff.js} +35 -30
  55. package/dist/adapters/core/index.cjs +1 -1
  56. package/dist/adapters/core/index.js +1 -1
  57. package/dist/adapters/{core-F1pCQPde.cjs → core-CVqTwOR3.cjs} +1 -1
  58. package/dist/adapters/{core-Bbchr0ui.js → core-DoSUiMmv.js} +60 -60
  59. package/dist/adapters/express/index.cjs +2 -2
  60. package/dist/adapters/express/index.js +80 -75
  61. package/dist/adapters/fastify/index.cjs +2 -2
  62. package/dist/adapters/fastify/index.js +63 -58
  63. package/dist/adapters/{handler-DRZb2ip6.cjs → handler-DyIyrFFp.cjs} +3 -3
  64. package/dist/adapters/{handler-u8FyzPBT.js → handler-j74EJDdo.js} +28 -28
  65. package/dist/adapters/hono/index.cjs +2 -2
  66. package/dist/adapters/hono/index.js +57 -52
  67. package/dist/adapters/mcp-tools.cjs +1 -1
  68. package/dist/adapters/mcp-tools.js +2 -2
  69. package/dist/adapters/mcp-transport-BuU5CrKL.cjs +40 -0
  70. package/dist/adapters/mcp-transport-l8DhKzR5.js +601 -0
  71. package/dist/adapters/mcp-transport.d.ts +21 -3
  72. package/dist/adapters/nextjs/index.cjs +1 -1
  73. package/dist/adapters/nextjs/index.js +110 -105
  74. package/dist/adapters/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
  75. package/dist/{server/openai-DhzGY9R4.js → adapters/openai-BjR3ohaS.js} +1 -1
  76. package/dist/{server/openai-B4kAJTSD.cjs → adapters/openai-ClVVLjNl.cjs} +2 -2
  77. package/dist/adapters/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
  78. package/dist/adapters/utils-CBR-9AMD.cjs +128 -0
  79. package/dist/adapters/{utils-BPWZsX7k.js → utils-U7gV5wQL.js} +789 -788
  80. package/dist/adapters/utils.cjs +1 -1
  81. package/dist/adapters/utils.d.ts +16 -4
  82. package/dist/adapters/utils.js +1 -1
  83. package/dist/cjs/adapters/mcp-transport.d.ts +21 -3
  84. package/dist/cjs/adapters/utils.d.ts +16 -4
  85. package/dist/cjs/server/executors/sqlite-executor.d.ts +8 -2
  86. package/dist/client/charts.js +13 -13
  87. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +3283 -0
  88. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +1 -0
  89. package/dist/client/chunks/{DashboardEditModal-Cs1ig1_V.js → DashboardEditModal-DFQSxR_C.js} +1134 -4389
  90. package/dist/client/chunks/DashboardEditModal-DFQSxR_C.js.map +1 -0
  91. package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js → RetentionCombinedChart-DY7wKLs5.js} +3 -3
  92. package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js.map → RetentionCombinedChart-DY7wKLs5.js.map} +1 -1
  93. package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js → RetentionHeatmap-iNCG-dLd.js} +2 -2
  94. package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js.map → RetentionHeatmap-iNCG-dLd.js.map} +1 -1
  95. package/dist/client/chunks/{analysis-builder-B64yaeDe.js → analysis-builder-CBZ7lOC-.js} +311 -311
  96. package/dist/client/chunks/{analysis-builder-B64yaeDe.js.map → analysis-builder-CBZ7lOC-.js.map} +1 -1
  97. package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js → analysis-builder-shared-8alCn-zw.js} +411 -411
  98. package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js.map → analysis-builder-shared-8alCn-zw.js.map} +1 -1
  99. package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js → chart-activity-grid-DDqFVWoa.js} +5 -2
  100. package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js.map → chart-activity-grid-DDqFVWoa.js.map} +1 -1
  101. package/dist/client/chunks/{chart-area-of01_62R.js → chart-area-BHxPNsmc.js} +2 -2
  102. package/dist/client/chunks/{chart-area-of01_62R.js.map → chart-area-BHxPNsmc.js.map} +1 -1
  103. package/dist/client/chunks/{chart-bar-BqelQE_I.js → chart-bar-DAO3PPcE.js} +3 -3
  104. package/dist/client/chunks/{chart-bar-BqelQE_I.js.map → chart-bar-DAO3PPcE.js.map} +1 -1
  105. package/dist/client/chunks/{chart-box-plot-kkBixZ27.js → chart-box-plot-CUpFyQQk.js} +2 -2
  106. package/dist/client/chunks/{chart-box-plot-kkBixZ27.js.map → chart-box-plot-CUpFyQQk.js.map} +1 -1
  107. package/dist/client/chunks/{chart-bubble-B2he1--4.js → chart-bubble-DvP_6_n9.js} +2 -2
  108. package/dist/client/chunks/{chart-bubble-B2he1--4.js.map → chart-bubble-DvP_6_n9.js.map} +1 -1
  109. package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js → chart-candlestick-Dx8ZCMzl.js} +2 -2
  110. package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js.map → chart-candlestick-Dx8ZCMzl.js.map} +1 -1
  111. package/dist/client/chunks/{chart-data-table-D4g5_jfF.js → chart-data-table-BP6DMdom.js} +32 -16
  112. package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +1 -0
  113. package/dist/client/chunks/{chart-funnel-CToKSBaL.js → chart-funnel-xeVGBy-p.js} +2 -2
  114. package/dist/client/chunks/{chart-funnel-CToKSBaL.js.map → chart-funnel-xeVGBy-p.js.map} +1 -1
  115. package/dist/client/chunks/{chart-gauge-DTVezSk7.js → chart-gauge-DXQ4r3cb.js} +3 -3
  116. package/dist/client/chunks/{chart-gauge-DTVezSk7.js.map → chart-gauge-DXQ4r3cb.js.map} +1 -1
  117. package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js → chart-heat-map-Pnk6rhqQ.js} +3 -3
  118. package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js.map → chart-heat-map-Pnk6rhqQ.js.map} +1 -1
  119. package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js → chart-kpi-delta-nXQnRRBr.js} +3 -3
  120. package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js.map → chart-kpi-delta-nXQnRRBr.js.map} +1 -1
  121. package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js → chart-kpi-number-m8UGJfBr.js} +5 -5
  122. package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js.map → chart-kpi-number-m8UGJfBr.js.map} +1 -1
  123. package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js → chart-kpi-text-CurpqmaD.js} +7 -4
  124. package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js.map → chart-kpi-text-CurpqmaD.js.map} +1 -1
  125. package/dist/client/chunks/{chart-line-DKgrQA6c.js → chart-line-sJK-cJc0.js} +3 -3
  126. package/dist/client/chunks/{chart-line-DKgrQA6c.js.map → chart-line-sJK-cJc0.js.map} +1 -1
  127. package/dist/client/chunks/{chart-markdown-CV75S_zL.js → chart-markdown-BVrqqygz.js} +1263 -1192
  128. package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +1 -0
  129. package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js → chart-measure-profile-k9_QDQbB.js} +3 -3
  130. package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js.map → chart-measure-profile-k9_QDQbB.js.map} +1 -1
  131. package/dist/client/chunks/{chart-pie-ByieAX5H.js → chart-pie-BDaaYt7a.js} +3 -3
  132. package/dist/client/chunks/{chart-pie-ByieAX5H.js.map → chart-pie-BDaaYt7a.js.map} +1 -1
  133. package/dist/client/chunks/{chart-radar-CiSwHWp4.js → chart-radar-Bz07PIVe.js} +3 -3
  134. package/dist/client/chunks/{chart-radar-CiSwHWp4.js.map → chart-radar-Bz07PIVe.js.map} +1 -1
  135. package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js → chart-radial-bar-DpyxKQMj.js} +3 -3
  136. package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js.map → chart-radial-bar-DpyxKQMj.js.map} +1 -1
  137. package/dist/client/chunks/{chart-sankey-DjrvKw6K.js → chart-sankey-BAeNbI-p.js} +2 -2
  138. package/dist/client/chunks/{chart-sankey-DjrvKw6K.js.map → chart-sankey-BAeNbI-p.js.map} +1 -1
  139. package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js → chart-scatter-CRhGLCcy.js} +3 -3
  140. package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js.map → chart-scatter-CRhGLCcy.js.map} +1 -1
  141. package/dist/client/chunks/{chart-sunburst-leGpuDj7.js → chart-sunburst-D3wV5OrK.js} +3 -3
  142. package/dist/client/chunks/{chart-sunburst-leGpuDj7.js.map → chart-sunburst-D3wV5OrK.js.map} +1 -1
  143. package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js → chart-tree-map-iI3ewOKY.js} +3 -3
  144. package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js.map → chart-tree-map-iI3ewOKY.js.map} +1 -1
  145. package/dist/client/chunks/{chart-waterfall-DyvQReN5.js → chart-waterfall-BrrYTZfs.js} +3 -3
  146. package/dist/client/chunks/{chart-waterfall-DyvQReN5.js.map → chart-waterfall-BrrYTZfs.js.map} +1 -1
  147. package/dist/client/chunks/{charts-core-DaXSt1Dd.js → charts-core-Cs-UIsQa.js} +2 -2
  148. package/dist/client/chunks/{charts-core-DaXSt1Dd.js.map → charts-core-Cs-UIsQa.js.map} +1 -1
  149. package/dist/client/chunks/charts-loader-DAJbAD7a.js +84 -0
  150. package/dist/client/chunks/{charts-loader-B0DOQMFH.js.map → charts-loader-DAJbAD7a.js.map} +1 -1
  151. package/dist/client/chunks/core-D7vPfUIe.js.map +1 -1
  152. package/dist/client/chunks/{dist-zPWyTBdU.js → dist-BwQr11Fz.js} +251 -252
  153. package/dist/client/chunks/{dist-zPWyTBdU.js.map → dist-BwQr11Fz.js.map} +1 -1
  154. package/dist/client/chunks/{exceljs.min-CIqBqwTW.js → exceljs.min-Dey-qIFL.js} +16 -16
  155. package/dist/client/chunks/{exceljs.min-CIqBqwTW.js.map → exceljs.min-Dey-qIFL.js.map} +1 -1
  156. package/dist/client/chunks/javascript-DFnKaHmQ.js.map +1 -1
  157. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  158. package/dist/client/chunks/{schema-visualization-DJPTktM6.js → schema-visualization-BGT_cNon.js} +12 -12
  159. package/dist/client/chunks/{schema-visualization-DJPTktM6.js.map → schema-visualization-BGT_cNon.js.map} +1 -1
  160. package/dist/client/chunks/sql-CmVzGP4w.js.map +1 -1
  161. package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js +30 -0
  162. package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js.map +1 -0
  163. package/dist/client/chunks/{useDirtyStateTracking-BT6zqCFl.js → useDebounce-7suCFq9v.js} +47 -109
  164. package/dist/client/chunks/useDebounce-7suCFq9v.js.map +1 -0
  165. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +66 -0
  166. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +1 -0
  167. package/dist/client/chunks/{useExplainAI-Dq_meKNN.js → useExplainAI-CEf04DPE.js} +14 -14
  168. package/dist/client/chunks/{useExplainAI-Dq_meKNN.js.map → useExplainAI-CEf04DPE.js.map} +1 -1
  169. package/dist/client/chunks/useNotebookLayout-Ck3Z3uzg.js.map +1 -1
  170. package/dist/client/chunks/utils-DjLiJKS_.js +104 -0
  171. package/dist/client/chunks/utils-DjLiJKS_.js.map +1 -0
  172. package/dist/client/chunks/{vendor-D4jADu8t.js → vendor-DFAQ4Ucl.js} +5 -3
  173. package/dist/client/chunks/{vendor-D4jADu8t.js.map → vendor-DFAQ4Ucl.js.map} +1 -1
  174. package/dist/client/components.js +4 -3
  175. package/dist/client/hooks.js +5 -4
  176. package/dist/client/icons.js +1 -1
  177. package/dist/client/index.js +33 -29
  178. package/dist/client/index.js.map +1 -1
  179. package/dist/client/providers.js +1 -1
  180. package/dist/client/schema.js +1 -1
  181. package/dist/client/styles.css +1 -1
  182. package/dist/client/utils.js +32 -6
  183. package/dist/client/utils.js.map +1 -0
  184. package/dist/client-bundle-stats.html +1 -1
  185. package/dist/mcp-app/mcp-app.html +145 -50
  186. package/dist/server/executors/sqlite-executor.d.ts +8 -2
  187. package/dist/server/index.cjs +33 -33
  188. package/dist/server/index.js +1268 -1262
  189. package/dist/server/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
  190. package/dist/{adapters/openai-DhzGY9R4.js → server/openai-BjR3ohaS.js} +1 -1
  191. package/dist/{adapters/openai-B4kAJTSD.cjs → server/openai-ClVVLjNl.cjs} +2 -2
  192. package/dist/server/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
  193. package/package.json +11 -7
  194. package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +0 -1
  195. package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +0 -2
  196. package/dist/adapters/AreaChart.config-1B8iQnfn.js +0 -2
  197. package/dist/adapters/AreaChart.config-hnncyQL4.cjs +0 -1
  198. package/dist/adapters/BarChart.config-C-QCf1rL.cjs +0 -1
  199. package/dist/adapters/BarChart.config-CFelK1qP.js +0 -2
  200. package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +0 -2
  201. package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +0 -1
  202. package/dist/adapters/BubbleChart.config-B_M4hzzV.js +0 -2
  203. package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +0 -1
  204. package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +0 -1
  205. package/dist/adapters/CandlestickChart.config-fuhyFvob.js +0 -2
  206. package/dist/adapters/DataTable.config-q2gqBi6t.cjs +0 -1
  207. package/dist/adapters/DataTable.config-wIQnHX5R.js +0 -2
  208. package/dist/adapters/FunnelChart.config-Dz710ssx.js +0 -2
  209. package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +0 -1
  210. package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +0 -1
  211. package/dist/adapters/GaugeChart.config-CgwniXkd.js +0 -2
  212. package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +0 -1
  213. package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +0 -2
  214. package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +0 -1
  215. package/dist/adapters/KpiDelta.config-C_dYM64q.js +0 -2
  216. package/dist/adapters/KpiNumber.config-CXg6toZG.js +0 -2
  217. package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +0 -1
  218. package/dist/adapters/KpiText.config-BY-SJvAF.js +0 -2
  219. package/dist/adapters/KpiText.config-GSIxy0CE.cjs +0 -1
  220. package/dist/adapters/LineChart.config-CJtF8SOu.js +0 -2
  221. package/dist/adapters/LineChart.config-d0y60gw9.cjs +0 -1
  222. package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +0 -1
  223. package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +0 -2
  224. package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +0 -1
  225. package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +0 -2
  226. package/dist/adapters/PieChart.config-CDxfXCIt.cjs +0 -1
  227. package/dist/adapters/PieChart.config-CuZxQc5m.js +0 -2
  228. package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +0 -1
  229. package/dist/adapters/RadarChart.config-KrxwaaGu.js +0 -2
  230. package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +0 -2
  231. package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +0 -1
  232. package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +0 -1
  233. package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +0 -2
  234. package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +0 -2
  235. package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +0 -1
  236. package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +0 -1
  237. package/dist/adapters/SankeyChart.config-kzAnW0C7.js +0 -2
  238. package/dist/adapters/ScatterChart.config-4Okvn27v.js +0 -2
  239. package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +0 -1
  240. package/dist/adapters/SunburstChart.config-BsUQkIM_.js +0 -2
  241. package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +0 -1
  242. package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +0 -2
  243. package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +0 -1
  244. package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +0 -1
  245. package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +0 -2
  246. package/dist/adapters/mcp-transport-Bw_zqky2.js +0 -591
  247. package/dist/adapters/mcp-transport-CNIPoe1i.cjs +0 -40
  248. package/dist/adapters/utils-_whV4fXL.cjs +0 -128
  249. package/dist/client/chunks/DashboardEditModal-Cs1ig1_V.js.map +0 -1
  250. package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +0 -1
  251. package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +0 -1
  252. package/dist/client/chunks/charts-loader-B0DOQMFH.js +0 -84
  253. package/dist/client/chunks/useDirtyStateTracking-BT6zqCFl.js.map +0 -1
  254. package/dist/client/chunks/utils-Cq-j5E5I.js +0 -155
  255. package/dist/client/chunks/utils-Cq-j5E5I.js.map +0 -1
@@ -1,40 +1,40 @@
1
- import { a as e, i as t, l as n, o as r, r as i, u as a } from "./utils-BPWZsX7k.js";
2
- import { C as o, S as s, _ as c, a as l, b as u, c as d, g as f, h as p, i as m, l as h, m as g, o as _, r as v, u as y, v as b, x, y as S } from "./mcp-transport-Bw_zqky2.js";
1
+ import { a as e, i as t, l as n, o as r, r as i, u as a } from "./utils-U7gV5wQL.js";
2
+ import { C as o, S as s, _ as c, a as l, b as u, c as d, g as f, h as p, i as m, l as h, m as g, o as _, r as v, u as y, v as b, w as x, x as S, y as C } from "./mcp-transport-l8DhKzR5.js";
3
3
  //#region src/adapters/locale.ts
4
- var C = "x-dc-locale";
5
- function w(e) {
4
+ var w = "x-dc-locale";
5
+ function T(e) {
6
6
  if (!e) return;
7
7
  let t = (Array.isArray(e) ? e[0] : e).split(",")[0]?.trim();
8
8
  if (t && /^[A-Za-z0-9-]{2,35}$/.test(t)) return t;
9
9
  }
10
- function T(e) {
11
- return w(e(C));
10
+ function E(e) {
11
+ return T(e(w));
12
12
  }
13
- function E(e, t) {
13
+ function D(e, t) {
14
14
  let n = e && typeof e == "object" ? e : {}, r = typeof n.locale == "string" ? n.locale : void 0, i = t ?? r ?? "en-GB";
15
15
  return r === i ? n : {
16
16
  ...n,
17
17
  locale: i
18
18
  };
19
19
  }
20
- function D(e) {
20
+ function O(e) {
21
21
  let t = Array.isArray(e) ? [...e] : (e ?? "").split(",").map((e) => e.trim()).filter(Boolean);
22
22
  return t.some((e) => e.toLowerCase() === "x-dc-locale") || t.push("X-DC-Locale"), t;
23
23
  }
24
24
  //#endregion
25
25
  //#region src/adapters/core/security-context.ts
26
- function O(e, t) {
27
- return E(e, T(t));
26
+ function k(e, t) {
27
+ return D(e, E(t));
28
28
  }
29
- async function k(e, t) {
30
- return O(await e(), t);
29
+ async function A(e, t) {
30
+ return k(await e(), t);
31
31
  }
32
- function A(e) {
32
+ function j(e) {
33
33
  return String(e).replace(/\n|\r/g, "");
34
34
  }
35
35
  //#endregion
36
36
  //#region src/adapters/core/rest-handlers.ts
37
- function j(i) {
37
+ function M(i) {
38
38
  async function o(e, n, a) {
39
39
  let o = i.validateQuery(e);
40
40
  if (!o.isValid) return a.send(400, t(`Query validation failed: ${o.errors.join(", ")}`, 400));
@@ -53,9 +53,9 @@ function j(i) {
53
53
  async function c(e, n) {
54
54
  try {
55
55
  let t = await e.getBody();
56
- return await o(t?.query || t, await k(n, (t) => e.getHeader(t)), e);
56
+ return await o(t?.query || t, await A(n, (t) => e.getHeader(t)), e);
57
57
  } catch (n) {
58
- return console.error("SQL generation error:", A(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
58
+ return console.error("SQL generation error:", j(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
59
59
  }
60
60
  }
61
61
  async function l(e, n) {
@@ -68,15 +68,15 @@ function j(i) {
68
68
  } catch {
69
69
  return e.send(400, t("Invalid JSON in query parameter", 400));
70
70
  }
71
- let a = await k(n, (t) => e.getHeader(t));
71
+ let a = await A(n, (t) => e.getHeader(t));
72
72
  return await o(i, a, e);
73
73
  } catch (n) {
74
- return console.error("SQL generation error:", A(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
74
+ return console.error("SQL generation error:", j(n)), e.send(500, t(n instanceof Error ? n.message : "SQL generation failed", 500));
75
75
  }
76
76
  }
77
77
  async function u(e, t) {
78
78
  try {
79
- let n = await e.getBody(), r = await a(n?.query || n, await k(t, (t) => e.getHeader(t)), i);
79
+ let n = await e.getBody(), r = await a(n?.query || n, await A(t, (t) => e.getHeader(t)), i);
80
80
  return e.send(200, r);
81
81
  } catch (t) {
82
82
  return console.error("Dry-run error:", t), e.send(400, {
@@ -92,7 +92,7 @@ function j(i) {
92
92
  error: "Query parameter is required",
93
93
  valid: !1
94
94
  });
95
- let r = await a(JSON.parse(n), await k(t, (t) => e.getHeader(t)), i);
95
+ let r = await a(JSON.parse(n), await A(t, (t) => e.getHeader(t)), i);
96
96
  return e.send(200, r);
97
97
  } catch (t) {
98
98
  return console.error("Dry-run error:", t), e.send(400, {
@@ -106,7 +106,7 @@ function j(i) {
106
106
  let a = (await e.getBody())?.queries;
107
107
  if (!a || !Array.isArray(a)) return e.send(400, t("Request body must contain a \"queries\" array", 400));
108
108
  if (a.length === 0) return e.send(400, t("Queries array cannot be empty", 400));
109
- let o = await n(a, await k(r, (t) => e.getHeader(t)), i, { skipCache: e.getHeader("x-cache-control") === "no-cache" });
109
+ let o = await n(a, await A(r, (t) => e.getHeader(t)), i, { skipCache: e.getHeader("x-cache-control") === "no-cache" });
110
110
  return e.send(200, o);
111
111
  } catch (n) {
112
112
  return console.error("Batch execution error:", n), e.send(500, t(n instanceof Error ? n.message : "Batch execution failed", 500));
@@ -114,7 +114,7 @@ function j(i) {
114
114
  }
115
115
  async function p(e, t) {
116
116
  try {
117
- let n = await e.getBody(), r = n?.query || n, a = n?.options || {}, o = await k(t, (t) => e.getHeader(t)), s = i.validateQuery(r);
117
+ let n = await e.getBody(), r = n?.query || n, a = n?.options || {}, o = await A(t, (t) => e.getHeader(t)), s = i.validateQuery(r);
118
118
  if (!s.isValid) return e.send(400, { error: `Query validation failed: ${s.errors.join(", ")}` });
119
119
  let c = await i.explainQuery(r, o, a);
120
120
  return e.send(200, c);
@@ -134,78 +134,78 @@ function j(i) {
134
134
  }
135
135
  //#endregion
136
136
  //#region src/adapters/core/mcp-handler.ts
137
- function M(e, t) {
137
+ function N(e, t) {
138
138
  let n = e?.code ?? -32603, r = e?.data, i = e.message || "MCP request failed";
139
139
  return m(t ?? null, n, i, r);
140
140
  }
141
- function N(e, t) {
141
+ function P(e, t) {
142
142
  let n = !!t.app, r = typeof t.app == "object" ? t.app : void 0, i;
143
143
  function a() {
144
144
  return i ||= {
145
145
  resources: _(e, t.resources),
146
- prompts: S(t.prompts),
147
- instructions: b(t.instructions)
146
+ prompts: u(t.prompts),
147
+ instructions: C(t.instructions)
148
148
  }, i;
149
149
  }
150
- async function C(i, _) {
150
+ async function w(i, u) {
151
151
  if (t.resourceMetadataUrl && !y(i.getHeader("authorization"))) return i.setHeader("WWW-Authenticate", d(t.resourceMetadataUrl)), i.send(401, { error: "Bearer token required" });
152
- let b = s(i.getHeader("origin"), t.allowedOrigins ? { allowedOrigins: t.allowedOrigins } : {});
153
- if (!b.valid) return i.send(403, m(null, -32600, b.reason));
154
- let S = i.getHeader("accept");
155
- if (!x(S)) return i.send(400, m(null, -32600, "Accept header must include both application/json and text/event-stream"));
156
- let C = p({ "mcp-protocol-version": i.getHeader("mcp-protocol-version") });
157
- if (!C.ok) return i.send(426, {
152
+ let _ = o(i.getHeader("origin"), f(t));
153
+ if (!_.valid) return i.send(403, m(null, -32600, _.reason));
154
+ let C = i.getHeader("accept");
155
+ if (!s(C)) return i.send(400, m(null, -32600, "Accept header must include both application/json and text/event-stream"));
156
+ let w = p({ "mcp-protocol-version": i.getHeader("mcp-protocol-version") });
157
+ if (!w.ok) return i.send(426, {
158
158
  error: "Unsupported MCP protocol version",
159
- supported: C.supported
159
+ supported: w.supported
160
160
  });
161
- let w = f(await i.getBody());
162
- if (!w) return i.send(400, m(null, -32600, "Invalid JSON-RPC 2.0 request"));
163
- let T = o(S), E = w.method === "initialize", { resources: D, prompts: O, instructions: j } = a();
161
+ let T = c(await i.getBody());
162
+ if (!T) return i.send(400, m(null, -32600, "Invalid JSON-RPC 2.0 request"));
163
+ let E = x(C), D = T.method === "initialize", { resources: O, prompts: k, instructions: M } = a();
164
164
  try {
165
- let a = await h(w.method, w.params, {
165
+ let a = await h(T.method, T.params, {
166
166
  semanticLayer: e,
167
- extractSecurityContext: () => k(_, (e) => i.getHeader(e)),
167
+ extractSecurityContext: () => A(u, (e) => i.getHeader(e)),
168
168
  rawRequest: void 0,
169
169
  rawResponse: void 0,
170
- negotiatedProtocol: C.negotiated,
171
- resources: D,
172
- prompts: O,
173
- instructions: j,
170
+ negotiatedProtocol: w.negotiated,
171
+ resources: O,
172
+ prompts: k,
173
+ instructions: M,
174
174
  appEnabled: n,
175
175
  appConfig: r,
176
176
  serverName: t.serverName
177
177
  });
178
- if (g(w)) return i.sendEmpty(202);
179
- let o = E && a && typeof a == "object" && "sessionId" in a ? a.sessionId : void 0;
178
+ if (g(T)) return i.sendEmpty(202);
179
+ let o = D && a && typeof a == "object" && "sessionId" in a ? a.sessionId : void 0;
180
180
  o && i.setHeader(v, o);
181
- let s = l(w.id ?? null, a);
182
- if (T) {
183
- let e = c();
184
- return i.sendSse(200, `id: ${e}\n\n` + u(s, e));
181
+ let s = l(T.id ?? null, a);
182
+ if (E) {
183
+ let e = b();
184
+ return i.sendSse(200, `id: ${e}\n\n` + S(s, e));
185
185
  }
186
186
  return i.send(200, s);
187
187
  } catch (e) {
188
- if (g(w)) return console.error("MCP notification processing error:", A(e)), i.sendEmpty(202);
189
- console.error("MCP RPC error:", A(e));
190
- let t = M(e, w.id);
191
- if (T) {
192
- let e = c();
193
- return i.sendSse(200, `id: ${e}\n\n` + u(t, e));
188
+ if (g(T)) return console.error("MCP notification processing error:", j(e)), i.sendEmpty(202);
189
+ console.error("MCP RPC error:", j(e));
190
+ let t = N(e, T.id);
191
+ if (E) {
192
+ let e = b();
193
+ return i.sendSse(200, `id: ${e}\n\n` + S(t, e));
194
194
  }
195
195
  return i.send(200, t);
196
196
  }
197
197
  }
198
- return { handleMcpPost: C };
198
+ return { handleMcpPost: w };
199
199
  }
200
200
  //#endregion
201
201
  //#region src/adapters/core/cube-http-handler.ts
202
- function P(e) {
203
- let { semanticLayer: n, onError: r, mcp: a = {} } = e, o = j(n), { handleMcpPost: s } = N(n, a);
202
+ function F(e) {
203
+ let { semanticLayer: n, onError: r, mcp: a = {} } = e, o = M(n), { handleMcpPost: s } = P(n, a);
204
204
  function c(e, n) {
205
205
  return r(e), n.send(500, t(e instanceof Error ? e.message : "Query execution failed", 500));
206
206
  }
207
207
  async function l(e, r, a) {
208
- let o = await k(a, (e) => r.getHeader(e)), s = n.validateQuery(e);
208
+ let o = await A(a, (e) => r.getHeader(e)), s = n.validateQuery(e);
209
209
  if (!s.isValid) return r.send(400, t(`Query validation failed: ${s.errors.join(", ")}`, 400));
210
210
  let c = r.getHeader("x-cache-control") === "no-cache", l = await n.executeMultiCubeQuery(e, o, { skipCache: c });
211
211
  return r.send(200, i(e, l, n));
@@ -241,4 +241,4 @@ function P(e) {
241
241
  };
242
242
  }
243
243
  //#endregion
244
- export { T as a, D as i, k as n, E as o, O as r, P as t };
244
+ export { E as a, O as i, A as n, D as o, k as r, F as t };
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../compiler-DyyBaLry.cjs"),n=require("../mcp-transport-CNIPoe1i.cjs"),r=require("../core-F1pCQPde.cjs");let i=require("express");i=e.k(i,1);let a=require("cors");a=e.k(a,1);function o(e,t){return{getHeader:t=>e.get(t),getBody:async()=>e.body,getQueryParam:t=>e.query[t],send:(e,n)=>t.status(e).json(n),setHeader:(e,n)=>{t.setHeader(e,n)},sendEmpty:e=>t.status(e).end(),sendSse:(e,n)=>(t.status(e),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n),t.end())}}function s(s){let{cubes:c,drizzle:l,schema:u,extractSecurityContext:d,engineType:f,cors:p,basePath:m=`/cubejs-api/v1`,jsonLimit:h=`10mb`,cache:g,mcp:_={enabled:!0},agent:v}=s;if(!c||c.length===0)throw Error(`At least one cube must be provided in the cubes array`);let y=(0,i.Router)();if(p){let e={...p,allowedHeaders:r.i(p.allowedHeaders)};y.use((0,a.default)(e))}y.use(i.default.json({limit:h})),y.use(i.default.urlencoded({extended:!0,limit:h}));let b=new t.t({drizzle:l,schema:u,engineType:f,cache:g,rlsSetup:s.rlsSetup});c.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>console.error(`Query execution error:`,e),mcp:_}),S=(e,t)=>()=>d(e,t);if(y.post(`${m}/load`,async(e,t)=>{await x.handleLoadPost(o(e,t),S(e,t))}),y.get(`${m}/load`,async(e,t)=>{await x.handleLoadGet(o(e,t),S(e,t))}),y.post(`${m}/batch`,async(e,t)=>{await x.handleBatchPost(o(e,t),S(e,t))}),y.get(`${m}/meta`,(e,t)=>{x.handleMetaGet(o(e,t))}),y.post(`${m}/sql`,async(e,t)=>{await x.handleSqlPost(o(e,t),S(e,t))}),y.get(`${m}/sql`,async(e,t)=>{await x.handleSqlGet(o(e,t),S(e,t))}),y.post(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunPost(o(e,t),S(e,t))}),y.get(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunGet(o(e,t),S(e,t))}),y.post(`${m}/explain`,async(e,t)=>{await x.handleExplainPost(o(e,t),S(e,t))}),v&&y.post(`${m}/agent/chat`,async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DRZb2ip6.cjs")),{message:i,sessionId:a,history:o}=e.body;if(!i||typeof i!=`string`)return t.status(400).json({error:`message is required and must be a string`});let s=(v.apiKey||``).trim();if(v.allowClientApiKey){let t=e.headers[`x-agent-api-key`];t&&(s=t.trim())}if(!s)return t.status(401).json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let c=v.allowClientApiKey?e.headers[`x-agent-provider`]:void 0,l=v.allowClientApiKey?e.headers[`x-agent-model`]:void 0,u=v.allowClientApiKey?e.headers[`x-agent-provider-endpoint`]:void 0,f=r.r(await d(e,t),t=>e.get(t)),p=v.buildSystemContext?.(f);t.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:i,sessionId:a,history:o,semanticLayer:b,securityContext:f,agentConfig:v,apiKey:s,systemContext:p,providerOverride:c,modelOverride:l,baseURLOverride:u});for await(let n of e)t.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.end()}}catch(e){console.error(`Agent chat error:`,e),t.headersSent||t.status(500).json({error:e instanceof Error?e.message:`Agent chat failed`})}}),_.enabled!==!1){let e=_.basePath??`/mcp`;y.post(`${e}`,async(e,t)=>{await x.handleMcpPost(o(e,t),S(e,t))}),y.get(`${e}`,async(e,t)=>{if(_.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`});let r=n._();t.status(200),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3));let i=setInterval(()=>{t.write(`: keep-alive
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-CBR-9AMD.cjs"),t=require("../compiler-D0v5KJhv.cjs"),n=require("../mcp-transport-BuU5CrKL.cjs"),r=require("../core-CVqTwOR3.cjs");let i=require("express");i=e.k(i,1);let a=require("cors");a=e.k(a,1);function o(e,t){return{getHeader:t=>e.get(t),getBody:async()=>e.body,getQueryParam:t=>e.query[t],send:(e,n)=>t.status(e).json(n),setHeader:(e,n)=>{t.setHeader(e,n)},sendEmpty:e=>t.status(e).end(),sendSse:(e,n)=>(t.status(e),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n),t.end())}}function s(s){let{cubes:c,drizzle:l,schema:u,extractSecurityContext:d,engineType:f,cors:p,basePath:m=`/cubejs-api/v1`,jsonLimit:h=`10mb`,cache:g,mcp:_={enabled:!0},agent:v}=s;if(!c||c.length===0)throw Error(`At least one cube must be provided in the cubes array`);let y=(0,i.Router)();if(p){let e={...p,allowedHeaders:r.i(p.allowedHeaders)};y.use((0,a.default)(e))}y.use(i.default.json({limit:h})),y.use(i.default.urlencoded({extended:!0,limit:h}));let b=new t.t({drizzle:l,schema:u,engineType:f,cache:g,rlsSetup:s.rlsSetup});c.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>console.error(`Query execution error:`,e),mcp:_}),S=(e,t)=>()=>d(e,t);if(y.post(`${m}/load`,async(e,t)=>{await x.handleLoadPost(o(e,t),S(e,t))}),y.get(`${m}/load`,async(e,t)=>{await x.handleLoadGet(o(e,t),S(e,t))}),y.post(`${m}/batch`,async(e,t)=>{await x.handleBatchPost(o(e,t),S(e,t))}),y.get(`${m}/meta`,(e,t)=>{x.handleMetaGet(o(e,t))}),y.post(`${m}/sql`,async(e,t)=>{await x.handleSqlPost(o(e,t),S(e,t))}),y.get(`${m}/sql`,async(e,t)=>{await x.handleSqlGet(o(e,t),S(e,t))}),y.post(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunPost(o(e,t),S(e,t))}),y.get(`${m}/dry-run`,async(e,t)=>{await x.handleDryRunGet(o(e,t),S(e,t))}),y.post(`${m}/explain`,async(e,t)=>{await x.handleExplainPost(o(e,t),S(e,t))}),v&&y.post(`${m}/agent/chat`,async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DyIyrFFp.cjs")),{message:i,sessionId:a,history:o}=e.body;if(!i||typeof i!=`string`)return t.status(400).json({error:`message is required and must be a string`});let s=(v.apiKey||``).trim();if(v.allowClientApiKey){let t=e.headers[`x-agent-api-key`];t&&(s=t.trim())}if(!s)return t.status(401).json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let c=v.allowClientApiKey?e.headers[`x-agent-provider`]:void 0,l=v.allowClientApiKey?e.headers[`x-agent-model`]:void 0,u=v.allowClientApiKey?e.headers[`x-agent-provider-endpoint`]:void 0,f=r.r(await d(e,t),t=>e.get(t)),p=v.buildSystemContext?.(f);t.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:i,sessionId:a,history:o,semanticLayer:b,securityContext:f,agentConfig:v,apiKey:s,systemContext:p,providerOverride:c,modelOverride:l,baseURLOverride:u});for await(let n of e)t.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.end()}}catch(e){console.error(`Agent chat error:`,e),t.headersSent||t.status(500).json({error:e instanceof Error?e.message:`Agent chat failed`})}}),_.enabled!==!1){let e=_.basePath??`/mcp`;y.post(`${e}`,async(e,t)=>{await x.handleMcpPost(o(e,t),S(e,t))}),y.get(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(_));if(!r.valid)return t.status(403).json({error:r.reason});if(_.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`});let i=n.v();t.status(200),t.setHeader(`Content-Type`,`text/event-stream`),t.setHeader(`Cache-Control`,`no-cache`),t.setHeader(`Connection`,`keep-alive`),t.write(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},i,15e3));let a=setInterval(()=>{t.write(`: keep-alive
2
2
 
3
- `)},15e3);e.on(`close`,()=>{clearInterval(i)})}),y.delete(`${e}`,(e,t)=>_.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`})):t.status(405).json({error:`Session termination not supported`}))}return y.use((t,n,r,i)=>{console.error(`Express adapter error:`,t),r.headersSent||r.status(500).json(e.i(t,500))}),y}function c(e,t){let n=s(t);return e.use(`/`,n),e}function l(e){return c((0,i.default)(),e)}exports.createCubeApp=l,exports.createCubeRouter=s,exports.mountCubeRoutes=c;
3
+ `)},15e3);e.on(`close`,()=>{clearInterval(a)})}),y.delete(`${e}`,(e,t)=>{let r=n.C(e.headers.origin,n.g(_));return r.valid?_.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.setHeader(`WWW-Authenticate`,n.c(_.resourceMetadataUrl)),t.status(401).json({error:`Bearer token required`})):t.status(405).json({error:`Session termination not supported`}):t.status(403).json({error:r.reason})})}return y.use((t,n,r,i)=>{console.error(`Express adapter error:`,t),r.headersSent||r.status(500).json(e.i(t,500))}),y}function c(e,t){let n=s(t);return e.use(`/`,n),e}function l(e){return c((0,i.default)(),e)}exports.createCubeApp=l,exports.createCubeRouter=s,exports.mountCubeRoutes=c;
@@ -1,11 +1,11 @@
1
- import { i as e } from "../utils-BPWZsX7k.js";
2
- import { t } from "../compiler-lG6eNsoI.js";
3
- import { _ as n, b as r, c as i, u as a } from "../mcp-transport-Bw_zqky2.js";
4
- import { i as o, r as s, t as c } from "../core-Bbchr0ui.js";
5
- import l, { Router as u } from "express";
6
- import d from "cors";
1
+ import { i as e } from "../utils-U7gV5wQL.js";
2
+ import { t } from "../compiler-ZruQ85ff.js";
3
+ import { C as n, c as r, g as i, u as a, v as o, x as s } from "../mcp-transport-l8DhKzR5.js";
4
+ import { i as c, r as l, t as u } from "../core-DoSUiMmv.js";
5
+ import d, { Router as f } from "express";
6
+ import p from "cors";
7
7
  //#region src/adapters/express/index.ts
8
- function f(e, t) {
8
+ function m(e, t) {
9
9
  return {
10
10
  getHeader: (t) => e.get(t),
11
11
  getBody: async () => e.body,
@@ -18,65 +18,65 @@ function f(e, t) {
18
18
  sendSse: (e, n) => (t.status(e), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(n), t.end())
19
19
  };
20
20
  }
21
- function p(p) {
22
- let { cubes: m, drizzle: h, schema: g, extractSecurityContext: _, engineType: v, cors: y, basePath: b = "/cubejs-api/v1", jsonLimit: x = "10mb", cache: S, mcp: C = { enabled: !0 }, agent: w } = p;
23
- if (!m || m.length === 0) throw Error("At least one cube must be provided in the cubes array");
24
- let T = u();
25
- if (y) {
21
+ function h(h) {
22
+ let { cubes: g, drizzle: _, schema: v, extractSecurityContext: y, engineType: b, cors: x, basePath: S = "/cubejs-api/v1", jsonLimit: C = "10mb", cache: w, mcp: T = { enabled: !0 }, agent: E } = h;
23
+ if (!g || g.length === 0) throw Error("At least one cube must be provided in the cubes array");
24
+ let D = f();
25
+ if (x) {
26
26
  let e = {
27
- ...y,
28
- allowedHeaders: o(y.allowedHeaders)
27
+ ...x,
28
+ allowedHeaders: c(x.allowedHeaders)
29
29
  };
30
- T.use(d(e));
30
+ D.use(p(e));
31
31
  }
32
- T.use(l.json({ limit: x })), T.use(l.urlencoded({
32
+ D.use(d.json({ limit: C })), D.use(d.urlencoded({
33
33
  extended: !0,
34
- limit: x
34
+ limit: C
35
35
  }));
36
- let E = new t({
37
- drizzle: h,
38
- schema: g,
39
- engineType: v,
40
- cache: S,
41
- rlsSetup: p.rlsSetup
36
+ let O = new t({
37
+ drizzle: _,
38
+ schema: v,
39
+ engineType: b,
40
+ cache: w,
41
+ rlsSetup: h.rlsSetup
42
42
  });
43
- m.forEach((e) => {
44
- E.registerCube(e);
43
+ g.forEach((e) => {
44
+ O.registerCube(e);
45
45
  });
46
- let D = c({
47
- semanticLayer: E,
46
+ let k = u({
47
+ semanticLayer: O,
48
48
  onError: (e) => console.error("Query execution error:", e),
49
- mcp: C
50
- }), O = (e, t) => () => _(e, t);
51
- if (T.post(`${b}/load`, async (e, t) => {
52
- await D.handleLoadPost(f(e, t), O(e, t));
53
- }), T.get(`${b}/load`, async (e, t) => {
54
- await D.handleLoadGet(f(e, t), O(e, t));
55
- }), T.post(`${b}/batch`, async (e, t) => {
56
- await D.handleBatchPost(f(e, t), O(e, t));
57
- }), T.get(`${b}/meta`, (e, t) => {
58
- D.handleMetaGet(f(e, t));
59
- }), T.post(`${b}/sql`, async (e, t) => {
60
- await D.handleSqlPost(f(e, t), O(e, t));
61
- }), T.get(`${b}/sql`, async (e, t) => {
62
- await D.handleSqlGet(f(e, t), O(e, t));
63
- }), T.post(`${b}/dry-run`, async (e, t) => {
64
- await D.handleDryRunPost(f(e, t), O(e, t));
65
- }), T.get(`${b}/dry-run`, async (e, t) => {
66
- await D.handleDryRunGet(f(e, t), O(e, t));
67
- }), T.post(`${b}/explain`, async (e, t) => {
68
- await D.handleExplainPost(f(e, t), O(e, t));
69
- }), w && T.post(`${b}/agent/chat`, async (e, t) => {
49
+ mcp: T
50
+ }), A = (e, t) => () => y(e, t);
51
+ if (D.post(`${S}/load`, async (e, t) => {
52
+ await k.handleLoadPost(m(e, t), A(e, t));
53
+ }), D.get(`${S}/load`, async (e, t) => {
54
+ await k.handleLoadGet(m(e, t), A(e, t));
55
+ }), D.post(`${S}/batch`, async (e, t) => {
56
+ await k.handleBatchPost(m(e, t), A(e, t));
57
+ }), D.get(`${S}/meta`, (e, t) => {
58
+ k.handleMetaGet(m(e, t));
59
+ }), D.post(`${S}/sql`, async (e, t) => {
60
+ await k.handleSqlPost(m(e, t), A(e, t));
61
+ }), D.get(`${S}/sql`, async (e, t) => {
62
+ await k.handleSqlGet(m(e, t), A(e, t));
63
+ }), D.post(`${S}/dry-run`, async (e, t) => {
64
+ await k.handleDryRunPost(m(e, t), A(e, t));
65
+ }), D.get(`${S}/dry-run`, async (e, t) => {
66
+ await k.handleDryRunGet(m(e, t), A(e, t));
67
+ }), D.post(`${S}/explain`, async (e, t) => {
68
+ await k.handleExplainPost(m(e, t), A(e, t));
69
+ }), E && D.post(`${S}/agent/chat`, async (e, t) => {
70
70
  try {
71
- let { handleAgentChat: n } = await import("../handler-u8FyzPBT.js"), { message: r, sessionId: i, history: a } = e.body;
71
+ let { handleAgentChat: n } = await import("../handler-j74EJDdo.js"), { message: r, sessionId: i, history: a } = e.body;
72
72
  if (!r || typeof r != "string") return t.status(400).json({ error: "message is required and must be a string" });
73
- let o = (w.apiKey || "").trim();
74
- if (w.allowClientApiKey) {
73
+ let o = (E.apiKey || "").trim();
74
+ if (E.allowClientApiKey) {
75
75
  let t = e.headers["x-agent-api-key"];
76
76
  t && (o = t.trim());
77
77
  }
78
78
  if (!o) return t.status(401).json({ error: "No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header." });
79
- let c = w.allowClientApiKey ? e.headers["x-agent-provider"] : void 0, l = w.allowClientApiKey ? e.headers["x-agent-model"] : void 0, u = w.allowClientApiKey ? e.headers["x-agent-provider-endpoint"] : void 0, d = s(await _(e, t), (t) => e.get(t)), f = w.buildSystemContext?.(d);
79
+ let s = E.allowClientApiKey ? e.headers["x-agent-provider"] : void 0, c = E.allowClientApiKey ? e.headers["x-agent-model"] : void 0, u = E.allowClientApiKey ? e.headers["x-agent-provider-endpoint"] : void 0, d = l(await y(e, t), (t) => e.get(t)), f = E.buildSystemContext?.(d);
80
80
  t.writeHead(200, {
81
81
  "Content-Type": "text/event-stream",
82
82
  "Cache-Control": "no-cache",
@@ -87,13 +87,13 @@ function p(p) {
87
87
  message: r,
88
88
  sessionId: i,
89
89
  history: a,
90
- semanticLayer: E,
90
+ semanticLayer: O,
91
91
  securityContext: d,
92
- agentConfig: w,
92
+ agentConfig: E,
93
93
  apiKey: o,
94
94
  systemContext: f,
95
- providerOverride: c,
96
- modelOverride: l,
95
+ providerOverride: s,
96
+ modelOverride: c,
97
97
  baseURLOverride: u
98
98
  });
99
99
  for await (let n of e) t.write(`data: ${JSON.stringify(n)}\n\n`);
@@ -109,36 +109,41 @@ function p(p) {
109
109
  } catch (e) {
110
110
  console.error("Agent chat error:", e), t.headersSent || t.status(500).json({ error: e instanceof Error ? e.message : "Agent chat failed" });
111
111
  }
112
- }), C.enabled !== !1) {
113
- let e = C.basePath ?? "/mcp";
114
- T.post(`${e}`, async (e, t) => {
115
- await D.handleMcpPost(f(e, t), O(e, t));
116
- }), T.get(`${e}`, async (e, t) => {
117
- if (C.resourceMetadataUrl && !a(e.headers.authorization)) return t.setHeader("WWW-Authenticate", i(C.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" });
118
- let o = n();
119
- t.status(200), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(r({
112
+ }), T.enabled !== !1) {
113
+ let e = T.basePath ?? "/mcp";
114
+ D.post(`${e}`, async (e, t) => {
115
+ await k.handleMcpPost(m(e, t), A(e, t));
116
+ }), D.get(`${e}`, async (e, t) => {
117
+ let c = n(e.headers.origin, i(T));
118
+ if (!c.valid) return t.status(403).json({ error: c.reason });
119
+ if (T.resourceMetadataUrl && !a(e.headers.authorization)) return t.setHeader("WWW-Authenticate", r(T.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" });
120
+ let l = o();
121
+ t.status(200), t.setHeader("Content-Type", "text/event-stream"), t.setHeader("Cache-Control", "no-cache"), t.setHeader("Connection", "keep-alive"), t.write(s({
120
122
  jsonrpc: "2.0",
121
123
  method: "mcp/ready",
122
124
  params: { protocol: "streamable-http" }
123
- }, o, 15e3));
124
- let s = setInterval(() => {
125
+ }, l, 15e3));
126
+ let u = setInterval(() => {
125
127
  t.write(": keep-alive\n\n");
126
128
  }, 15e3);
127
129
  e.on("close", () => {
128
- clearInterval(s);
130
+ clearInterval(u);
129
131
  });
130
- }), T.delete(`${e}`, (e, t) => C.resourceMetadataUrl && !a(e.headers.authorization) ? (t.setHeader("WWW-Authenticate", i(C.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" })) : t.status(405).json({ error: "Session termination not supported" }));
132
+ }), D.delete(`${e}`, (e, t) => {
133
+ let o = n(e.headers.origin, i(T));
134
+ return o.valid ? T.resourceMetadataUrl && !a(e.headers.authorization) ? (t.setHeader("WWW-Authenticate", r(T.resourceMetadataUrl)), t.status(401).json({ error: "Bearer token required" })) : t.status(405).json({ error: "Session termination not supported" }) : t.status(403).json({ error: o.reason });
135
+ });
131
136
  }
132
- return T.use((t, n, r, i) => {
137
+ return D.use((t, n, r, i) => {
133
138
  console.error("Express adapter error:", t), r.headersSent || r.status(500).json(e(t, 500));
134
- }), T;
139
+ }), D;
135
140
  }
136
- function m(e, t) {
137
- let n = p(t);
141
+ function g(e, t) {
142
+ let n = h(t);
138
143
  return e.use("/", n), e;
139
144
  }
140
- function h(e) {
141
- return m(l(), e);
145
+ function _(e) {
146
+ return g(d(), e);
142
147
  }
143
148
  //#endregion
144
- export { h as createCubeApp, p as createCubeRouter, m as mountCubeRoutes };
149
+ export { _ as createCubeApp, h as createCubeRouter, g as mountCubeRoutes };
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-_whV4fXL.cjs"),t=require("../compiler-DyyBaLry.cjs"),n=require("../mcp-transport-CNIPoe1i.cjs"),r=require("../core-F1pCQPde.cjs");function i(e,t){let n=e.headers[t.toLowerCase()];return Array.isArray(n)?n[0]:n}function a(e,t){return{getHeader:t=>i(e,t),getBody:async()=>e.body,getQueryParam:t=>e.query?.[t],send:(e,n)=>t.status(e).send(n),setHeader:(e,n)=>{t.header(e,n)},sendEmpty:e=>t.status(e).send(),sendSse:(e,n)=>(t.header(`Content-Type`,`text/event-stream`),t.header(`Cache-Control`,`no-cache`),t.header(`Connection`,`keep-alive`),t.status(e).send(n))}}var o=function(o,s,c){let{cubes:l,drizzle:u,schema:d,extractSecurityContext:f,engineType:p,cors:m,basePath:h=`/cubejs-api/v1`,bodyLimit:g=10485760,cache:_,mcp:v={enabled:!0},agent:y}=s;if(!l||l.length===0)return c(Error(`At least one cube must be provided in the cubes array`));if(m){let e={...m,allowedHeaders:r.i(m.allowedHeaders)};o.register(import(`@fastify/cors`),e)}o.addHook(`onRequest`,async(e,t)=>{e.method===`POST`&&(e.body=void 0)});let b=new t.t({drizzle:u,schema:d,engineType:p,cache:_,rlsSetup:s.rlsSetup});l.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>o.log.error(e,`Query execution error`),mcp:v}),S=e=>()=>f(e),C={bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},w={schema:{querystring:{type:`object`,properties:{query:{type:`string`}},required:[`query`]}}};if(o.post(`${h}/load`,C,(e,t)=>x.handleLoadPost(a(e,t),S(e))),o.get(`${h}/load`,w,(e,t)=>x.handleLoadGet(a(e,t),S(e))),o.post(`${h}/batch`,{bodyLimit:g,schema:{body:{type:`object`,required:[`queries`],properties:{queries:{type:`array`,items:{type:`object`}}}}}},(e,t)=>x.handleBatchPost(a(e,t),S(e))),o.get(`${h}/meta`,(e,t)=>x.handleMetaGet(a(e,t))),o.post(`${h}/sql`,C,(e,t)=>x.handleSqlPost(a(e,t),S(e))),o.get(`${h}/sql`,w,(e,t)=>x.handleSqlGet(a(e,t),S(e))),o.post(`${h}/dry-run`,C,(e,t)=>x.handleDryRunPost(a(e,t),S(e))),o.get(`${h}/dry-run`,w,(e,t)=>x.handleDryRunGet(a(e,t),S(e))),o.post(`${h}/explain`,C,(e,t)=>x.handleExplainPost(a(e,t),S(e))),y&&o.post(`${h}/agent/chat`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DRZb2ip6.cjs")),{message:a,sessionId:o,history:s}=e.body;if(!a||typeof a!=`string`)return t.status(400).send({error:`message is required and must be a string`});let c=(y.apiKey||``).trim();if(y.allowClientApiKey){let t=i(e,`x-agent-api-key`);t&&(c=t.trim())}if(!c)return t.status(401).send({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let l=y.allowClientApiKey?i(e,`x-agent-provider`):void 0,u=y.allowClientApiKey?i(e,`x-agent-model`):void 0,d=y.allowClientApiKey?i(e,`x-agent-provider-endpoint`):void 0,p=r.r(await f(e),t=>i(e,t)),m=y.buildSystemContext?.(p);t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:a,sessionId:o,history:s,semanticLayer:b,securityContext:p,agentConfig:y,apiKey:c,systemContext:m,providerOverride:l,modelOverride:u,baseURLOverride:d});for await(let n of e)t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.raw.end()}}catch(n){if(e.log.error(n,`Agent chat error`),!t.raw.headersSent)return t.status(500).send({error:n instanceof Error?n.message:`Agent chat failed`})}}),v.enabled!==!1){let e=v.basePath??`/mcp`;o.post(`${e}`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},(e,t)=>x.handleMcpPost(a(e,t),S(e))),o.get(`${e}`,async(e,t)=>{if(v.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`});let r=n._();t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}),t.raw.write(n.b({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},r,15e3));let i=setInterval(()=>{t.raw.write(`: keep-alive
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-CBR-9AMD.cjs"),t=require("../compiler-D0v5KJhv.cjs"),n=require("../mcp-transport-BuU5CrKL.cjs"),r=require("../core-CVqTwOR3.cjs");function i(e,t){let n=e.headers[t.toLowerCase()];return Array.isArray(n)?n[0]:n}function a(e,t){return{getHeader:t=>i(e,t),getBody:async()=>e.body,getQueryParam:t=>e.query?.[t],send:(e,n)=>t.status(e).send(n),setHeader:(e,n)=>{t.header(e,n)},sendEmpty:e=>t.status(e).send(),sendSse:(e,n)=>(t.header(`Content-Type`,`text/event-stream`),t.header(`Cache-Control`,`no-cache`),t.header(`Connection`,`keep-alive`),t.status(e).send(n))}}var o=function(o,s,c){let{cubes:l,drizzle:u,schema:d,extractSecurityContext:f,engineType:p,cors:m,basePath:h=`/cubejs-api/v1`,bodyLimit:g=10485760,cache:_,mcp:v={enabled:!0},agent:y}=s;if(!l||l.length===0)return c(Error(`At least one cube must be provided in the cubes array`));if(m){let e={...m,allowedHeaders:r.i(m.allowedHeaders)};o.register(import(`@fastify/cors`),e)}o.addHook(`onRequest`,async(e,t)=>{e.method===`POST`&&(e.body=void 0)});let b=new t.t({drizzle:u,schema:d,engineType:p,cache:_,rlsSetup:s.rlsSetup});l.forEach(e=>{b.registerCube(e)});let x=r.t({semanticLayer:b,onError:e=>o.log.error(e,`Query execution error`),mcp:v}),S=e=>()=>f(e),C={bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},w={schema:{querystring:{type:`object`,properties:{query:{type:`string`}},required:[`query`]}}};if(o.post(`${h}/load`,C,(e,t)=>x.handleLoadPost(a(e,t),S(e))),o.get(`${h}/load`,w,(e,t)=>x.handleLoadGet(a(e,t),S(e))),o.post(`${h}/batch`,{bodyLimit:g,schema:{body:{type:`object`,required:[`queries`],properties:{queries:{type:`array`,items:{type:`object`}}}}}},(e,t)=>x.handleBatchPost(a(e,t),S(e))),o.get(`${h}/meta`,(e,t)=>x.handleMetaGet(a(e,t))),o.post(`${h}/sql`,C,(e,t)=>x.handleSqlPost(a(e,t),S(e))),o.get(`${h}/sql`,w,(e,t)=>x.handleSqlGet(a(e,t),S(e))),o.post(`${h}/dry-run`,C,(e,t)=>x.handleDryRunPost(a(e,t),S(e))),o.get(`${h}/dry-run`,w,(e,t)=>x.handleDryRunGet(a(e,t),S(e))),o.post(`${h}/explain`,C,(e,t)=>x.handleExplainPost(a(e,t),S(e))),y&&o.post(`${h}/agent/chat`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},async(e,t)=>{try{let{handleAgentChat:n}=await Promise.resolve().then(()=>require("../handler-DyIyrFFp.cjs")),{message:a,sessionId:o,history:s}=e.body;if(!a||typeof a!=`string`)return t.status(400).send({error:`message is required and must be a string`});let c=(y.apiKey||``).trim();if(y.allowClientApiKey){let t=i(e,`x-agent-api-key`);t&&(c=t.trim())}if(!c)return t.status(401).send({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`});let l=y.allowClientApiKey?i(e,`x-agent-provider`):void 0,u=y.allowClientApiKey?i(e,`x-agent-model`):void 0,d=y.allowClientApiKey?i(e,`x-agent-provider-endpoint`):void 0,p=r.r(await f(e),t=>i(e,t)),m=y.buildSystemContext?.(p);t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});try{let e=n({message:a,sessionId:o,history:s,semanticLayer:b,securityContext:p,agentConfig:y,apiKey:c,systemContext:m,providerOverride:l,modelOverride:u,baseURLOverride:d});for await(let n of e)t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}catch(e){let n={type:`error`,data:{message:e instanceof Error?e.message:`Stream failed`}};t.raw.write(`data: ${JSON.stringify(n)}\n\n`)}finally{t.raw.end()}}catch(n){if(e.log.error(n,`Agent chat error`),!t.raw.headersSent)return t.status(500).send({error:n instanceof Error?n.message:`Agent chat failed`})}}),v.enabled!==!1){let e=v.basePath??`/mcp`;o.post(`${e}`,{bodyLimit:g,schema:{body:{type:`object`,additionalProperties:!0}}},(e,t)=>x.handleMcpPost(a(e,t),S(e))),o.get(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(v));if(!r.valid)return t.status(403).send({error:r.reason});if(v.resourceMetadataUrl&&!n.u(e.headers.authorization))return t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`});let i=n.v();t.raw.writeHead(200,{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`}),t.raw.write(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},i,15e3));let a=setInterval(()=>{t.raw.write(`: keep-alive
2
2
 
3
- `)},15e3);e.raw.on(`close`,()=>{clearInterval(i)})}),o.delete(`${e}`,async(e,t)=>v.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`})):t.status(405).send({error:`Session termination not supported`}))}o.setErrorHandler(async(t,n,r)=>(n.log.error(t,`Fastify cube adapter error`),r.statusCode<400&&r.status(500),e.i(t instanceof Error?t:String(t),r.statusCode))),c()};async function s(e,t){await e.register(o,t)}function c(e){let t=require("fastify")({logger:!0});return t.register(o,e),t}exports.createCubeApp=c,exports.cubePlugin=o,exports.registerCubeRoutes=s;
3
+ `)},15e3);e.raw.on(`close`,()=>{clearInterval(a)})}),o.delete(`${e}`,async(e,t)=>{let r=n.C(e.headers.origin,n.g(v));return r.valid?v.resourceMetadataUrl&&!n.u(e.headers.authorization)?(t.header(`WWW-Authenticate`,n.c(v.resourceMetadataUrl)),t.status(401).send({error:`Bearer token required`})):t.status(405).send({error:`Session termination not supported`}):t.status(403).send({error:r.reason})})}o.setErrorHandler(async(t,n,r)=>(n.log.error(t,`Fastify cube adapter error`),r.statusCode<400&&r.status(500),e.i(t instanceof Error?t:String(t),r.statusCode))),c()};async function s(e,t){await e.register(o,t)}function c(e){let t=require("fastify")({logger:!0});return t.register(o,e),t}exports.createCubeApp=c,exports.cubePlugin=o,exports.registerCubeRoutes=s;