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.
- package/dist/adapters/ActivityGridChart.config-Bvi50jl_.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-BwswifOD.js +2 -0
- package/dist/adapters/AreaChart.config-Cehf1Kjo.cjs +1 -0
- package/dist/adapters/AreaChart.config-DC-gnmli.js +2 -0
- package/dist/adapters/BarChart.config-BY53r96T.cjs +1 -0
- package/dist/adapters/BarChart.config-DJN5Oqmw.js +2 -0
- package/dist/adapters/BoxPlotChart.config-9hLT3yMs.js +2 -0
- package/dist/adapters/BoxPlotChart.config-D9P4PMTf.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CEVSsy7u.js +2 -0
- package/dist/adapters/BubbleChart.config-Cji0z0Tb.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-DPv76FmM.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-tcHTorLu.js +2 -0
- package/dist/adapters/DataTable.config-D4txBrlQ.cjs +1 -0
- package/dist/adapters/DataTable.config-DrObkanI.js +2 -0
- package/dist/adapters/FunnelChart.config-BFYSkibE.js +2 -0
- package/dist/adapters/FunnelChart.config-BTSFeha-.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BFz6NZfT.js +2 -0
- package/dist/adapters/GaugeChart.config-DJKD6oh8.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-C3EZl9Sy.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-jUCb5NAE.js +2 -0
- package/dist/adapters/KpiDelta.config-DhuealNk.js +2 -0
- package/dist/adapters/KpiDelta.config-m6FEIeWo.cjs +1 -0
- package/dist/adapters/KpiNumber.config-Cmd7eHmg.cjs +1 -0
- package/dist/adapters/KpiNumber.config-KQdKrkK-.js +2 -0
- package/dist/adapters/KpiText.config-D_pU4jH3.cjs +1 -0
- package/dist/adapters/KpiText.config-V8SvhllA.js +2 -0
- package/dist/adapters/LineChart.config-BuWM0TJx.js +2 -0
- package/dist/adapters/LineChart.config-CsxJ3f5A.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CJdjenj7.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-oCWrAuom.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-DBLnhtOk.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-DWg0jzxA.js +2 -0
- package/dist/adapters/PieChart.config-D3qI6nbM.cjs +1 -0
- package/dist/adapters/PieChart.config-R2rcul2D.js +2 -0
- package/dist/adapters/RadarChart.config-BlK8QuDi.js +2 -0
- package/dist/adapters/RadarChart.config-fH3ce10I.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CqCnb27I.js +2 -0
- package/dist/adapters/RadialBarChart.config-DQQHJOCs.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-BFJ8i-kp.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-B_Wd_YjX.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-BLqu9-Ft.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-MvOPw_Dd.cjs +1 -0
- package/dist/adapters/SankeyChart.config-C_4u9Xiq.js +2 -0
- package/dist/adapters/SankeyChart.config-EH6wsjPr.cjs +1 -0
- package/dist/adapters/ScatterChart.config-D-MlQ7mP.js +2 -0
- package/dist/adapters/ScatterChart.config-DmwiEBN-.cjs +1 -0
- package/dist/adapters/SunburstChart.config-BRr_as_L.js +2 -0
- package/dist/adapters/SunburstChart.config-CptDj8e4.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-D5wX2xaT.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-Dyhwpwq3.js +2 -0
- package/dist/adapters/WaterfallChart.config-B_LGJIov.js +2 -0
- package/dist/adapters/WaterfallChart.config-Q4Fv196W.cjs +1 -0
- package/dist/adapters/{compiler-DyyBaLry.cjs → compiler-D0v5KJhv.cjs} +2 -2
- package/dist/adapters/{compiler-lG6eNsoI.js → compiler-ZruQ85ff.js} +35 -30
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-F1pCQPde.cjs → core-CVqTwOR3.cjs} +1 -1
- package/dist/adapters/{core-Bbchr0ui.js → core-DoSUiMmv.js} +60 -60
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +80 -75
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +63 -58
- package/dist/adapters/{handler-DRZb2ip6.cjs → handler-DyIyrFFp.cjs} +3 -3
- package/dist/adapters/{handler-u8FyzPBT.js → handler-j74EJDdo.js} +28 -28
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/hono/index.js +57 -52
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-BuU5CrKL.cjs +40 -0
- package/dist/adapters/mcp-transport-l8DhKzR5.js +601 -0
- package/dist/adapters/mcp-transport.d.ts +21 -3
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +110 -105
- package/dist/adapters/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
- package/dist/{server/openai-DhzGY9R4.js → adapters/openai-BjR3ohaS.js} +1 -1
- package/dist/{server/openai-B4kAJTSD.cjs → adapters/openai-ClVVLjNl.cjs} +2 -2
- package/dist/adapters/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/dist/adapters/utils-CBR-9AMD.cjs +128 -0
- package/dist/adapters/{utils-BPWZsX7k.js → utils-U7gV5wQL.js} +789 -788
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +16 -4
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/mcp-transport.d.ts +21 -3
- package/dist/cjs/adapters/utils.d.ts +16 -4
- package/dist/cjs/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +3283 -0
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +1 -0
- package/dist/client/chunks/{DashboardEditModal-Cs1ig1_V.js → DashboardEditModal-DFQSxR_C.js} +1134 -4389
- package/dist/client/chunks/DashboardEditModal-DFQSxR_C.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js → RetentionCombinedChart-DY7wKLs5.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js.map → RetentionCombinedChart-DY7wKLs5.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js → RetentionHeatmap-iNCG-dLd.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js.map → RetentionHeatmap-iNCG-dLd.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-B64yaeDe.js → analysis-builder-CBZ7lOC-.js} +311 -311
- package/dist/client/chunks/{analysis-builder-B64yaeDe.js.map → analysis-builder-CBZ7lOC-.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js → analysis-builder-shared-8alCn-zw.js} +411 -411
- package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js.map → analysis-builder-shared-8alCn-zw.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js → chart-activity-grid-DDqFVWoa.js} +5 -2
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js.map → chart-activity-grid-DDqFVWoa.js.map} +1 -1
- package/dist/client/chunks/{chart-area-of01_62R.js → chart-area-BHxPNsmc.js} +2 -2
- package/dist/client/chunks/{chart-area-of01_62R.js.map → chart-area-BHxPNsmc.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-BqelQE_I.js → chart-bar-DAO3PPcE.js} +3 -3
- package/dist/client/chunks/{chart-bar-BqelQE_I.js.map → chart-bar-DAO3PPcE.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js → chart-box-plot-CUpFyQQk.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js.map → chart-box-plot-CUpFyQQk.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-B2he1--4.js → chart-bubble-DvP_6_n9.js} +2 -2
- package/dist/client/chunks/{chart-bubble-B2he1--4.js.map → chart-bubble-DvP_6_n9.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js → chart-candlestick-Dx8ZCMzl.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js.map → chart-candlestick-Dx8ZCMzl.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-D4g5_jfF.js → chart-data-table-BP6DMdom.js} +32 -16
- package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js → chart-funnel-xeVGBy-p.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js.map → chart-funnel-xeVGBy-p.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js → chart-gauge-DXQ4r3cb.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js.map → chart-gauge-DXQ4r3cb.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js → chart-heat-map-Pnk6rhqQ.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js.map → chart-heat-map-Pnk6rhqQ.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js → chart-kpi-delta-nXQnRRBr.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js.map → chart-kpi-delta-nXQnRRBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js → chart-kpi-number-m8UGJfBr.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js.map → chart-kpi-number-m8UGJfBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js → chart-kpi-text-CurpqmaD.js} +7 -4
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js.map → chart-kpi-text-CurpqmaD.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DKgrQA6c.js → chart-line-sJK-cJc0.js} +3 -3
- package/dist/client/chunks/{chart-line-DKgrQA6c.js.map → chart-line-sJK-cJc0.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-CV75S_zL.js → chart-markdown-BVrqqygz.js} +1263 -1192
- package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js → chart-measure-profile-k9_QDQbB.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js.map → chart-measure-profile-k9_QDQbB.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-ByieAX5H.js → chart-pie-BDaaYt7a.js} +3 -3
- package/dist/client/chunks/{chart-pie-ByieAX5H.js.map → chart-pie-BDaaYt7a.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js → chart-radar-Bz07PIVe.js} +3 -3
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js.map → chart-radar-Bz07PIVe.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js → chart-radial-bar-DpyxKQMj.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js.map → chart-radial-bar-DpyxKQMj.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js → chart-sankey-BAeNbI-p.js} +2 -2
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js.map → chart-sankey-BAeNbI-p.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js → chart-scatter-CRhGLCcy.js} +3 -3
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js.map → chart-scatter-CRhGLCcy.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js → chart-sunburst-D3wV5OrK.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js.map → chart-sunburst-D3wV5OrK.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js → chart-tree-map-iI3ewOKY.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js.map → chart-tree-map-iI3ewOKY.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js → chart-waterfall-BrrYTZfs.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js.map → chart-waterfall-BrrYTZfs.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js → charts-core-Cs-UIsQa.js} +2 -2
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js.map → charts-core-Cs-UIsQa.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DAJbAD7a.js +84 -0
- package/dist/client/chunks/{charts-loader-B0DOQMFH.js.map → charts-loader-DAJbAD7a.js.map} +1 -1
- package/dist/client/chunks/core-D7vPfUIe.js.map +1 -1
- package/dist/client/chunks/{dist-zPWyTBdU.js → dist-BwQr11Fz.js} +251 -252
- package/dist/client/chunks/{dist-zPWyTBdU.js.map → dist-BwQr11Fz.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js → exceljs.min-Dey-qIFL.js} +16 -16
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js.map → exceljs.min-Dey-qIFL.js.map} +1 -1
- package/dist/client/chunks/javascript-DFnKaHmQ.js.map +1 -1
- package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js → schema-visualization-BGT_cNon.js} +12 -12
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js.map → schema-visualization-BGT_cNon.js.map} +1 -1
- package/dist/client/chunks/sql-CmVzGP4w.js.map +1 -1
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js +30 -0
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js.map +1 -0
- package/dist/client/chunks/{useDirtyStateTracking-BT6zqCFl.js → useDebounce-7suCFq9v.js} +47 -109
- package/dist/client/chunks/useDebounce-7suCFq9v.js.map +1 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +66 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-Dq_meKNN.js → useExplainAI-CEf04DPE.js} +14 -14
- package/dist/client/chunks/{useExplainAI-Dq_meKNN.js.map → useExplainAI-CEf04DPE.js.map} +1 -1
- package/dist/client/chunks/useNotebookLayout-Ck3Z3uzg.js.map +1 -1
- package/dist/client/chunks/utils-DjLiJKS_.js +104 -0
- package/dist/client/chunks/utils-DjLiJKS_.js.map +1 -0
- package/dist/client/chunks/{vendor-D4jADu8t.js → vendor-DFAQ4Ucl.js} +5 -3
- package/dist/client/chunks/{vendor-D4jADu8t.js.map → vendor-DFAQ4Ucl.js.map} +1 -1
- package/dist/client/components.js +4 -3
- package/dist/client/hooks.js +5 -4
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +33 -29
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +32 -6
- package/dist/client/utils.js.map +1 -0
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +145 -50
- package/dist/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/server/index.cjs +33 -33
- package/dist/server/index.js +1268 -1262
- package/dist/server/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
- package/dist/{adapters/openai-DhzGY9R4.js → server/openai-BjR3ohaS.js} +1 -1
- package/dist/{adapters/openai-B4kAJTSD.cjs → server/openai-ClVVLjNl.cjs} +2 -2
- package/dist/server/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/package.json +11 -7
- package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +0 -2
- package/dist/adapters/AreaChart.config-1B8iQnfn.js +0 -2
- package/dist/adapters/AreaChart.config-hnncyQL4.cjs +0 -1
- package/dist/adapters/BarChart.config-C-QCf1rL.cjs +0 -1
- package/dist/adapters/BarChart.config-CFelK1qP.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +0 -1
- package/dist/adapters/BubbleChart.config-B_M4hzzV.js +0 -2
- package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-fuhyFvob.js +0 -2
- package/dist/adapters/DataTable.config-q2gqBi6t.cjs +0 -1
- package/dist/adapters/DataTable.config-wIQnHX5R.js +0 -2
- package/dist/adapters/FunnelChart.config-Dz710ssx.js +0 -2
- package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +0 -1
- package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +0 -1
- package/dist/adapters/GaugeChart.config-CgwniXkd.js +0 -2
- package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +0 -2
- package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +0 -1
- package/dist/adapters/KpiDelta.config-C_dYM64q.js +0 -2
- package/dist/adapters/KpiNumber.config-CXg6toZG.js +0 -2
- package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +0 -1
- package/dist/adapters/KpiText.config-BY-SJvAF.js +0 -2
- package/dist/adapters/KpiText.config-GSIxy0CE.cjs +0 -1
- package/dist/adapters/LineChart.config-CJtF8SOu.js +0 -2
- package/dist/adapters/LineChart.config-d0y60gw9.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +0 -2
- package/dist/adapters/PieChart.config-CDxfXCIt.cjs +0 -1
- package/dist/adapters/PieChart.config-CuZxQc5m.js +0 -2
- package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +0 -1
- package/dist/adapters/RadarChart.config-KrxwaaGu.js +0 -2
- package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +0 -2
- package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +0 -1
- package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +0 -1
- package/dist/adapters/SankeyChart.config-kzAnW0C7.js +0 -2
- package/dist/adapters/ScatterChart.config-4Okvn27v.js +0 -2
- package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +0 -1
- package/dist/adapters/SunburstChart.config-BsUQkIM_.js +0 -2
- package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +0 -1
- package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +0 -2
- package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +0 -2
- package/dist/adapters/mcp-transport-Bw_zqky2.js +0 -591
- package/dist/adapters/mcp-transport-CNIPoe1i.cjs +0 -40
- package/dist/adapters/utils-_whV4fXL.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-Cs1ig1_V.js.map +0 -1
- package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +0 -1
- package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +0 -1
- package/dist/client/chunks/charts-loader-B0DOQMFH.js +0 -84
- package/dist/client/chunks/useDirtyStateTracking-BT6zqCFl.js.map +0 -1
- package/dist/client/chunks/utils-Cq-j5E5I.js +0 -155
- package/dist/client/chunks/utils-Cq-j5E5I.js.map +0 -1
|
@@ -82,12 +82,16 @@ export declare const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version";
|
|
|
82
82
|
export declare function validateAcceptHeader(accept: string | null | undefined): boolean;
|
|
83
83
|
export interface OriginValidationOptions {
|
|
84
84
|
/**
|
|
85
|
-
* List of allowed origins (e.g., ['http://localhost:3000', 'https://myapp.com'])
|
|
86
|
-
* If not provided,
|
|
85
|
+
* List of allowed origins (e.g., ['http://localhost:3000', 'https://myapp.com']).
|
|
86
|
+
* If not provided, the default policy admits loopback origins (localhost / 127.x /
|
|
87
|
+
* [::1]) plus non-browser clients that send no Origin header; any other browser
|
|
88
|
+
* Origin is rejected. Include the wildcard `'*'` to allow ALL origins (permissive
|
|
89
|
+
* mode — discouraged; prefer listing exact origins or enabling auth).
|
|
87
90
|
*/
|
|
88
91
|
allowedOrigins?: string[];
|
|
89
92
|
/**
|
|
90
|
-
* If true, allows requests without an Origin header (non-browser
|
|
93
|
+
* If true, allows requests without an Origin header (non-browser / server-to-server
|
|
94
|
+
* clients such as the Claude MCP connector, curl, Postman).
|
|
91
95
|
* @default true
|
|
92
96
|
*/
|
|
93
97
|
allowMissingOrigin?: boolean;
|
|
@@ -97,6 +101,11 @@ export interface OriginValidationOptions {
|
|
|
97
101
|
* Servers MUST validate Origin to prevent DNS rebinding attacks.
|
|
98
102
|
* If Origin is present and invalid, MUST respond with 403 Forbidden.
|
|
99
103
|
*
|
|
104
|
+
* Default policy (no `allowedOrigins`): admit loopback origins and requests with no
|
|
105
|
+
* Origin header (non-browser / server-to-server clients); reject every other browser
|
|
106
|
+
* Origin. Configure `allowedOrigins` to expose a browser front-end, or include `'*'`
|
|
107
|
+
* to restore fully-permissive behavior.
|
|
108
|
+
*
|
|
100
109
|
* @returns { valid: true } if allowed, or { valid: false, reason: string } if blocked
|
|
101
110
|
*/
|
|
102
111
|
export declare function validateOriginHeader(origin: string | null | undefined, options?: OriginValidationOptions): {
|
|
@@ -105,6 +114,15 @@ export declare function validateOriginHeader(origin: string | null | undefined,
|
|
|
105
114
|
valid: false;
|
|
106
115
|
reason: string;
|
|
107
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* Build {@link OriginValidationOptions} from an MCP config, forwarding the
|
|
119
|
+
* configured allowlist (if any) so `validateOriginHeader` applies the same policy
|
|
120
|
+
* for POST, GET, and DELETE `/mcp` across every adapter. When `allowedOrigins` is
|
|
121
|
+
* absent, the loopback-only default policy applies.
|
|
122
|
+
*/
|
|
123
|
+
export declare function originOptionsFromMcp(mcp: {
|
|
124
|
+
allowedOrigins?: string[];
|
|
125
|
+
}): OriginValidationOptions;
|
|
108
126
|
/**
|
|
109
127
|
* Extract a Bearer token from an Authorization header.
|
|
110
128
|
* Returns the token string if present and well-formed, or null otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-
|
|
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("next/server");function a(e,t){let r=new TextEncoder,a=n.v(),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)=>r.o(await e.extractSecurityContext(t,n),r.a(e=>t.headers.get(e))),cors:e.cors?{...e.cors,allowedHeaders:r.i(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=r.t({semanticLayer:o(e),onError:e=>{process.env.NODE_ENV!==`test`&&console.error(`Next.js handler error:`,e)},mcp:e.mcp}),n=e.cors?{...e.cors,allowedHeaders:r.i(e.cors.allowedHeaders)}:void 0;return{httpHandler:t,corsHeaders:e=>n?c(e,n):{},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.i(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}=l(e);return async function(e,r){return t.handleMetaGet(u(e,n(e)))}}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{cors:n}=s(t),r=o(t);return async function(t,a){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json(),o=await e.p(r,a);return i.NextResponse.json(o,{headers:n?c(t,n):{}})}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{cors:n}=s(t),r=o(t);return async function(t,a){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json();if(!a.naturalLanguage)return i.NextResponse.json(e.i(`naturalLanguage field is required`,400),{status:400});let o=await e.d(r,a);return i.NextResponse.json(o,{headers:n?c(t,n):{}})}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{cors:n}=s(t),r=o(t);return async function(t,a){try{if(t.method!==`POST`)return i.NextResponse.json(e.i(`Method not allowed - use POST`,405),{status:405});let a=await t.json();if(!a.query)return i.NextResponse.json(e.i(`query field is required`,400),{status:400});let o=await e.f(r,a);return i.NextResponse.json(o,{headers:n?c(t,n):{}})}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.u(t.headers.get(`authorization`)))return i.NextResponse.json({error:`Bearer token required`},{status:401,headers:{"WWW-Authenticate":n.c(c.resourceMetadataUrl)}});if(t.method===`DELETE`||t.method===`GET`){let e=n.C(t.headers.get(`origin`),n.g(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-DyIyrFFp.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,12 +1,12 @@
|
|
|
1
|
-
import { d as e, f as t, i as n, m as r, p as i } from "../utils-
|
|
2
|
-
import { t as a } from "../compiler-
|
|
3
|
-
import {
|
|
4
|
-
import { a as
|
|
5
|
-
import { NextResponse as
|
|
1
|
+
import { d as e, f as t, i as n, m as r, p as i } from "../utils-U7gV5wQL.js";
|
|
2
|
+
import { t as a } from "../compiler-ZruQ85ff.js";
|
|
3
|
+
import { C as o, c as s, g as c, u as l, v as u, x as d } from "../mcp-transport-l8DhKzR5.js";
|
|
4
|
+
import { a as f, i as p, o as m, r as h, t as g } from "../core-DoSUiMmv.js";
|
|
5
|
+
import { NextResponse as _ } from "next/server";
|
|
6
6
|
//#region src/adapters/nextjs/mcp-handler.ts
|
|
7
|
-
function
|
|
8
|
-
let n = new TextEncoder(), r =
|
|
9
|
-
e.enqueue(n.encode(
|
|
7
|
+
function v(e, t) {
|
|
8
|
+
let n = new TextEncoder(), r = u(), i = new ReadableStream({ start(e) {
|
|
9
|
+
e.enqueue(n.encode(d({
|
|
10
10
|
jsonrpc: "2.0",
|
|
11
11
|
method: "mcp/ready",
|
|
12
12
|
params: { protocol: "streamable-http" }
|
|
@@ -16,14 +16,14 @@ function g(e, t) {
|
|
|
16
16
|
"Cache-Control": "no-cache",
|
|
17
17
|
Connection: "keep-alive"
|
|
18
18
|
});
|
|
19
|
-
return t(e, a), new
|
|
19
|
+
return t(e, a), new _(i, {
|
|
20
20
|
status: 200,
|
|
21
21
|
headers: a
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region src/adapters/nextjs/index.ts
|
|
26
|
-
function
|
|
26
|
+
function y(e) {
|
|
27
27
|
if (e.semanticLayer) return e.semanticLayer;
|
|
28
28
|
let { cubes: t, drizzle: n, schema: r, engineType: i, cache: o, rlsSetup: s } = e;
|
|
29
29
|
if (!t || t.length === 0) throw Error("At least one cube must be provided in the cubes array");
|
|
@@ -38,37 +38,37 @@ function _(e) {
|
|
|
38
38
|
c.registerCube(e);
|
|
39
39
|
}), c;
|
|
40
40
|
}
|
|
41
|
-
function
|
|
41
|
+
function b(e) {
|
|
42
42
|
return {
|
|
43
|
-
extractSecurityContext: async (t, n) =>
|
|
43
|
+
extractSecurityContext: async (t, n) => m(await e.extractSecurityContext(t, n), f((e) => t.headers.get(e))),
|
|
44
44
|
cors: e.cors ? {
|
|
45
45
|
...e.cors,
|
|
46
|
-
allowedHeaders:
|
|
46
|
+
allowedHeaders: p(e.cors.allowedHeaders)
|
|
47
47
|
} : void 0
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function x(e, t) {
|
|
51
51
|
let n = e.headers.get("origin"), r = {};
|
|
52
52
|
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;
|
|
53
53
|
}
|
|
54
|
-
function
|
|
55
|
-
let t =
|
|
56
|
-
semanticLayer:
|
|
54
|
+
function S(e) {
|
|
55
|
+
let t = g({
|
|
56
|
+
semanticLayer: y(e),
|
|
57
57
|
onError: (e) => {
|
|
58
58
|
process.env.NODE_ENV !== "test" && console.error("Next.js handler error:", e);
|
|
59
59
|
},
|
|
60
60
|
mcp: e.mcp
|
|
61
61
|
}), n = e.cors ? {
|
|
62
62
|
...e.cors,
|
|
63
|
-
allowedHeaders:
|
|
63
|
+
allowedHeaders: p(e.cors.allowedHeaders)
|
|
64
64
|
} : void 0;
|
|
65
65
|
return {
|
|
66
66
|
httpHandler: t,
|
|
67
|
-
corsHeaders: (e) => n ?
|
|
67
|
+
corsHeaders: (e) => n ? x(e, n) : {},
|
|
68
68
|
baseContext: (t, n) => () => e.extractSecurityContext(t, n)
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function C(e, t) {
|
|
72
72
|
let n = {};
|
|
73
73
|
return {
|
|
74
74
|
getHeader: (t) => e.headers.get(t) ?? void 0,
|
|
@@ -80,7 +80,7 @@ function x(e, t) {
|
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
getQueryParam: (t) => e.nextUrl.searchParams.get(t) ?? void 0,
|
|
83
|
-
send: (e, r) =>
|
|
83
|
+
send: (e, r) => _.json(r, {
|
|
84
84
|
status: e,
|
|
85
85
|
headers: {
|
|
86
86
|
...t,
|
|
@@ -90,14 +90,14 @@ function x(e, t) {
|
|
|
90
90
|
setHeader: (e, t) => {
|
|
91
91
|
n[e] = t;
|
|
92
92
|
},
|
|
93
|
-
sendEmpty: (e) => new
|
|
93
|
+
sendEmpty: (e) => new _(null, {
|
|
94
94
|
status: e,
|
|
95
95
|
headers: {
|
|
96
96
|
...t,
|
|
97
97
|
...n
|
|
98
98
|
}
|
|
99
99
|
}),
|
|
100
|
-
sendSse: (e, r) => new
|
|
100
|
+
sendSse: (e, r) => new _(r, {
|
|
101
101
|
status: e,
|
|
102
102
|
headers: {
|
|
103
103
|
"Content-Type": "text/event-stream",
|
|
@@ -109,11 +109,11 @@ function x(e, t) {
|
|
|
109
109
|
})
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
function
|
|
112
|
+
function w(e) {
|
|
113
113
|
return async function(t) {
|
|
114
|
-
let n =
|
|
114
|
+
let n = x(t, {
|
|
115
115
|
...e,
|
|
116
|
-
allowedHeaders:
|
|
116
|
+
allowedHeaders: p(e.allowedHeaders)
|
|
117
117
|
});
|
|
118
118
|
return new Response(null, {
|
|
119
119
|
status: 200,
|
|
@@ -121,142 +121,147 @@ function S(e) {
|
|
|
121
121
|
});
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
125
|
-
let { httpHandler: t, corsHeaders: r, baseContext: i } =
|
|
124
|
+
function T(e) {
|
|
125
|
+
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e);
|
|
126
126
|
return async function(e, a) {
|
|
127
|
-
let o =
|
|
128
|
-
return e.method === "POST" ? t.handleLoadPost(o, i(e, a)) : e.method === "GET" ? t.handleLoadGet(o, i(e, a)) :
|
|
127
|
+
let o = C(e, r(e));
|
|
128
|
+
return e.method === "POST" ? t.handleLoadPost(o, i(e, a)) : e.method === "GET" ? t.handleLoadGet(o, i(e, a)) : _.json(n("Method not allowed", 405), { status: 405 });
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
function
|
|
132
|
-
let { httpHandler: t, corsHeaders: n } =
|
|
131
|
+
function E(e) {
|
|
132
|
+
let { httpHandler: t, corsHeaders: n } = S(e);
|
|
133
133
|
return async function(e, r) {
|
|
134
|
-
return t.handleMetaGet(
|
|
134
|
+
return t.handleMetaGet(C(e, n(e)));
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
|
-
function
|
|
138
|
-
let { httpHandler: t, corsHeaders: r, baseContext: i } =
|
|
137
|
+
function D(e) {
|
|
138
|
+
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e);
|
|
139
139
|
return async function(e, a) {
|
|
140
|
-
let o =
|
|
141
|
-
return e.method === "POST" ? t.handleSqlPost(o, i(e, a)) : e.method === "GET" ? t.handleSqlGet(o, i(e, a)) :
|
|
140
|
+
let o = C(e, r(e));
|
|
141
|
+
return e.method === "POST" ? t.handleSqlPost(o, i(e, a)) : e.method === "GET" ? t.handleSqlGet(o, i(e, a)) : _.json(n("Method not allowed", 405), { status: 405 });
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
|
-
function
|
|
145
|
-
let { httpHandler: t, corsHeaders: n, baseContext: r } =
|
|
144
|
+
function O(e) {
|
|
145
|
+
let { httpHandler: t, corsHeaders: n, baseContext: r } = S(e);
|
|
146
146
|
return async function(e, i) {
|
|
147
|
-
let a =
|
|
148
|
-
return e.method === "POST" ? t.handleDryRunPost(a, r(e, i)) : e.method === "GET" ? t.handleDryRunGet(a, r(e, i)) :
|
|
147
|
+
let a = C(e, n(e));
|
|
148
|
+
return e.method === "POST" ? t.handleDryRunPost(a, r(e, i)) : e.method === "GET" ? t.handleDryRunGet(a, r(e, i)) : _.json({
|
|
149
149
|
error: "Method not allowed",
|
|
150
150
|
valid: !1
|
|
151
151
|
}, { status: 405 });
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
-
function
|
|
155
|
-
let { httpHandler: t, corsHeaders: r, baseContext: i } =
|
|
154
|
+
function k(e) {
|
|
155
|
+
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e);
|
|
156
156
|
return async function(e, a) {
|
|
157
|
-
return e.method === "POST" ? t.handleBatchPost(
|
|
157
|
+
return e.method === "POST" ? t.handleBatchPost(C(e, r(e)), i(e, a)) : _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
-
function
|
|
161
|
-
let { httpHandler: t, corsHeaders: n, baseContext: r } =
|
|
160
|
+
function A(e) {
|
|
161
|
+
let { httpHandler: t, corsHeaders: n, baseContext: r } = S(e);
|
|
162
162
|
return async function(e, i) {
|
|
163
|
-
return e.method === "POST" ? t.handleExplainPost(
|
|
163
|
+
return e.method === "POST" ? t.handleExplainPost(C(e, n(e)), r(e, i)) : _.json({ error: "Method not allowed" }, { status: 405 });
|
|
164
164
|
};
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
let { cors: t } =
|
|
166
|
+
function j(e) {
|
|
167
|
+
let { cors: t } = b(e), r = y(e);
|
|
168
168
|
return async function(e, a) {
|
|
169
169
|
try {
|
|
170
|
-
if (e.method !== "POST") return
|
|
171
|
-
let a = await
|
|
172
|
-
return
|
|
170
|
+
if (e.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
171
|
+
let a = await e.json(), o = await i(r, a);
|
|
172
|
+
return _.json(o, { headers: t ? x(e, t) : {} });
|
|
173
173
|
} catch (e) {
|
|
174
|
-
return process.env.NODE_ENV !== "test" && console.error("Next.js discover handler error:", e),
|
|
174
|
+
return process.env.NODE_ENV !== "test" && console.error("Next.js discover handler error:", e), _.json(n(e instanceof Error ? e.message : "Discovery failed", 500), { status: 500 });
|
|
175
175
|
}
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
let { cors: r } =
|
|
178
|
+
function M(t) {
|
|
179
|
+
let { cors: r } = b(t), i = y(t);
|
|
180
180
|
return async function(t, a) {
|
|
181
181
|
try {
|
|
182
|
-
if (t.method !== "POST") return
|
|
182
|
+
if (t.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
183
183
|
let a = await t.json();
|
|
184
|
-
if (!a.naturalLanguage) return
|
|
184
|
+
if (!a.naturalLanguage) return _.json(n("naturalLanguage field is required", 400), { status: 400 });
|
|
185
185
|
let o = await e(i, a);
|
|
186
|
-
return
|
|
186
|
+
return _.json(o, { headers: r ? x(t, r) : {} });
|
|
187
187
|
} catch (e) {
|
|
188
|
-
return process.env.NODE_ENV !== "test" && console.error("Next.js suggest handler error:", e),
|
|
188
|
+
return process.env.NODE_ENV !== "test" && console.error("Next.js suggest handler error:", e), _.json(n(e instanceof Error ? e.message : "Query suggestion failed", 500), { status: 500 });
|
|
189
189
|
}
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
|
-
function
|
|
193
|
-
let { cors: r } =
|
|
192
|
+
function N(e) {
|
|
193
|
+
let { cors: r } = b(e), i = y(e);
|
|
194
194
|
return async function(e, a) {
|
|
195
195
|
try {
|
|
196
|
-
if (e.method !== "POST") return
|
|
196
|
+
if (e.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
197
197
|
let a = await e.json();
|
|
198
|
-
if (!a.query) return
|
|
198
|
+
if (!a.query) return _.json(n("query field is required", 400), { status: 400 });
|
|
199
199
|
let o = await t(i, a);
|
|
200
|
-
return
|
|
200
|
+
return _.json(o, { headers: r ? x(e, r) : {} });
|
|
201
201
|
} catch (e) {
|
|
202
|
-
return process.env.NODE_ENV !== "test" && console.error("Next.js validate handler error:", e),
|
|
202
|
+
return process.env.NODE_ENV !== "test" && console.error("Next.js validate handler error:", e), _.json(n(e instanceof Error ? e.message : "Query validation failed", 500), { status: 500 });
|
|
203
203
|
}
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
function
|
|
207
|
-
let { extractSecurityContext: t, cors: i } =
|
|
206
|
+
function P(e) {
|
|
207
|
+
let { extractSecurityContext: t, cors: i } = b(e), a = y(e);
|
|
208
208
|
return async function(e, o) {
|
|
209
209
|
try {
|
|
210
|
-
if (e.method !== "POST") return
|
|
210
|
+
if (e.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
211
211
|
let s = await e.json();
|
|
212
|
-
if (!s.query) return
|
|
213
|
-
let c = await
|
|
214
|
-
return
|
|
212
|
+
if (!s.query) return _.json(n("query field is required", 400), { status: 400 });
|
|
213
|
+
let c = await t(e, o), l = await r(a, c, s);
|
|
214
|
+
return _.json(l, { headers: i ? x(e, i) : {} });
|
|
215
215
|
} catch (e) {
|
|
216
|
-
return process.env.NODE_ENV !== "test" && console.error("Next.js MCP load handler error:", e),
|
|
216
|
+
return process.env.NODE_ENV !== "test" && console.error("Next.js MCP load handler error:", e), _.json(n(e instanceof Error ? e.message : "Query execution failed", 500), { status: 500 });
|
|
217
217
|
}
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
|
-
function
|
|
221
|
-
let { httpHandler: t, corsHeaders: r, baseContext: i } =
|
|
220
|
+
function F(e) {
|
|
221
|
+
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e), { mcp: a = { enabled: !0 } } = e, u = (e, t) => {
|
|
222
222
|
Object.entries(r(e)).forEach(([e, n]) => t.set(e, n));
|
|
223
223
|
};
|
|
224
|
-
return async function(e,
|
|
225
|
-
|
|
224
|
+
return async function(e, d) {
|
|
225
|
+
if (a.resourceMetadataUrl && !l(e.headers.get("authorization"))) return _.json({ error: "Bearer token required" }, {
|
|
226
226
|
status: 401,
|
|
227
|
-
headers: { "WWW-Authenticate":
|
|
228
|
-
})
|
|
227
|
+
headers: { "WWW-Authenticate": s(a.resourceMetadataUrl) }
|
|
228
|
+
});
|
|
229
|
+
if (e.method === "DELETE" || e.method === "GET") {
|
|
230
|
+
let t = o(e.headers.get("origin"), c(a));
|
|
231
|
+
if (!t.valid) return _.json({ error: t.reason }, { status: 403 });
|
|
232
|
+
}
|
|
233
|
+
return e.method === "DELETE" ? _.json({ error: "Session termination not supported" }, { status: 405 }) : e.method === "GET" ? v(e, u) : e.method === "POST" ? t.handleMcpPost(C(e, r(e)), i(e, d)) : _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
229
234
|
};
|
|
230
235
|
}
|
|
231
|
-
function
|
|
232
|
-
let { cors: t } =
|
|
236
|
+
function I(e) {
|
|
237
|
+
let { cors: t } = b(e), { agent: n } = e;
|
|
233
238
|
if (!n) throw Error("agent config is required for createAgentChatHandler");
|
|
234
|
-
let r =
|
|
239
|
+
let r = y(e);
|
|
235
240
|
return async function(i, a) {
|
|
236
241
|
try {
|
|
237
|
-
if (i.method !== "POST") return
|
|
238
|
-
let { handleAgentChat: o } = await import("../handler-
|
|
239
|
-
if (!s || typeof s != "string") return
|
|
242
|
+
if (i.method !== "POST") return _.json({ error: "Method not allowed - use POST" }, { status: 405 });
|
|
243
|
+
let { handleAgentChat: o } = await import("../handler-j74EJDdo.js"), { message: s, sessionId: c, history: l } = await i.json();
|
|
244
|
+
if (!s || typeof s != "string") return _.json({ error: "message is required and must be a string" }, { status: 400 });
|
|
240
245
|
let u = (n.apiKey || "").trim();
|
|
241
246
|
if (n.allowClientApiKey) {
|
|
242
247
|
let e = i.headers.get("x-agent-api-key");
|
|
243
248
|
e && (u = e.trim());
|
|
244
249
|
}
|
|
245
|
-
if (!u) return
|
|
246
|
-
let d = n.allowClientApiKey && i.headers.get("x-agent-provider") || void 0, f = n.allowClientApiKey && i.headers.get("x-agent-model") || void 0,
|
|
250
|
+
if (!u) return _.json({ error: "No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header." }, { status: 401 });
|
|
251
|
+
let d = n.allowClientApiKey && i.headers.get("x-agent-provider") || void 0, f = n.allowClientApiKey && i.headers.get("x-agent-model") || void 0, p = n.allowClientApiKey && i.headers.get("x-agent-provider-endpoint") || void 0, m = h(await e.extractSecurityContext(i, a), (e) => i.headers.get(e) ?? void 0), g = n.buildSystemContext?.(m), v = new TextEncoder(), y = new ReadableStream({ async start(e) {
|
|
247
252
|
try {
|
|
248
253
|
let t = o({
|
|
249
254
|
message: s,
|
|
250
255
|
sessionId: c,
|
|
251
256
|
history: l,
|
|
252
257
|
semanticLayer: r,
|
|
253
|
-
securityContext:
|
|
258
|
+
securityContext: m,
|
|
254
259
|
agentConfig: n,
|
|
255
260
|
apiKey: u,
|
|
256
|
-
systemContext:
|
|
261
|
+
systemContext: g,
|
|
257
262
|
providerOverride: d,
|
|
258
263
|
modelOverride: f,
|
|
259
|
-
baseURLOverride:
|
|
264
|
+
baseURLOverride: p
|
|
260
265
|
});
|
|
261
266
|
for await (let n of t) {
|
|
262
267
|
let t = `data: ${JSON.stringify(n)}\n\n`;
|
|
@@ -271,37 +276,37 @@ function P(e) {
|
|
|
271
276
|
} finally {
|
|
272
277
|
e.close();
|
|
273
278
|
}
|
|
274
|
-
} }),
|
|
279
|
+
} }), b = new Headers({
|
|
275
280
|
"Content-Type": "text/event-stream",
|
|
276
281
|
"Cache-Control": "no-cache",
|
|
277
282
|
Connection: "keep-alive"
|
|
278
283
|
});
|
|
279
284
|
if (t) {
|
|
280
|
-
let e =
|
|
281
|
-
Object.entries(e).forEach(([e, t]) =>
|
|
285
|
+
let e = x(i, t);
|
|
286
|
+
Object.entries(e).forEach(([e, t]) => b.set(e, t));
|
|
282
287
|
}
|
|
283
|
-
return new Response(
|
|
288
|
+
return new Response(y, {
|
|
284
289
|
status: 200,
|
|
285
|
-
headers:
|
|
290
|
+
headers: b
|
|
286
291
|
});
|
|
287
292
|
} catch (e) {
|
|
288
|
-
return process.env.NODE_ENV !== "test" && console.error("Next.js agent chat handler error:", e),
|
|
293
|
+
return process.env.NODE_ENV !== "test" && console.error("Next.js agent chat handler error:", e), _.json({ error: e instanceof Error ? e.message : "Agent chat failed" }, { status: 500 });
|
|
289
294
|
}
|
|
290
295
|
};
|
|
291
296
|
}
|
|
292
|
-
function
|
|
293
|
-
let { mcp: t = { enabled: !0 } } = e, n =
|
|
297
|
+
function L(e) {
|
|
298
|
+
let { mcp: t = { enabled: !0 } } = e, n = y(e), r = {
|
|
294
299
|
...e,
|
|
295
300
|
semanticLayer: n
|
|
296
301
|
}, i = {
|
|
297
|
-
load:
|
|
298
|
-
meta:
|
|
299
|
-
sql:
|
|
300
|
-
dryRun:
|
|
301
|
-
batch:
|
|
302
|
-
explain:
|
|
302
|
+
load: T(r),
|
|
303
|
+
meta: E(r),
|
|
304
|
+
sql: D(r),
|
|
305
|
+
dryRun: O(r),
|
|
306
|
+
batch: k(r),
|
|
307
|
+
explain: A(r)
|
|
303
308
|
};
|
|
304
|
-
return t.enabled !== !1 && (i.mcpRpc =
|
|
309
|
+
return t.enabled !== !1 && (i.mcpRpc = F(r)), e.agent && (i.agentChat = I(r)), i;
|
|
305
310
|
}
|
|
306
311
|
//#endregion
|
|
307
|
-
export {
|
|
312
|
+
export { I as createAgentChatHandler, k as createBatchHandler, L as createCubeHandlers, j as createDiscoverHandler, O as createDryRunHandler, A as createExplainHandler, T as createLoadHandler, P as createMcpLoadHandler, F as createMcpRpcHandler, E as createMetaHandler, w as createOptionsHandler, D as createSqlHandler, M as createSuggestHandler, N as createValidateHandler };
|
|
@@ -15,7 +15,7 @@ function t(e, t, n, r) {
|
|
|
15
15
|
var n = function() {
|
|
16
16
|
let { crypto: e } = globalThis;
|
|
17
17
|
if (e?.randomUUID) return n = e.randomUUID.bind(e), e.randomUUID();
|
|
18
|
-
let t = new Uint8Array(1), r = e ? () => e.getRandomValues(t)[0] : () => Math.random() * 255 & 255;
|
|
18
|
+
let t = /* @__PURE__ */ new Uint8Array(1), r = e ? () => e.getRandomValues(t)[0] : () => Math.random() * 255 & 255;
|
|
19
19
|
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (e) => (e ^ r() & 15 >> e / 4).toString(16));
|
|
20
20
|
};
|
|
21
21
|
//#endregion
|
|
@@ -481,7 +481,7 @@ function qe(e) {
|
|
|
481
481
|
//#region node_modules/openai/internal/decoders/line.mjs
|
|
482
482
|
var T, E, Je = class {
|
|
483
483
|
constructor() {
|
|
484
|
-
T.set(this, void 0), E.set(this, void 0), e(this, T, new Uint8Array(), "f"), e(this, E, null, "f");
|
|
484
|
+
T.set(this, void 0), E.set(this, void 0), e(this, T, /* @__PURE__ */ new Uint8Array(), "f"), e(this, E, null, "f");
|
|
485
485
|
}
|
|
486
486
|
decode(n) {
|
|
487
487
|
if (n == null) return [];
|
|
@@ -506,7 +506,7 @@ var T, E, Je = class {
|
|
|
506
506
|
return t(this, T, "f").length ? this.decode("\n") : [];
|
|
507
507
|
}
|
|
508
508
|
};
|
|
509
|
-
T = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), Je.NEWLINE_CHARS = new Set(["\n", "\r"]), Je.NEWLINE_REGEXP = /\r\n|[\n\r]/g;
|
|
509
|
+
T = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), Je.NEWLINE_CHARS = /* @__PURE__ */ new Set(["\n", "\r"]), Je.NEWLINE_REGEXP = /\r\n|[\n\r]/g;
|
|
510
510
|
function Ye(e, t) {
|
|
511
511
|
for (let n = t ?? 0; n < e.length; n++) {
|
|
512
512
|
if (e[n] === 10) return {
|
|
@@ -689,7 +689,7 @@ async function* ot(e, t) {
|
|
|
689
689
|
}
|
|
690
690
|
}
|
|
691
691
|
async function* st(e) {
|
|
692
|
-
let t = new Uint8Array();
|
|
692
|
+
let t = /* @__PURE__ */ new Uint8Array();
|
|
693
693
|
for await (let n of e) {
|
|
694
694
|
if (n == null) continue;
|
|
695
695
|
let e = n instanceof ArrayBuffer ? new Uint8Array(n) : typeof n == "string" ? Ge(n) : n, r = new Uint8Array(t.length + e.length);
|
|
@@ -837,7 +837,7 @@ var mt, ht = class {
|
|
|
837
837
|
return this.data ?? [];
|
|
838
838
|
}
|
|
839
839
|
hasNextPage() {
|
|
840
|
-
return this.has_more
|
|
840
|
+
return this.has_more !== !1 && super.hasNextPage();
|
|
841
841
|
}
|
|
842
842
|
nextPageRequestOptions() {
|
|
843
843
|
let e = this.getPaginatedItems(), t = e[e.length - 1]?.id;
|
|
@@ -857,7 +857,7 @@ var mt, ht = class {
|
|
|
857
857
|
return this.data ?? [];
|
|
858
858
|
}
|
|
859
859
|
hasNextPage() {
|
|
860
|
-
return this.has_more
|
|
860
|
+
return this.has_more !== !1 && super.hasNextPage();
|
|
861
861
|
}
|
|
862
862
|
nextPageRequestOptions() {
|
|
863
863
|
let e = this.last_id;
|
|
@@ -877,7 +877,7 @@ var mt, ht = class {
|
|
|
877
877
|
return this.data ?? [];
|
|
878
878
|
}
|
|
879
879
|
hasNextPage() {
|
|
880
|
-
return this.has_more
|
|
880
|
+
return this.has_more !== !1 && super.hasNextPage();
|
|
881
881
|
}
|
|
882
882
|
nextPageRequestOptions() {
|
|
883
883
|
let e = this.next;
|
|
@@ -1466,7 +1466,7 @@ var On = (e, t) => {
|
|
|
1466
1466
|
throw new En(`${e} at position ${r}`);
|
|
1467
1467
|
}, o = () => (d(), r >= n && i("Unexpected end of input"), e[r] === "\"" ? s() : e[r] === "{" ? c() : e[r] === "[" ? l() : e.substring(r, r + 4) === "null" || L.NULL & t && n - r < 4 && "null".startsWith(e.substring(r)) ? (r += 4, null) : e.substring(r, r + 4) === "true" || L.BOOL & t && n - r < 4 && "true".startsWith(e.substring(r)) ? (r += 4, !0) : e.substring(r, r + 5) === "false" || L.BOOL & t && n - r < 5 && "false".startsWith(e.substring(r)) ? (r += 5, !1) : e.substring(r, r + 8) === "Infinity" || L.INFINITY & t && n - r < 8 && "Infinity".startsWith(e.substring(r)) ? (r += 8, Infinity) : e.substring(r, r + 9) === "-Infinity" || L.MINUS_INFINITY & t && 1 < n - r && n - r < 9 && "-Infinity".startsWith(e.substring(r)) ? (r += 9, -Infinity) : e.substring(r, r + 3) === "NaN" || L.NAN & t && n - r < 3 && "NaN".startsWith(e.substring(r)) ? (r += 3, NaN) : u()), s = () => {
|
|
1468
1468
|
let o = r, s = !1;
|
|
1469
|
-
for (r++; r < n && (e[r] !== "\"" || s && e[r - 1] === "\\");) s = e[r] === "\\"
|
|
1469
|
+
for (r++; r < n && (e[r] !== "\"" || s && e[r - 1] === "\\");) s = e[r] === "\\" && !s, r++;
|
|
1470
1470
|
if (e.charAt(r) == "\"") try {
|
|
1471
1471
|
return JSON.parse(e.substring(o, ++r - Number(s)));
|
|
1472
1472
|
} catch (e) {
|
|
@@ -3924,7 +3924,7 @@ var di = class extends N {
|
|
|
3924
3924
|
});
|
|
3925
3925
|
}
|
|
3926
3926
|
async waitForProcessing(e, { pollInterval: t = 5e3, maxWait: n = 1800 * 1e3 } = {}) {
|
|
3927
|
-
let r = new Set([
|
|
3927
|
+
let r = /* @__PURE__ */ new Set([
|
|
3928
3928
|
"processed",
|
|
3929
3929
|
"error",
|
|
3930
3930
|
"deleted"
|
|
@@ -5375,7 +5375,7 @@ var ga = class extends $ {
|
|
|
5375
5375
|
};
|
|
5376
5376
|
return n.bearerAuth && typeof this._options.apiKey == "string" ? U([{ "api-key": this.apiKey }]) : super.authHeaders(e, n);
|
|
5377
5377
|
}
|
|
5378
|
-
}, _a = new Set([
|
|
5378
|
+
}, _a = /* @__PURE__ */ new Set([
|
|
5379
5379
|
"/completions",
|
|
5380
5380
|
"/chat/completions",
|
|
5381
5381
|
"/embeddings",
|