drizzle-cube 0.9.4 → 0.9.6

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 (257) hide show
  1. package/dist/adapters/ActivityGridChart.config-BgAUfqKS.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-CGsjbfYL.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-Bmj24k3G.cjs +1 -0
  4. package/dist/adapters/AreaChart.config-DqJvquc-.js +2 -0
  5. package/dist/adapters/BarChart.config-CzGxsUq-.js +2 -0
  6. package/dist/adapters/BarChart.config-D1uQGV6T.cjs +1 -0
  7. package/dist/adapters/BoxPlotChart.config-I0S4-aNF.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-wfS4FxGI.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-BDSknEkc.js +2 -0
  10. package/dist/adapters/BubbleChart.config-CByvW3Rq.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-08gqS1xj.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-Bkr9bdwM.js +2 -0
  13. package/dist/adapters/DataTable.config-BFP6xnMc.cjs +1 -0
  14. package/dist/adapters/DataTable.config-DHYD7PA8.js +2 -0
  15. package/dist/adapters/DotStripChart.config-DRQybZZu.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-Sp0fOxfM.js +2 -0
  17. package/dist/adapters/FunnelChart.config-ByARozX6.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-DhCqap3P.js +2 -0
  19. package/dist/adapters/GaugeChart.config-CfRicB1o.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-PTQ85WM5.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-0tmGHwm2.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-Devz5A5U.js +2 -0
  23. package/dist/adapters/KpiDelta.config-CGTdddOM.js +2 -0
  24. package/dist/adapters/KpiDelta.config-CjWmwXjk.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-Cd4jw22d.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-D3Et71Zn.js +2 -0
  27. package/dist/adapters/KpiText.config-B9VATPy2.js +2 -0
  28. package/dist/adapters/KpiText.config-B_dkrdHj.cjs +1 -0
  29. package/dist/adapters/LineChart.config-C3p-mc15.cjs +1 -0
  30. package/dist/adapters/LineChart.config-DXWLMWjn.js +2 -0
  31. package/dist/adapters/MarkdownChart.config-BQGmd6Iz.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-CQFu4297.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-CXLeprVS.js +2 -0
  34. package/dist/adapters/MeasureProfileChart.config-KpfD016N.cjs +1 -0
  35. package/dist/adapters/PieChart.config-j-syrhBx.js +2 -0
  36. package/dist/adapters/PieChart.config-zzBPh0tx.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-BD9bf-LZ.js +2 -0
  38. package/dist/adapters/ProportionBarChart.config-CBLcLV4Z.cjs +1 -0
  39. package/dist/adapters/RadarChart.config-CW9f_VxU.cjs +1 -0
  40. package/dist/adapters/RadarChart.config-yKvcZ49V.js +2 -0
  41. package/dist/adapters/RadialBarChart.config-DwQYejI6.cjs +1 -0
  42. package/dist/adapters/RadialBarChart.config-xK4AyoOF.js +2 -0
  43. package/dist/adapters/RecordsTable.config-CquV7Wi0.js +2 -0
  44. package/dist/adapters/RecordsTable.config-DzrQXBvh.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-BYAFkFb-.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-Ddmb-WwM.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-CSHXD736.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-DODcy3gK.js +2 -0
  49. package/dist/adapters/SankeyChart.config-B56o6GFu.js +2 -0
  50. package/dist/adapters/SankeyChart.config-DLnhr2k_.cjs +1 -0
  51. package/dist/adapters/ScatterChart.config-CrIFaC-s.js +2 -0
  52. package/dist/adapters/ScatterChart.config-Dfj1_af-.cjs +1 -0
  53. package/dist/adapters/SunburstChart.config-CuLsLj6v.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-CvuVUfkp.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-CvbDr1Ic.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-Dqjhe8Xk.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-DXFeGg7P.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-MLHPNE5q.js +2 -0
  59. package/dist/adapters/{compiler-CJVo3oya.cjs → compiler-C5OSdfwn.cjs} +2 -2
  60. package/dist/adapters/{compiler-DYAP3l3U.js → compiler-CpvetSCm.js} +2 -2
  61. package/dist/adapters/core/index.cjs +1 -1
  62. package/dist/adapters/core/index.js +1 -1
  63. package/dist/adapters/{core-B05onvSN.js → core-BH_56XtM.js} +2 -2
  64. package/dist/adapters/{core-BkxueWec.cjs → core-CydD6oFu.cjs} +1 -1
  65. package/dist/adapters/express/index.cjs +1 -1
  66. package/dist/adapters/express/index.js +5 -5
  67. package/dist/adapters/fastify/index.cjs +1 -1
  68. package/dist/adapters/fastify/index.js +5 -5
  69. package/dist/adapters/{handler-BM5qe8yt.js → handler-CtcALGcY.js} +32 -32
  70. package/dist/adapters/{handler-DXfEc3Gg.cjs → handler-Dp8fpSpk.cjs} +3 -3
  71. package/dist/adapters/hono/index.cjs +1 -1
  72. package/dist/adapters/hono/index.js +4 -4
  73. package/dist/adapters/mcp-app-html-C8vG9epH.js +5 -0
  74. package/dist/adapters/mcp-app-html-DRWnkcx4.cjs +1 -0
  75. package/dist/adapters/mcp-app-html.cjs +1 -1
  76. package/dist/adapters/mcp-app-html.js +1 -1
  77. package/dist/adapters/mcp-tools.cjs +1 -1
  78. package/dist/adapters/mcp-tools.js +3 -3
  79. package/dist/adapters/{mcp-transport-BH5avoaA.js → mcp-transport-DDxjqyuK.js} +1 -1
  80. package/dist/adapters/{mcp-transport-DXgZ-xcU.cjs → mcp-transport-QGYYYSgR.cjs} +1 -1
  81. package/dist/adapters/nextjs/index.cjs +1 -1
  82. package/dist/adapters/nextjs/index.js +5 -5
  83. package/dist/adapters/{openai-4uH2LLR4.cjs → openai-Cm4JcLuF.cjs} +1 -1
  84. package/dist/adapters/openai-CwKv0DD-.cjs +19 -0
  85. package/dist/adapters/{openai-CjhgJRPV.js → openai-DH5InEPj.js} +3314 -2511
  86. package/dist/adapters/{openai-xpb8URhX.js → openai-pCkHdDh4.js} +1 -1
  87. package/dist/adapters/{utils-iMkgJr10.cjs → utils-BFGzuSlF.cjs} +10 -10
  88. package/dist/adapters/{utils-dyUxCOWT.js → utils-C_Mc0qsk.js} +1259 -1279
  89. package/dist/adapters/utils.cjs +1 -1
  90. package/dist/adapters/utils.js +1 -1
  91. package/dist/cjs/client/hooks/queries/useExplainAI.d.ts +3 -2
  92. package/dist/cjs/client/types.d.ts +7 -0
  93. package/dist/client/charts.js +12 -12
  94. package/dist/client/chunks/{DashboardEditModal-DyweH8_q.js → DashboardEditModal-USQFytJw.js} +905 -848
  95. package/dist/client/chunks/DashboardEditModal-USQFytJw.js.map +1 -0
  96. package/dist/client/chunks/{DotStripChart-BGpjqpNU.js → DotStripChart-CjSsunHE.js} +3 -3
  97. package/dist/client/chunks/{DotStripChart-BGpjqpNU.js.map → DotStripChart-CjSsunHE.js.map} +1 -1
  98. package/dist/client/chunks/{ProportionBarChart-DuC16TT0.js → ProportionBarChart-B8UyZBO_.js} +3 -3
  99. package/dist/client/chunks/{ProportionBarChart-DuC16TT0.js.map → ProportionBarChart-B8UyZBO_.js.map} +1 -1
  100. package/dist/client/chunks/{RecordsTable-B4FqKr9E.js → RecordsTable-BSmkwdgd.js} +4 -4
  101. package/dist/client/chunks/{RecordsTable-B4FqKr9E.js.map → RecordsTable-BSmkwdgd.js.map} +1 -1
  102. package/dist/client/chunks/{RetentionCombinedChart-BrqSuLXT.js → RetentionCombinedChart-rOdIhUGH.js} +3 -3
  103. package/dist/client/chunks/{RetentionCombinedChart-BrqSuLXT.js.map → RetentionCombinedChart-rOdIhUGH.js.map} +1 -1
  104. package/dist/client/chunks/{RetentionHeatmap-DlGScG6X.js → RetentionHeatmap-DVm_7rph.js} +2 -2
  105. package/dist/client/chunks/{RetentionHeatmap-DlGScG6X.js.map → RetentionHeatmap-DVm_7rph.js.map} +1 -1
  106. package/dist/client/chunks/{analysis-builder-CL8WUtUY.js → analysis-builder-D_tw9BvU.js} +9 -9
  107. package/dist/client/chunks/{analysis-builder-CL8WUtUY.js.map → analysis-builder-D_tw9BvU.js.map} +1 -1
  108. package/dist/client/chunks/{analysis-builder-shared-CuKa4wqd.js → analysis-builder-shared-BSINKFr2.js} +9 -9
  109. package/dist/client/chunks/{analysis-builder-shared-CuKa4wqd.js.map → analysis-builder-shared-BSINKFr2.js.map} +1 -1
  110. package/dist/client/chunks/{chart-activity-grid-cJI-MF_M.js → chart-activity-grid-CSIsJ12e.js} +4 -4
  111. package/dist/client/chunks/{chart-activity-grid-cJI-MF_M.js.map → chart-activity-grid-CSIsJ12e.js.map} +1 -1
  112. package/dist/client/chunks/{chart-area-11vKdaTE.js → chart-area-BpvSKH5I.js} +2 -2
  113. package/dist/client/chunks/{chart-area-11vKdaTE.js.map → chart-area-BpvSKH5I.js.map} +1 -1
  114. package/dist/client/chunks/{chart-bar-ByOYTFZp.js → chart-bar-Cjzv-LvG.js} +3 -3
  115. package/dist/client/chunks/{chart-bar-ByOYTFZp.js.map → chart-bar-Cjzv-LvG.js.map} +1 -1
  116. package/dist/client/chunks/{chart-box-plot-DKTdhdjk.js → chart-box-plot-DHsHfMt6.js} +2 -2
  117. package/dist/client/chunks/{chart-box-plot-DKTdhdjk.js.map → chart-box-plot-DHsHfMt6.js.map} +1 -1
  118. package/dist/client/chunks/{chart-bubble-lCNFaxsr.js → chart-bubble-BtWm6x7L.js} +2 -2
  119. package/dist/client/chunks/{chart-bubble-lCNFaxsr.js.map → chart-bubble-BtWm6x7L.js.map} +1 -1
  120. package/dist/client/chunks/{chart-candlestick-DQJ8byvB.js → chart-candlestick-Bz0_fLuq.js} +2 -2
  121. package/dist/client/chunks/{chart-candlestick-DQJ8byvB.js.map → chart-candlestick-Bz0_fLuq.js.map} +1 -1
  122. package/dist/client/chunks/{chart-data-table-xLM9byGS.js → chart-data-table-BH1A-1RN.js} +5 -6
  123. package/dist/client/chunks/chart-data-table-BH1A-1RN.js.map +1 -0
  124. package/dist/client/chunks/{chart-funnel-BtjUJRcf.js → chart-funnel-C_-K4RLj.js} +2 -2
  125. package/dist/client/chunks/{chart-funnel-BtjUJRcf.js.map → chart-funnel-C_-K4RLj.js.map} +1 -1
  126. package/dist/client/chunks/{chart-gauge-Da-29BzE.js → chart-gauge-F-vdq2BX.js} +3 -3
  127. package/dist/client/chunks/{chart-gauge-Da-29BzE.js.map → chart-gauge-F-vdq2BX.js.map} +1 -1
  128. package/dist/client/chunks/{chart-heat-map-DK0IR2al.js → chart-heat-map-D_8TluGo.js} +3 -3
  129. package/dist/client/chunks/{chart-heat-map-DK0IR2al.js.map → chart-heat-map-D_8TluGo.js.map} +1 -1
  130. package/dist/client/chunks/{chart-kpi-delta-CDU8rcmS.js → chart-kpi-delta-DGvQ0BHZ.js} +3 -3
  131. package/dist/client/chunks/{chart-kpi-delta-CDU8rcmS.js.map → chart-kpi-delta-DGvQ0BHZ.js.map} +1 -1
  132. package/dist/client/chunks/{chart-kpi-number-BnoXaY00.js → chart-kpi-number-DP6zCh-c.js} +5 -5
  133. package/dist/client/chunks/{chart-kpi-number-BnoXaY00.js.map → chart-kpi-number-DP6zCh-c.js.map} +1 -1
  134. package/dist/client/chunks/{chart-kpi-text-5S_G6DFl.js → chart-kpi-text-DDbWfMwK.js} +3 -3
  135. package/dist/client/chunks/{chart-kpi-text-5S_G6DFl.js.map → chart-kpi-text-DDbWfMwK.js.map} +1 -1
  136. package/dist/client/chunks/{chart-line-D6Xkq1eW.js → chart-line-DlhmQQ-X.js} +3 -3
  137. package/dist/client/chunks/{chart-line-D6Xkq1eW.js.map → chart-line-DlhmQQ-X.js.map} +1 -1
  138. package/dist/client/chunks/{chart-markdown-BHBjzgfc.js → chart-markdown-C5ldCjSN.js} +3 -3
  139. package/dist/client/chunks/{chart-markdown-BHBjzgfc.js.map → chart-markdown-C5ldCjSN.js.map} +1 -1
  140. package/dist/client/chunks/{chart-measure-profile-Cl5xQZLF.js → chart-measure-profile-CjErXQI4.js} +3 -3
  141. package/dist/client/chunks/{chart-measure-profile-Cl5xQZLF.js.map → chart-measure-profile-CjErXQI4.js.map} +1 -1
  142. package/dist/client/chunks/{chart-pie-X3wVYu9v.js → chart-pie-CmKhmUR-.js} +3 -3
  143. package/dist/client/chunks/{chart-pie-X3wVYu9v.js.map → chart-pie-CmKhmUR-.js.map} +1 -1
  144. package/dist/client/chunks/{chart-radar-BExajFiU.js → chart-radar-B2bYTyb0.js} +3 -3
  145. package/dist/client/chunks/{chart-radar-BExajFiU.js.map → chart-radar-B2bYTyb0.js.map} +1 -1
  146. package/dist/client/chunks/{chart-radial-bar-CgGmC8WE.js → chart-radial-bar-DvQ-xZS-.js} +3 -3
  147. package/dist/client/chunks/{chart-radial-bar-CgGmC8WE.js.map → chart-radial-bar-DvQ-xZS-.js.map} +1 -1
  148. package/dist/client/chunks/{chart-sankey-DKj417mA.js → chart-sankey-DHIrjmhj.js} +2 -2
  149. package/dist/client/chunks/{chart-sankey-DKj417mA.js.map → chart-sankey-DHIrjmhj.js.map} +1 -1
  150. package/dist/client/chunks/{chart-scatter-DSNgbnEu.js → chart-scatter-JnoA3CD5.js} +3 -3
  151. package/dist/client/chunks/{chart-scatter-DSNgbnEu.js.map → chart-scatter-JnoA3CD5.js.map} +1 -1
  152. package/dist/client/chunks/{chart-sunburst-IUrLGpyo.js → chart-sunburst-BtzRp5bg.js} +3 -3
  153. package/dist/client/chunks/{chart-sunburst-IUrLGpyo.js.map → chart-sunburst-BtzRp5bg.js.map} +1 -1
  154. package/dist/client/chunks/{chart-tree-map-DS5X1Wiw.js → chart-tree-map-HQitd39D.js} +3 -3
  155. package/dist/client/chunks/{chart-tree-map-DS5X1Wiw.js.map → chart-tree-map-HQitd39D.js.map} +1 -1
  156. package/dist/client/chunks/{chart-waterfall-C1GZfgHw.js → chart-waterfall-Dd3HMz3p.js} +3 -3
  157. package/dist/client/chunks/{chart-waterfall-C1GZfgHw.js.map → chart-waterfall-Dd3HMz3p.js.map} +1 -1
  158. package/dist/client/chunks/{charts-core-DQXx0Xk-.js → charts-core-CQFOTTPb.js} +2 -2
  159. package/dist/client/chunks/{charts-core-DQXx0Xk-.js.map → charts-core-CQFOTTPb.js.map} +1 -1
  160. package/dist/client/chunks/charts-loader-BlxEsp39.js +87 -0
  161. package/dist/client/chunks/{charts-loader-C9PPgWxv.js.map → charts-loader-BlxEsp39.js.map} +1 -1
  162. package/dist/client/chunks/core-BWRP9s8x.js.map +1 -1
  163. package/dist/client/chunks/dashboardExport-Db3rmUP1.js.map +1 -1
  164. package/dist/client/chunks/dist-COqN0-Yj.js.map +1 -1
  165. package/dist/client/chunks/exceljs.min-CdNVdwM3.js.map +1 -1
  166. package/dist/client/chunks/{schema-visualization-4Vi5vrFa.js → schema-visualization-BspQ-XB8.js} +3 -3
  167. package/dist/client/chunks/{schema-visualization-4Vi5vrFa.js.map → schema-visualization-BspQ-XB8.js.map} +1 -1
  168. package/dist/client/chunks/{useDirtyStateTracking-olnTnFb1.js → useDirtyStateTracking-DY5sjvb6.js} +4 -4
  169. package/dist/client/chunks/{useDirtyStateTracking-olnTnFb1.js.map → useDirtyStateTracking-DY5sjvb6.js.map} +1 -1
  170. package/dist/client/chunks/{useExplainAI-DlZ22fsT.js → useExplainAI-BY0Ti3FZ.js} +5 -5
  171. package/dist/client/chunks/{useExplainAI-DlZ22fsT.js.map → useExplainAI-BY0Ti3FZ.js.map} +1 -1
  172. package/dist/client/chunks/{vendor-DYXrJcMx.js → vendor-C4pD7rZf.js} +2 -2
  173. package/dist/client/chunks/{vendor-DYXrJcMx.js.map → vendor-C4pD7rZf.js.map} +1 -1
  174. package/dist/client/components.js +1 -1
  175. package/dist/client/hooks/queries/useExplainAI.d.ts +3 -2
  176. package/dist/client/hooks.js +3 -3
  177. package/dist/client/icons.js +1 -1
  178. package/dist/client/index.js +13 -13
  179. package/dist/client/index.js.map +1 -1
  180. package/dist/client/providers.js +1 -1
  181. package/dist/client/schema.js +1 -1
  182. package/dist/client/types.d.ts +7 -0
  183. package/dist/client/utils.js +4 -4
  184. package/dist/client-bundle-stats.html +1 -1
  185. package/dist/mcp-app/mcp-app.html +4 -4
  186. package/dist/server/index.cjs +42 -42
  187. package/dist/server/index.js +1083 -1103
  188. package/dist/server/openai-C6tdx3yN.cjs +19 -0
  189. package/dist/server/{openai-BISsKb5q.js → openai-D0vh48Oi.js} +3313 -2510
  190. package/dist/server/{openai-DJbxudVD.cjs → openai-D346-vmt.cjs} +1 -1
  191. package/dist/server/{openai-CgiNtz4I.js → openai-SILGL2q_.js} +1 -1
  192. package/package.json +3 -3
  193. package/dist/adapters/ActivityGridChart.config-5Dw4ikvc.cjs +0 -1
  194. package/dist/adapters/ActivityGridChart.config-kf_mi0WP.js +0 -2
  195. package/dist/adapters/AreaChart.config-BZ6R4fa-.js +0 -2
  196. package/dist/adapters/AreaChart.config-CNKWBlma.cjs +0 -1
  197. package/dist/adapters/BarChart.config-DH8FeanY.cjs +0 -1
  198. package/dist/adapters/BarChart.config-DvNsHkbz.js +0 -2
  199. package/dist/adapters/BoxPlotChart.config-CSUdgbS3.js +0 -2
  200. package/dist/adapters/BoxPlotChart.config-DIkF7bNu.cjs +0 -1
  201. package/dist/adapters/BubbleChart.config-Cikl7Bjb.cjs +0 -1
  202. package/dist/adapters/BubbleChart.config-D34u-Hlu.js +0 -2
  203. package/dist/adapters/CandlestickChart.config-CW7oM2j2.js +0 -2
  204. package/dist/adapters/CandlestickChart.config-sZ4T7z6E.cjs +0 -1
  205. package/dist/adapters/DataTable.config-Dt3RTa86.cjs +0 -1
  206. package/dist/adapters/DataTable.config-b2Ps3QCD.js +0 -2
  207. package/dist/adapters/DotStripChart.config-1xHVgdbM.cjs +0 -1
  208. package/dist/adapters/DotStripChart.config-CXPdK6mj.js +0 -2
  209. package/dist/adapters/FunnelChart.config-DoQ6DoI6.cjs +0 -1
  210. package/dist/adapters/FunnelChart.config-TBJ8wc5T.js +0 -2
  211. package/dist/adapters/GaugeChart.config-BH1voNKO.cjs +0 -1
  212. package/dist/adapters/GaugeChart.config-BXZOfLvb.js +0 -2
  213. package/dist/adapters/HeatMapChart.config-BrJhG4sD.js +0 -2
  214. package/dist/adapters/HeatMapChart.config-DQyOyT8-.cjs +0 -1
  215. package/dist/adapters/KpiDelta.config-B7zqzeE4.js +0 -2
  216. package/dist/adapters/KpiDelta.config-PwxW3cY6.cjs +0 -1
  217. package/dist/adapters/KpiNumber.config-Cx8cFl8G.cjs +0 -1
  218. package/dist/adapters/KpiNumber.config-PfuS6HY8.js +0 -2
  219. package/dist/adapters/KpiText.config-BAGxU8eA.cjs +0 -1
  220. package/dist/adapters/KpiText.config-hpoBkwuU.js +0 -2
  221. package/dist/adapters/LineChart.config-CsUVse0Q.cjs +0 -1
  222. package/dist/adapters/LineChart.config-PnIgjyxG.js +0 -2
  223. package/dist/adapters/MarkdownChart.config-BnKKOYz7.js +0 -2
  224. package/dist/adapters/MarkdownChart.config-CvZ6e5Pm.cjs +0 -1
  225. package/dist/adapters/MeasureProfileChart.config-BAKjdSaE.js +0 -2
  226. package/dist/adapters/MeasureProfileChart.config-zTYarMOX.cjs +0 -1
  227. package/dist/adapters/PieChart.config-B5DWuB7p.cjs +0 -1
  228. package/dist/adapters/PieChart.config-DRJ-TEHx.js +0 -2
  229. package/dist/adapters/ProportionBarChart.config-CkWlUXVL.js +0 -2
  230. package/dist/adapters/ProportionBarChart.config-j5hZGdiK.cjs +0 -1
  231. package/dist/adapters/RadarChart.config-BGdcb-vd.js +0 -2
  232. package/dist/adapters/RadarChart.config-COjDDQIQ.cjs +0 -1
  233. package/dist/adapters/RadialBarChart.config-Bn6WyAZJ.cjs +0 -1
  234. package/dist/adapters/RadialBarChart.config-CKtx2iHt.js +0 -2
  235. package/dist/adapters/RecordsTable.config-BoyiHRTW.cjs +0 -1
  236. package/dist/adapters/RecordsTable.config-DIaOnBzA.js +0 -2
  237. package/dist/adapters/RetentionCombinedChart.config-COijZvyV.js +0 -2
  238. package/dist/adapters/RetentionCombinedChart.config-Dqn8yDyE.cjs +0 -1
  239. package/dist/adapters/RetentionHeatmap.config-Dg81G--t.cjs +0 -1
  240. package/dist/adapters/RetentionHeatmap.config-KBahnEBw.js +0 -2
  241. package/dist/adapters/SankeyChart.config-CU5cIUfw.cjs +0 -1
  242. package/dist/adapters/SankeyChart.config-e2PoqHK4.js +0 -2
  243. package/dist/adapters/ScatterChart.config-CFalq9dc.cjs +0 -1
  244. package/dist/adapters/ScatterChart.config-Cu87WDER.js +0 -2
  245. package/dist/adapters/SunburstChart.config-Cl3xYxse.cjs +0 -1
  246. package/dist/adapters/SunburstChart.config-XKWhwuJc.js +0 -2
  247. package/dist/adapters/TreeMapChart.config-CwPjwIMi.js +0 -2
  248. package/dist/adapters/TreeMapChart.config-DeDuzwj-.cjs +0 -1
  249. package/dist/adapters/WaterfallChart.config-CQyfg1cz.js +0 -2
  250. package/dist/adapters/WaterfallChart.config-Cr3XZuwl.cjs +0 -1
  251. package/dist/adapters/mcp-app-html-CUL2sMpA.js +0 -5
  252. package/dist/adapters/mcp-app-html-Ey6aj9WR.cjs +0 -1
  253. package/dist/adapters/openai-BoLyuR1l.cjs +0 -19
  254. package/dist/client/chunks/DashboardEditModal-DyweH8_q.js.map +0 -1
  255. package/dist/client/chunks/chart-data-table-xLM9byGS.js.map +0 -1
  256. package/dist/client/chunks/charts-loader-C9PPgWxv.js +0 -87
  257. package/dist/server/openai-D1PmqQem.cjs +0 -19
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./mcp-app-html-Ey6aj9WR.cjs");exports.mcpAppHtml=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./mcp-app-html-DRWnkcx4.cjs");exports.mcpAppHtml=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "./mcp-app-html-CUL2sMpA.js";
1
+ import { t as e } from "./mcp-app-html-C8vG9epH.js";
2
2
  export { e as mcpAppHtml };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-iMkgJr10.cjs"),t=require("./mcp-transport-DXgZ-xcU.cjs"),n=require("./mcp-app-html-Ey6aj9WR.cjs");async function r(t,n,r){let i=await t.getSecurityContext(r);return t.wrapContent(await e.p(t.semanticLayer,i,n||{}))}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.f(t.semanticLayer,a,i))}async function a(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 o(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function s(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function c(e){let{semanticLayer:n,getSecurityContext:c,toolPrefix:u=`drizzle_cube_`,tools:d=[`discover`,`validate`,`load`,`chart`],prompts:f=t.u(),resources:p,app:m=!1}=e,h=!!m,g=typeof m==`object`?m:void 0,_=p??t.d(),v=h?[..._,...l(g)]:_,y=t.o({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:n,getSecurityContext:c,wrapContent:o,wrapError:s},E={discover:(e,t)=>r(T,e,t),validate:(e,t)=>i(T,e,t),load:(e,t)=>a(T,e,t),chart:(e,t)=>a(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 s(`Unknown tool: ${e}`);try{return await i(t,n)}catch(e){return s(e)}}return{definitions:x,handle:D,handles:w,prompts:f,resources:v,toolNames:S}}function l(e){let r=t.f(n.t,e);return r?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:r}]:[]}exports.getCubeTools=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-BFGzuSlF.cjs"),t=require("./mcp-transport-QGYYYSgR.cjs"),n=require("./mcp-app-html-DRWnkcx4.cjs");async function r(t,n,r){let i=await t.getSecurityContext(r);return t.wrapContent(await e.p(t.semanticLayer,i,n||{}))}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.f(t.semanticLayer,a,i))}async function a(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 o(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function s(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function c(e){let{semanticLayer:n,getSecurityContext:c,toolPrefix:u=`drizzle_cube_`,tools:d=[`discover`,`validate`,`load`,`chart`],prompts:f=t.u(),resources:p,app:m=!1}=e,h=!!m,g=typeof m==`object`?m:void 0,_=p??t.d(),v=h?[..._,...l(g)]:_,y=t.o({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:n,getSecurityContext:c,wrapContent:o,wrapError:s},E={discover:(e,t)=>r(T,e,t),validate:(e,t)=>i(T,e,t),load:(e,t)=>a(T,e,t),chart:(e,t)=>a(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 s(`Unknown tool: ${e}`);try{return await i(t,n)}catch(e){return s(e)}}return{definitions:x,handle:D,handles:w,prompts:f,resources:v,toolNames:S}}function l(e){let r=t.f(n.t,e);return r?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:r}]:[]}exports.getCubeTools=c;
@@ -1,6 +1,6 @@
1
- import { f as e, m as t, p as n } from "./utils-dyUxCOWT.js";
2
- import { d as r, f as i, n as a, o, t as s, u as c } from "./mcp-transport-BH5avoaA.js";
3
- import { t as l } from "./mcp-app-html-CUL2sMpA.js";
1
+ import { f as e, m as t, p as n } from "./utils-C_Mc0qsk.js";
2
+ import { d as r, f as i, n as a, o, t as s, u as c } from "./mcp-transport-DDxjqyuK.js";
3
+ import { t as l } from "./mcp-app-html-C8vG9epH.js";
4
4
  //#region src/adapters/mcp-tools-handlers.ts
5
5
  async function u(e, t, r) {
6
6
  let i = await e.getSecurityContext(r);
@@ -1,4 +1,4 @@
1
- import { b as e, f as t, m as n, p as r, s as i, v as a, y as o } from "./utils-dyUxCOWT.js";
1
+ import { b as e, f as t, m as n, p as r, s as i, v as a, y as o } from "./utils-C_Mc0qsk.js";
2
2
  //#region src/server/ai/chart-schema.ts
3
3
  var s = {
4
4
  valueField: {
@@ -1,4 +1,4 @@
1
- const e=require("./utils-iMkgJr10.cjs");var t={valueField:{type:`array`,items:{type:`string`},description:`heatmap and activityGrid: single measure driving cell colour intensity. Required for both — the chart renders empty without it.`},dateField:{type:`array`,items:{type:`string`},description:`activityGrid only: single time dimension laying out the grid. Query it with day granularity over several months, or the grid has nothing to show.`}},n={minValue:{type:`number`,description:`gauge only: scale minimum (defaults to 0).`},maxValue:{type:`number`,description:`gauge only: scale maximum. ALWAYS set this — without it the gauge scales to the data it was given, so a single value always reads as 100%.`},template:{type:`string`,description:'kpiText only: sentence template around the value, e.g. "${fieldLabel}: ${value}". Defaults to that if omitted.'}},r={columns:{type:`array`,items:{type:`string`},description:`recordsTable only: fields to render as columns, in this order. Omit to show every field the query returns, in query order.`},hiddenColumns:{type:`array`,items:{type:`string`},description:`recordsTable only: fields fetched for row context or rowLink tokens but never displayed (e.g. an id used in the URL template). Leave empty unless a field is genuinely only needed behind the scenes — anything listed here disappears from the table.`}},i={columnFormats:{type:`object`,description:`recordsTable only: how each column renders, keyed by field name (e.g. "Employees.salary"). Formats are never inferred from the data — a column is plain text unless you say otherwise, so set this for any numeric, date, status or ratio column.`,additionalProperties:{type:`object`,required:[`kind`],properties:{kind:{type:`string`,enum:[`text`,`number`,`date`,`badge`,`progress`],description:`Required on every entry. text: as-is. number: formatted numeric. date: formatted date. badge: coloured pill for statuses/categories. progress: bar or ring for a bounded value. Use "text" when you only want to set a label.`},numberFormat:{type:`object`,description:`kind "number": { unit: "currency"|"percent"|"number"|"custom", decimals, abbreviate (K/M/B), currencyCode, customPrefix, customSuffix }.`},dateGranularity:{type:`string`,description:`kind "date": granularity to render at (e.g. "day", "month", "year").`},badgeColors:{type:`array`,description:`kind "badge": an ARRAY of { value, colorIndex } entries, not an object keyed by value. colorIndex is a number index into the dashboard palette (0, 1, 2, …), never a colour name like "green" — the palette is themed, so names would not follow it. A value with no entry renders neutral rather than being assigned a guessed colour.`,items:{type:`object`,required:[`value`,`colorIndex`],properties:{value:{type:`string`,description:`Cell value to colour, matched exactly`},colorIndex:{type:`number`,description:`Index into the dashboard colour palette`}}}},progressMin:{type:`number`,description:`kind "progress": lower bound (default 0). Values are clamped.`},progressMax:{type:`number`,description:`kind "progress": upper bound (default 100). Values are clamped.`},progressStyle:{type:`string`,enum:[`bar`,`circle`],description:`kind "progress": full-width bar, or a compact ring for narrow columns.`},label:{type:`string`,description:`Header override; defaults to the field title from the cube metadata.`},align:{type:`string`,enum:[`left`,`right`],description:`Cell alignment. Numbers usually read better right-aligned.`}}}},rowLink:{type:`object`,description:`recordsTable only: makes each row a link.`,required:[`urlTemplate`],properties:{urlTemplate:{type:`string`,description:`URL with {Cube.field} tokens substituted from the row, including hidden columns (e.g. "/employees/{Employees.id}"). Relative paths and http(s) URLs only.`},target:{type:`string`,enum:[`self`,`blank`],description:`Open in the same tab (default) or a new one.`}}},pageSize:{type:`number`,enum:[25,50,100],description:`recordsTable only: rows per page (default 25).`}},a=[`bar`,`line`,`area`,`pie`,`scatter`,`treemap`,`kpiNumber`,`kpiDelta`,`kpiText`,`table`,`recordsTable`,`radar`,`radialBar`,`bubble`,`funnel`,`waterfall`,`gauge`,`boxPlot`,`candlestick`,`activityGrid`,`measureProfile`,`sankey`,`sunburst`,`heatmap`,`markdown`];new Set(a);var o=`ui://drizzle-cube/visualization.html`,s=`text/html;profile=mcp-app`,c=a.filter(e=>e!==`markdown`);function l(e,t){if(!e||!t)return e;let n=`<script>window.__DRIZZLE_CUBE_MCP_APP_CONFIG__ = ${JSON.stringify({defaultLocale:t.defaultLocale,detectBrowserLocale:t.detectBrowserLocale}).replace(/<\//g,`<\\/`)}<\/script>`;return e.replace(`</head>`,`${n}</head>`)}async function u(e){let{mcpAppHtml:t}=await import(`drizzle-cube/mcp-app-html`);return l(t,e)}var d=[`2025-11-25`,`2025-06-18`,`2025-03-26`],f=`2025-11-25`;function p(e){let t=M(e[`mcp-protocol-version`])||`2025-11-25`;return{ok:d.includes(t),negotiated:d.includes(t)?t:null,supported:d}}function m(e){if(!e)return!1;let t=e.split(`,`).map(e=>e.trim().toLowerCase()),n=t.includes(`text/event-stream`),r=t.includes(`application/json`);return n&&!r}var h=`mcp-session-id`;function g(e){if(!e)return!1;let t=e.split(`,`).map(e=>e.trim().toLowerCase().split(`;`)[0]),n=t.some(e=>e===`application/json`),r=t.some(e=>e===`text/event-stream`),i=t.some(e=>e===`*/*`);return n&&r||n||i}function _(e){let t=e.hostname;return t===`localhost`||t===`::1`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}function v(e,t={}){let{allowMissingOrigin:n=!0,allowedOrigins:r}=t;if(!e)return n?{valid:!0}:{valid:!1,reason:`Origin header is required`};let i;try{i=new URL(e)}catch{return{valid:!1,reason:`Invalid Origin header format`}}let a=r&&r.length>0;return a&&r.includes(`*`)?{valid:!0}:a?r.map(e=>{try{return new URL(e).origin}catch{return e}}).includes(i.origin)?{valid:!0}:{valid:!1,reason:`Origin not in allowed list`}:_(i)?{valid:!0}:{valid:!1,reason:`Origin not allowed (default policy permits loopback origins only; configure mcp.allowedOrigins to allow this origin)`}}function y(e){return e.allowedOrigins?{allowedOrigins:e.allowedOrigins}:{}}function b(e){if(!e)return null;let t=/^Bearer\s+(\S+)$/i.exec(e);return t?t[1]:null}function x(e){return`Bearer resource_metadata="${e}"`}function S(e,t,n){let r=[];return t&&r.push(`id: ${t}`),n&&n>0&&r.push(`retry: ${n}`),r.push(`event: message`),r.push(`data: ${JSON.stringify(e)}`),r.push(``),r.join(`
1
+ const e=require("./utils-BFGzuSlF.cjs");var t={valueField:{type:`array`,items:{type:`string`},description:`heatmap and activityGrid: single measure driving cell colour intensity. Required for both — the chart renders empty without it.`},dateField:{type:`array`,items:{type:`string`},description:`activityGrid only: single time dimension laying out the grid. Query it with day granularity over several months, or the grid has nothing to show.`}},n={minValue:{type:`number`,description:`gauge only: scale minimum (defaults to 0).`},maxValue:{type:`number`,description:`gauge only: scale maximum. ALWAYS set this — without it the gauge scales to the data it was given, so a single value always reads as 100%.`},template:{type:`string`,description:'kpiText only: sentence template around the value, e.g. "${fieldLabel}: ${value}". Defaults to that if omitted.'}},r={columns:{type:`array`,items:{type:`string`},description:`recordsTable only: fields to render as columns, in this order. Omit to show every field the query returns, in query order.`},hiddenColumns:{type:`array`,items:{type:`string`},description:`recordsTable only: fields fetched for row context or rowLink tokens but never displayed (e.g. an id used in the URL template). Leave empty unless a field is genuinely only needed behind the scenes — anything listed here disappears from the table.`}},i={columnFormats:{type:`object`,description:`recordsTable only: how each column renders, keyed by field name (e.g. "Employees.salary"). Formats are never inferred from the data — a column is plain text unless you say otherwise, so set this for any numeric, date, status or ratio column.`,additionalProperties:{type:`object`,required:[`kind`],properties:{kind:{type:`string`,enum:[`text`,`number`,`date`,`badge`,`progress`],description:`Required on every entry. text: as-is. number: formatted numeric. date: formatted date. badge: coloured pill for statuses/categories. progress: bar or ring for a bounded value. Use "text" when you only want to set a label.`},numberFormat:{type:`object`,description:`kind "number": { unit: "currency"|"percent"|"number"|"custom", decimals, abbreviate (K/M/B), currencyCode, customPrefix, customSuffix }.`},dateGranularity:{type:`string`,description:`kind "date": granularity to render at (e.g. "day", "month", "year").`},badgeColors:{type:`array`,description:`kind "badge": an ARRAY of { value, colorIndex } entries, not an object keyed by value. colorIndex is a number index into the dashboard palette (0, 1, 2, …), never a colour name like "green" — the palette is themed, so names would not follow it. A value with no entry renders neutral rather than being assigned a guessed colour.`,items:{type:`object`,required:[`value`,`colorIndex`],properties:{value:{type:`string`,description:`Cell value to colour, matched exactly`},colorIndex:{type:`number`,description:`Index into the dashboard colour palette`}}}},progressMin:{type:`number`,description:`kind "progress": lower bound (default 0). Values are clamped.`},progressMax:{type:`number`,description:`kind "progress": upper bound (default 100). Values are clamped.`},progressStyle:{type:`string`,enum:[`bar`,`circle`],description:`kind "progress": full-width bar, or a compact ring for narrow columns.`},label:{type:`string`,description:`Header override; defaults to the field title from the cube metadata.`},align:{type:`string`,enum:[`left`,`right`],description:`Cell alignment. Numbers usually read better right-aligned.`}}}},rowLink:{type:`object`,description:`recordsTable only: makes each row a link.`,required:[`urlTemplate`],properties:{urlTemplate:{type:`string`,description:`URL with {Cube.field} tokens substituted from the row, including hidden columns (e.g. "/employees/{Employees.id}"). Relative paths and http(s) URLs only.`},target:{type:`string`,enum:[`self`,`blank`],description:`Open in the same tab (default) or a new one.`}}},pageSize:{type:`number`,enum:[25,50,100],description:`recordsTable only: rows per page (default 25).`}},a=[`bar`,`line`,`area`,`pie`,`scatter`,`treemap`,`kpiNumber`,`kpiDelta`,`kpiText`,`table`,`recordsTable`,`radar`,`radialBar`,`bubble`,`funnel`,`waterfall`,`gauge`,`boxPlot`,`candlestick`,`activityGrid`,`measureProfile`,`sankey`,`sunburst`,`heatmap`,`markdown`];new Set(a);var o=`ui://drizzle-cube/visualization.html`,s=`text/html;profile=mcp-app`,c=a.filter(e=>e!==`markdown`);function l(e,t){if(!e||!t)return e;let n=`<script>window.__DRIZZLE_CUBE_MCP_APP_CONFIG__ = ${JSON.stringify({defaultLocale:t.defaultLocale,detectBrowserLocale:t.detectBrowserLocale}).replace(/<\//g,`<\\/`)}<\/script>`;return e.replace(`</head>`,`${n}</head>`)}async function u(e){let{mcpAppHtml:t}=await import(`drizzle-cube/mcp-app-html`);return l(t,e)}var d=[`2025-11-25`,`2025-06-18`,`2025-03-26`],f=`2025-11-25`;function p(e){let t=M(e[`mcp-protocol-version`])||`2025-11-25`;return{ok:d.includes(t),negotiated:d.includes(t)?t:null,supported:d}}function m(e){if(!e)return!1;let t=e.split(`,`).map(e=>e.trim().toLowerCase()),n=t.includes(`text/event-stream`),r=t.includes(`application/json`);return n&&!r}var h=`mcp-session-id`;function g(e){if(!e)return!1;let t=e.split(`,`).map(e=>e.trim().toLowerCase().split(`;`)[0]),n=t.some(e=>e===`application/json`),r=t.some(e=>e===`text/event-stream`),i=t.some(e=>e===`*/*`);return n&&r||n||i}function _(e){let t=e.hostname;return t===`localhost`||t===`::1`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}function v(e,t={}){let{allowMissingOrigin:n=!0,allowedOrigins:r}=t;if(!e)return n?{valid:!0}:{valid:!1,reason:`Origin header is required`};let i;try{i=new URL(e)}catch{return{valid:!1,reason:`Invalid Origin header format`}}let a=r&&r.length>0;return a&&r.includes(`*`)?{valid:!0}:a?r.map(e=>{try{return new URL(e).origin}catch{return e}}).includes(i.origin)?{valid:!0}:{valid:!1,reason:`Origin not in allowed list`}:_(i)?{valid:!0}:{valid:!1,reason:`Origin not allowed (default policy permits loopback origins only; configure mcp.allowedOrigins to allow this origin)`}}function y(e){return e.allowedOrigins?{allowedOrigins:e.allowedOrigins}:{}}function b(e){if(!e)return null;let t=/^Bearer\s+(\S+)$/i.exec(e);return t?t[1]:null}function x(e){return`Bearer resource_metadata="${e}"`}function S(e,t,n){let r=[];return t&&r.push(`id: ${t}`),n&&n>0&&r.push(`retry: ${n}`),r.push(`event: message`),r.push(`data: ${JSON.stringify(e)}`),r.push(``),r.join(`
2
2
  `)}function C(e,t,n,r){return{jsonrpc:`2.0`,id:e??null,error:{code:t,message:n,...r===void 0?{}:{data:r}}}}function w(e,t){return{jsonrpc:`2.0`,id:e??null,result:t}}function T(e){if(!e||typeof e!=`object`)return null;let t=e;return t.jsonrpc!==`2.0`||typeof t.method!=`string`?null:{jsonrpc:`2.0`,method:t.method,id:t.id,params:t.params}}function E(e,t){let n=e?.protocolVersion;return{protocolVersion:n&&d.includes(n)?n:f,capabilities:{tools:{listChanged:!1},resources:{listChanged:!1},prompts:{listChanged:!1},sampling:{}},sessionId:P(),serverInfo:{name:t.serverName,version:typeof process<`u`?process.env?.npm_package_version||`dev`:`worker`},instructions:t.instructions}}async function D(e){return{resources:(await e.getResources()).map(({uri:e,name:t,description:n,mimeType:r})=>({uri:e,name:t,description:n,mimeType:r})),nextCursor:``}}async function O(e,t){let n=e?.uri,r=await t.getResources(),i=r.find(e=>e.uri===n)||r[0];if(!i)throw j(-32602,`resource not found`);return{contents:[{uri:i.uri,mimeType:i.mimeType,text:i.text}]}}function k(e,t){let n=e?.name,r=t.prompts.find(e=>e.name===n)||t.prompts[0];if(!r)throw j(-32602,`prompt not found`);return{name:r.name,description:r.description,messages:r.messages}}async function A(t,n,r){let{appEnabled:i,appConfig:a}=r,o=r.resources??B,s={appEnabled:i,serverName:r.serverName??`drizzle-cube`,prompts:r.prompts??z,getResources:async()=>{let e=await r.extractSecurityContext(r.rawRequest,r.rawResponse),t=J(r.semanticLayer,e,o);return i?[...t,...await R(a)]:t},instructions:r.instructions??e.y()};switch(t){case`initialize`:return E(n,s);case`list_tools`:case`tools/list`:return{tools:F({appEnabled:i}),nextCursor:``};case`call_tool`:case`tools/call`:return I(n,r);case`resources/list`:return await D(s);case`resources/templates/list`:return{resourceTemplates:[],nextCursor:``};case`resources/read`:return await O(n,s);case`prompts/list`:return{prompts:s.prompts.map(({name:e,description:t})=>({name:e,description:t})),nextCursor:``};case`ping`:return{};case`notifications/initialized`:return{};case`prompts/get`:return k(n,s);default:throw j(-32601,`Unknown MCP method: ${t}`)}}function j(e,t,n){let r=Error(t);return r.code=e,n!==void 0&&(r.data=n),r}function M(e){return e?Array.isArray(e)?e[0]||null:e:null}function N(e){return e.id===void 0||e.id===null}function P(){return`evt-${e.s()}`}function F(t){let n=[{name:`discover`,description:`MANDATORY FIRST CALL. You MUST call this before constructing any query — even if you think you know the schema.
3
3
 
4
4
  Returns:
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-iMkgJr10.cjs"),t=require("../compiler-CJVo3oya.cjs"),n=require("../mcp-transport-DXgZ-xcU.cjs"),r=require("../core-BkxueWec.cjs");let i=require("next/server");function a(e,t){let r=new TextEncoder,a=n._(),o=new ReadableStream({start(e){e.enqueue(r.encode(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},a,15e3)))}}),s=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});return t(e,s),new i.NextResponse(o,{status:200,headers:s})}function o(e){if(e.semanticLayer)return e.semanticLayer;let{cubes:n,drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s}=e;if(!n||n.length===0)throw Error(`At least one cube must be provided in the cubes array`);let c=new t.t({drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s});return n.forEach(e=>{c.registerCube(e)}),c}function s(e){return{extractSecurityContext:async(t,n)=>{let i=await e.extractSecurityContext(t,n),a=r.s(e=>t.headers.get(e));return r.c(i,a)},cors:e.cors?{...e.cors,allowedHeaders:r.o(e.cors.allowedHeaders)}:void 0}}function c(e,t){let n=e.headers.get(`origin`),r={};return t.origin&&(typeof t.origin==`string`?r[`Access-Control-Allow-Origin`]=t.origin:Array.isArray(t.origin)?n&&t.origin.includes(n)&&(r[`Access-Control-Allow-Origin`]=n):typeof t.origin==`function`&&n&&t.origin(n)&&(r[`Access-Control-Allow-Origin`]=n)),t.methods&&(r[`Access-Control-Allow-Methods`]=t.methods.join(`, `)),t.allowedHeaders&&(r[`Access-Control-Allow-Headers`]=t.allowedHeaders.join(`, `)),t.credentials&&(r[`Access-Control-Allow-Credentials`]=`true`),r}function l(e){let t=o(e),n=r.t({semanticLayer:t,onError:e=>{process.env.NODE_ENV!==`test`&&console.error(`Next.js handler error:`,e)},mcp:e.mcp}),i=e.cors?{...e.cors,allowedHeaders:r.o(e.cors.allowedHeaders)}:void 0;return{httpHandler:n,corsHeaders:e=>i?c(e,i):{},baseContext:(t,n)=>()=>e.extractSecurityContext(t,n)}}function u(e,t){let n={};return{getHeader:t=>e.headers.get(t)??void 0,getBody:async()=>{try{return await e.json()}catch{return null}},getQueryParam:t=>e.nextUrl.searchParams.get(t)??void 0,send:(e,r)=>i.NextResponse.json(r,{status:e,headers:{...t,...n}}),setHeader:(e,t)=>{n[e]=t},sendEmpty:e=>new i.NextResponse(null,{status:e,headers:{...t,...n}}),sendSse:(e,r)=>new i.NextResponse(r,{status:e,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...t,...n}})}}function d(e){return async function(t){let n=c(t,{...e,allowedHeaders:r.o(e.allowedHeaders)});return new Response(null,{status:200,headers:n})}}function f(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){let s=u(t,r(t));return t.method===`POST`?n.handleLoadPost(s,a(t,o)):t.method===`GET`?n.handleLoadGet(s,a(t,o)):i.NextResponse.json(e.i(`Method not allowed`,405),{status:405})}}function p(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,i){return t.handleMetaGet(u(e,n(e)),r(e,i))}}function m(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){let s=u(t,r(t));return t.method===`POST`?n.handleSqlPost(s,a(t,o)):t.method===`GET`?n.handleSqlGet(s,a(t,o)):i.NextResponse.json(e.i(`Method not allowed`,405),{status:405})}}function h(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,a){let o=u(e,n(e));return e.method===`POST`?t.handleDryRunPost(o,r(e,a)):e.method===`GET`?t.handleDryRunGet(o,r(e,a)):i.NextResponse.json({error:`Method not allowed`,valid:!1},{status:405})}}function g(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){return t.method===`POST`?n.handleBatchPost(u(t,r(t)),a(t,o)):i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405})}}function _(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,a){return e.method===`POST`?t.handleExplainPost(u(e,n(e)),r(e,a)):i.NextResponse.json({error:`Method not allowed`},{status:405})}}function v(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json(),l=await n(t,o),u=await e.p(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js discover handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Discovery failed`,500),{status:500})}}}function y(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.naturalLanguage)return i.NextResponse.json(e.i(`naturalLanguage field is required`,400),{status:400});let l=await n(t,o),u=await e.d(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js suggest handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query suggestion failed`,500),{status:500})}}}function b(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.query)return i.NextResponse.json(e.i(`query field is required`,400),{status:400});let l=await n(t,o),u=await e.f(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js validate handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query validation failed`,500),{status:500})}}}function x(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.query)return i.NextResponse.json(e.i(`query field is required`,400),{status:400});let l=await n(t,o),u=await e.m(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP load handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function S(t){let{httpHandler:r,corsHeaders:o,baseContext:s}=l(t),{mcp:c={enabled:!0}}=t,d=(e,t)=>{Object.entries(o(e)).forEach(([e,n])=>t.set(e,n))};return async function(t,l){if(c.resourceMetadataUrl&&!n.l(t.headers.get(`authorization`)))return i.NextResponse.json({error:`Bearer token required`},{status:401,headers:{"WWW-Authenticate":n.s(c.resourceMetadataUrl)}});if(t.method===`DELETE`||t.method===`GET`){let e=n.C(t.headers.get(`origin`),n.h(c));if(!e.valid)return i.NextResponse.json({error:e.reason},{status:403})}return t.method===`DELETE`?i.NextResponse.json({error:`Session termination not supported`},{status:405}):t.method===`GET`?a(t,d):t.method===`POST`?r.handleMcpPost(u(t,o(t)),s(t,l)):i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405})}}function C(e){let{cors:t}=s(e),{agent:n}=e;if(!n)throw Error(`agent config is required for createAgentChatHandler`);let a=o(e);return async function(o,s){try{if(o.method!==`POST`)return i.NextResponse.json({error:`Method not allowed - use POST`},{status:405});let{handleAgentChat:l}=await Promise.resolve().then(()=>require("../handler-DXfEc3Gg.cjs")),{message:u,sessionId:d,history:f}=await o.json();if(!u||typeof u!=`string`)return i.NextResponse.json({error:`message is required and must be a string`},{status:400});let p=(n.apiKey||``).trim();if(n.allowClientApiKey){let e=o.headers.get(`x-agent-api-key`);e&&(p=e.trim())}if(!p)return i.NextResponse.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},{status:401});let m=n.allowClientApiKey&&o.headers.get(`x-agent-provider`)||void 0,h=n.allowClientApiKey&&o.headers.get(`x-agent-model`)||void 0,g=n.allowClientApiKey&&o.headers.get(`x-agent-provider-endpoint`)||void 0,_=r.r(await e.extractSecurityContext(o,s),e=>o.headers.get(e)??void 0),v=n.buildSystemContext?.(_),y=new TextEncoder,b=new ReadableStream({async start(e){try{let t=l({message:u,sessionId:d,history:f,semanticLayer:a,securityContext:_,agentConfig:n,apiKey:p,systemContext:v,providerOverride:m,modelOverride:h,baseURLOverride:g});for await(let n of t){let t=`data: ${JSON.stringify(n)}\n\n`;e.enqueue(y.encode(t))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(y.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}}),x=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(t){let e=c(o,t);Object.entries(e).forEach(([e,t])=>x.set(e,t))}return new Response(b,{status:200,headers:x})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js agent chat handler error:`,e),i.NextResponse.json({error:e instanceof Error?e.message:`Agent chat failed`},{status:500})}}}function w(e){let{mcp:t={enabled:!0}}=e,n=o(e),r={...e,semanticLayer:n},i={load:f(r),meta:p(r),sql:m(r),dryRun:h(r),batch:g(r),explain:_(r)};return t.enabled!==!1&&(i.mcpRpc=S(r)),e.agent&&(i.agentChat=C(r)),i}exports.createAgentChatHandler=C,exports.createBatchHandler=g,exports.createCubeHandlers=w,exports.createDiscoverHandler=v,exports.createDryRunHandler=h,exports.createExplainHandler=_,exports.createLoadHandler=f,exports.createMcpLoadHandler=x,exports.createMcpRpcHandler=S,exports.createMetaHandler=p,exports.createOptionsHandler=d,exports.createSqlHandler=m,exports.createSuggestHandler=y,exports.createValidateHandler=b;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-BFGzuSlF.cjs"),t=require("../compiler-C5OSdfwn.cjs"),n=require("../mcp-transport-QGYYYSgR.cjs"),r=require("../core-CydD6oFu.cjs");let i=require("next/server");function a(e,t){let r=new TextEncoder,a=n._(),o=new ReadableStream({start(e){e.enqueue(r.encode(n.x({jsonrpc:`2.0`,method:`mcp/ready`,params:{protocol:`streamable-http`}},a,15e3)))}}),s=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});return t(e,s),new i.NextResponse(o,{status:200,headers:s})}function o(e){if(e.semanticLayer)return e.semanticLayer;let{cubes:n,drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s}=e;if(!n||n.length===0)throw Error(`At least one cube must be provided in the cubes array`);let c=new t.t({drizzle:r,schema:i,engineType:a,cache:o,rlsSetup:s});return n.forEach(e=>{c.registerCube(e)}),c}function s(e){return{extractSecurityContext:async(t,n)=>{let i=await e.extractSecurityContext(t,n),a=r.s(e=>t.headers.get(e));return r.c(i,a)},cors:e.cors?{...e.cors,allowedHeaders:r.o(e.cors.allowedHeaders)}:void 0}}function c(e,t){let n=e.headers.get(`origin`),r={};return t.origin&&(typeof t.origin==`string`?r[`Access-Control-Allow-Origin`]=t.origin:Array.isArray(t.origin)?n&&t.origin.includes(n)&&(r[`Access-Control-Allow-Origin`]=n):typeof t.origin==`function`&&n&&t.origin(n)&&(r[`Access-Control-Allow-Origin`]=n)),t.methods&&(r[`Access-Control-Allow-Methods`]=t.methods.join(`, `)),t.allowedHeaders&&(r[`Access-Control-Allow-Headers`]=t.allowedHeaders.join(`, `)),t.credentials&&(r[`Access-Control-Allow-Credentials`]=`true`),r}function l(e){let t=o(e),n=r.t({semanticLayer:t,onError:e=>{process.env.NODE_ENV!==`test`&&console.error(`Next.js handler error:`,e)},mcp:e.mcp}),i=e.cors?{...e.cors,allowedHeaders:r.o(e.cors.allowedHeaders)}:void 0;return{httpHandler:n,corsHeaders:e=>i?c(e,i):{},baseContext:(t,n)=>()=>e.extractSecurityContext(t,n)}}function u(e,t){let n={};return{getHeader:t=>e.headers.get(t)??void 0,getBody:async()=>{try{return await e.json()}catch{return null}},getQueryParam:t=>e.nextUrl.searchParams.get(t)??void 0,send:(e,r)=>i.NextResponse.json(r,{status:e,headers:{...t,...n}}),setHeader:(e,t)=>{n[e]=t},sendEmpty:e=>new i.NextResponse(null,{status:e,headers:{...t,...n}}),sendSse:(e,r)=>new i.NextResponse(r,{status:e,headers:{"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`,...t,...n}})}}function d(e){return async function(t){let n=c(t,{...e,allowedHeaders:r.o(e.allowedHeaders)});return new Response(null,{status:200,headers:n})}}function f(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){let s=u(t,r(t));return t.method===`POST`?n.handleLoadPost(s,a(t,o)):t.method===`GET`?n.handleLoadGet(s,a(t,o)):i.NextResponse.json(e.i(`Method not allowed`,405),{status:405})}}function p(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,i){return t.handleMetaGet(u(e,n(e)),r(e,i))}}function m(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){let s=u(t,r(t));return t.method===`POST`?n.handleSqlPost(s,a(t,o)):t.method===`GET`?n.handleSqlGet(s,a(t,o)):i.NextResponse.json(e.i(`Method not allowed`,405),{status:405})}}function h(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,a){let o=u(e,n(e));return e.method===`POST`?t.handleDryRunPost(o,r(e,a)):e.method===`GET`?t.handleDryRunGet(o,r(e,a)):i.NextResponse.json({error:`Method not allowed`,valid:!1},{status:405})}}function g(t){let{httpHandler:n,corsHeaders:r,baseContext:a}=l(t);return async function(t,o){return t.method===`POST`?n.handleBatchPost(u(t,r(t)),a(t,o)):i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405})}}function _(e){let{httpHandler:t,corsHeaders:n,baseContext:r}=l(e);return async function(e,a){return e.method===`POST`?t.handleExplainPost(u(e,n(e)),r(e,a)):i.NextResponse.json({error:`Method not allowed`},{status:405})}}function v(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json(),l=await n(t,o),u=await e.p(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js discover handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Discovery failed`,500),{status:500})}}}function y(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.naturalLanguage)return i.NextResponse.json(e.i(`naturalLanguage field is required`,400),{status:400});let l=await n(t,o),u=await e.d(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js suggest handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query suggestion failed`,500),{status:500})}}}function b(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.query)return i.NextResponse.json(e.i(`query field is required`,400),{status:400});let l=await n(t,o),u=await e.f(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js validate handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query validation failed`,500),{status:500})}}}function x(t){let{extractSecurityContext:n,cors:r}=s(t),a=o(t);return async function(t,o){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let s=await t.json();if(!s.query)return i.NextResponse.json(e.i(`query field is required`,400),{status:400});let l=await n(t,o),u=await e.m(a,l,s);return i.NextResponse.json(u,{headers:r?c(t,r):{}})}catch(t){return process.env.NODE_ENV!==`test`&&console.error(`Next.js MCP load handler error:`,t),i.NextResponse.json(e.i(t instanceof Error?t.message:`Query execution failed`,500),{status:500})}}}function S(t){let{httpHandler:r,corsHeaders:o,baseContext:s}=l(t),{mcp:c={enabled:!0}}=t,d=(e,t)=>{Object.entries(o(e)).forEach(([e,n])=>t.set(e,n))};return async function(t,l){if(c.resourceMetadataUrl&&!n.l(t.headers.get(`authorization`)))return i.NextResponse.json({error:`Bearer token required`},{status:401,headers:{"WWW-Authenticate":n.s(c.resourceMetadataUrl)}});if(t.method===`DELETE`||t.method===`GET`){let e=n.C(t.headers.get(`origin`),n.h(c));if(!e.valid)return i.NextResponse.json({error:e.reason},{status:403})}return t.method===`DELETE`?i.NextResponse.json({error:`Session termination not supported`},{status:405}):t.method===`GET`?a(t,d):t.method===`POST`?r.handleMcpPost(u(t,o(t)),s(t,l)):i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405})}}function C(e){let{cors:t}=s(e),{agent:n}=e;if(!n)throw Error(`agent config is required for createAgentChatHandler`);let a=o(e);return async function(o,s){try{if(o.method!==`POST`)return i.NextResponse.json({error:`Method not allowed - use POST`},{status:405});let{handleAgentChat:l}=await Promise.resolve().then(()=>require("../handler-Dp8fpSpk.cjs")),{message:u,sessionId:d,history:f}=await o.json();if(!u||typeof u!=`string`)return i.NextResponse.json({error:`message is required and must be a string`},{status:400});let p=(n.apiKey||``).trim();if(n.allowClientApiKey){let e=o.headers.get(`x-agent-api-key`);e&&(p=e.trim())}if(!p)return i.NextResponse.json({error:`No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header.`},{status:401});let m=n.allowClientApiKey&&o.headers.get(`x-agent-provider`)||void 0,h=n.allowClientApiKey&&o.headers.get(`x-agent-model`)||void 0,g=n.allowClientApiKey&&o.headers.get(`x-agent-provider-endpoint`)||void 0,_=r.r(await e.extractSecurityContext(o,s),e=>o.headers.get(e)??void 0),v=n.buildSystemContext?.(_),y=new TextEncoder,b=new ReadableStream({async start(e){try{let t=l({message:u,sessionId:d,history:f,semanticLayer:a,securityContext:_,agentConfig:n,apiKey:p,systemContext:v,providerOverride:m,modelOverride:h,baseURLOverride:g});for await(let n of t){let t=`data: ${JSON.stringify(n)}\n\n`;e.enqueue(y.encode(t))}}catch(t){let n={type:`error`,data:{message:t instanceof Error?t.message:`Stream failed`}};e.enqueue(y.encode(`data: ${JSON.stringify(n)}\n\n`))}finally{e.close()}}}),x=new Headers({"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`});if(t){let e=c(o,t);Object.entries(e).forEach(([e,t])=>x.set(e,t))}return new Response(b,{status:200,headers:x})}catch(e){return process.env.NODE_ENV!==`test`&&console.error(`Next.js agent chat handler error:`,e),i.NextResponse.json({error:e instanceof Error?e.message:`Agent chat failed`},{status:500})}}}function w(e){let{mcp:t={enabled:!0}}=e,n=o(e),r={...e,semanticLayer:n},i={load:f(r),meta:p(r),sql:m(r),dryRun:h(r),batch:g(r),explain:_(r)};return t.enabled!==!1&&(i.mcpRpc=S(r)),e.agent&&(i.agentChat=C(r)),i}exports.createAgentChatHandler=C,exports.createBatchHandler=g,exports.createCubeHandlers=w,exports.createDiscoverHandler=v,exports.createDryRunHandler=h,exports.createExplainHandler=_,exports.createLoadHandler=f,exports.createMcpLoadHandler=x,exports.createMcpRpcHandler=S,exports.createMetaHandler=p,exports.createOptionsHandler=d,exports.createSqlHandler=m,exports.createSuggestHandler=y,exports.createValidateHandler=b;
@@ -1,7 +1,7 @@
1
- import { d as e, f as t, i as n, m as r, p as i } from "../utils-dyUxCOWT.js";
2
- import { t as a } from "../compiler-DYAP3l3U.js";
3
- import { C as o, _ as s, h as c, l, s as u, x as d } from "../mcp-transport-BH5avoaA.js";
4
- import { c as f, o as p, r as m, s as h, t as g } from "../core-B05onvSN.js";
1
+ import { d as e, f as t, i as n, m as r, p as i } from "../utils-C_Mc0qsk.js";
2
+ import { t as a } from "../compiler-CpvetSCm.js";
3
+ import { C as o, _ as s, h as c, l, s as u, x as d } from "../mcp-transport-DDxjqyuK.js";
4
+ import { c as f, o as p, r as m, s as h, t as g } from "../core-BH_56XtM.js";
5
5
  import { NextResponse as _ } from "next/server";
6
6
  //#region src/adapters/nextjs/mcp-handler.ts
7
7
  function v(e, t) {
@@ -243,7 +243,7 @@ function I(e) {
243
243
  return async function(i, a) {
244
244
  try {
245
245
  if (i.method !== "POST") return _.json({ error: "Method not allowed - use POST" }, { status: 405 });
246
- let { handleAgentChat: o } = await import("../handler-BM5qe8yt.js"), { message: s, sessionId: c, history: l } = await i.json();
246
+ let { handleAgentChat: o } = await import("../handler-CtcALGcY.js"), { message: s, sessionId: c, history: l } = await i.json();
247
247
  if (!s || typeof s != "string") return _.json({ error: "message is required and must be a string" }, { status: 400 });
248
248
  let u = (n.apiKey || "").trim();
249
249
  if (n.allowClientApiKey) {
@@ -1 +1 @@
1
- function*e(e,t){let n=e.index??0;if(e.id&&(t.set(n,{id:e.id,name:e.function?.name||``,arguments:``}),yield{type:`tool_use_start`,id:e.id,name:e.function?.name||``}),e.function?.name&&t.has(n)){let r=t.get(n);r.name||=e.function.name}if(e.function?.arguments){let r=t.get(n);r&&(r.arguments+=e.function.arguments,yield{type:`tool_input_delta`,json:e.function.arguments})}}function*t(e,t){for(let[e,n]of t){let r={},i=!1;try{n.arguments&&(r=JSON.parse(n.arguments))}catch{i=!0}yield{type:`tool_use_end`,id:n.id,input:r,parseError:i},t.delete(e)}yield{type:`message_meta`,stopReason:e}}function*n(n,r){n.usage&&(yield{type:`message_meta`,inputTokens:n.usage.prompt_tokens,outputTokens:n.usage.completion_tokens,stopReason:``});let i=n.choices?.[0];if(!i)return;let a=i.delta;if(a){if(a.content&&(yield{type:`text_delta`,text:a.content}),a.tool_calls)for(let t of a.tool_calls)yield*e(t,r);i.finish_reason&&(yield*t(i.finish_reason,r))}}var r=class{client;apiKey;baseURL;initialized=!1;constructor(e,t){this.apiKey=e,this.baseURL=t?.baseURL}async ensureClient(){if(this.initialized)return;let e;try{let t=await Promise.resolve().then(()=>require("./openai-BoLyuR1l.cjs"));e=t.default||t.OpenAI||t}catch{throw Error(`openai is required for the OpenAI provider. Install it with: npm install openai`)}let t={apiKey:this.apiKey};this.baseURL&&(t.baseURL=this.baseURL),this.client=new e(t),this.initialized=!0}async createStream(e){await this.ensureClient();let{messages:t}=this.formatMessages(e.messages,e.system);return this.client.chat.completions.create({model:e.model,max_completion_tokens:e.maxTokens,tools:this.formatTools(e.tools),messages:t,stream:!0,stream_options:{include_usage:!0}})}async*parseStreamEvents(e){let t=new Map;for await(let r of e)yield*n(r,t)}formatTools(e){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}formatMessages(e,t){let n=[{role:`system`,content:t}];for(let t of e)if(t.role===`user`)n.push({role:`user`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)});else if(t.role===`assistant`){if(typeof t.content==`string`)n.push({role:`assistant`,content:t.content});else{let e=t.content,r=e.filter(e=>e.type===`text`).map(e=>e.text).join(``),i=e.filter(e=>e.type===`tool_use`).map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.input||{})}})),a={role:`assistant`};r&&(a.content=r),i.length>0&&(a.tool_calls=i),n.push(a)}}else t.role===`tool`?n.push(t):t.role===`tool_result`&&n.push({role:`user`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)});return{messages:n}}formatToolResults(e){return e.map(e=>({role:`tool`,tool_call_id:e.toolUseId,content:e.content}))}shouldContinue(e){return e===`tool_calls`}isTruncated(e){return e===`length`}formatError(e){if(!e||!(e instanceof Error))return`Something went wrong. Please try again.`;let t=e.message||``,n=e;return n.status===429?`Too many requests. Please wait a moment and try again.`:n.status===401?`Authentication failed. Please check your API key configuration.`:n.status===503||n.status===502?`The AI service is temporarily unavailable. Please try again in a moment.`:n.status===400?`There was a problem with the request. Please try again.`:t.startsWith(`{`)||t.startsWith(`Error: {`)?`The AI service encountered an error. Please try again.`:t}};exports.OpenAIProvider=r;
1
+ function*e(e,t){let n=e.index??0;if(e.id&&(t.set(n,{id:e.id,name:e.function?.name||``,arguments:``}),yield{type:`tool_use_start`,id:e.id,name:e.function?.name||``}),e.function?.name&&t.has(n)){let r=t.get(n);r.name||=e.function.name}if(e.function?.arguments){let r=t.get(n);r&&(r.arguments+=e.function.arguments,yield{type:`tool_input_delta`,json:e.function.arguments})}}function*t(e,t){for(let[e,n]of t){let r={},i=!1;try{n.arguments&&(r=JSON.parse(n.arguments))}catch{i=!0}yield{type:`tool_use_end`,id:n.id,input:r,parseError:i},t.delete(e)}yield{type:`message_meta`,stopReason:e}}function*n(n,r){n.usage&&(yield{type:`message_meta`,inputTokens:n.usage.prompt_tokens,outputTokens:n.usage.completion_tokens,stopReason:``});let i=n.choices?.[0];if(!i)return;let a=i.delta;if(a){if(a.content&&(yield{type:`text_delta`,text:a.content}),a.tool_calls)for(let t of a.tool_calls)yield*e(t,r);i.finish_reason&&(yield*t(i.finish_reason,r))}}var r=class{client;apiKey;baseURL;initialized=!1;constructor(e,t){this.apiKey=e,this.baseURL=t?.baseURL}async ensureClient(){if(this.initialized)return;let e;try{let t=await Promise.resolve().then(()=>require("./openai-CwKv0DD-.cjs"));e=t.default||t.OpenAI||t}catch{throw Error(`openai is required for the OpenAI provider. Install it with: npm install openai`)}let t={apiKey:this.apiKey};this.baseURL&&(t.baseURL=this.baseURL),this.client=new e(t),this.initialized=!0}async createStream(e){await this.ensureClient();let{messages:t}=this.formatMessages(e.messages,e.system);return this.client.chat.completions.create({model:e.model,max_completion_tokens:e.maxTokens,tools:this.formatTools(e.tools),messages:t,stream:!0,stream_options:{include_usage:!0}})}async*parseStreamEvents(e){let t=new Map;for await(let r of e)yield*n(r,t)}formatTools(e){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters}}))}formatMessages(e,t){let n=[{role:`system`,content:t}];for(let t of e)if(t.role===`user`)n.push({role:`user`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)});else if(t.role===`assistant`){if(typeof t.content==`string`)n.push({role:`assistant`,content:t.content});else{let e=t.content,r=e.filter(e=>e.type===`text`).map(e=>e.text).join(``),i=e.filter(e=>e.type===`tool_use`).map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.input||{})}})),a={role:`assistant`};r&&(a.content=r),i.length>0&&(a.tool_calls=i),n.push(a)}}else t.role===`tool`?n.push(t):t.role===`tool_result`&&n.push({role:`user`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)});return{messages:n}}formatToolResults(e){return e.map(e=>({role:`tool`,tool_call_id:e.toolUseId,content:e.content}))}shouldContinue(e){return e===`tool_calls`}isTruncated(e){return e===`length`}formatError(e){if(!e||!(e instanceof Error))return`Something went wrong. Please try again.`;let t=e.message||``,n=e;return n.status===429?`Too many requests. Please wait a moment and try again.`:n.status===401?`Authentication failed. Please check your API key configuration.`:n.status===503||n.status===502?`The AI service is temporarily unavailable. Please try again in a moment.`:n.status===400?`There was a problem with the request. Please try again.`:t.startsWith(`{`)||t.startsWith(`Error: {`)?`The AI service encountered an error. Please try again.`:t}};exports.OpenAIProvider=r;